1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-20 10:23:57 +00:00
Commit Graph

2165 Commits

Author SHA1 Message Date
Richard M. Stallman
72bcfc733e *** empty log message *** 2008-12-23 04:02:49 +00:00
Richard M. Stallman
733dc362f6 (pmail-edit-current-message): Change error message. 2008-12-23 04:02:15 +00:00
Richard M. Stallman
759f544f5a (pmail-edit-saved-coding-system): Var deleted.
(pmail-edit-current-message, pmail-cease-edit):
Don't set it, or save-buffer-coding-system.
2008-12-23 03:56:30 +00:00
Richard M. Stallman
125d2ddf70 (pmail-variables): Don't set save-buffer-coding-system. 2008-12-23 03:56:10 +00:00
Richard M. Stallman
2e39660c56 *** empty log message *** 2008-12-23 03:50:34 +00:00
Richard M. Stallman
43d712632d (pmail-message-subject-p): Mark as broken.
(pmail-message-senders-p): Likewise.
(pmail-new-summary-1): Don't unswap -- search messages where they are.
2008-12-23 03:50:17 +00:00
Richard M. Stallman
4d1388b457 (pmail-display-labels): Doc fix.
(pmail-set-attribute): Deleted unused vars.
Bind inhibit-read-only, not buffer-read-only.
(pmail-message-attr-p): Doc fix.
(pmail-message-labels-p, pmail-message-recipients-p)
(pmail-message-regexp-p): Mark as broken.
2008-12-23 03:47:32 +00:00
Richard M. Stallman
d8a83a7edc (pmailhdr): Don't require it.
(pmail-edit-current-message): Don't call pmail-header-show-headers.
(pmail-cease-edit): Force a blank line at end of edited message.
Call pmail-set-attribute properly.
Don't set buffer-read-only.
2008-12-23 03:46:03 +00:00
Richard M. Stallman
45b696cd10 *** empty log message *** 2008-12-22 21:18:19 +00:00
Richard M. Stallman
273f29683f (pmail-retried-attr-index, pmail-forwarded-attr-index):
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.
2008-12-22 21:16:43 +00:00
Richard M. Stallman
9f48700650 *** empty log message *** 2008-12-22 19:58:55 +00:00
Richard M. Stallman
dec3f55f38 (pmail-output): Use pmail-buffers-swapped-p as function. 2008-12-22 19:55:36 +00:00
Richard M. Stallman
dc8e167ff7 (pmail-swap-buffers-maybe): Variable deleted.
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.
2008-12-22 19:54:59 +00:00
Chong Yidong
ea9c64a81a (pmail-save): New function. 2008-12-22 00:05:51 +00:00
Chong Yidong
0ee2fffa92 * pmail.el (pmail-save): New function. 2008-12-22 00:05:20 +00:00
Chong Yidong
5e1b5cde6f (pmail): Ensure that pmail-mode-hook is run. 2008-12-20 21:40:38 +00:00
Chong Yidong
8eb5f33cde * pmail.el (pmail): Ensure that pmail-mode-hook is run. 2008-12-20 21:40:19 +00:00
Chong Yidong
07be10d88f (pmail-add-header): Function deleted.
(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.
2008-12-20 07:03:06 +00:00
Chong Yidong
bbf92dadcd * pmail.el (pmail-add-header): Function deleted.
(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.
2008-12-20 07:02:49 +00:00
Chong Yidong
de16190387 * pmail.el (pmail-expunge-and-save): Call pmail-swap-buffers-maybe before
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.
2008-12-20 04:30:04 +00:00
Chong Yidong
a8eed59f9a (pmail-expunge-and-save): Call pmail-swap-buffers-maybe before
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.
2008-12-20 04:29:26 +00:00
Chong Yidong
2b8e6500ca (pmail-get-new-mail): Call pmail-swap-buffers-maybe.
(pmail-get-new-mail-1): Adjust restriction after calling
pmail-insert-inbox-text.
(pmail-add-mbox-headers): Use save-restriction.
2008-12-20 04:07:07 +00:00
Chong Yidong
8b176528f2 * pmail.el (pmail-get-new-mail): Call pmail-swap-buffers-maybe.
(pmail-get-new-mail-1): Adjust restriction after calling
pmail-insert-inbox-text.
(pmail-add-mbox-headers): Use save-restriction.
2008-12-20 04:06:31 +00:00
Glenn Morris
4c12073242 Header format fix. 2008-12-19 05:29:04 +00:00
Juanma Barranquero
2364df5cff * international/mule-cmds.el (select-safe-coding-system):
* mail/rmail.el (rmail-require-mime-maybe):
  Fix arguments of `display-warning'.
2008-12-15 15:44:13 +00:00
Juanma Barranquero
6d49b2d88f * pmail.el (pmail-require-mime-maybe): Fix arguments of `display-warning'. 2008-12-15 15:40:53 +00:00
Chong Yidong
97a424b858 (pmail-search): Call pmail-swap-buffers-maybe. 2008-12-15 15:06:50 +00:00
Chong Yidong
f520a2c629 * pmail.el (pmail-expunge): Save point if no expunging was done. 2008-12-15 15:06:44 +00:00
Chong Yidong
5136e31587 (pmail): Call pmail-swap-buffers-maybe.
(pmail-search): Call pmail-swap-buffers-maybe.
2008-12-15 14:56:06 +00:00
Chong Yidong
f343d373d3 * pmail.el (pmail): Call pmail-swap-buffers-maybe.
(pmail-search): Call pmail-swap-buffers-maybe.
2008-12-15 14:55:32 +00:00
Chong Yidong
7635ef3856 (pmail-output-to-babyl-file): Rewrite, assuming mbox
internal format.
(pmail-convert-to-babyl-format, pmail-nuke-pinhead-header): New
functions, moved from pmail.el.
2008-12-13 14:19:56 +00:00
Chong Yidong
f047d0db19 * pmailout.el (pmail-output-to-babyl-file): Rewrite, assuming mbox
internal format.
(pmail-convert-to-babyl-format, pmail-nuke-pinhead-header): New
functions, moved from pmail.el.
2008-12-13 14:19:24 +00:00
Chong Yidong
2c6ee63db5 All callers to pmail-output-to-pmail-file changed to
pmail-output-to-babyl-file.
2008-12-12 15:26:46 +00:00
Chong Yidong
c1589cbeac (pmail-output): Rewrite to handle mbox format.
(pmail-output-to-babyl-file): Renamed from pmail-output-to-pmail-file.
2008-12-12 15:26:28 +00:00
Chong Yidong
17a1c3f768 * pmailout.el (pmail-output): Rewrite to handle mbox format.
(pmail-output-to-babyl-file): Renamed from
pmail-output-to-pmail-file.

* pmail.el: All callers to pmail-output-to-pmail-file changed to
pmail-output-to-babyl-file.

* pmail.el: All callers to pmail-output-to-pmail-file changed to
pmail-output-to-babyl-file.
2008-12-12 15:26:17 +00:00
Chong Yidong
ecc69b6579 (pmail-perm-variables): Don't call pmail-parse-file-inboxes.
(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.
2008-12-10 21:50:23 +00:00
Chong Yidong
a6ab233810 * pmail.el (pmail-perm-variables): Don't call pmail-parse-file-inboxes.
(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.
2008-12-10 21:48:55 +00:00
Chong Yidong
adc3b85d06 (pmail-insert-pmail-file-header): Function deleted.
(pmail-decode-babyl-format): Function deleted.
2008-12-10 20:56:39 +00:00
Chong Yidong
aecb916e99 (pmail-output-to-pmail-file): Don't call
pmail-insert-pmail-file-header.
2008-12-10 20:56:32 +00:00
Chong Yidong
f1b13b5bea * pmailout.el (pmail-output-to-pmail-file): Don't call
pmail-insert-pmail-file-header.

* pmail.el (pmail-insert-pmail-file-header): Function deleted.
(pmail-decode-babyl-format): Function deleted.
2008-12-10 20:56:16 +00:00
Chong Yidong
0fa15b2d02 Remove debugging code. 2008-12-10 20:36:47 +00:00
Chong Yidong
89f4fb7c0f (pmail-expunge): Pass new optional arg to pmail-only-expunge.
(pmail-expunge-and-save): Don't reset view buffer.
2008-12-09 23:23:05 +00:00
Chong Yidong
d1c0ec0d45 * pmail.el (pmail-expunge): Pass new optional arg to pmail-only-expunge.
(pmail-expunge-and-save): Don't reset view buffer.
2008-12-09 23:22:58 +00:00
Chong Yidong
1b8d0b78a3 (pmail-summary-header): Deleted.
(pmail-get-create-summary-line): Don't insert a summary line into
the file.
2008-12-09 19:35:33 +00:00
Chong Yidong
397b4cd0fd (pmail-only-expunge): Swap buffers at the beginning. 2008-12-09 19:35:06 +00:00
Chong Yidong
5b681764fe * pmail.el (pmail-only-expunge): Swap buffers at the beginning.
* pmailsum.el (pmail-summary-header): Deleted.
(pmail-get-create-summary-line): Don't insert a summary line into
the file.
2008-12-09 19:35:00 +00:00
Chong Yidong
c786a92921 (pmail-convert-babyl-to-mbox): Reinitialize pmail-mode variables after
conversion.
2008-12-05 20:43:18 +00:00
Chong Yidong
cab320968e * pmail.el (pmail-convert-babyl-to-mbox): Reinitialize pmail-mode
variables after conversion.
2008-12-05 20:43:11 +00:00
Chong Yidong
b0a1b6f349 (pmailhdr): Require pmailhdr. 2008-12-04 23:16:45 +00:00
Chong Yidong
d29e8611a1 * pmailsort.el (pmailhdr): Require pmailhdr. 2008-12-04 23:16:40 +00:00
Chong Yidong
509b4397bc Require pmailhdr. 2008-12-04 23:14:50 +00:00
Chong Yidong
ba3eac401c Remove pmaildesc dependency. 2008-12-04 23:13:08 +00:00
Chong Yidong
0143335b9a Sync with rmailedit.el.
(pmail-edit-current-message): Remove deleted function
pmail-msg-is-pruned.
2008-12-04 22:54:48 +00:00
Chong Yidong
faa2c8ba6a (pmail-retry-failure): Remove call to non-existent function
pmail-clear-headers.
(pmail-message-labels-p): New function.
2008-12-04 22:50:50 +00:00
Chong Yidong
bb5690937d Sync with rmailout.el. 2008-12-04 22:49:30 +00:00
Chong Yidong
bc6cdadc94 Sync with rmailkwd.el. 2008-12-04 22:49:21 +00:00
Chong Yidong
0efcb0dc64 Require mail-parse.
(pmail-mime-show): Don't use removed function
pmail-header-hide-headers.
(pmail-mime): Use pmail-msgbeg and pmail-msgend instead of removed
pmail-desc-* functions.
2008-12-04 22:49:10 +00:00
Chong Yidong
76cc2f62c0 Sync with pmailsort.el.
(pmail-sort-messages): Insert two newlines at the end of the
message if they do not exist.
2008-12-04 22:48:57 +00:00
Chong Yidong
f76fa02a3b File removed. 2008-12-04 22:47:37 +00:00
Chong Yidong
15baf10bad * pmailsort.el: Sync with pmailsort.el.
(pmail-sort-messages): Insert two newlines at the end of the
message if they do not exist.

* pmailmm.el: Require mail-parse.
(pmail-mime-show): Don't use removed function
pmail-header-hide-headers.
(pmail-mime): Use pmail-msgbeg and pmail-msgend instead of removed
pmail-desc-* functions.

* pmailkwd.el: Sync with rmailkwd.el.

* pmailout.el: Sync with rmailout.el.

* pmailedit.el: Sync with rmailedit.el.
(pmail-edit-current-message): Remove deleted function
pmail-msg-is-pruned.

* pmaildesc.el: File deleted.

* pmail.el (pmail-get-header): Call pmail-swap-buffers-maybe.
(pmail-retry-failure): Remove call to non-existent function
pmail-clear-headers.
(pmail-message-labels-p): New function.
2008-12-04 22:47:07 +00:00
Chong Yidong
1cc54663d7 (pmail-get-header): Call pmail-swap-buffers-maybe. 2008-12-04 13:41:10 +00:00
Chong Yidong
2ab2d499ed * pmail.el (pmail-get-header): Call pmail-swap-buffers-maybe. 2008-12-04 13:40:56 +00:00
Chong Yidong
3e551df73c (pmail-sort-messages): Don't call removed function
pmail-header-show-headers.
2008-12-04 03:24:41 +00:00
Chong Yidong
f12b5376ae * pmailsort.el (pmail-sort-messages): Don't call removed function
pmail-header-show-headers.
2008-12-04 03:24:28 +00:00
Chong Yidong
36574ee072 (pmail-summary-goto-msg): Use pmail-show-message-maybe. 2008-12-03 02:40:46 +00:00
Chong Yidong
64af8207d3 * pmailsum.el (pmail-summary-goto-msg): Use pmail-show-message-maybe. 2008-12-03 02:40:40 +00:00
Chong Yidong
d72fb28de7 (pmail-new-summary): Check for pmail-summary-mode in the current
buffer, not in the pmail buffer.
2008-12-02 22:57:02 +00:00
Chong Yidong
26520ff4da * pmailsum.el (pmail-new-summary): Check for pmail-summary-mode in the
current buffer, not in the pmail buffer.
2008-12-02 22:56:56 +00:00
Chong Yidong
85ab550bbb (pmail-get-summary-labels): If no attribute headers are found, use the
empty string.
2008-12-02 14:03:27 +00:00
Chong Yidong
404271997e (pmail-only-expunge): Pass correct arg to pmail-show-message-maybe. 2008-12-02 14:03:19 +00:00
Chong Yidong
a0d579a9aa * pmail.el (pmail-only-expunge): Pass correct arg to
pmail-show-message-maybe.

* pmailsum.el (pmail-get-summary-labels): If no attribute
headers are found, use the empty string.
2008-12-02 14:03:10 +00:00
Chong Yidong
c8ca9217d5 (define-mail-alias): Sync code with define-mail-abbrev. 2008-11-25 22:58:14 +00:00
Chong Yidong
4bb79f823f (define-mail-abbrev): When reading from mailrc, recognize string
quoting.  When reading from Lisp, accept rfc822-like addresses.
2008-11-25 22:58:01 +00:00
Paul Reilly
d5c79e811c *** empty log message *** 2008-11-13 08:02:50 +00:00
Paul Reilly
c68997cf65 Add support for save-buffer. 2008-11-13 08:01:29 +00:00
Martin Rudalics
2c4ac0695a (footnote-mode): Improve doc-string.
Suggested by <jidanni@jidanni.org>.  (Bug#1318)
2008-11-11 09:39:29 +00:00
Teodor Zlatanov
863e372f74 (smtpmail-open-stream): Use `starttls-any-program-available'. Auto-load starttls.el for it. 2008-11-10 20:13:41 +00:00
Teodor Zlatanov
373f031296 (smtpmail-open-stream): Use `starttls-any-program-available'. 2008-11-10 20:10:51 +00:00
Paul Reilly
69caa40ac5 *** empty log message *** 2008-10-17 02:44:36 +00:00
Paul Reilly
8e4487de7b (pmail): Remove a redundant message counter reset call; try 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.
2008-10-17 02:43:35 +00:00
Paul Reilly
fc8d7fa8cf *** empty log message *** 2008-10-14 12:09:31 +00:00
Paul Reilly
4d7404bb76 (pmail): Check for babyl conversion early; ignore multibyte. 2008-10-14 12:08:21 +00:00
Chong Yidong
675ccaf017 * pmail.el (pmail-tool-bar-map): Initialize it unconditionally. 2008-10-11 19:56:32 +00:00
Martin Rudalics
6a8b463264 Remove * in defcustom docstrings and tell
for most options that customizing them doesn't affect buffers
already displaying footnotes.
(Footnote-refresh-footnotes, Footnote-renumber-footnotes): Fix
handling of text properties and identical start/end tags.  Do
not use format when renumbering.
(Footnote-set-style): Make it work.
(Footnote-insert-numbered-footnote): Simplify.
(Footnote-narrow-to-footnotes, Footnote-insert-footnote)
(Footnote-goto-footnote): Fix handling of empty section tag.
(Footnote-delete-footnote): Fix handling of identical start/end
tags, empty section tag, and spaced footnotes.  Do not use
kill-region.
(footnote-mode): Make most options buffer-local to avoid that
customizing messes up handling of footnotes in buffers that
already display them.
2008-10-06 06:29:05 +00:00
Paul Reilly
a1fdbf6d60 *** empty log message *** 2008-10-05 14:14:05 +00:00
Paul Reilly
fca0b79bef Next step in the Rmail/mbox support: getting basic summary support working. 2008-10-05 14:08:21 +00:00
Eli Zaretskii
f45de83bf8 (mail-unquote-printable-region): Use insert-byte instead of insert-char,
when the UNIBYTE arg is non-nil.
2008-09-30 11:54:57 +00:00
Chong Yidong
c8145d5e95 (rfc822-addresses): Prevent rfc822-bad-address from raising a
wrong-type-argument error.
2008-09-24 17:56:13 +00:00
Paul Reilly
b05f4920d5 *** empty log message *** 2008-09-23 11:32:25 +00:00
Paul Reilly
e93edd3fca First pass at handling decoding the mbox message into the view buffer. 2008-09-23 11:30:17 +00:00
Glenn Morris
0cf1893f34 Remove file. 2008-09-16 02:45:51 +00:00
Paul Reilly
98c78ffe7a *** empty log message *** 2008-09-15 20:59:18 +00:00
Paul Reilly
61dcccff80 The Rmail/mbox merge has been abandoned in favor of a restart using
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.
2008-09-15 20:56:53 +00:00
Paul Reilly
133fc7dcdb Rmail/mbox merge abandoned. Remove stale files. 2008-09-15 20:40:23 +00:00
Paul Reilly
84a056f85e Rmail/mbox merge abandoned. Remove stale files. 2008-09-15 20:37:15 +00:00
Glenn Morris
a7a65779b5 *** empty log message *** 2008-09-06 18:56:57 +00:00
Glenn Morris
3e5013c35c (rmail-spam-filter): Autoload it. 2008-09-06 18:56:50 +00:00
Glenn Morris
b3a2404fbb *** empty log message *** 2008-09-06 18:44:46 +00:00
Glenn Morris
8ac8cb144a (pmail-sort-messages): Use pmail-desc-get-start, pmail-desc-get-end
rather than non-existent `marker-' functions.
2008-09-06 18:44:36 +00:00
Glenn Morris
0a25d0ecda (pmail-use-spam-filter): Remove un-needed variable declaration.
Doc fix for actual definition.
(pmail-get-new-mail): Call rmail-spam-filter rather than non-existent
pmail-spam-filter.
2008-09-06 18:37:43 +00:00
Glenn Morris
51a5d09565 Add local variable setting for change-log-default-name. 2008-09-06 02:55:23 +00:00
Glenn Morris
c1ca0a069e *** empty log message *** 2008-09-06 02:50:52 +00:00
Glenn Morris
59988cefad (pmail-dont-reply-to, pmail-desc-get-marker-end)
(pmail-desc-get-marker-start): Remove declarations of undefined functions.
(pmail-select-correspondent): Use rmail-dont-reply-to from mail-utils
rather than non-existent pmail-dont-reply-to.
2008-09-06 02:50:14 +00:00
Glenn Morris
c2e1d7bc92 (pmail-output-read-pmail-file-name): Remove unused declaration. 2008-09-06 02:48:16 +00:00
Glenn Morris
8befce04ac (pmail-parse-file-inboxes): Remove unused declaration. 2008-09-06 02:47:50 +00:00
Glenn Morris
327bcdb5c1 (pmail-maybe-set-message-counters)
(pmail-set-message-deleted-p): Remove unused declarations.
2008-09-06 02:47:16 +00:00
Glenn Morris
e6eddb0dca (pmail-spam-filter): Remove declaration of undefined function. 2008-09-06 02:46:37 +00:00
Glenn Morris
8c1ded96b6 Fix copyright years and license notices. 2008-09-06 02:28:43 +00:00
Glenn Morris
6eb249b7ac Add missing entry.
Fix formatting.
Add copyright and license.
2008-09-06 02:27:49 +00:00
Paul Reilly
d444063ebc * pmail.el (pmail-get-new-mail): When there are no new messages,
invoke a redisplay of the current message.
2008-09-05 19:28:36 +00:00
Juanma Barranquero
6981a71fb5 Fix typo. 2008-09-03 15:42:35 +00:00
Paul Reilly
8bc83fb8ec *** empty log message *** 2008-09-03 15:35:28 +00:00
Paul Reilly
73ead349fc Fix the expunge command so that the current message index is correct.
* 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.
2008-09-03 15:33:38 +00:00
John Paul Wallington
d746203c12 (mail-yank-region): Fix comment. 2008-09-03 11:00:31 +00:00
Juanma Barranquero
2e2da3d5a2 * mail/pmaildesc.el (pmail-desc-get-match-index):
Fix malformed let binding.
2008-09-02 11:52:45 +00:00
Miles Bader
bc26117c3e Add arch tagline 2008-09-01 11:15:17 +00:00
Paul Reilly
ab3777910c (pmail-reply-callback): Call pmail-show-message to repaint the
message, insuring that new headers, like X-BABYL-V6... are correctly
hidden.
2008-09-01 10:56:37 +00:00
Paul Reilly
da084553d9 *** empty log message *** 2008-09-01 08:40:33 +00:00
Paul Reilly
92a86f9312 Reflect that rmail-convert-to-babyl is no longer relevant. 2008-09-01 08:37:47 +00:00
Paul Reilly
e87ae05bed Fix the expunge operation.
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.
2008-09-01 08:35:24 +00:00
Paul Reilly
d007e8e938 New and temporary change log file used to capture changes to the pmail*.el files. 2008-09-01 08:18:32 +00:00
Paul Reilly
acdc20068b Resolve all byte compiler warnings and enable IMAP/movemail support. 2008-08-29 04:27:46 +00:00
John Paul Wallington
6da54b82e4 (rmail-insert-inbox-text): Ensure that the filename of `tofile'
doesn't contain any colons so that it works on Windows, Cygwin, and
MS-DOS systems.
2008-08-21 12:24:48 +00:00
Miles Bader
0faeefbb78 Add arch tagline 2008-08-18 05:32:57 +00:00
Paul Reilly
b4de04b680 Temporary convenience files supporting the Rmail/mbox merge to the
trunk (as Pmail).  These files should be removed when Pmail is
subsumed into Rmail.
2008-08-18 05:21:37 +00:00
Paul Reilly
fde81d5810 Notes on changes made to merge from the Rmail/mbox branch into the trunk. 2008-08-18 05:18:52 +00:00
Miles Bader
6152092712 Add arch tagline 2008-08-18 04:59:13 +00:00
Paul Reilly
e131541f81 mail/: Add new (temporary) libaries for which to test Rmail/mbox such
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).
2008-08-18 04:51:28 +00:00
Dan Nicolaescu
7c2fb837ec * bitmaps/README:
* xfns.c:
* termcap.c:
* term.c:
* syswait.h:
* systty.h:
* systime.h:
* syssignal.h:
* sysdep.c:
* process.h:
* process.c:
* print.c:
* ndir.h:
* lread.c:
* keyboard.c:
* getpagesize.h:
* floatfns.c:
* fileio.c:
* emacs.c:
* doc.c:
* dispnew.c:
* dired.c:
* data.c:
* callproc.c:
* buffer.c:
* README:
* Makefile.in:
* s/template.h:
* s/msdos.h:
* m/vax.h: Remove VMS support.
* s/vms.h:
* vlimit.h:
* uaf.h:
* temacs.opt:
* param.h:
* ioctl.h: Remove file.

* descrip.mms:
* compile.com: Remove file.
* Create.c: Remove VMS support.

* message.el (Module):

* gnus-start.el (Module):

* gnus-registry.el (Module):

* textmodes/texinfmt.el:
* nxml/nxml-enc.el:
* mail/feedmail.el:
* international/mule.el:
* international/latexenc.el:
* emulation/viper-util.el:
* emulation/viper-init.el:
* emulation/viper-ex.el:
* emacs-lisp/bytecomp.el:
* version.el:
* subr.el:
* startup.el:
* sort.el:
* shadowfile.el:
* recentf.el:
* printing.el:
* paths.el:
* minibuffer.el:
* ls-lisp.el:
* loadup.el:
* hippie-exp.el:
* finder.el:
* files.el:
* ediff-util.el:
* ediff-ptch.el:
* ediff-init.el:
* ediff-diff.el:
* dired.el:
* dired-aux.el:
* cus-edit.el:
* bindings.el:
* arc-mode.el:
* add-log.el: Remove VMS support.
* obsolete/vmsproc.el:
* obsolete/vms-pmail.el:
* obsolete/vms-patch.el: Remove file.

* etags.c:
* emacsclient.c: Remove VMS support.

* termcap.src: Remove file.
* README:
* PROBLEMS:
* MACHINES: Remove VMS info.

* ediff.texi: Remove VMS support.

* os.texi:
* intro.texi:
* files.texi: Remove VMS support.

* emacs.texi: Remove VMS support.

* make-dist:
* README: Remove VMS support.
* vms: Remove directory.
2008-07-31 05:33:56 +00:00
Dan Nicolaescu
16952f1875 * vms-patch.el, vmsproc.el, mail/vms-pmail.el: Move to obsolete dir. 2008-07-05 18:27:16 +00:00
Glenn Morris
fffa137cb7 American English spelling fix. 2008-06-27 07:34:53 +00:00
Glenn Morris
0f18579193 Require 'cl when compiling. 2008-06-21 20:34:50 +00:00
Glenn Morris
aa360da10d Add some compiler declarations, for builds without X. 2008-06-12 03:56:20 +00:00
Glenn Morris
e9c033a098 (rmail-cease-edit): Check tool-bar-mode is bound. 2008-06-12 03:49:33 +00:00
Glenn Morris
20e43520ef Remove unnecessary eval-and-compile. 2008-06-07 02:41:06 +00:00
Glenn Morris
c2457e543b (mail-interactive): Add :version. 2008-06-07 02:40:47 +00:00
Stefan Monnier
10b6d5c455 (mail-interactive): Change default. 2008-06-06 05:59:38 +00:00
Teodor Zlatanov
e64a3841c4 Add autoload for
`auth-source-user-or-password'.
(smtpmail-try-auth-methods): Use it.
2008-05-12 12:40:12 +00:00
Glenn Morris
b1fc2b5014 Switch to recommended form of GPLv3 permissions notice. 2008-05-06 07:25:26 +00:00
Stefan Monnier
cbee283dd7 Fix up comment convention on the arch-tag lines. 2008-04-10 14:10:46 +00:00
Glenn Morris
a3d3fe6e00 Remove the function' in (function (lambda'.
Replace `(car (cdr' with cadr'.
Formatting change - collect closing parens.
2008-03-13 03:33:31 +00:00
Stefan Monnier
ca874c230f (binhex-decode-region-internal): Use set-buffer-multibyte rather than
setting default-enable-multibyte-characters.
2008-03-12 20:53:46 +00:00
Stefan Monnier
058f400240 (uudecode-decode-region-internal): Use set-buffer-multibyte rather than
setting default-enable-multibyte-characters.
2008-03-12 20:53:10 +00:00
Glenn Morris
613966a53e Remove leading `*' from defcustom doc-strings.
(sc-mode-map-prefix): Doc fix.  Make it a defcustom.
2008-03-07 04:27:37 +00:00
Glenn Morris
4d8da9a425 Update commentary.
Remove leading `*' from defcustom doc-strings.
(Info-menu, Info-goto-node): Remove declarations.
(report-emacs-bug-info): Use info rather than Info-goto-node.
2008-02-28 03:43:47 +00:00
Juanma Barranquero
aadb686431 (sc-describe): Fix typos in obsolescence declaration. 2008-02-27 10:20:26 +00:00
Glenn Morris
34b5f6df51 (sc-cite-original): Doc fix.
(sc-version): Make obsolete.
(sc-describe): Show the SC info page.  Make obsolete.
2008-02-27 04:34:05 +00:00
Miles Bader
b03f96dc5a Merge from emacs--rel--22
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-1074
2008-02-24 10:09:07 +00:00
Glenn Morris
0fc1e8febf Remove leading `*' from defcustom doc-strings.
(smtpmail-code-conv-from): Doc fix.  Fix custom type.
(smtpmail-queue-index-file): Make it a defcustom.
(smtpmail-queue-index): Delete.
(smtpmail-send-it, smtpmail-send-queued-mail):
Use smtpmail-queue-index-file and smtpmail-queue-dir rather than
smtpmail-queue-index.
2008-02-23 19:33:50 +00:00
Glenn Morris
219d93b8b4 (rmail-autodetect): Add .exe extension to movemail on Windows. 2008-02-20 06:01:01 +00:00
Glenn Morris
6052846bdd (rmail-autodetect): Add .exe extension to movemail on Windows. 2008-02-20 06:00:13 +00:00
Glenn Morris
ffdbbc0107 (rmail-spam-filter): Let-bind message-spam-status. 2008-02-14 18:46:06 +00:00
Glenn Morris
48a731fe8e (password-cache-add): Declare as function. 2008-02-14 18:43:02 +00:00
Bastien Guerry
b1cd57bc9a 2008-02-14 Justus Piater <Justus-bulk@Piater.name> (tiny change)
* mail/smtpmail.el: Use password-cache.
2008-02-14 14:59:32 +00:00
Bastien Guerry
5b5eae56a2 * mail/smtpmail.el: Use password-cache. 2008-02-13 21:52:41 +00:00
Bastien Guerry
765e147aa1 ;;; smtpmail.el --- simple SMTP protocol (RFC 821) for sending mail
;; Copyright (C) 1995, 1996, 2001, 2002, 2003, 2004, 2005,
;;   2006, 2007, 2008 Free Software Foundation, Inc.

;; Author: Tomoji Kagatani <kagatani@rbc.ncl.omron.co.jp>
;; Maintainer: Simon Josefsson <simon@josefsson.org>
;; w32 Maintainer: Brian D. Carlstrom <bdc@ai.mit.edu>
;; ESMTP support: Simon Leinen <simon@switch.ch>
;; Hacked by Mike Taylor, 11th October 1999 to add support for
;; automatically appending a domain to RCPT TO: addresses.
;; AUTH=LOGIN support: Stephen Cranefield <scranefield@infoscience.otago.ac.nz>
;; Keywords: mail

;; This file is part of GNU Emacs.

;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.

;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING.  If not, write to the
;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;; Boston, MA 02110-1301, USA.

;;; Commentary:

;; Send Mail to smtp host from smtpmail temp buffer.

;; Please add these lines in your .emacs(_emacs) or use customize.
;;
;;(setq send-mail-function 'smtpmail-send-it) ; if you use `mail'
;;(setq message-send-mail-function 'smtpmail-send-it) ; if you use message/Gnus
;;(setq smtpmail-default-smtp-server "YOUR SMTP HOST")
;;(setq smtpmail-local-domain "YOUR DOMAIN NAME")
;;(setq smtpmail-sendto-domain "YOUR DOMAIN NAME")
;;(setq smtpmail-debug-info t) ; only to debug problems
;;(setq smtpmail-auth-credentials  ; or use ~/.authinfo
;;      '(("YOUR SMTP HOST" 25 "username" "password")))
;;(setq smtpmail-starttls-credentials
;;      '(("YOUR SMTP HOST" 25 "~/.my_smtp_tls.key" "~/.my_smtp_tls.cert")))
;; Where the 25 equals the value of `smtpmail-smtp-service', it can be an
;; integer or a string, just as long as they match (eq).

;; To queue mail, set smtpmail-queue-mail to t and use
;; smtpmail-send-queued-mail to send.

;; Modified by Stephen Cranefield <scranefield@infoscience.otago.ac.nz>,
;; 22/6/99, to support SMTP Authentication by the AUTH=LOGIN mechanism.
;; See http://help.netscape.com/products/server/messaging/3x/info/smtpauth.html
;; Rewritten by Simon Josefsson to use same credential variable as AUTH
;; support below.

;; Modified by Simon Josefsson <jas@pdc.kth.se>, 22/2/99, to support SMTP
;; Authentication by the AUTH mechanism.
;; See http://www.ietf.org/rfc/rfc2554.txt

;; Modified by Simon Josefsson <simon@josefsson.org>, 2000-10-07, to support
;; STARTTLS.  Requires external program
;; ftp://ftp.opaopa.org/pub/elisp/starttls-*.tar.gz.
;; See http://www.ietf.org/rfc/rfc2246.txt, http://www.ietf.org/rfc/rfc2487.txt

;;; Code:

(require 'sendmail)
(autoload 'starttls-open-stream "starttls")
(autoload 'starttls-negotiate "starttls")
(autoload 'mail-strip-quoted-names "mail-utils")
(autoload 'message-make-date "message")
(autoload 'message-make-message-id "message")
(autoload 'rfc2104-hash "rfc2104")
(autoload 'netrc-parse "netrc")
(autoload 'netrc-machine "netrc")
(autoload 'netrc-get "netrc")

;;;
(defgroup smtpmail nil
  "SMTP protocol for sending mail."
  :group 'mail)


(defcustom smtpmail-default-smtp-server nil
  "*Specify default SMTP server.
This only has effect if you specify it before loading the smtpmail library."
  :type '(choice (const nil) string)
  :group 'smtpmail)

(defcustom smtpmail-smtp-server
  (or (getenv "SMTPSERVER") smtpmail-default-smtp-server)
  "*The name of the host running SMTP server."
  :type '(choice (const nil) string)
  :group 'smtpmail)

(defcustom smtpmail-smtp-service 25
  "*SMTP service port number.
The default value would be \"smtp\" or 25."
  :type '(choice (integer :tag "Port") (string :tag "Service"))
  :group 'smtpmail)

(defcustom smtpmail-local-domain nil
  "*Local domain name without a host name.
If the function `system-name' returns the full internet address,
don't define this value."
  :type '(choice (const nil) string)
  :group 'smtpmail)

(defcustom smtpmail-sendto-domain nil
  "*Local domain name without a host name.
This is appended (with an @-sign) to any specified recipients which do
not include an @-sign, so that each RCPT TO address is fully qualified.
\(Some configurations of sendmail require this.)

Don't bother to set this unless you have get an error like:
	Sending failed; SMTP protocol error
when sending mail, and the *trace of SMTP session to <somewhere>*
buffer includes an exchange like:
	RCPT TO: <someone>
	501 <someone>: recipient address must contain a domain
"
  :type '(choice (const nil) string)
  :group 'smtpmail)

(defcustom smtpmail-debug-info nil
  "Whether to print info in buffer *trace of SMTP session to <somewhere>*.
See also `smtpmail-debug-verb' which determines if the SMTP protocol should
be verbose as well."
  :type 'boolean
  :group 'smtpmail)

(defcustom smtpmail-debug-verb nil
  "Whether this library sends the SMTP VERB command or not.
The commands enables verbose information from the SMTP server."
  :type 'boolean
  :group 'smtpmail)

(defcustom smtpmail-code-conv-from nil ;; *junet*
  "*smtpmail code convert from this code to *internal*..for tiny-mime.."
  :type 'boolean
  :group 'smtpmail)

(defcustom smtpmail-queue-mail nil
  "*If set, mail is queued; otherwise it is sent immediately.
If queued, it is stored in the directory `smtpmail-queue-dir'
and sent with `smtpmail-send-queued-mail'."
  :type 'boolean
  :group 'smtpmail)

(defcustom smtpmail-queue-dir "~/Mail/queued-mail/"
  "*Directory where `smtpmail.el' stores queued mail."
  :type 'directory
  :group 'smtpmail)

(defcustom smtpmail-auth-credentials "~/.authinfo"
  "Specify username and password for servers, directly or via .netrc file.
This variable can either be a filename pointing to a file in netrc(5)
format, or list of four-element lists that contain, in order,
`servername' (a string), `port' (an integer), `user' (a string) and
`password' (a string, or nil to query the user when needed).  If you
need to enter a `realm' too, add it to the user string, so that it
looks like `user@realm'."
  :type '(choice file
		 (repeat (list (string  :tag "Server")
		       (integer :tag "Port")
		       (string  :tag "Username")
		       (choice (const :tag "Query when needed" nil)
				       (string  :tag "Password")))))
  :version "22.1"
  :group 'smtpmail)

(defcustom smtpmail-starttls-credentials '(("" 25 "" ""))
  "Specify STARTTLS keys and certificates for servers.
This is a list of four-element list with `servername' (a string),
`port' (an integer), `key' (a filename) and `certificate' (a
filename).
If you do not have a certificate/key pair, leave the `key' and
`certificate' fields as `nil'.  A key/certificate pair is only
needed if you want to use X.509 client authenticated
connections."
  :type '(repeat (list (string  :tag "Server")
		       (integer :tag "Port")
		       (file    :tag "Key")
		       (file    :tag "Certificate")))
  :version "21.1"
  :group 'smtpmail)

(defcustom smtpmail-warn-about-unknown-extensions nil
  "*If set, print warnings about unknown SMTP extensions.
This is mainly useful for development purposes, to learn about
new SMTP extensions that might be useful to support."
  :type 'boolean
  :version "21.1"
  :group 'smtpmail)

(defvar smtpmail-queue-index-file "index"
  "File name of queued mail index.
This is relative to `smtpmail-queue-dir'.")

(defvar smtpmail-address-buffer)
(defvar smtpmail-recipient-address-list)

(defvar smtpmail-queue-counter 0)

;; Buffer-local variable.
(defvar smtpmail-read-point)

(defvar smtpmail-queue-index (concat smtpmail-queue-dir
				     smtpmail-queue-index-file))

(defconst smtpmail-auth-supported '(cram-md5 plain login)
  "List of supported SMTP AUTH mechanisms.")

;;;
;;;
;;;

(defvar smtpmail-mail-address nil
  "Value to use for envelope-from address for mail from ambient buffer.")

;;;###autoload
(defun smtpmail-send-it ()
  (let ((errbuf (if mail-interactive
		    (generate-new-buffer " smtpmail errors")
		  0))
	(tembuf (generate-new-buffer " smtpmail temp"))
	(case-fold-search nil)
	delimline
	(mailbuf (current-buffer))
        ;; Examine this variable now, so that
	;; local binding in the mail buffer will take effect.
	(smtpmail-mail-address
         (or (and mail-specify-envelope-from (mail-envelope-from))
             user-mail-address))
	(smtpmail-code-conv-from
	 (if enable-multibyte-characters
	     (let ((sendmail-coding-system smtpmail-code-conv-from))
	       (select-message-coding-system)))))
    (unwind-protect
	(save-excursion
	  (set-buffer tembuf)
	  (erase-buffer)
	  ;; Use the same buffer-file-coding-system as in the mail
	  ;; buffer, otherwise any write-region invocations (e.g., in
	  ;; mail-do-fcc below) will annoy with asking for a suitable
	  ;; encoding.
	  (set-buffer-file-coding-system smtpmail-code-conv-from nil t)
	  (insert-buffer-substring mailbuf)
	  (goto-char (point-max))
	  ;; require one newline at the end.
	  (or (= (preceding-char) ?\n)
	      (insert ?\n))
	  ;; Change header-delimiter to be what sendmail expects.
	  (mail-sendmail-undelimit-header)
	  (setq delimline (point-marker))
;;	  (sendmail-synch-aliases)
	  (if mail-aliases
	      (expand-mail-aliases (point-min) delimline))
	  (goto-char (point-min))
	  ;; ignore any blank lines in the header
	  (while (and (re-search-forward "\n\n\n*" delimline t)
		      (< (point) delimline))
	    (replace-match "\n"))
	  (let ((case-fold-search t))
	    ;; We used to process Resent-... headers here,
	    ;; but it was not done properly, and the job
	    ;; is done correctly in smtpmail-deduce-address-list.
	    ;; Don't send out a blank subject line
	    (goto-char (point-min))
	    (if (re-search-forward "^Subject:\\([ \t]*\n\\)+\\b" delimline t)
		(replace-match "")
	      ;; This one matches a Subject just before the header delimiter.
	      (if (and (re-search-forward "^Subject:\\([ \t]*\n\\)+" delimline t)
		       (= (match-end 0) delimline))
		  (replace-match "")))
	    ;; Put the "From:" field in unless for some odd reason
	    ;; they put one in themselves.
	    (goto-char (point-min))
	    (if (not (re-search-forward "^From:" delimline t))
		(let* ((login smtpmail-mail-address)
		       (fullname (user-full-name)))
		  (cond ((eq mail-from-style 'angles)
			 (insert "From: " fullname)
			 (let ((fullname-start (+ (point-min) 6))
			       (fullname-end (point-marker)))
			   (goto-char fullname-start)
			   ;; Look for a character that cannot appear unquoted
			   ;; according to RFC 822.
			   (if (re-search-forward "[^- !#-'*+/-9=?A-Z^-~]"
						  fullname-end 1)
			       (progn
				 ;; Quote fullname, escaping specials.
				 (goto-char fullname-start)
				 (insert "\"")
				 (while (re-search-forward "[\"\\]"
							   fullname-end 1)
				   (replace-match "\\\\\\&" t))
				 (insert "\""))))
			 (insert " <" login ">\n"))
			((eq mail-from-style 'parens)
			 (insert "From: " login " (")
			 (let ((fullname-start (point)))
			   (insert fullname)
			   (let ((fullname-end (point-marker)))
			     (goto-char fullname-start)
			     ;; RFC 822 says \ and nonmatching parentheses
			     ;; must be escaped in comments.
			     ;; Escape every instance of ()\ ...
			     (while (re-search-forward "[()\\]" fullname-end 1)
			       (replace-match "\\\\\\&" t))
			     ;; ... then undo escaping of matching parentheses,
			     ;; including matching nested parentheses.
			     (goto-char fullname-start)
			     (while (re-search-forward
				     "\\(\\=\\|[^\\]\\(\\\\\\\\\\)*\\)\\\\(\\(\\([^\\]\\|\\\\\\\\\\)*\\)\\\\)"
				     fullname-end 1)
			       (replace-match "\\1(\\3)" t)
			       (goto-char fullname-start))))
			 (insert ")\n"))
			((null mail-from-style)
			 (insert "From: " login "\n")))))
	    ;; Insert a `Message-Id:' field if there isn't one yet.
	    (goto-char (point-min))
	    (unless (re-search-forward "^Message-Id:" delimline t)
	      (insert "Message-Id: " (message-make-message-id) "\n"))
	    ;; Insert a `Date:' field if there isn't one yet.
	    (goto-char (point-min))
	    (unless (re-search-forward "^Date:" delimline t)
	      (insert "Date: " (message-make-date) "\n"))
	    ;; Possibly add a MIME header for the current coding system
	    (let (charset)
	      (goto-char (point-min))
	      (and (eq mail-send-nonascii 'mime)
		   (not (re-search-forward "^MIME-version:" delimline t))
		   (progn (skip-chars-forward "\0-\177")
			  (/= (point) (point-max)))
		   smtpmail-code-conv-from
		   (setq charset
			 (coding-system-get smtpmail-code-conv-from
					    'mime-charset))
		   (goto-char delimline)
		   (insert "MIME-version: 1.0\n"
			   "Content-type: text/plain; charset="
			   (symbol-name charset)
			   "\nContent-Transfer-Encoding: 8bit\n")))
	    ;; Insert an extra newline if we need it to work around
	    ;; Sun's bug that swallows newlines.
	    (goto-char (1+ delimline))
	    (if (eval mail-mailer-swallows-blank-line)
		(newline))
	    ;; Find and handle any FCC fields.
	    (goto-char (point-min))
	    (if (re-search-forward "^FCC:" delimline t)
		;; Force mail-do-fcc to use the encoding of the mail
		;; buffer to encode outgoing messages on FCC files.
		(let ((coding-system-for-write smtpmail-code-conv-from))
		  (mail-do-fcc delimline)))
	    (if mail-interactive
		(with-current-buffer errbuf
		  (erase-buffer))))
	  ;;
	  ;;
	  ;;
	  (setq smtpmail-address-buffer (generate-new-buffer "*smtp-mail*"))
	  (setq smtpmail-recipient-address-list
		    (smtpmail-deduce-address-list tembuf (point-min) delimline))
	  (kill-buffer smtpmail-address-buffer)

	  (smtpmail-do-bcc delimline)
	  ; Send or queue
	  (if (not smtpmail-queue-mail)
	      (if (not (null smtpmail-recipient-address-list))
		  (if (not (smtpmail-via-smtp
			    smtpmail-recipient-address-list tembuf))
		      (error "Sending failed; SMTP protocol error"))
		(error "Sending failed; no recipients"))
	    (let* ((file-data
		    (expand-file-name
		     (format "%s_%i"
			     (format-time-string "%Y-%m-%d_%H:%M:%S")
			     (setq smtpmail-queue-counter
				   (1+ smtpmail-queue-counter)))
		     smtpmail-queue-dir))
		   (file-data (convert-standard-filename file-data))
		   (file-elisp (concat file-data ".el"))
		   (buffer-data (create-file-buffer file-data))
		   (buffer-elisp (create-file-buffer file-elisp))
		   (buffer-scratch "*queue-mail*"))
	      (unless (file-exists-p smtpmail-queue-dir)
		(make-directory smtpmail-queue-dir t))
	      (with-current-buffer buffer-data
		(erase-buffer)
		(set-buffer-file-coding-system smtpmail-code-conv-from nil t)
		(insert-buffer-substring tembuf)
		(write-file file-data)
		(set-buffer buffer-elisp)
		(erase-buffer)
		(insert (concat
			 "(setq smtpmail-recipient-address-list '"
			 (prin1-to-string smtpmail-recipient-address-list)
			 ")\n"))
		(write-file file-elisp)
		(set-buffer (generate-new-buffer buffer-scratch))
		(insert (concat file-data "\n"))
		(append-to-file (point-min)
				(point-max)
				smtpmail-queue-index)
		)
	      (kill-buffer buffer-scratch)
	      (kill-buffer buffer-data)
	      (kill-buffer buffer-elisp))))
      (kill-buffer tembuf)
      (if (bufferp errbuf)
	  (kill-buffer errbuf)))))

;;;###autoload
(defun smtpmail-send-queued-mail ()
  "Send mail that was queued as a result of setting `smtpmail-queue-mail'."
  (interactive)
  (with-temp-buffer
    ;;; Get index, get first mail, send it, update index, get second
    ;;; mail, send it, etc...
    (let ((file-msg ""))
      (insert-file-contents smtpmail-queue-index)
      (goto-char (point-min))
      (while (not (eobp))
	(setq file-msg (buffer-substring (point) (line-end-position)))
	(load file-msg)
	;; Insert the message literally: it is already encoded as per
	;; the MIME headers, and code conversions might guess the
	;; encoding wrongly.
	(with-temp-buffer
	  (let ((coding-system-for-read 'no-conversion))
	    (insert-file-contents file-msg))
          (let ((smtpmail-mail-address
                 (or (and mail-specify-envelope-from (mail-envelope-from))
                     user-mail-address)))
            (if (not (null smtpmail-recipient-address-list))
                (if (not (smtpmail-via-smtp smtpmail-recipient-address-list
                                            (current-buffer)))
                    (error "Sending failed; SMTP protocol error"))
              (error "Sending failed; no recipients"))))
	(delete-file file-msg)
	(delete-file (concat file-msg ".el"))
	(delete-region (point-at-bol) (point-at-bol 2)))
      (write-region (point-min) (point-max) smtpmail-queue-index))))

;(defun smtpmail-via-smtp (host,port,sender,destination,smtpmail-text-buffer)

(defun smtpmail-fqdn ()
  (if smtpmail-local-domain
      (concat (system-name) "." smtpmail-local-domain)
    (system-name)))

(defsubst smtpmail-cred-server (cred)
  (nth 0 cred))

(defsubst smtpmail-cred-port (cred)
  (nth 1 cred))

(defsubst smtpmail-cred-key (cred)
  (nth 2 cred))

(defsubst smtpmail-cred-user (cred)
  (nth 2 cred))

(defsubst smtpmail-cred-cert (cred)
  (nth 3 cred))

(defsubst smtpmail-cred-passwd (cred)
  (nth 3 cred))

(defun smtpmail-find-credentials (cred server port)
  (catch 'done
    (let ((l cred) el)
      (while (setq el (pop l))
	(when (and (equal server (smtpmail-cred-server el))
		   (equal port (smtpmail-cred-port el)))
	  (throw 'done el))))))

(defun smtpmail-maybe-append-domain (recipient)
  (if (or (not smtpmail-sendto-domain)
	  (string-match "@" recipient))
      recipient
    (concat recipient "@" smtpmail-sendto-domain)))

(defun smtpmail-intersection (list1 list2)
  (let ((result nil))
    (dolist (el2 list2)
      (when (memq el2 list1)
	(push el2 result)))
    (nreverse result)))

(defvar starttls-extra-args)
(defvar starttls-extra-arguments)

(defun smtpmail-open-stream (process-buffer host port)
  (let ((cred (smtpmail-find-credentials
	       smtpmail-starttls-credentials host port)))
    (if (null (and cred (condition-case ()
			    (with-no-warnings
			      (require 'starttls)
			      (call-process (if starttls-use-gnutls
						starttls-gnutls-program
					      starttls-program)))
			  (error nil))))
	;; The normal case.
	(open-network-stream "SMTP" process-buffer host port)
      (let* ((cred-key (smtpmail-cred-key cred))
	     (cred-cert (smtpmail-cred-cert cred))
	     (starttls-extra-args
	      (append
	       starttls-extra-args
	       (when (and (stringp cred-key) (stringp cred-cert)
			  (file-regular-p
			   (setq cred-key (expand-file-name cred-key)))
			  (file-regular-p
			   (setq cred-cert (expand-file-name cred-cert))))
		 (list "--key-file" cred-key "--cert-file" cred-cert))))
	     (starttls-extra-arguments
	      (append
	       starttls-extra-arguments
	       (when (and (stringp cred-key) (stringp cred-cert)
			  (file-regular-p
			   (setq cred-key (expand-file-name cred-key)))
			  (file-regular-p
			   (setq cred-cert (expand-file-name cred-cert))))
		 (list "--x509keyfile" cred-key "--x509certfile" cred-cert)))))
	(starttls-open-stream "SMTP" process-buffer host port)))))

(defun smtpmail-try-auth-methods (process supported-extensions host port)
  (let* ((mechs (cdr-safe (assoc 'auth supported-extensions)))
	 (mech (car (smtpmail-intersection smtpmail-auth-supported mechs)))
	 (cred (if (stringp smtpmail-auth-credentials)
		   (let* ((netrc (netrc-parse smtpmail-auth-credentials))
                          (port-name (format "%s" (or port "smtp")))
			  (hostentry (netrc-machine netrc host port-name
                                                    port-name)))
                     (when hostentry
                       (list host port
                             (netrc-get hostentry "login")
                             (netrc-get hostentry "password"))))
		 (smtpmail-find-credentials
		  smtpmail-auth-credentials host port)))
	 (passwd (when cred
		   (or (smtpmail-cred-passwd cred)
		       (read-passwd
			(format "SMTP password for %s:%s: "
				(smtpmail-cred-server cred)
				(smtpmail-cred-port cred))))))
	 ret)
    (when (and cred mech)
      (cond
       ((eq mech 'cram-md5)
	(smtpmail-send-command process (upcase (format "AUTH %s" mech)))
	(if (or (null (car (setq ret (smtpmail-read-response process))))
		(not (integerp (car ret)))
		(>= (car ret) 400))
	    (throw 'done nil))
	(when (eq (car ret) 334)
	  (let* ((challenge (substring (cadr ret) 4))
		 (decoded (base64-decode-string challenge))
		 (hash (rfc2104-hash 'md5 64 16 passwd decoded))
		 (response (concat (smtpmail-cred-user cred) " " hash))
		 ;; Osamu Yamane <yamane@green.ocn.ne.jp>:
		 ;; SMTP auth fails because the SMTP server identifies
		 ;; only the first part of the string (delimited by
		 ;; new line characters) as a response from the
		 ;; client, and the rest as distinct commands.

		 ;; In my case, the response string is 80 characters
		 ;; long.  Without the no-line-break option for
		 ;; base64-encode-sting, only the first 76 characters
		 ;; are taken as a response to the server, and the
		 ;; authentication fails.
		 (encoded (base64-encode-string response t)))
	    (smtpmail-send-command process (format "%s" encoded))
	    (if (or (null (car (setq ret (smtpmail-read-response process))))
		    (not (integerp (car ret)))
		    (>= (car ret) 400))
		(throw 'done nil)))))
       ((eq mech 'login)
	(smtpmail-send-command process "AUTH LOGIN")
	(if (or (null (car (setq ret (smtpmail-read-response process))))
		(not (integerp (car ret)))
		(>= (car ret) 400))
	    (throw 'done nil))
	(smtpmail-send-command
	 process (base64-encode-string (smtpmail-cred-user cred) t))
	(if (or (null (car (setq ret (smtpmail-read-response process))))
		(not (integerp (car ret)))
		(>= (car ret) 400))
	    (throw 'done nil))
	(smtpmail-send-command process (base64-encode-string passwd t))
	(if (or (null (car (setq ret (smtpmail-read-response process))))
		(not (integerp (car ret)))
		(>= (car ret) 400))
	    (throw 'done nil)))
       ((eq mech 'plain)
	;; We used to send an empty initial request, and wait for an
	;; empty response, and then send the password, but this
	;; violate a SHOULD in RFC 2222 paragraph 5.1.  Note that this
	;; is not sent if the server did not advertise AUTH PLAIN in
	;; the EHLO response.  See RFC 2554 for more info.
	(smtpmail-send-command process
			       (concat "AUTH PLAIN "
				       (base64-encode-string
					(concat "\0"
						(smtpmail-cred-user cred)
						"\0"
						passwd) t)))
	(if (or (null (car (setq ret (smtpmail-read-response process))))
		(not (integerp (car ret)))
		(not (equal (car ret) 235)))
	    (throw 'done nil)))

       (t
	(error "Mechanism %s not implemented" mech)))
      ;; Remember the password.
      (when (and (not (stringp smtpmail-auth-credentials))
		 (null (smtpmail-cred-passwd cred)))
	(setcar (cdr (cdr (cdr cred))) passwd)))))

(defun smtpmail-via-smtp (recipient smtpmail-text-buffer)
  (let ((process nil)
	(host (or smtpmail-smtp-server
		  (error "`smtpmail-smtp-server' not defined")))
	(port smtpmail-smtp-service)
        ;; smtpmail-mail-address should be set to the appropriate
        ;; buffer-local value by the caller, but in case not:
        (envelope-from (or smtpmail-mail-address
                           (and mail-specify-envelope-from
                                (mail-envelope-from))
                           user-mail-address))
	response-code
	greeting
	process-buffer
	(supported-extensions '()))
    (unwind-protect
	(catch 'done
	  ;; get or create the trace buffer
	  (setq process-buffer
		(get-buffer-create (format "*trace of SMTP session to %s*" host)))

	  ;; clear the trace buffer of old output
	  (with-current-buffer process-buffer
	    (setq buffer-undo-list t)
	    (erase-buffer))

	  ;; open the connection to the server
	  (setq process (smtpmail-open-stream process-buffer host port))
	  (and (null process) (throw 'done nil))

	  ;; set the send-filter
	  (set-process-filter process 'smtpmail-process-filter)

	  (with-current-buffer process-buffer
	    (set-buffer-process-coding-system 'raw-text-unix 'raw-text-unix)
	    (make-local-variable 'smtpmail-read-point)
	    (setq smtpmail-read-point (point-min))


	    (if (or (null (car (setq greeting (smtpmail-read-response process))))
		    (not (integerp (car greeting)))
		    (>= (car greeting) 400))
		(throw 'done nil)
	      )

	    (let ((do-ehlo t)
		  (do-starttls t))
	      (while do-ehlo
	    ;; EHLO
	    (smtpmail-send-command process (format "EHLO %s" (smtpmail-fqdn)))

	    (if (or (null (car (setq response-code
				     (smtpmail-read-response process))))
		    (not (integerp (car response-code)))
		    (>= (car response-code) 400))
		(progn
		  ;; HELO
		  (smtpmail-send-command
		   process (format "HELO %s" (smtpmail-fqdn)))

		  (if (or (null (car (setq response-code
					   (smtpmail-read-response process))))
			  (not (integerp (car response-code)))
			  (>= (car response-code) 400))
		      (throw 'done nil)))
	      (dolist (line (cdr (cdr response-code)))
		(let ((name
		       (with-case-table ascii-case-table
			 (mapcar (lambda (s) (intern (downcase s)))
				 (split-string (substring line 4) "[ ]")))))
		  (and (eq (length name) 1)
		       (setq name (car name)))
		  (and name
		       (cond ((memq (if (consp name) (car name) name)
				    '(verb xvrb 8bitmime onex xone
					   expn size dsn etrn
					   enhancedstatuscodes
					   help xusr
					   auth=login auth starttls))
			      (setq supported-extensions
				    (cons name supported-extensions)))
			     (smtpmail-warn-about-unknown-extensions
			      (message "Unknown extension %s" name)))))))

	    (if (and do-starttls
		     (smtpmail-find-credentials smtpmail-starttls-credentials host port)
		     (member 'starttls supported-extensions)
		     (numberp (process-id process)))
		(progn
		  (smtpmail-send-command process (format "STARTTLS"))
		  (if (or (null (car (setq response-code (smtpmail-read-response process))))
			  (not (integerp (car response-code)))
			  (>= (car response-code) 400))
		      (throw 'done nil))
		  (starttls-negotiate process)
		  (setq do-starttls nil))
	      (setq do-ehlo nil))))

	    (smtpmail-try-auth-methods process supported-extensions host port)

	    (if (or (member 'onex supported-extensions)
		    (member 'xone supported-extensions))
		(progn
		  (smtpmail-send-command process (format "ONEX"))
		  (if (or (null (car (setq response-code (smtpmail-read-response process))))
			  (not (integerp (car response-code)))
			  (>= (car response-code) 400))
		      (throw 'done nil))))

	    (if (and smtpmail-debug-verb
		     (or (member 'verb supported-extensions)
			 (member 'xvrb supported-extensions)))
		(progn
		  (smtpmail-send-command process (format "VERB"))
		  (if (or (null (car (setq response-code (smtpmail-read-response process))))
			  (not (integerp (car response-code)))
			  (>= (car response-code) 400))
		      (throw 'done nil))))

	    (if (member 'xusr supported-extensions)
		(progn
		  (smtpmail-send-command process (format "XUSR"))
		  (if (or (null (car (setq response-code (smtpmail-read-response process))))
			  (not (integerp (car response-code)))
			  (>= (car response-code) 400))
		      (throw 'done nil))))

	    ;; MAIL FROM:<sender>
	    (let ((size-part
		   (if (or (member 'size supported-extensions)
			   (assoc 'size supported-extensions))
		       (format " SIZE=%d"
			       (with-current-buffer smtpmail-text-buffer
				 ;; size estimate:
				 (+ (- (point-max) (point-min))
				    ;; Add one byte for each change-of-line
				    ;; because of CR-LF representation:
				    (count-lines (point-min) (point-max)))))
		     ""))
		  (body-part
		   (if (member '8bitmime supported-extensions)
		       ;; FIXME:
		       ;; Code should be added here that transforms
		       ;; the contents of the message buffer into
		       ;; something the receiving SMTP can handle.
		       ;; For a receiver that supports 8BITMIME, this
		       ;; may mean converting BINARY to BASE64, or
		       ;; adding Content-Transfer-Encoding and the
		       ;; other MIME headers.  The code should also
		       ;; return an indication of what encoding the
		       ;; message buffer is now, i.e. ASCII or
		       ;; 8BITMIME.
		       (if nil
			   " BODY=8BITMIME"
			 "")
		     "")))
;	      (smtpmail-send-command process (format "MAIL FROM:%s@%s" (user-login-name) (smtpmail-fqdn)))
	      (smtpmail-send-command process (format "MAIL FROM:<%s>%s%s"
                                                     envelope-from
						     size-part
						     body-part))

	      (if (or (null (car (setq response-code (smtpmail-read-response process))))
		      (not (integerp (car response-code)))
		      (>= (car response-code) 400))
		  (throw 'done nil)
		))

	    ;; RCPT TO:<recipient>
	    (let ((n 0))
	      (while (not (null (nth n recipient)))
		(smtpmail-send-command process (format "RCPT TO:<%s>" (smtpmail-maybe-append-domain (nth n recipient))))
		(setq n (1+ n))

		(setq response-code (smtpmail-read-response process))
		(if (or (null (car response-code))
			(not (integerp (car response-code)))
			(>= (car response-code) 400))
		    (throw 'done nil)
		  )
		))

	    ;; DATA
	    (smtpmail-send-command process "DATA")

	    (if (or (null (car (setq response-code (smtpmail-read-response process))))
		    (not (integerp (car response-code)))
		    (>= (car response-code) 400))
		(throw 'done nil)
	      )

	    ;; Mail contents
	    (smtpmail-send-data process smtpmail-text-buffer)

	    ;;DATA end "."
	    (smtpmail-send-command process ".")

	    (if (or (null (car (setq response-code (smtpmail-read-response process))))
		    (not (integerp (car response-code)))
		    (>= (car response-code) 400))
		(throw 'done nil)
	      )

	    ;;QUIT
;	    (smtpmail-send-command process "QUIT")
;	    (and (null (car (smtpmail-read-response process)))
;		 (throw 'done nil))
	    t ))
      (if process
	  (with-current-buffer (process-buffer process)
	    (smtpmail-send-command process "QUIT")
	    (smtpmail-read-response process)

;	    (if (or (null (car (setq response-code (smtpmail-read-response process))))
;		    (not (integerp (car response-code)))
;		    (>= (car response-code) 400))
;		(throw 'done nil)
;	      )
	    (delete-process process)
	    (unless smtpmail-debug-info
	      (kill-buffer process-buffer)))))))


(defun smtpmail-process-filter (process output)
  (with-current-buffer (process-buffer process)
    (goto-char (point-max))
    (insert output)))

(defun smtpmail-read-response (process)
  (let ((case-fold-search nil)
	(response-strings nil)
	(response-continue t)
	(return-value '(nil ()))
	match-end)
    (catch 'done
      (while response-continue
	(goto-char smtpmail-read-point)
	(while (not (search-forward "\r\n" nil t))
	  (unless (memq (process-status process) '(open run))
	    (throw 'done nil))
	  (accept-process-output process)
	  (goto-char smtpmail-read-point))

	(setq match-end (point))
	(setq response-strings
	      (cons (buffer-substring smtpmail-read-point (- match-end 2))
		    response-strings))

	(goto-char smtpmail-read-point)
	(if (looking-at "[0-9]+ ")
	    (let ((begin (match-beginning 0))
		  (end (match-end 0)))
	      (if smtpmail-debug-info
		  (message "%s" (car response-strings)))

	      (setq smtpmail-read-point match-end)

	      ;; ignore lines that start with "0"
	      (if (looking-at "0[0-9]+ ")
		  nil
		(setq response-continue nil)
		(setq return-value
		      (cons (string-to-number
			     (buffer-substring begin end))
			    (nreverse response-strings)))))

	  (if (looking-at "[0-9]+-")
	      (progn (if smtpmail-debug-info
			 (message "%s" (car response-strings)))
		     (setq smtpmail-read-point match-end)
		     (setq response-continue t))
	    (progn
	      (setq smtpmail-read-point match-end)
	      (setq response-continue nil)
	      (setq return-value
		    (cons nil (nreverse response-strings)))))))
      (setq smtpmail-read-point match-end))
    return-value))


(defun smtpmail-send-command (process command)
  (goto-char (point-max))
  (if (= (aref command 0) ?P)
      (insert "PASS <omitted>\r\n")
    (insert command "\r\n"))
  (setq smtpmail-read-point (point))
  (process-send-string process command)
  (process-send-string process "\r\n"))

(defun smtpmail-send-data-1 (process data)
  (goto-char (point-max))

  (if (and (multibyte-string-p data)
	   smtpmail-code-conv-from)
      (setq data (string-as-multibyte
		  (encode-coding-string data smtpmail-code-conv-from))))

  (if smtpmail-debug-info
      (insert data "\r\n"))

  (setq smtpmail-read-point (point))
  ;; Escape "." at start of a line
  (if (eq (string-to-char data) ?.)
      (process-send-string process "."))
  (process-send-string process data)
  (process-send-string process "\r\n")
  )

(defun smtpmail-send-data (process buffer)
  (let ((data-continue t) sending-data)
    (with-current-buffer buffer
      (goto-char (point-min)))
    (while data-continue
      (with-current-buffer buffer
        (setq sending-data (buffer-substring (point-at-bol) (point-at-eol)))
	(end-of-line 2)
        (setq data-continue (not (eobp))))
      (smtpmail-send-data-1 process sending-data))))

(defun smtpmail-deduce-address-list (smtpmail-text-buffer header-start header-end)
  "Get address list suitable for smtp RCPT TO: <address>."
  (unwind-protect
      (with-current-buffer smtpmail-address-buffer
	(erase-buffer)
	(let
	    ((case-fold-search t)
	     (simple-address-list "")
	     this-line
	     this-line-end
	     addr-regexp)
	  (insert-buffer-substring smtpmail-text-buffer header-start header-end)
	  (goto-char (point-min))
	  ;; RESENT-* fields should stop processing of regular fields.
	  (save-excursion
	    (setq addr-regexp
		  (if (re-search-forward "^Resent-\\(to\\|cc\\|bcc\\):"
					 header-end t)
		      "^Resent-\\(to\\|cc\\|bcc\\):"
		    "^\\(To:\\|Cc:\\|Bcc:\\)")))

	  (while (re-search-forward addr-regexp header-end t)
	    (replace-match "")
	    (setq this-line (match-beginning 0))
	    (forward-line 1)
	    ;; get any continuation lines
	    (while (and (looking-at "^[ \t]+") (< (point) header-end))
	      (forward-line 1))
	    (setq this-line-end (point-marker))
	    (setq simple-address-list
		  (concat simple-address-list " "
			  (mail-strip-quoted-names (buffer-substring this-line this-line-end))))
	    )
	  (erase-buffer)
	  (insert " " simple-address-list "\n")
	  (subst-char-in-region (point-min) (point-max) 10 ?  t);; newline --> blank
	  (subst-char-in-region (point-min) (point-max) ?, ?  t);; comma   --> blank
	  (subst-char-in-region (point-min) (point-max)  9 ?  t);; tab     --> blank

	  (goto-char (point-min))
	  ;; tidyness in case hook is not robust when it looks at this
	  (while (re-search-forward "[ \t]+" header-end t) (replace-match " "))

	  (goto-char (point-min))
	  (let (recipient-address-list)
	    (while (re-search-forward " \\([^ ]+\\) " (point-max) t)
	      (backward-char 1)
	      (setq recipient-address-list (cons (buffer-substring (match-beginning 1) (match-end 1))
						 recipient-address-list))
	      )
	    (setq smtpmail-recipient-address-list recipient-address-list))

	  )
	)
    )
  )


(defun smtpmail-do-bcc (header-end)
  "Delete [Resent-]BCC: and their continuation lines from the header area.
There may be multiple BCC: lines, and each may have arbitrarily
many continuation lines."
  (let ((case-fold-search t))
    (save-excursion
      (goto-char (point-min))
      ;; iterate over all BCC: lines
      (while (re-search-forward "^\\(RESENT-\\)?BCC:" header-end t)
	(delete-region (match-beginning 0)
		       (progn (forward-line 1) (point)))
	;; get rid of any continuation lines
	(while (and (looking-at "^[ \t].*\n") (< (point) header-end))
	  (replace-match ""))))))


(provide 'smtpmail)

;;; arch-tag: a76992df-6d71-43b7-9e72-4bacc6c05466
;;; smtpmail.el ends here
2008-02-13 20:58:26 +00:00
Bastien Guerry
926f559c27 Reverted wrong changes to rmail.el. 2008-02-12 07:13:29 +00:00
Bastien Guerry
b96817c387 2008-02-11 Drew Adams <drew.adams@oracle.com>
* help.el (describe-key): Joined some split lines to facilitate
	filling.
	* help-fns.el (describe-function-1): Fill text of overlong lines.
2008-02-12 07:10:49 +00:00
Bastien Guerry
be16d955c8 (rmail-nonignored-headers): Allow to be nil.
(rmail-clear-headers): Don't check `rmail-nonignored-headers' when
it is nil.
2008-02-10 22:10:09 +00:00
Juanma Barranquero
4f9c00e2dc (erc-valid-nick-regexp): Replace legal' with valid'. 2008-02-05 13:00:43 +00:00
Miles Bader
a9989764a4 Merge from emacs--devo--0
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-329
2008-02-01 03:01:11 +00:00
Miles Bader
68e7476278 Merge from emacs--rel--22
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-1032
2008-02-01 02:40:23 +00:00
Martin Rudalics
01e573290d (rmail-highlight): Fix specification. 2008-01-31 10:40:14 +00:00
Miles Bader
d235ca2ff8 Merge from emacs--devo--0
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-324
2008-01-30 07:57:28 +00:00
Martin Rudalics
19e2f1bfc7 (rmail-convert-to-babyl-format): Remove
save-excursion to avoid infinite looping.
2008-01-13 18:18:12 +00:00
Glenn Morris
dcb8ac09ea Add 2008 to copyright years. 2008-01-09 04:31:51 +00:00
Miles Bader
430d2ee291 Merge from emacs--devo--0
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-312
2008-01-09 01:21:15 +00:00
Miles Bader
59ce725a3b Merge from emacs--rel--22
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-987
2008-01-08 20:46:54 +00:00
Glenn Morris
2f043267ee Add 2008 to copyright years. 2008-01-07 02:00:47 +00:00
Stefan Monnier
48d33090d0 * erc-ibuffer.el (erc-channel-modes):
* bs.el (bs--sort-by-mode, bs--get-mode-name):
* imenu.el (imenu-add-to-menubar):
* makesum.el (make-command-summary):
* mouse.el (mouse-major-mode-menu, mouse-popup-menubar, mouse-buffer-menu):
* msb.el (msb--mode-menu-cond):
* calc/calc-embed.el (calc-do-embedded):
* emacs-lisp/helper.el (Helper-describe-mode):
* mail/emacsbug.el (report-emacs-bug):
* progmodes/hideshow.el (hs-grok-mode-type):
* textmodes/sgml-mode.el (sgml-mode-facemenu-add-face-function):
* textmodes/table.el (*table--cell-describe-mode):
Pass mode-name through format-mode-line.
2008-01-04 06:29:12 +00:00
Miles Bader
a0c92ed92d Merge from emacs--devo--0
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-306
2007-12-29 02:39:17 +00:00
Miles Bader
b17f53abc2 Merge from emacs--rel--22
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-966
2007-12-28 22:26:14 +00:00
Richard M. Stallman
f851506c8a Whitespace change. 2007-12-26 23:01:34 +00:00
Dan Nicolaescu
d31e8e871c * calculator.el:
* dframe.el:
* iswitchb.el:
* whitespace.el:
* winner.el:
* emacs-lisp/checkdoc.el:
* mail/feedmail.el:
* net/quickurl.el:
* obsolete/fast-lock.el:
* play/5x5.el:
* progmodes/delphi.el:
* progmodes/idlw-shell.el:
* progmodes/idlwave.el:
* textmodes/artist.el:
* textmodes/ispell.el:
* textmodes/texinfmt.el:
* textmodes/texinfo.el: Remove obsolete definitions of backward
compatibility macros for defcustom, defgroup, defface, when,
unless, with-current-buffer and with-temp-message.
2007-12-25 19:21:38 +00:00
Miles Bader
d29ee6b1a1 Merge from emacs--devo--0
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-300
2007-12-16 05:08:49 +00:00
Miles Bader
21ee0911f7 Merge from gnus--devo--0
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-950
2007-12-09 22:14:32 +00:00
Dan Nicolaescu
c486a8e4ff * mail/hashcash.el (declare-function):
* net/imap.el (declare-function): New no-op macro for backward
compatibility.
2007-12-08 22:56:04 +00:00
David Kastrup
274f1353e0 * erc-stamp.el (erc-echo-timestamp):
* erc-lang.el (language):
* erc-backend.el (erc-server-connect): Fix buggy call to `message'.

* gnus-sum.el (gnus-summary-simplify-subject-query):
* ecomplete.el (ecomplete-display-matches): Fix buggy call to
`message'.

* textmodes/reftex.el (reftex-select-with-char):
* textmodes/reftex-toc.el (reftex-toc-do-promote)
(reftex-toc-visit-location, reftex-toc-find-section):
* textmodes/reftex-index.el (reftex-index-show-entry):
* textmodes/org.el (org-cycle-hide-archived-subtrees)
(org-table-rotate-recalc-marks, org-mark-ring-push)
(org-follow-info-link, org-mhe-get-message-folder-from-index)
(org-auto-repeat-maybe, org-store-log-note, org-delete-property)
(org-evaluate-time-range, org-edit-agenda-file-list):
* textmodes/artist.el (artist-select-next-op-in-list)
(artist-select-prev-op-in-list):
* term/mac-win.el (mac-service-insert-text):
* startup.el (fancy-about-screen):
* progmodes/vhdl-mode.el (vhdl-decision-query):
* progmodes/idlwave.el (idlwave-template)
(idlwave-scroll-completions, idlwave-display-completion-list):
* progmodes/ebrowse.el (ebrowse-show-progress):
* progmodes/cperl-mode.el (cperl-find-pods-heres):
* progmodes/antlr-mode.el (antlr-insert-option-do):
* play/mpuz.el (mpuz-close-game):
* net/rcirc.el (rcirc-next-active-buffer):
* mail/reporter.el (reporter-update-status):
* kmacro.el (kmacro-display):
* international/ja-dic-cnv.el (skkdic-set-okuri-nasi):
* emulation/viper-util.el (viper-save-setting):
* emacs-lisp/lisp-mnt.el (lm-verify):
* emacs-lisp/edebug.el (edebug-set-mode):
* emacs-lisp/checkdoc.el (checkdoc-rogue-spaces, checkdoc-defun):
* calendar/calendar.el (calendar-print-day-of-year):
* calc/calcalg3.el (calc-curve-fit):
* calc/calcalg2.el (math-integral):
* calc/calc.el (calc-read-key-sequence, calc-version):
* calc/calc-mode.el (calc-set-simplify-mode):
* calc/calc-ext.el (calc-fancy-prefix): Fix buggy call to
`message'.
2007-12-08 01:02:29 +00:00
Deepak Goel
a867ead0d0 Improves calls to `error', per mail from RMS. 2007-12-08 00:57:23 +00:00
Deepak Goel
26b4a51d1e Fix buggy calls to `error'. 2007-12-06 18:18:13 +00:00
Miles Bader
0bd5084171 Merge from emacs--devo--0
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-294
2007-12-06 09:51:45 +00:00
Glenn Morris
5cec305694 Remove directory part from filenames in function declarations. 2007-12-06 04:09:57 +00:00
Glenn Morris
1ac4605f39 (uudecode): New custom group.
(uudecode-decoder-program, uudecode-decoder-switches)
(uudecode-use-external): Move to the uudecode custom group.
2007-12-02 18:51:38 +00:00
Glenn Morris
5b8178bbea (binhex): New custom group.
(binhex-decoder-program, binhex-decoder-switches)
(binhex-use-external): Move to the binhex custom group.
2007-12-02 18:51:27 +00:00
Glenn Morris
b0a07187c1 Move here from ../gnus. 2007-12-02 18:49:22 +00:00
Glenn Morris
5d91f66bd6 (vm-visit-folder): Declare as a function. 2007-11-29 04:26:13 +00:00
Glenn Morris
1ad042ed9d (sc-version): Use emacs-version rather than sc-version. 2007-11-28 05:32:47 +00:00
Glenn Morris
a445af6b24 Delete meaningless header keys.
(sc-version): Redefine as an alias for emacs-version.
(sc-help-address): Remove.
(sc-version): Use emacs-version rather than sc-version.
(sc-submit-bug-report): Redefine as an alias for report-emacs-bug.
2007-11-28 04:02:41 +00:00
Dan Nicolaescu
73e72da43b * progmodes/cperl-mode.el (compilation-error-regexp-alist): Pacify
byte compiler.
(cperl-mode): Use with-no-warnings for setting vc-header-alist.

* progmodes/idlwave.el (idlwave-shell-get-path-info)
(idlwave-shell-temp-file, idlwave-shell-is-running)
(widget-value, comint-dynamic-complete-filename, Info-goto-node):
* progmodes/idlw-help.el (idlwave-prepare-structure-tag-completion)
(idlwave-all-method-classes, idlwave-all-method-keyword-classes)
(idlwave-beginning-of-statement, idlwave-best-rinfo-assoc)
(idlwave-class-found-in, idlwave-class-or-superclass-with-tag)
(idlwave-completing-read, idlwave-current-routine)
(idlwave-downcase-safe, idlwave-entry-find-keyword)
(idlwave-expand-keyword, idlwave-find-class-definition)
(idlwave-find-inherited-class, idlwave-find-struct-tag)
(idlwave-get-buffer-visiting, idlwave-in-quote)
(idlwave-make-full-name, idlwave-members-only)
(idlwave-popup-select, idlwave-routine-source-file)
(idlwave-routines, idlwave-sintern-class)
(idlwave-sintern-keyword, idlwave-sintern-method)
(idlwave-sintern-routine-or-method)
(idlwave-substitute-link-target, idlwave-sys-dir)
(idlwave-this-word, idlwave-what-module-find-class)
(idlwave-where):
* progmodes/idlw-complete-structtag.el (idlwave-shell-buffer):
* mail/uce.el (rmail-msg-is-pruned)
(rmail-maybe-set-message-counters, rmail-msgbeg, rmail-msgend)
(rmail-toggle-header):
* mail/sendmail.el (dired-view-file, dired-get-filename):
* mail/rmailkwd.el (rmail-maybe-set-message-counters)
(rmail-display-labels, rmail-msgbeg)
(rmail-set-message-deleted-p, rmail-message-labels-p)
(rmail-show-message, mail-comma-list-regexp)
(mail-parse-comma-list):
* mail/rmail.el (rmail-spam-filter, rmail-summary-goto-msg)
(rmail-summary-mark-undeleted, rmail-summary-mark-deleted)
(rfc822-addresses, mail-abbrev-make-syntax-table)
(mail-sendmail-delimit-header, mail-header-end):
* mail/hashcash.el (message-narrow-to-headers-or-head)
(message-fetch-field, message-goto-eoh)
(message-narrow-to-headers):
* vc.el (view-mode-exit): Declare as functions.

* mail/vms-pmail.el:
* vmsproc.el:
* vms-patch.el: Don't byte compile these files, they don't work.

* Makefile.in (SOME_MACHINE_LISP): Remove VMS files, they are not
compiled anymore.
2007-11-27 06:57:07 +00:00
Dan Nicolaescu
2b54af7428 * mail/mspools.el (rmail-get-new-mail):
* mail/reporter.el (mail-position-on-field, mail-text):
* mail/rmail.el (mail-position-on-field, mail-text-start)
(rmail-update-summary):
* mail/rmailedit.el (rmail-summary-disable)
(rmail-summary-enable):
* mail/rmailmsc.el (rmail-parse-file-inboxes)
(rmail-show-message):
* mail/rmailout.el (rmail-update-summary):
* mail/rmailsort.el (rmail-update-summary):
* mail/sendmail.el (dired-move-to-filename, dired-get-filename)
(dired-view-file):
* mail/uce.el (mail-strip-quoted-names):
* mail/undigest.el (rmail-update-summary):
* mail/unrmail.el (mail-strip-quoted-names):
* ediff.el (diff-latest-backup-file): Declare as functions.

* obsolete/mlsupport.el (ml-previous-page): Fix typo.
(kill-to-end-of-line):
* obsolete/rnews.el (news-set-minor-modes): Remove non working
functions.
2007-11-25 16:48:31 +00:00
Reiner Steib
47b1ca2636 Move from ../gnus. Add hashcash payments to email. 2007-11-22 20:50:16 +00:00
Miles Bader
d4aa48db8e Merge from emacs--rel--22
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-937
2007-11-21 04:55:58 +00:00
Dan Nicolaescu
e8ffb999b9 * frame.el (msdos-mouse-p):
* generic-x.el (w32-shell-name):
* files.el (msdos-long-file-names, w32-long-file-name)
(msdos-long-file-names, dired-get-filename, dired-unmark)
(dired-do-flagged-delete, dos-8+3-filename, vms-read-directory)
(view-mode-disable):
* term/mac-win.el (mac-code-convert-string, mac-coerce-ae-data)
(mac-resume-apple-event, mac-font-panel-mode)
(mac-atsu-font-face-attributes, mac-ae-set-reply-parameter)
(mac-clear-font-name-table):
* term/pc-win.el (msdos-remember-default-colors)
(w16-set-clipboard-data, w16-get-clipboard-data):
* term/w32-win.el (w32-send-sys-command, w32-select-font)
(set-message-beep):
* w32-fns.el (set-message-beep, w32-get-clipboard-data)
(w32-get-locale-info, w32-get-valid-locale-ids)
(w32-set-clipboard-data):
* help-fns.el (ad-get-advice-info):
* font-lock.el (fast-lock-after-fontify-buffer)
(fast-lock-after-unfontify-buffer, fast-lock-mode)
(lazy-lock-after-fontify-buffer)
(lazy-lock-after-unfontify-buffer, lazy-lock-mode):
* net/browse-url.el (w32-shell-execute):
* dos-fns.el (int86, msdos-long-file-names):
* dos-w32.el (default-printer-name): Declare as functions.
2007-11-21 03:06:01 +00:00
Dan Nicolaescu
6d00e226c3 * progmodes/python.el (info-lookup-maybe-add-help):
* progmodes/ps-mode.el (doc-view-minor-mode):
* mail/emacsbug.el (Info-menu, Info-goto-node):
* emulation/viper-keym.el (viper-ex)
(viper-normalize-minor-mode-map-alist, viper-set-mode-vars-for):
* emulation/viper-cmd.el (widget-type, widget-button-press)
(viper-set-hooks):
* emacs-lisp/tcover-unsafep.el (unsafep-function):
* emacs-lisp/tcover-ses.el (ses-set-curcell, ses-update-cells)
(ses-load, ses-vector-delete, ses-create-header-string)
(ses-read-cell, ses-read-symbol, ses-command-hook, ses-jump):
* emacs-lisp/gulp.el (mail-subject, mail-send): Declare as
functions.

* url-mailto.el (mail-send-and-exit):
* url-http.el (url-dav-file-attributes):
* url-file.el (ange-ftp-set-passwd, ange-ftp-copy-file-internal):
(url-generate-unique-filename): Declare as functions.
2007-11-20 07:56:02 +00:00
Eli Zaretskii
cca246708a (rmail-current-subject-regexp): Allow more than one space after "Subject:". 2007-11-16 16:05:53 +00:00
Glenn Morris
78a4e22e89 (mail-extr-all-top-level-domains): Update domains. 2007-11-16 07:55:42 +00:00
Glenn Morris
98ede5d48a (mail-extr-all-top-level-domains): Update domains. 2007-11-16 07:54:30 +00:00
Miles Bader
f23d76bdef Merge from emacs--devo--0
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-283
2007-11-11 00:56:44 +00:00
Glenn Morris
2c28c5196e (footnote-numeric-regexp)
(footnote-english-upper-regexp, footnote-english-lower-regexp)
(footnote-roman-lower-regexp, footnote-roman-upper-regexp):
Match multi-character footnotes.
2007-11-01 03:40:50 +00:00
Glenn Morris
62b1cb943f (footnote-numeric-regexp)
(footnote-english-upper-regexp, footnote-english-lower-regexp)
(footnote-roman-lower-regexp, footnote-roman-upper-regexp):
Match multi-character footnotes.
2007-11-01 03:40:30 +00:00