References: tend not to be folded and are intelligently truncated to
998 bytes by removing Message-IDs starting with the second on the
line (always leaving the first and as many of the last ones as
possible). Technically, you should be able to fold them but there
was a time in the past that it was felt it would break too many
things if you folded the References: line. I tend to suspect that's
not an big issue anymore. The 998 limit was because some news
software (INN at the time?) didn't allow you to post lines longer
than that. That was a limit after the folding was removed so you
couldn't "fix" the line length problem with folding.
I have no idea what INN and all the other news servers currently
allow for line lengths and whether the 998 limit is important anymore.
However, References: are one of the fields that are part of XOVER and
keeping References: lines more than 1000 bytes in length I think is
just wasteful at best since all the Message-IDs except the first and
last are generally redundant and of minor importance. So I think it
is probably wise to continue to use a truncation algorithm.
And, if I was writing a new reader, I wouldn't fold References: lines
- just because there's no advantage to doing it that I know of and a
slight risk it would cause an issue.
Here's some more thoughts about References: lines from the GNKSA:
http://www.xs4all.nl/~js/gnksa/gnksa.txt
7) Make sure followups contain valid References
When creating a followup, the software MUST create a "References: "
header line that contains, as its last element, the Message-ID of the
original article. An individual Message-ID MUST never be truncated.
The software MUST include at least three additional Message-IDs from
the original article's References header as well, if they are
available. Try to stay as close as possible to the spirit of
"son-of-1036", which states:
<<Followup agents SHOULD not shorten References headers. If
it is absolutely necessary to shorten the header, as a des-
perate last resort, a followup agent MAY do this by deleting
some of the message IDs. However, it MUST not delete the
first message ID, the last three message IDs (including that
of the immediate precursor), or any message ID mentioned in
the body of the followup.>>
However, it also says:
<<If it is absolutely necessary for an implementation to
impose a limit on the length of header lines, body lines, or
header logical lines, that limit shall be at least 1000
octets, including EOL representations.>>
So, bear in mind that news transports are not guaranteed to be able to
handle arbitrary long lines. Furthermore, keep in mind that some news
transports choke on continued (multi-line) "References: " headers.
Therefore, keep as many Message-IDs as will fit on a line starting
with "References: " with a maximum length of 998 characters. (An
octet is a byte of 8 bits, EOL representation takes two bytes.)
Exception: Damaged (truncated) Message-IDs SHOULD NOT be included.
Neither should `bogus' Message-IDs -- IDs that somehow got inserted
(by
a misguided user, maybe) but don't belong to the thread.
Rationale: Threaded news-readers depend on References to do their
magic. This too is basic RFC compliance. Be as complete as the line
length
limit allows, but do not propagate errors.