Future keyword parsing rules and enabling multi line arguments
Over in in #249 (closed), we came up with the following:
After some consideration we could identify two distinct issues.
The initially posted problem that headers of forwarded messages are interpreted as keywords (and rejected),
the problem that keywords are filtered from prose text (aka. when to stop parsing for keywords).
We would like to propose to:
fix the initial problem as a bug by parsing only for known keywords.
create a new issue for possible future keyword parsing rules, and ask for peoples opinions (or votes).
Unfortunately, this second step ("create a new issue") took quite a while, but finally, here we are.
From my point of view achieving consensus on how to go forward with this, on which keyword-parsing rules to settle, in which release to ship this and to enable multi line keyword arguments are rather high priority -- for example, people using Thunderbird / Enigmail are currently unable to use
x-set-fingerprint: $MAIL $FINGERPRINT
as, by default, Thunderbird wraps lines after 72 chars. People need to fiddle with the Thunderbird configuration, which is even not a nice GUI, but instead advanced options available via about:config
.
IMHO, that's a horrible user experience, hence I would like to see this fixed rather sooner than later.
A concrete proposal by @dkg over in #249 (closed):
I think that proposal would break for keywords that the MUA split across three lines. A more robust proposal is:
Ignore all leading blank lines
if the first leading non-blank line doesn't match
/^x-/i
then there are no keywords.keywords might take up multiple lines, but they cannot contain blank lines -- a blank line stops keyword processing.
This means that users need to isolate their keywords from their text with a double-blank-line (a "pseudoheader stanza").
Opinions raised against this proposal were about introducing a breaking change, which wouldn't allow to ship this in a minor or patch release and the question when a keyword and the arguments would be split over three lines (x-resend
with "many" arguments).
Any more opinions, keyword-parsing proposals, or in general proposals how to go forward with this?