+Sat Dec 6 17:40:33 1997 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Quassia Gnus v0.18 is released.
+
+Sat Dec 6 17:27:04 1997 Kim-Minh Kaplan <KimMinh.Kaplan@Utopia.EUnet.fr>
+
+ * gnus-picon.el (gnus-picons-remove): Race condition.
+
+Sat Dec 6 17:23:26 1997 Christian von Roques <roques@scalar.pond.sub.org>
+
+ * gnus-start.el (gnus-read-descriptions-file): Fix
+ enable-multibyte-characters.
+
+1997-12-05 Dave Love <d.love@dl.ac.uk>
+
+ * gnus-nocem.el (gnus-nocem-message-wanted-p): Fix paren typpo.
+ (gnus-nocem-issuers): Allow sexp alternative in :type for alists.
+
+1997-12-05 Dave Love <d.love@dl.ac.uk>
+
+ * gnus-art.el (gnus-visible-headers): Add X-sent:.
+
+Sat Dec 6 17:16:28 1997 Lars Balker Rasmussen <lbr@mjolner.dk>
+
+ * gnus-art.el (article-make-date-line): Don't add extra newlines.
+
+1997-11-27 MORIOKA Tomohiko <morioka@jaist.ac.jp>
+
+ * nnmail.el (nnmail-file-coding-system): Use `raw-text' in
+ default.
+
+ * nnheader.el (nnheader-file-coding-system): Use `raw-text' in
+ default.
+
+Sat Dec 6 17:04:40 1997 Kim-Minh Kaplan <KimMinh.Kaplan@utopia.eunet.fr>
+
+ * nnml.el (nnml-parse-head): Out-of-bounds fix.
+
+ * nndraft.el (nndraft-request-associate-buffer): Get proper file
+ name.
+
+Sat Dec 6 15:35:37 1997 Gary D. Foster <Gary.Foster@Corp.Sun.COM>
+
+ * gnus-group.el: Added backspace.
+
+Thu Nov 27 19:56:59 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus-agent.el (gnus-summary-set-agent-mark): Remove marks
+ properly.
+
+1997-11-27 Christoph Wedler <wedler@fmi.uni-passau.de>
+
+ * smiley.el (smiley-buffer): Provide `help-echo'.
+
+Thu Nov 27 17:33:45 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus-util.el (gnus-output-to-rmail): Always save buffer.
+
+ * nntp.el (nntp-close-server): Don't sleep for me, Argentina.
+ (nntp-request-close): You neither.
+
+1997-11-19 Per Abrahamsen <abraham@dina.kvl.dk>
+
+ * message.el (message-header-lines): New widget.
+ (message-default-headers): Use it.
+ (message-default-mail-headers): Use it.
+ (message-default-news-headers): Use it.
+
+1997-11-24 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * gnus-start.el (gnus-read-descriptions-file): Add missing quote.
+
+Wed Nov 26 18:19:29 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * nnweb.el (nnweb-type-definition): Rescued dejanewsold.
+
+ * gnus-mh.el (gnus-summary-save-in-folder): Reverted to old
+ version.
+
+ * gnus-sum.el (gnus-kill-or-deaden-summary): Save excursion.
+
+ * gnus.el: Only require gnus-load in Emacsen 19.
+
+ * gnus-start.el (gnus-setup-news): Always push archive server.
+
+ * gnus-sum.el (gnus-read-header): Would bug out on sparse
+ articles.
+
+Wed Nov 26 17:50:41 1997 Kurt Swanson <kurt@dna.lth.se>
+
+ * gnus-ems.el (gnus-mule-cite-add-face): Work.
+
Wed Nov 26 17:40:57 1997 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
* gnus.el: Quassia Gnus v0.17 is released.
(require 'bytecomp)
(push "~/lisp/custom" load-path)
(push "." load-path)
-(require 'lpath)
+(load "./lpath.el")
(defalias 'device-sound-enabled-p 'ignore)
(defalias 'play-sound-file 'ignore)
(let ((unmark (if (and (not (null unmark)) (not (eq t unmark)))
(memq article gnus-newsgroup-downloadable)
unmark)))
- (setq gnus-newsgroup-downloadable
- (delq article gnus-newsgroup-downloadable))
- (unless unmark
+ (if unmark
+ (progn
+ (setq gnus-newsgroup-downloadable
+ (delq article gnus-newsgroup-downloadable))
+ (push article gnus-newsgroup-undownloaded))
+ (setq gnus-newsgroup-undownloaded
+ (delq article gnus-newsgroup-undownloaded))
(push article gnus-newsgroup-downloadable))
(gnus-summary-update-mark
(if unmark gnus-undownloaded-mark gnus-downloadable-mark)
:group 'gnus-article-hiding)
(defcustom gnus-visible-headers
- "^From:\\|^Newsgroups:\\|^Subject:\\|^Date:\\|^Followup-To:\\|^Reply-To:\\|^Organization:\\|^Summary:\\|^Keywords:\\|^To:\\|^Cc:\\|^Posted-To:\\|^Mail-Copies-To:\\|^Apparently-To:\\|^Gnus-Warning:\\|^Resent-From"
+ "^From:\\|^Newsgroups:\\|^Subject:\\|^Date:\\|^Followup-To:\\|^Reply-To:\\|^Organization:\\|^Summary:\\|^Keywords:\\|^To:\\|^Cc:\\|^Posted-To:\\|^Mail-Copies-To:\\|^Apparently-To:\\|^Gnus-Warning:\\|^Resent-From:\\|X-Sent:"
"All headers that do not match this regexp will be hidden.
This variable can also be a list of regexp of headers to remain visible.
If this variable is non-nil, `gnus-ignored-headers' will be ignored."
num prev)
(cond
((null real-time)
- "X-Sent: Unknown\n")
+ "X-Sent: Unknown")
((zerop sec)
- "X-Sent: Now\n")
+ "X-Sent: Now")
(t
(concat
"X-Sent: "
(defun gnus-cite-parse-maybe (&optional force)
;; Parse if the buffer has changes since last time.
- (if (equal gnus-cite-article gnus-article-current)
+ (if (and (not force) (equal gnus-cite-article gnus-article-current))
()
;;Reset parser information.
(setq gnus-cite-prefix-alist nil
(let ((inhibit-point-motion-hooks t)
from to)
(goto-line number)
- (if (boundp 'MULE)
- (forward-char (chars-in-string prefix))
- (forward-char (length prefix)))
- (skip-chars-forward " \t")
- (setq from (point))
- (end-of-line 1)
- (skip-chars-backward " \t")
- (setq to (point))
- (when (< from to)
- (gnus-overlay-put (gnus-make-overlay from to) 'face face)))))
+ (unless (eobp) ; Sometimes things become confused (broken).
+ (if (boundp 'MULE)
+ (forward-char (chars-in-string prefix))
+ (forward-char (length prefix)))
+ (skip-chars-forward " \t")
+ (setq from (point))
+ (end-of-line 1)
+ (skip-chars-backward " \t")
+ (setq to (point))
+ (when (< from to)
+ (push (setq overlay (gnus-make-overlay from to))
+ gnus-cite-overlay-list)
+ (gnus-overlay-put (gnus-make-overlay from to) 'face face))))))
(defun gnus-mule-max-width-function (el max-width)
(` (let* ((val (eval (, el)))
"p" gnus-group-prev-unread-group
"\177" gnus-group-prev-unread-group
[delete] gnus-group-prev-unread-group
+ [backspace] gnus-group-prev-unread-group
"N" gnus-group-next-group
"P" gnus-group-prev-group
"\M-n" gnus-group-next-unread-group-same-level
;; Thanks to yuki@flab.Fujitsu.JUNET and ohm@kaba.junet.
(mh-find-path)
(let ((folder
- (gnus-read-save-file-name
- "Save %s in file:" folder
- gnus-folder-save-name gnus-newsgroup-name
- gnus-current-headers 'gnus-newsgroup-last-folder))
+ (cond ((and (eq folder 'default)
+ gnus-newsgroup-last-folder)
+ gnus-newsgroup-last-folder)
+ (folder folder)
+ (t (mh-prompt-for-folder
+ "Save article in"
+ (funcall gnus-folder-save-name gnus-newsgroup-name
+ gnus-current-headers gnus-newsgroup-last-folder)
+ t))))
(errbuf (get-buffer-create " *Gnus rcvstore*"))
;; Find the rcvstore program.
(exec-path (if mh-lib (cons mh-lib exec-path) exec-path)))
This can also be a list of `(ISSUER CONDITIONS)' elements."
:group 'gnus-nocem
- :type '(repeat string))
+ :type '(repeat (choice string sexp)))
(defcustom gnus-nocem-directory
(nnheader-concat gnus-article-save-directory "NoCeM/")
(while (setq condition (pop conditions))
(cond
((stringp condition)
- (setq wanted (string-match condition) type))
+ (setq wanted (string-match condition type)))
((and (consp condition)
(eq (car condition) 'not)
(stringp (cadr condition)))
asynchronous process don't get crazy."
(setq gnus-picons-jobs-alist (remassq symbol gnus-picons-jobs-alist))
;; notify running job that it may have been preempted
- (if (eq (car gnus-picons-job-already-running) symbol)
+ (if (and (listp gnus-picons-job-already-running)
+ (eq (car gnus-picons-job-already-running) symbol))
(setq gnus-picons-job-already-running t))
;; clear all annotations
(mapc (function (lambda (item)
(when gnus-message-archive-method
(setq gnus-server-alist (delq (assoc "archive" gnus-server-alist)
gnus-server-alist))
- (when (gnus-archive-server-wanted-p)
- (push (cons "archive" gnus-message-archive-method)
- gnus-server-alist)))
+ (push (cons "archive" gnus-message-archive-method)
+ gnus-server-alist))
;; If we don't read the complete active file, we fill in the
;; hashtb here.
(let ((str (buffer-substring
(point) (progn (end-of-line) (point))))
(coding
- (and (boundp enable-multibyte-characters)
+ (and (boundp 'enable-multibyte-characters)
enable-multibyte-characters
(gnus-mule-get-coding-system (symbol-name group)))))
(if coding
" " gnus-summary-next-page
"\177" gnus-summary-prev-page
[delete] gnus-summary-prev-page
+ [backspace] gnus-summary-prev-page
"\r" gnus-summary-scroll-up
"n" gnus-summary-next-unread-article
"p" gnus-summary-prev-unread-article
(defun gnus-kill-or-deaden-summary (buffer)
"Kill or deaden the summary BUFFER."
- (when (and (buffer-name buffer)
- (not gnus-single-article-buffer))
- (save-excursion
- (set-buffer buffer)
- (gnus-kill-buffer gnus-article-buffer)
- (gnus-kill-buffer gnus-original-article-buffer)))
- (cond (gnus-kill-summary-on-exit
- (when (and gnus-use-trees
- (and (get-buffer buffer)
- (buffer-name (get-buffer buffer))))
+ (save-excursion
+ (when (and (buffer-name buffer)
+ (not gnus-single-article-buffer))
+ (save-excursion
+ (set-buffer buffer)
+ (gnus-kill-buffer gnus-article-buffer)
+ (gnus-kill-buffer gnus-original-article-buffer)))
+ (cond (gnus-kill-summary-on-exit
+ (when (and gnus-use-trees
+ (and (get-buffer buffer)
+ (buffer-name (get-buffer buffer))))
+ (save-excursion
+ (set-buffer (get-buffer buffer))
+ (gnus-tree-close gnus-newsgroup-name)))
+ (gnus-kill-buffer buffer))
+ ((and (get-buffer buffer)
+ (buffer-name (get-buffer buffer)))
(save-excursion
- (set-buffer (get-buffer buffer))
- (gnus-tree-close gnus-newsgroup-name)))
- (gnus-kill-buffer buffer))
- ((and (get-buffer buffer)
- (buffer-name (get-buffer buffer)))
- (save-excursion
- (set-buffer buffer)
- (gnus-deaden-summary)))))
+ (set-buffer buffer)
+ (gnus-deaden-summary))))))
(defun gnus-summary-wake-up-the-dead (&rest args)
"Wake up the dead summary buffer."
;; previous entry in the thread hashtb.
(when (and header
(gnus-summary-article-sparse-p (mail-header-number header)))
- (let ((thread (gnus-gethash
- (gnus-parent-id (mail-header-references header))
- gnus-newsgroup-dependencies)))
- (delq (assq header thread) thread)))
+ (let* ((parent (gnus-parent-id (mail-header-references header)))
+ (thread
+ (and parent
+ (gnus-gethash parent gnus-newsgroup-dependencies))))
+ (when thread
+ (delq (assq header thread) thread))))
;; We have to really fetch the header to this article.
(save-excursion
(set-buffer nntp-server-buffer)
(narrow-to-region (point) (point-max))
(goto-char (1+ (point-min)))
(rmail-count-new-messages t)
- (rmail-show-message msg))))))
+ (rmail-show-message msg))
+ (save-buffer)))))
(kill-buffer tmpbuf)))
(defun gnus-output-to-mail (filename &optional ask)
(eval-when-compile (require 'cl))
(require 'custom)
-(require 'gnus-load)
+(eval-and-compile
+ (if (< emacs-major-version 20)
+ (require 'gnus-load)))
(require 'message)
(defgroup gnus nil
:link '(custom-manual "(gnus)Exiting Gnus")
:group 'gnus)
-(defconst gnus-version-number "0.17"
+(defconst gnus-version-number "0.18"
"Version number for this version of Gnus.")
(defconst gnus-version (format "Quassia Gnus v%s" gnus-version-number)
(defun gnus-suppress-keymap (keymap)
(suppress-keymap keymap)
- (let ((keys `([delete] "\177" "\M-u"))) ;gnus-mouse-2
+ (let ((keys `([backspace] [delete] "\177" "\M-u"))) ;gnus-mouse-2
(while keys
(define-key keymap (pop keys) 'undefined))))
set-face-stipple mail-abbrevs-setup char-int
make-char-table set-char-table-range font-create-object
x-color-values widget-make-intangible error-message-string
- w3-form-encode-xwfu md5 gnus-mule-get-coding-system
+ w3-form-encode-xwfu gnus-mule-get-coding-system
decode-coding-string))
(maybe-bind '(global-face-data
mark-active transient-mark-mode mouse-selection-click-count
font-lock-defaults user-full-name user-login-name
gnus-newsgroup-name gnus-article-x-face-too-ugly
mail-mode-hook enable-multibyte-characters)))
- (defvar browse-url-browser-function nil)
+ (maybe-bind '(mail-mode-hook
+ enable-multibyte-characters browse-url-browser-function))
(maybe-fbind '(color-instance-rgb-components
make-color-instance color-instance-name specifier-instance
device-type device-class get-popup-menu-response event-object
widget-make-intangible glyphp make-glyph set-glyph-image
set-glyph-property event-glyph glyph-property event-point
device-on-window-system-p make-gui-button Info-goto-node
- pp-to-string color-name)))
+ pp-to-string color-name
+ gnus-mule-get-coding-system decode-coding-string)))
(setq load-path (cons "." load-path))
(require 'custom)
+(defun md5 (a &optional b c)
+ )
+
(provide 'lpath)
(define-widget 'message-header-lines 'text
"All header lines must be LFD terminated."
:valid-regexp "^\\'"
- :format "%t:\n%v"
:error "All header lines must be newline terminated")
(defcustom message-default-headers ""
(setq article (nndraft-request-accept-article
group (nnoo-current-server 'nndraft) t 'noinsert))
(setq file (nndraft-article-filename article)))
- (setq buffer-file-name file)
+ (setq buffer-file-name (expand-file-name file))
(setq buffer-auto-save-file-name (make-auto-save-file-name))
(clear-visited-file-modtime)
article))
(ange-ftp-re-read-dir path)))))
;; 1997/5/4 by MORIOKA Tomohiko <morioka@jaist.ac.jp>
-(defvar nnheader-file-coding-system nil
+(defvar nnheader-file-coding-system 'raw-text
"Coding system used in file backends of Gnus.")
(defun nnheader-insert-file-contents (filename &optional visit beg end replace)
(mail-send-and-exit nil))
;; 1997/5/4 by MORIOKA Tomohiko <morioka@jaist.ac.jp>
-(defvar nnmail-file-coding-system nil
+(defvar nnmail-file-coding-system 'raw-text
"Coding system used in nnmail.")
(defun nnmail-find-file (file)
"Parse the head of the current buffer."
(save-excursion
(save-restriction
- (goto-char (point-min))
(unless (zerop (buffer-size))
(narrow-to-region
- (point)
- (1- (or (search-forward "\n\n" nil t) (point-max)))))
+ (goto-char (point-min))
+ (if (search-forward "\n\n" nil t) (1- (point)) (point-max))))
;; Fold continuation lines.
(goto-char (point-min))
(while (re-search-forward "\\(\r?\n[ \t]+\\)+" nil t)
(set-process-sentinel process nil)
(ignore-errors
(nntp-send-string process "QUIT")
- (sleep-for 1)))
+ (unless (eq nntp-open-connection-function 'nntp-open-network-stream)
+ (sleep-for 1))))
(when (buffer-name (process-buffer process))
(kill-buffer (process-buffer process))))
(nnoo-close-server 'nntp)))
(set-process-sentinel process nil)
(ignore-errors
(nntp-send-string process "QUIT")
- (sleep-for 1)))
+ (unless (eq nntp-open-connection-function 'nntp-open-network-stream)
+ (sleep-for 1))))
(when (buffer-name (process-buffer process))
(kill-buffer (process-buffer process))))))
(article . nnweb-dejanews-wash-article)
(map . nnweb-dejanews-create-mapping)
(search . nnweb-dejanews-search)
- (address . "http://xp9.dejanews.com/dnquery.xp")
+ (address . "http://x5.dejanews.com/dnquery.xp")
(identifier . nnweb-dejanews-identity))
(dejanewsold
(article . nnweb-dejanews-wash-article)
(map . nnweb-dejanews-create-mapping)
(search . nnweb-dejanewsold-search)
- (address . "http://xp9.dejanews.com/dnquery.xp")
+ (address . "http://x5.dejanews.com/dnquery.xp")
(identifier . nnweb-dejanews-identity))
(reference
(article . nnweb-reference-wash-article)
;; Author: Richard L. Pieri <ratinox@peorth.gweep.net>
;; Keywords: mail, pop3
-;; Version: 1.3h
+;; Version: 1.3j
;; This file is part of GNU Emacs.
(require 'mail-utils)
(provide 'pop3)
-(defconst pop3-version "1.3h")
+(defconst pop3-version "1.3j")
(defvar pop3-maildrop (or user-login-name (getenv "LOGNAME") (getenv "USER") nil)
"*POP3 maildrop.")
"Timestamp returned when initially connected to the POP server.
Used for APOP authentication.")
-(defvar pop3-movemail-file-coding-system nil
- "Crashbox made by pop3-movemail with this coding system.")
-
(defvar pop3-read-point nil)
(defvar pop3-debug nil)
(pop3-retr process n crashbuf)
(save-excursion
(set-buffer crashbuf)
- (let ((coding-system-for-write pop3-movemail-file-coding-system))
- (append-to-file (point-min) (point-max) crashbox))
+ (append-to-file (point-min) (point-max) crashbox)
(set-buffer (process-buffer process))
(while (> (buffer-size) 5000)
(goto-char (point-min))
(process))
(save-excursion
(set-buffer process-buffer)
- (erase-buffer))
+ (erase-buffer)
+ (setq pop3-read-point (point-min))
+ )
(setq process
(open-network-stream "POP" process-buffer mailhost port))
- (setq pop3-read-point (point-min))
(let ((response (pop3-read-response process t)))
(setq pop3-timestamp
(substring response (or (string-match "<" response) 0)
(set-buffer (process-buffer process))
(while (not (re-search-forward "^\\.\r\n" nil t))
(accept-process-output process 3)
- ;; bill@att.com ... to save wear and tear on the heap
- (if (> (buffer-size) 20000) (sleep-for 1))
- (if (> (buffer-size) 50000) (sleep-for 1))
- (if (> (buffer-size) 100000) (sleep-for 1))
- (if (> (buffer-size) 200000) (sleep-for 1))
- (if (> (buffer-size) 500000) (sleep-for 1))
- ;; bill@att.com
+; ;; bill@att.com ... to save wear and tear on the heap
+; (if (> (buffer-size) 20000) (sleep-for 1))
+; (if (> (buffer-size) 50000) (sleep-for 1))
+; (if (> (buffer-size) 100000) (sleep-for 1))
+; (if (> (buffer-size) 200000) (sleep-for 1))
+; (if (> (buffer-size) 500000) (sleep-for 1))
+; ;; bill@att.com
+ ;; condensed into:
+ (if (> (buffer-size) 20000) (sleep-for (/ (buffer-size) 20000)))
(goto-char start))
(setq pop3-read-point (point-marker))
;; this code does not seem to work for some POP servers...
(set-extent-property ant 'smiley-extent ext)
(set-extent-property ext 'smiley-annotation ant)
;; Help
+ (set-extent-property ext 'help-echo
+ "button2 toggles smiley, button3 pops up menu")
+ (set-extent-property ant 'help-echo
+ "button2 toggles smiley, button3 pops up menu")
(set-extent-property ext 'balloon-help
"Mouse button2 - toggle smiley
Mouse button3 - menu")
+1997-11-26 SL Baur <steve@altair.xemacs.org>
+
+ * message.texi (Insertion): Fix typo.
+ (Responses): Ditto.
+ (Reply): Ditto.
+
+Wed Nov 26 12:57:00 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * message.texi (Insertion): Addition.
+
+Wed Nov 26 12:55:15 1997 Hallvard B. Furuseth <h.b.furuseth@usit.uio.no>
+
+ * message.texi (Insertion): Addition.
+
+Wed Nov 26 12:36:08 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * message.texi (Responses): New.
+ (Appendices): New.
+
+ * gnus.texi (Group Info): Fix.
+
+Tue Nov 25 17:53:55 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus.texi (Article Date): Addition.
+
Mon Nov 24 16:01:20 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* gnus.texi (Faces & Fonts): New.
\input texinfo @c -*-texinfo-*-
@setfilename gnus
-@settitle Quassia Gnus 0.17 Manual
+@settitle Quassia Gnus 0.18 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Quassia Gnus 0.17 Manual
+@title Quassia Gnus 0.18 Manual
@author by Lars Magne Ingebrigtsen
@page
spool or your mbox file. All at the same time, if you want to push your
luck.
-This manual corresponds to Quassia Gnus 0.17.
+This manual corresponds to Quassia Gnus 0.18.
@end ifinfo
\input texinfo @c -*-texinfo-*-
@setfilename message
-@settitle Message 0.17 Manual
+@settitle Message 0.18 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Message 0.17 Manual
+@title Message 0.18 Manual
@author by Lars Magne Ingebrigtsen
@page
* Key Index:: List of Message mode keys.
@end menu
-This manual corresponds to Message 0.17. Message is distributed with
+This manual corresponds to Message 0.18. Message is distributed with
the Gnus distribution bearing the same version number as this manual
has.
@vindex message-reply-to-function
Message uses the normal methods to determine where replies are to go
-(@pxref{Responding}), but you can change the behavior to suit your needs
+(@pxref{Responses}), but you can change the behavior to suit your needs
by fiddling with the @code{message-reply-to-function} variable.
If you want the replies to go to the @code{Sender} instead of the
that look like:
@example
-Hallvard B Furuseth <h.b.furuseth@usit.uio.no> writes:
+Hallvard B Furuseth <h.b.furuseth@@usit.uio.no> writes:
@end example
Point will be at the beginning of the body of the message when this
To determine where a message is to go, the following algorithm is used
by default.
-@table @def
+@table @dfn
@item reply
A @dfn{reply} is when you want to respond @emph{just} to the person who
sent the message via mail. There will only be one recipient. To
following headers will be concatenated to form the outgoing
@code{To}/@code{Cc} headers:
-@table
+@table @code
@item From
(unless there's a @code{Reply-To}, in which case that is used instead).