emacs-devel
[Top][All Lists]
Advanced

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

Differences between mail-mode and message-mode (was: message-mode is now


From: Stephen J. Turnbull
Subject: Differences between mail-mode and message-mode (was: message-mode is now default?)
Date: Wed, 22 Jul 2009 16:35:18 +0900

Reiner Steib writes:

 > Obviously the key bindings cannot be resolved without a change for
 > either mail-mode or message-mode users.  Maybe set the bindings
 > depending on some compatibility variable?

How about the presence of Newsgroups?

 > >  . In mail-mode C-c C-f C-f moves to FCC; in message-mode C-c C-f C-f
 > >    moves to Followup-To, and C-c C-f C-w moves to FCC.

Followup-To is rarely useful in a mail message.

 > >  . In mail-mode C-c C-f C-a moves to Mail-Reply-To; in message-mode
 > >    C-c C-f C-a runs the command
 > >    `message-generate-unsubscribed-mail-followup-to' and there doesn't
 > >    seem to be a command to move to Mail-Reply-To.

There is no Mail-Reply-To header in the mail standards AFAIK.

 > >  . In mail-mode C-c C-f C-l moves to Mail-Followup-To; in message-mode
 > >    C-c C-f C-m moves to Mail-Followup-To and C-c C-f C-l is undefined

There is no Mail-Followup-To header in the mail standards AFAIK,
although there is a plausible argument that it is useful for mailing
lists.

 > >  . In mail-mode C-c C-t moves to message text; in message-mode this is
 > >    on C-c C-b, while C-c C-t runs `message-insert-to'.
 > >
 > >  . In mail-mode C-c C-v runs `mail-sent-via'; in message-mode it runs
 > >    `message-delete-not-region'.
 > 
 > What is "Sent-Via" about?  Neither Google nor grepping through the
 > RFCs gave me any useful result. [1]
 > 
 > >  . mail-mode runs `text-mode-hook' and `mail-mode-hook'; message-mode
 > >    says it runs `message-mode-hook' "in addition to any hooks its
 > >    parent mode `text-mode' might have run" -- it isn't clear to me if
 > >    these two are compatible wrt what text-mode does.
 > 
 > This text is from `derived-mode-make-docstring'.  message-mode is
 > derived from text-mode.
 > 
 > >  . message-mode overrides the following global key bindings:
 > >
 > >    - C-a runs `message-beginning-of-line'
 > 
 > This is somewhat similar to C-a in the minibuffer.  If you want to
 > move beyond the mail header (e.g. "Subject: "), just press C-a again.
 > 
 > >    - TAB runs `message-tab'
 > 
 > `message-tab' expand partially typed headers,
 > cf. `message-completion-alist'.
 > 
 > >    - M-; runs `comment-region'
 > 
 > AFAICS, in mail-mode, `M-;' runs `comment-dwim', which first asks for
 > a comment syntax since none is defined.
 > 
 > >  . message-mode's default value of `message-generate-new-buffers'
 > >    seems to generate buffer names in a way that is different from what
 > >    mail-mode does.
 > 
 > AFAICS, if I do `M-x message-mail RET', I get also get a "*mail*"
 > buffer.
 > 
 > >  . message-mode's default value of `message-fill-column' overrides the
 > >    global value of `fill-column'.
 > 
 > I used the recommendation from the relevant RFCs or GNKSA docs, IIRC.
 > Unlike `fill-column' which affects the user (and his co-workers, ...),
 > the fill column in mails (and news) should try to make sense for the
 > recipients.
 > 
 > >  . mail-mode uses `mail-setup-hook'; message-mode uses
 > >    `message-setup-hook'.
 > 
 > On Sat, Jul 18 2009, Miles Bader wrote:
 > | One issue, of course is hook names; would it work to simply have
 > | message-mode use the mail-mode hooks directly, and use variable-aliasing
 > | to accommodate people that use the message-foo-hook names?
 > 
 > Miles, is `defvaralias' what you have in mind?
 > 
 >   @@ -905,12 +923,13 @@
 >    (defcustom message-setup-hook nil
 >      "Normal hook, run each time a new outgoing message is initialized.
 >    The function `message-setup' runs this hook."
 >   [...] 
 >   +(defvaralias 'mail-setup-hook 'message-setup-hook)
 >   [...] 
 > 
 > >  . mail-mode uses `mail-yank-hooks'; message-mode doesn't appear to
 > >    have such a facility.
 > 
 > ,----
 > | ;; FIXME make it really obsolete.
 > | (defvar mail-yank-hooks nil
 > |   "Obsolete hook for modifying a citation just inserted in the mail buffer.
 > | Each hook function can find the citation between (point) and (mark t).
 > | And each hook function should leave point and mark around the citation
 > | text as modified.
 > | 
 > | This is a normal hook, misnamed for historical reasons.
 > | It is semi-obsolete and mail agents should no longer use it.")
 > `----
 > 
 > Should we care about it if is obsolete?
 > 
 > >  . message-mode's default value of `message-citation-line-format'
 > >    seems to produce different results compared to what `r' in Rmail
 > >    produces.
 > 
 > AFAICS, `r' doesn't cite at all and produce not citation line (neither
 > does `C-c C-y' (`mail-yank-original').
 > 
 > >  . message-mode's default values of `message-yank-cited-prefix' and
 > >    `message-yank-empty-prefix' are different from the results produced
 > >    by the default value of `mail-yank-prefix', and the names of the
 > >    options are also different.
 > 
 > You mean the indentation?  I think message mode's default are much
 > better.
 > 
 > >  . message-mode's default value of `message-signature' is different
 > >    from mail-mode's `mail-signature', 
 > 
 > I think using ~/.signature by default is reasonable.
 > 
 > >    and the names of the options are different.
 > 
 > See above -> Alias?
 > 
 > >  . mail-mode uses `mail-signature-file'; message-mode uses
 > >    `message-signature-file'.
 > 
 > See above -> Alias?
 > 
 > >  . mail-mode uses `mail-default-directory' for auto-saving mail
 > >    buffers; message-mode uses `message-auto-save-directory', 
 > 
 > See above -> Alias?
 > 
 > >    and the default values are also different.
 > 
 > message-mode tries to write all it's files under ~/Mail .  Many users
 > like to sync their mail stuff between different computers.
 > message-mode's default makes this easier.
 > 
 > >  . mail-mode uses `mail-mode-syntax-table'; message-mode uses
 > >    `message-mode-syntax-table.  The default values are also
 > >    different.
 > 
 > I don't know why message mode additionally contains `>' and `<'.
 > message-mode also copies `text-mode-syntax-table'.
 > 
 > >  . mail-mode uses `mail-send-hook'; message-mode uses
 > >    `message-send-mail-hook' and `message-send-hook'.
 > 
 > See above -> Alias?
 > 
 > >  . mail-mode's `mail-bury' tries to show the Rmail buffer if
 > >    `mail-bury-selects-summary' is non-nil.  message-mode's
 > >    `message-bury' doesn't seem to have a comparable feature.  (This is
 > >    important when reading mail on a text terminal.)
 > 
 > Probably we should call code like `mail-bury' to `message-bury' if
 > `rmail-summary-buffer' is non-nil.
 > 
 > >  . message-mode doesn't seem to have an equivalent of `mail-use-dsn'.
 > 
 > We could add the `mail-use-dsn' code to `message-send-mail-with-sendmail'.
 > 
 > Bye, Reiner.
 > 
 > [1] http://www.google.com/search?q=%2B"Sent-Via"+mail+header+rfc
 > 
 >     $ dpkg -l 'doc-rfc-*'
 >     [...]
 >     ii  doc-rfc-0001-0999        20030621-1               Other RFCs
 >     ii  doc-rfc-1000-1999        20030621-1               Other RFCs
 >     ii  doc-rfc-2000-2999        20030621-1               Other RFCs
 >     ii  doc-rfc-3000-3999        20030621-1               Other RFCs
 >     ii  doc-rfc-experimental     20030621-1               Experimental RFCs
 >     ii  doc-rfc-fyi-bcp          20030621-1               FYI and BCP RFCs
 >     ii  doc-rfc-misc             20030621-1               Miscellaneous RFCs
 >     ii  doc-rfc-old-std          20030621-1               Old Standard RFCs
 >     ii  doc-rfc-std              20030621-1               Standard RFCs
 >     ii  doc-rfc-std-proposed     20030621-1               Proposed Standard 
 > RFCs
 >     
 >     /usr/share/doc/RFC$ zgrep -ie Sent-Via */*.txt.gz
 >     /usr/share/doc/RFC$ 
 > -- 
 >        ,,,
 >       (o o)
 > ---ooO-(_)-Ooo---  |  PGP key available  |  http://rsteib.home.pages.de/
 > 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]