(pmail-show-message): Protect buffer-modified flag around swap.
(pmail-change-major-mode-hook): Likewise.
(pmail-use-collection-buffer, pmail-swap-buffers-maybe): Likewise.
(pmail-error-bad-format): Always phrase the error as about an invalid message.
(pmail-convert-file-maybe): Don't use pmail-error-bad-format.
(pmail-mode-map): Move pmail-widen to C-c C-w.
(pmail-mode-1): Don't alter mode-line-modified.
(pmail-perm-variables): Turn off undo in view buffer.
(pmail-variables): Turn off undo.
(pmail-show-message): Delete useless calls to `widen'.
Avoid passing thru temp buffer if we don't need
base64 or quoted printable decoding for whole message.
(pmail-keywords): Variable deleted.
(pmail-last-label, pmail-last-multi-labels): Moved to pmailkwd.el.
(pmail-perm-variables): Don't mess with pmail-last-label.
Don't mess with pmail-keywords.
(pmail-copy-headers): Doc fix.
(pmail-set-header): New function.
(pmail-get-keywords): Doc fix.
(pmail-get-labels): New function.
(pmail-display-labels): Use pmail-get-labels.
(pmail-set-attribute): Mark pmail-buffer modified
if we change an attribute.
(pmail-apply-in-message): New function.
(pmail-message-labels-p): Function moved to pmailsum.el.
(pmail-message-recipients-p, pmail-message-regexp-p): Likewise.
(pmail-current-subject, pmail-current-subject-regexp): Fns deleted.
(pmail-simplified-subject, pmail-simplified-subject-regexp): New fns.
(pmail-next-same-subject): Fetch each msg's subject and compare.
(pmail-speedbar-move-message): Use pmail-output.
(pmail-construct-io-menu): Use pmail-output.
(pmail-default-pmail-file): Variable deleted.
(pmail-auto-file): Use pmail-output.
(pmail-mode-map): Remove pmail-output-to-babyl-file.
Add pmail-output-as-seen.
(pmail-mode): Update output commands in doc string.
(pmail-resent-attr-index): New variable.
(pmail-attr-array): Add r for resent.
(pmail-add-mbox-headers): Make 8 attributes.
(pmail-set-attribute): Extend attribute line if necessary.
(pmail-widen): New command.
(pmail-mode-map): o is pmail-output, C-o is pmail-output-as-seen,
(pmail-mode-map): c-w is pmail-widen.
(pmail-change-major-mode-hook): Do nothing unless buffer-swapped-with.
(pmail-show-message): Downcase character-coding.
Renamed from pmail-resent-attr-index and pmail-stored-attr-index.
(pmail-attr-array): Change names to `retried' and `forwarded'
(pmail-get-header): Don't unswap, just look at the data where it is.
(pmail-set-attribute): Don't unswap, just set the data where it is.
(pmail-reply): Use pmail-answered-attr-index.
(pmail-forward): Use pmail-forwarded-attr-index.
(pmail-retry-failure): Use pmail-retried-attr-index.
(pmail-show-message): Call pmail-swap-buffers-maybe before reswapping.
(pmail-get-attr-names): Doc fix.
(pmail-is-text-p): Doc fix.
All uses call the function instead.
(pmail-save): Function deleted.
(pmail-mode-map): Don't bind C-x C-s.
(pmail-mode-1): Don't set up write-region-annotate-functions.
(pmail-write-region-annotate): Function deleted.
(pmail-change-major-mode-hook): Set buffer-swapped-with.
(pmail-use-collection-buffer): Likewise.
(pmail-show-message): Likewise.
(pmail-swap-buffers-maybe): Go to pmail-buffer before
testing anything.
(pmail): Call pmail-swap-buffers-maybe only if already in Pmail mode.
(pmail-add-mbox-headers): Insert header directly instead of
calling pmail-add-header.
(pmail-display-labels): Add leading space to attribute string.
(pmail-set-attribute): Call pmail-swap-buffers-maybe. Insert
header directly instead of calling pmail-add-header.
saving.
(pmail-quit): Handling expunging manually, instead of calling
pmail-expunge-and-save.
(pmail-next-undeleted-message): If no other message can be shown,
show the current one.
(pmail-parse-file-inboxes): Function deleted.
(pmail-get-new-mail-1): Function merged into pmail-get-new-mail.
(pmail-get-new-mail-2): Renamed to pmail-get-new-mail-1.
(pmail-get-new-mail-filter-spam): Call rmail-spam-filter, not
pmail-spam-filter.
(pmail-convert-to-babyl-format): Function deleted.
(pmail-nuke-pinhead-header): Function deleted.
(pmail-reply): Parsing headers in mbox format. Call
rmail-dont-reply-to instead of pmail-dont-reply-to.
minimize the attempts to show a message (ideally it should be done
once and only once).
(pmail-convert-babyl-to-mbox): Set up the global message variables
after inserting the converted mbox file into the Pmail buffer; avoid
an unecessary message display function call.
(pmail-show-message-maybe): Use the current message number when the
optional argument is not passed.
the current rmail.el file. A comprehensive list of changes will be
supplied when pmail.el is morphed back into rmail.el
The current status is that pmail.el supports basic Rmail navigation
(no summary support) and shows the current message in a special
buffer using buffer-swap-text. No decoding is done yet. That is the
next step.
* pmail.el (pmail-expunge-counter): New variable
(pmail-set-attribute): Canonicalize the calling sequence to index, attribute, state.
(pmail-show-message, pmail-delete-message, pmail-undelete-previous-message,
pmail-delete-forward, pmail-mark-message): Use the new canonical calling sequence.
(pmail-only-expunge): Use the expunge counter to update the current message index.
(pmail-expunge-callback): Simplify. Just count the expunged messages with a lower
index than the current message index.
* pmaildesc.el (pmail-desc-get-previous): Fix an "off by one" issue.
(pmail-desc-set-attribute): Canonicalize the calling sequence to index, attribute, state.
* pmailout.el (pmail-output-body-to-file): Use the canonical calling sequence.
pmail.el (pmail-only-expunge): Manage pmail-total-messages in the
callback handler; remove the extra show message call.
(pmail-expunge-callback): Rewrite to handle all possible conditions.
pmaildesc.el (pmail-desc-get-previous, pmail-desc-get-match-index):
New functions.
that Rmail/babyl is not affected. This creates a facility/feature
called "pmail" (analagous to "rmail") that can be used independently
from Rmail for testing purposes. The plan is to replace the "rmail"
files eventually and remove "pmail" entirely at that point. In the
interim, interested developers can use either Rmail or Pmail or both
(which is not recommended for the casual User or the faint of heart).