Skip to content

Commit d448f05

Browse files
author
Winni Neessen
committed
v0.1.6b: writeHeader() was producing double spaces at line breaks
1 parent b852a52 commit d448f05

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

msgwriter.go

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -199,31 +199,35 @@ func (mw *msgWriter) writeString(s string) {
199199

200200
// writeHeader writes a header into the msgWriter's io.Writer
201201
func (mw *msgWriter) writeHeader(k Header, vl ...string) {
202-
// Chars left: MaxHeaderLength - "<Headername>: " - "CRLF"
202+
wbuf := bytes.Buffer{}
203203
cl := MaxHeaderLength - 2
204-
mw.writeString(string(k))
204+
wbuf.WriteString(string(k))
205205
cl -= len(k)
206206
if len(vl) == 0 {
207-
mw.writeString(":\r\n")
207+
wbuf.WriteString(":\r\n")
208208
return
209209
}
210-
mw.writeString(": ")
210+
wbuf.WriteString(": ")
211211
cl -= 2
212212

213213
fs := strings.Join(vl, ", ")
214214
sfs := strings.Split(fs, " ")
215215
for i, v := range sfs {
216216
if cl-len(v) <= 1 {
217-
mw.writeString("\r\n ")
217+
wbuf.WriteString("\r\n ")
218218
cl = MaxHeaderLength - 3
219219
}
220-
mw.writeString(v)
221-
if i < len(sfs) {
222-
mw.writeString(" ")
220+
wbuf.WriteString(v)
221+
if i < len(sfs)-1 {
222+
wbuf.WriteString(" ")
223223
cl -= 1
224224
}
225225
cl -= len(v)
226226
}
227+
228+
bufs := wbuf.String()
229+
bufs = strings.ReplaceAll(bufs, " \r\n", "\r\n")
230+
mw.writeString(bufs)
227231
mw.writeString("\r\n")
228232
}
229233

0 commit comments

Comments
 (0)