Skip to content

Commit a6f64bc

Browse files
committed
Fix context-based word replacement in Printer methods
1 parent f488e19 commit a6f64bc

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

message/message.go

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,9 @@ func NewPrinter(t language.Tag, opts ...Option) *Printer {
6565
// Sprint is like fmt.Sprint, but using language-specific formatting.
6666
func (p *Printer) Sprint(a ...interface{}) string {
6767
pp := newPrinter(p)
68-
pp.doPrint(a)
68+
for _, item := range a {
69+
lookupAndFormat(pp, item.(Reference), nil)
70+
}
6971
s := pp.String()
7072
pp.free()
7173
return s
@@ -74,7 +76,9 @@ func (p *Printer) Sprint(a ...interface{}) string {
7476
// Fprint is like fmt.Fprint, but using language-specific formatting.
7577
func (p *Printer) Fprint(w io.Writer, a ...interface{}) (n int, err error) {
7678
pp := newPrinter(p)
77-
pp.doPrint(a)
79+
for _, item := range a {
80+
lookupAndFormat(pp, item.(Reference), nil)
81+
}
7882
n64, err := io.Copy(w, &pp.Buffer)
7983
pp.free()
8084
return int(n64), err
@@ -88,7 +92,10 @@ func (p *Printer) Print(a ...interface{}) (n int, err error) {
8892
// Sprintln is like fmt.Sprintln, but using language-specific formatting.
8993
func (p *Printer) Sprintln(a ...interface{}) string {
9094
pp := newPrinter(p)
91-
pp.doPrintln(a)
95+
for _, item := range a {
96+
lookupAndFormat(pp, item.(Reference), nil)
97+
pp.doPrintln(nil)
98+
}
9299
s := pp.String()
93100
pp.free()
94101
return s
@@ -97,7 +104,10 @@ func (p *Printer) Sprintln(a ...interface{}) string {
97104
// Fprintln is like fmt.Fprintln, but using language-specific formatting.
98105
func (p *Printer) Fprintln(w io.Writer, a ...interface{}) (n int, err error) {
99106
pp := newPrinter(p)
100-
pp.doPrintln(a)
107+
for _, item := range a {
108+
lookupAndFormat(pp, item.(Reference), nil)
109+
pp.doPrintln(nil)
110+
}
101111
n64, err := io.Copy(w, &pp.Buffer)
102112
pp.free()
103113
return int(n64), err

0 commit comments

Comments
 (0)