aboutsummaryrefslogtreecommitdiff
path: root/exec.go
diff options
context:
space:
mode:
authorFumitoshi Ukai <fumitoshi.ukai@gmail.com>2015-06-19 10:08:17 +0900
committerFumitoshi Ukai <fumitoshi.ukai@gmail.com>2015-06-19 10:09:38 +0900
commit145598a5c00bb3cdec425160884de9b4070eb98b (patch)
treeffba3384eb8e6cf2dfd5d8f3496f3e6a55f352bb /exec.go
parent57088ceb79dbbc000d187fa67400a9390e113b05 (diff)
downloadkati-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.go18
1 files changed, 8 insertions, 10 deletions
diff --git a/exec.go b/exec.go
index da2d2b6..2cacc93 100644
--- a/exec.go
+++ b/exec.go
@@ -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())))
}
}