all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Chong Yidong <cyd@gnu.org>
To: mark.lillibridge@hp.com
Cc: emacs-devel@gnu.org
Subject: Re: documentation of Rmail 23 mailbox format?
Date: Sun, 06 Nov 2011 14:43:43 +0800	[thread overview]
Message-ID: <87mxc9oin4.fsf@gnu.org> (raw)
In-Reply-To: <qmhmxcat2x7.fsf@hp.com> (Mark Lillibridge's message of "Sat, 05 Nov 2011 19:12:04 -0700")

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))

Could you try removing these lines and seeing if the problem persists?
The require-final-newline variable is set to nil in rmail mode anyway so
this should not be necessary.

>     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))

> 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?



  reply	other threads:[~2011-11-06  6:43 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 [this message]
2011-11-06 17:36   ` Mark Lillibridge

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

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

  git send-email \
    --in-reply-to=87mxc9oin4.fsf@gnu.org \
    --to=cyd@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=mark.lillibridge@hp.com \
    /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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.