diff options
author | Fumitoshi Ukai <fumitoshi.ukai@gmail.com> | 2015-06-19 10:08:17 +0900 |
---|---|---|
committer | Fumitoshi Ukai <fumitoshi.ukai@gmail.com> | 2015-06-19 10:09:38 +0900 |
commit | 145598a5c00bb3cdec425160884de9b4070eb98b (patch) | |
tree | ffba3384eb8e6cf2dfd5d8f3496f3e6a55f352bb /exec.go | |
parent | 57088ceb79dbbc000d187fa67400a9390e113b05 (diff) | |
download | kati-145598a5c00bb3cdec425160884de9b4070eb98b.tar.gz |
reduce string -> []byte conversion in Write and w.Write([]byte{x})
use io.WriteString(w, str) instead of w.Write([]byte(str))
use writeByte(w, b) instead of w.Write([]byte{b})
Diffstat (limited to 'exec.go')
-rw-r--r-- | exec.go | 18 |
1 files changed, 8 insertions, 10 deletions
@@ -116,11 +116,10 @@ type AutoSuffixDVar struct { func (v AutoSuffixDVar) Eval(w io.Writer, ev *Evaluator) { var buf bytes.Buffer v.v.Eval(&buf, ev) - for i, tok := range splitSpaces(buf.String()) { - if i > 0 { - w.Write([]byte{' '}) - } - fmt.Fprint(w, filepath.Dir(tok)) + ws := newWordScanner(buf.Bytes()) + sw := ssvWriter{w: w} + for ws.Scan() { + sw.WriteString(filepath.Dir(string(ws.Bytes()))) } } @@ -132,11 +131,10 @@ type AutoSuffixFVar struct { func (v AutoSuffixFVar) Eval(w io.Writer, ev *Evaluator) { var buf bytes.Buffer v.v.Eval(&buf, ev) - for i, tok := range splitSpaces(buf.String()) { - if i > 0 { - w.Write([]byte{' '}) - } - fmt.Fprint(w, filepath.Base(tok)) + ws := newWordScanner(buf.Bytes()) + sw := ssvWriter{w: w} + for ws.Scan() { + sw.WriteString(filepath.Base(string(ws.Bytes()))) } } |