unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Mark Lillibridge <mark.lillibridge@hp.com>
To: Chong Yidong <cyd@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: documentation of Rmail 23 mailbox format?
Date: Sun, 06 Nov 2011 09:36:41 -0800	[thread overview]
Message-ID: <qmhk47dtaom.fsf@hp.com> (raw)
In-Reply-To: <87mxc9oin4.fsf@gnu.org> (message from Chong Yidong on Sun, 6 Nov 2011 14:43:43 +0800)


Chong Yidong wrote:
>  Mark Lillibridge <mark.lillibridge@hp.com> writes:
>  
>  > I've found at least one bug (get messages destroys all white space at
>  > the end of the last message already in the mailbox) in Rmail 23
>  
>  I think that's coming from this code in rmail-get-new-mail:
>  
>        ;; In case of brain damage caused by require-final-newline.
>        (goto-char (point-max))
>        (skip-chars-backward " \t\n")
>        (delete-region (point) (point-max))

    Good eye.  That is indeed the primary cause of the bug.  They need
to be replaced with code that fixes up the mbox damage caused by this
bug; e.g., add newline's until the file ends with at least one blank
line.

    There's another bug further downstream revealed by that fix,
however.  In rmail.el:2022 in the rmail-insert-inbox-text function
is:

	    ;; Determine if a pair of newline message separators need
	    ;; to be added to the new collection of messages.  This is
	    ;; the case for all new message collections added to a
	    ;; non-empty mail file.
	    (unless (zerop size)
	      (save-restriction
		(let ((start (point-min)))
		  (widen)
		  (unless (eq start (point-min))
		    (goto-char start)
		    (insert "\n\n")
		    (setq size (+ 2 size))))))

This code is compensating for the previous broken code and needs to be
deleted.  I'm working on a patch and will include it with my official
bug report, hopefully later today.



>  >     Unless told otherwise, I'm going to assume that Rmail 23 is supposed
>  > be using the mboxo/mboxrd mailbox format (see
>  > http://homepage.ntlworld.com./jonathan.deboynepollard/FGA/mail-mbox-formats.html).
>  
>  IIRC, it is supposed to use the mboxrd format.  For instance, the
>  unquoting of From lines for message display is handled by this code in
>  rmail-show-message-1:
>  
>        ;; Unquote quoted From lines
>        (while (re-search-forward "^>+From " nil t)
>          (beginning-of-line)
>          (delete-char 1)
>          (forward-line))

    Ok.  Can we document this somewhere?  I'm happy to write up some
text describing mboxrd if desired.  Rmail edit assumes mboxo by the way
so the codebase is inconsistent.



>  > In particular, this means that:
>  >
>  >     Each message is preceded by a From_ line and followed by a blank
>  >     line. A From_ line is a line that begins with the five characters
>  >     'F', 'r', 'o', 'm', and ' '.
>  >
>  > Rmail 23 does not comply correctly with this.  For example, it fails
>  > to add a blank line after the last message.
>  
>  I think that's the purpose of this code from rmail-insert-inbox-text:
>  
>        <after inserting the contents of the inbox>
>        ;; Determine if a pair of newline message separators need
>        ;; to be added to the new collection of messages.  This is
>        ;; the case for all new message collections added to a
>        ;; non-empty mail file.
>        (unless (zerop size)
>          (save-restriction
>            (let ((start (point-min)))
>              (widen)
>              (unless (eq start (point-min))
>                (goto-char start)
>                (insert "\n\n")
>                (setq size (+ 2 size))))))
>        (goto-char (point-max))
>        (or (= (preceding-char) ?\n)
>            (zerop size)
>            (insert ?\n))
>  
>  Maybe it's not doing the right thing in some circumstances?

    More like doing the wrong thing in all circumstances when this bug
is fixed.  It mostly compensates for the bug when there is new mail but
as it doesn't run when there is no new mail, it fails to always
compensate.

- Mark



      reply	other threads:[~2011-11-06 17:36 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-06  2:12 documentation of Rmail 23 mailbox format? Mark Lillibridge
2011-11-06  6:43 ` Chong Yidong
2011-11-06 17:36   ` Mark Lillibridge [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=qmhk47dtaom.fsf@hp.com \
    --to=mark.lillibridge@hp.com \
    --cc=cyd@gnu.org \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).