[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

My GNU Emacs RMAIL comment

A couple of days ago I mentioned setting the GNU Emacs variable
rmail-babyl-compatibility so that it will write its RMAIL file in a
format that Zmail can understand.  Unfortunately, this variable is a
local enhancement to RMAIL.

The incompatibility with GNU RMAIL is in the lines that begin with
"0," or "1,", called the status line.  Here are the comments in Zmail
that describe the format of this line:

;;; Handling of babyl status line at start of message.  Format is:
;;; <status-line>  ::= <reformed-bit> "," <basic-labels> "," <user-labels>
;;; <basic-labels> ::= (<Space> <label-name> ",")*
;;; <user-labels>  ::= (<Space> <label-name> ",")*

Zmail requires those <Space>s to be there, but RMAIL normally doesn't
put them in (our modified RMAIL puts the value of of
rmail-babyl-compatibility after the comma, which is why it is set to " "
for compatibility mode).

Instead of requiring exactly one space it should just skip over any
whitespace.  If you have Zmail sources, the function that parses this
line is ZWEI:PARSE-MSG-NEW-BABYL-STATUS-LINE, and it should be pretty
straightforward to patch it to be more flexible in the parsing.  If you
want to support only zero or one space, just change the OTHERWISE clause
in the second SELECTQ to decrement J instead of signalling an error.