summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn O. Pearce <sop@google.com>2009-06-18 17:40:34 -0700
committerShawn O. Pearce <sop@google.com>2009-06-18 17:40:34 -0700
commit1c2b4a05a4fbb779767ebf0b9cd8cff23d4ff5a8 (patch)
tree41b1899a6df0fcee22fe842231a1e2f7a2ba88b5
parent6c775e508910c4c0d449d49d89f3054988a1172d (diff)
Fix line-wrapped To/CC email headers
We incorrectly skipped a comma when we line wrapped a To or CC header onto the next line and we packed multiple addresses on the subsequent line. This caused email clients to assume the two addresses were in reality one address, breaking filter rules and reply-to-all behavior. Signed-off-by: Shawn O. Pearce <sop@google.com>
-rw-r--r--src/main/java/com/google/gerrit/server/mail/EmailHeader.java14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/main/java/com/google/gerrit/server/mail/EmailHeader.java b/src/main/java/com/google/gerrit/server/mail/EmailHeader.java
index 2d82c1d1c1..36a5f37c2f 100644
--- a/src/main/java/com/google/gerrit/server/mail/EmailHeader.java
+++ b/src/main/java/com/google/gerrit/server/mail/EmailHeader.java
@@ -87,20 +87,24 @@ abstract class EmailHeader {
@Override
void write(Writer w) throws IOException {
int len = 8;
- boolean first = true;
+ boolean firstAddress = true;
+ boolean needComma = false;
for (final Address addr : list) {
java.lang.String s = addr.toHeaderString();
- if (first) {
- first = false;
+ if (firstAddress) {
+ firstAddress = false;
} else if (72 < len + s.length()) {
w.write(",\r\n\t");
len = 8;
- first = true;
- } else {
+ needComma = false;
+ }
+
+ if (needComma) {
w.write(", ");
}
w.write(s);
len += s.length();
+ needComma = true;
}
}
}