Alexey Melnikov wrote:
What +1, focus on discussing the merits of FWS in
<quoted-string> as <local-part> of an <addr-spec> ?
Or +1 to kill the FWS in <local-part> in 2822upd ?
Killing it in syntax could be something like this:
- local-part = dot-atom / quoted-string / obs-local-part
+ local-part = dot-atom / quoted-local / obs-local-part
= quoted-string = [CFWS]
DQUOTE *([FWS] qcontent) [FWS] DQUOTE
+ quoted-local = [CFWS] DQUOTE
[SP] 1*qcontent *(SP 1*qcontent) [SP]
That permits a single trailing or leading space, and a
single space between non-empty strings of <qcontent>.
It doesn't touch <quoted-pair>, if folks insist on it
they can still have " \ \ "@example with 5 spaces :-(
It doesn't permit ""@example or " "@example, so that
needs to be handled elsewhere, e.g. <obs-local-part>.
And it doesn't touch any backslash-HTAB, should that be
moved from <quoted-pair> to <obs-qp> ? It's quite easy
to do that in syntax:
- quoted-pair = ("\" (VCHAR / WSP)) / obs-qp
+ quoted-pair = ("\" (SP / VCHAR)) / obs-qp
Bonus, modulo <obs-qp> that's the same as in 2821bis.
- obs-qp = "\" (%d0 / obs-NO-WS-CTL / LF / CR)
+ obs-qp = "\" CTL
Bonus, CTL is simpler. Disadvantage, what breaks with
this relatively radical simplification ?
Of course 1*HTAB and 2*WSP would also need to go to an
augmented <obs-local-part> for this solution.
Anything with <quoted-string> that is no <quoted-local>
is automagically matched by <obs-local-part>, IMO that
covers 1*HTAB, 2*WSP, " "@example, backslash-HTAB, and
""@example. If I didn't miss something <obs-local-part>
could stay as is, is that what you want ?