c++filt.go
func doDemangle(out *bufio.Writer, name string) {
	skip := 0
	if name[0] == '.' || name[0] == '$' {
		skip++
	}
	if *stripUnderscore && name[skip] == '_' {
		skip++
	}
	result := demangle.Filter(name[skip:], options()...)
	if result == name[skip:] {
		out.WriteString(name)
	} else {
		if name[0] == '.' {
			out.WriteByte('.')
		}
		out.WriteString(result)
	}
}
func doDemangle(out *bufio.Writer, name string) {
	skip := 0
	if name[0] == '.' || name[0] == '$' {
		skip++
	}
	if *stripUnderscore && name[skip] == '_' {
		skip++
	}
	result := demangle.Filter(name[skip:], options()...)
	if result == name[skip:] {
		out.WriteString(name)
	} else {
		if name[0] == '.' {
			out.WriteByte('.')
		}
		out.WriteString(result)
	}
}
func doDemangle ( out * bufio . Writer , name string ) { skip := 0 if name [ 0 ] == '.' || name [ 0 ] == '$' { skip ++ } if * stripUnderscore && name [ skip ] == '_' { skip ++ } result := demangle . Filter ( name [ skip : ] , options ( ) ... ) if result == name [ skip : ] { out . WriteString ( name ) } else { if name [ 0 ] == '.' { out . WriteByte ( '.' ) } out . WriteString ( result ) } }
// Demangle a string just as the GNU c++filt program does.
Demangle a string just as the GNU c ++ filt program does .