diff options
| author | Karoly Lorentey | 2004-11-06 17:52:02 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2004-11-06 17:52:02 +0000 |
| commit | 65ea79492334e2ef7b5b4e0d23b6f68ba2f4d0bb (patch) | |
| tree | 853cf391ca1abda4f4ccd6fe8e7bb43f7c86ee08 /lisp/gnus | |
| parent | e0bc17abe6979d607e8de4684dddb96e53c60065 (diff) | |
| parent | 392cf16dd0ee9358f8af0cd0d8048b822456bbeb (diff) | |
| download | emacs-65ea79492334e2ef7b5b4e0d23b6f68ba2f4d0bb.tar.gz emacs-65ea79492334e2ef7b5b4e0d23b6f68ba2f4d0bb.zip | |
Merged in changes from CVS trunk.
Patches applied:
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-653
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-654
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-655
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-656
Update from CVS: lisp/man.el (Man-xref-normal-file): Fix help-echo.
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-657
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-658
Merge from gnus--rel--5.10
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-659
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-660
Merge from gnus--rel--5.10
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-661
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-662
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-663
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-664
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-665
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-666
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-667
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668
Merge from gnus--rel--5.10
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-669
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-670
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-671
Update from CVS
* miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-64
Update from CVS
* miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-65
Update from CVS
* miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-66
Update from CVS
* miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-67
Update from CVS
* miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-68
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-264
Diffstat (limited to 'lisp/gnus')
31 files changed, 380 insertions, 203 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 2c658a4c562..d7ebedc53f8 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,5 +1,140 @@ | |||
| 1 | 2004-11-04 Richard M. Stallman <rms@gnu.org> | ||
| 2 | |||
| 3 | * spam.el (spam group): Add :version. | ||
| 4 | |||
| 5 | * pgg-def.el (pgg group): Add :version. | ||
| 6 | |||
| 7 | 2004-11-04 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 8 | |||
| 9 | * gnus-art. (gnus-article-edit-article): Don't associate the | ||
| 10 | article buffer with a draft file. This is a temporary measure | ||
| 11 | against the 2004-08-22 change to gnus-article-edit-mode. | ||
| 12 | |||
| 13 | 2004-11-02 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 14 | |||
| 15 | * html2text.el (html2text-get-attr): Remove unused argument `tag'. | ||
| 16 | (html2text-format-tags): Remove unused variable `attr'. | ||
| 17 | |||
| 18 | * mm-util.el (mm-enrich-utf-8-by-mule-ucs): Fix cleaning of | ||
| 19 | after-load-alist. | ||
| 20 | |||
| 21 | * mm-util.el (mm-mime-mule-charset-alist): Add the windows-1251 | ||
| 22 | entry. From Ilya N. Golubev <gin@mo.msk.ru>. | ||
| 23 | (mm-enrich-utf-8-by-mule-ucs): New function run when Mule-UCS is | ||
| 24 | loaded under XEmacs. | ||
| 25 | (): Don't make duplicated entries in mm-mime-mule-charset-alist. | ||
| 26 | |||
| 27 | * mm-util.el (mm-coding-system-p): Return a coding-system. | ||
| 28 | (mm-mime-mule-charset-alist): Use shift_jis instead of | ||
| 29 | iso-2022-jp-2 for the katakana-jisx0201 mule charset; add new | ||
| 30 | entries for the mime charsets iso-2022-jp-3 and shift_jis. | ||
| 31 | (mm-coding-system-priorities): Use shift_jis and iso-8859-1 | ||
| 32 | instead of japanese-shift-jis and iso-latin-1 respectively in | ||
| 33 | order to share the default value with both Emacs and XEmacs-mule. | ||
| 34 | (mm-mule-charset-to-mime-charset): Make | ||
| 35 | mm-coding-system-priorities effective. | ||
| 36 | (mm-sort-coding-systems-predicate): Canonicalize coding-systems | ||
| 37 | while predicating of candidates upon the priorities. | ||
| 38 | |||
| 39 | 2004-11-01 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 40 | |||
| 41 | * gnus-msg.el (gnus-summary-resend-default-address): Add :version. | ||
| 42 | |||
| 43 | * tls.el (tls-process-connection-type, tls-success) | ||
| 44 | (tls-certtool-program): Add :version. | ||
| 45 | |||
| 46 | * starttls.el (starttls-gnutls-program, starttls-use-gnutls) | ||
| 47 | (starttls-extra-arguments, starttls-process-connection-type) | ||
| 48 | (starttls-connect, starttls-failure, starttls-success): | ||
| 49 | |||
| 50 | * spam-stat.el (spam-stat): Add :version. | ||
| 51 | |||
| 52 | * sieve.el (sieve): Add :version. | ||
| 53 | |||
| 54 | * sha1.el (sha1): Added :version. | ||
| 55 | (sha1-use-external): Removed redundant version. | ||
| 56 | |||
| 57 | * nnmail.el (nnmail-split-fancy-with-parent-ignore-groups) | ||
| 58 | (nnmail-cache-ignore-groups, nnmail-spool-hook) | ||
| 59 | (nnmail-split-fancy-match-partial-words) | ||
| 60 | (nnmail-split-lowercase-expanded): | ||
| 61 | |||
| 62 | * nndiary.el (nndiary): Add :version. | ||
| 63 | |||
| 64 | * mml2015.el (mml2015-unabbrev-trust-alist): Add :version. | ||
| 65 | |||
| 66 | * mml-sec.el (mml-default-sign-method) | ||
| 67 | (mml-default-encrypt-method, mml-signencrypt-style-alist): Add | ||
| 68 | :version. | ||
| 69 | |||
| 70 | * mm-uu.el (mm-uu-diff-groups-regexp): Add :version. | ||
| 71 | |||
| 72 | * mm-url.el (mm-url-use-external, mm-url-program) | ||
| 73 | (mm-url-arguments): Add :version. | ||
| 74 | |||
| 75 | * mm-decode.el (mm-inline-text-html-with-w3m-keymap) | ||
| 76 | (mm-attachment-file-modes, mm-decrypt-option) | ||
| 77 | (mm-w3m-safe-url-regexp): Add :version. | ||
| 78 | |||
| 79 | * message.el (message-cite-prefix-regexp) | ||
| 80 | (message-sendmail-envelope-from, message-minibuffer-local-map) | ||
| 81 | (message-user-fqdn, message-completion-alist): Add :version. | ||
| 82 | |||
| 83 | * gnus-win.el (gnus-configure-windows-hook) | ||
| 84 | (gnus-use-frames-on-any-display): Add :version. | ||
| 85 | |||
| 86 | * gnus-art.el (gnus-article-address-banner-alist) | ||
| 87 | (gnus-treat-unsplit-urls, gnus-treat-unfold-headers) | ||
| 88 | (gnus-treat-from-picon, gnus-treat-mail-picon) | ||
| 89 | (gnus-treat-x-pgp-sig): Add :version. | ||
| 90 | |||
| 91 | * gnus-sum.el (gnus-spam-mark, gnus-recent-mark) | ||
| 92 | (gnus-undownloaded-mark, gnus-summary-article-move-hook) | ||
| 93 | (gnus-summary-article-delete-hook) | ||
| 94 | (gnus-summary-display-while-building): Add :version. | ||
| 95 | |||
| 96 | * gnus-start.el (gnus-subscribe-newsgroup-hooks) | ||
| 97 | (gnus-get-top-new-news-hook):Add :version. | ||
| 98 | |||
| 99 | * gnus-srvr.el (gnus-server-agent-face, gnus-server-opened-face) | ||
| 100 | (gnus-server-closed-face, gnus-server-denied-face): Add :version. | ||
| 101 | |||
| 102 | * gnus-registry.el (gnus-registry): Add :version. | ||
| 103 | |||
| 104 | * gnus-spec.el (gnus-use-correct-string-widths) | ||
| 105 | (gnus-make-format-preserve-properties): Add :version. | ||
| 106 | |||
| 107 | * gnus.el (gnus-group-charter-alist) | ||
| 108 | (gnus-group-fetch-control-use-browse-url) | ||
| 109 | (gnus-install-group-spam-parameters): Add :version. | ||
| 110 | |||
| 111 | * gnus-diary.el (gnus-diary): Add :version. | ||
| 112 | |||
| 113 | * gnus-delay.el (gnus-delay): Add :version. | ||
| 114 | |||
| 115 | * gnus-cite.el (gnus-cite-unsightly-citation-regexp) | ||
| 116 | (gnus-cite-ignore-quoted-from, gnus-cite-attribution-face) | ||
| 117 | (gnus-cite-blank-line-after-header, gnus-article-boring-faces): | ||
| 118 | Add :version. | ||
| 119 | |||
| 120 | * gnus-agent.el (gnus-agent-max-fetch-size) | ||
| 121 | (gnus-agent-enable-expiration, gnus-agent-queue-mail) | ||
| 122 | (gnus-agent-prompt-send-queue): Add :version. | ||
| 123 | |||
| 124 | * deuglify.el (gnus-outlook-deuglify): Add :version. | ||
| 125 | |||
| 126 | * html2text.el: Beautify code. Improve doc strings. Some checkdoc | ||
| 127 | cleanup. | ||
| 128 | (html2text-get-attr, html2text-fix-paragraph): Simplify code. | ||
| 129 | (html2text-format-tag-list): Added "strong" and "em". From | ||
| 130 | "Alfred M. Szmidt" <ams@kemisten.nu> (tiny change). | ||
| 131 | |||
| 1 | 2004-10-29 Katsumi Yamaoka <yamaoka@jpl.org> | 132 | 2004-10-29 Katsumi Yamaoka <yamaoka@jpl.org> |
| 2 | 133 | ||
| 134 | * gnus-msg.el (gnus-configure-posting-styles): Work with empty | ||
| 135 | signature file. Suggested by Manoj Srivastava | ||
| 136 | <srivasta@golden-gryphon.com>. | ||
| 137 | |||
| 3 | * mm-util.el (mm-coding-system-priorities): Prefer iso-8859-1 than | 138 | * mm-util.el (mm-coding-system-priorities): Prefer iso-8859-1 than |
| 4 | iso-2022-jp even in the Japanese language environment. Suggested | 139 | iso-2022-jp even in the Japanese language environment. Suggested |
| 5 | by Jason Rumney <jasonr@gnu.org>. | 140 | by Jason Rumney <jasonr@gnu.org>. |
diff --git a/lisp/gnus/deuglify.el b/lisp/gnus/deuglify.el index 07e630d793b..4fe1001a050 100644 --- a/lisp/gnus/deuglify.el +++ b/lisp/gnus/deuglify.el | |||
| @@ -230,7 +230,8 @@ | |||
| 230 | ;;; User Customizable Variables: | 230 | ;;; User Customizable Variables: |
| 231 | 231 | ||
| 232 | (defgroup gnus-outlook-deuglify nil | 232 | (defgroup gnus-outlook-deuglify nil |
| 233 | "Deuglify articles generated by broken user agents like MS Outlook (Express).") | 233 | "Deuglify articles generated by broken user agents like MS Outlook (Express)." |
| 234 | :version "21.4") | ||
| 234 | 235 | ||
| 235 | ;;;###autoload | 236 | ;;;###autoload |
| 236 | (defcustom gnus-outlook-deuglify-unwrap-min 45 | 237 | (defcustom gnus-outlook-deuglify-unwrap-min 45 |
diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el index c62460946ab..23fcbbde5df 100644 --- a/lisp/gnus/gnus-agent.el +++ b/lisp/gnus/gnus-agent.el | |||
| @@ -160,6 +160,7 @@ read articles as they would just be downloaded again." | |||
| 160 | "Chunk size for `gnus-agent-fetch-session'. | 160 | "Chunk size for `gnus-agent-fetch-session'. |
| 161 | The function will split its article fetches into chunks smaller than | 161 | The function will split its article fetches into chunks smaller than |
| 162 | this limit." | 162 | this limit." |
| 163 | :version "21.4" | ||
| 163 | :group 'gnus-agent | 164 | :group 'gnus-agent |
| 164 | :type 'integer) | 165 | :type 'integer) |
| 165 | 166 | ||
| @@ -170,6 +171,7 @@ contents from a group's local storage. This value may be overridden | |||
| 170 | to disable expiration in specific categories, topics, and groups. Of | 171 | to disable expiration in specific categories, topics, and groups. Of |
| 171 | course, you could change gnus-agent-enable-expiration to DISABLE then | 172 | course, you could change gnus-agent-enable-expiration to DISABLE then |
| 172 | enable expiration per categories, topics, and groups." | 173 | enable expiration per categories, topics, and groups." |
| 174 | :version "21.4" | ||
| 173 | :group 'gnus-agent | 175 | :group 'gnus-agent |
| 174 | :type '(radio (const :format "Enable " ENABLE) | 176 | :type '(radio (const :format "Enable " ENABLE) |
| 175 | (const :format "Disable " DISABLE))) | 177 | (const :format "Disable " DISABLE))) |
| @@ -195,6 +197,7 @@ See Info node `(gnus)Server Buffer'." | |||
| 195 | "Whether and when outgoing mail should be queued by the agent. | 197 | "Whether and when outgoing mail should be queued by the agent. |
| 196 | When `always', always queue outgoing mail. When nil, never | 198 | When `always', always queue outgoing mail. When nil, never |
| 197 | queue. Otherwise, queue if and only if unplugged." | 199 | queue. Otherwise, queue if and only if unplugged." |
| 200 | :version "21.4" | ||
| 198 | :group 'gnus-agent | 201 | :group 'gnus-agent |
| 199 | :type '(radio (const :format "Always" always) | 202 | :type '(radio (const :format "Always" always) |
| 200 | (const :format "Never" nil) | 203 | (const :format "Never" nil) |
| @@ -203,6 +206,7 @@ queue. Otherwise, queue if and only if unplugged." | |||
| 203 | (defcustom gnus-agent-prompt-send-queue nil | 206 | (defcustom gnus-agent-prompt-send-queue nil |
| 204 | "If non-nil, `gnus-group-send-queue' will prompt if called when | 207 | "If non-nil, `gnus-group-send-queue' will prompt if called when |
| 205 | unplugged." | 208 | unplugged." |
| 209 | :version "21.4" | ||
| 206 | :group 'gnus-agent | 210 | :group 'gnus-agent |
| 207 | :type 'boolean) | 211 | :type 'boolean) |
| 208 | 212 | ||
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 7a365d81a2c..c0266300983 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el | |||
| @@ -318,6 +318,7 @@ advertisements. For example: | |||
| 318 | (symbol :tag "Item in `gnus-article-banner-alist'" none) | 318 | (symbol :tag "Item in `gnus-article-banner-alist'" none) |
| 319 | regexp | 319 | regexp |
| 320 | (const :tag "None" nil)))) | 320 | (const :tag "None" nil)))) |
| 321 | :version "21.4" | ||
| 321 | :group 'gnus-article-washing) | 322 | :group 'gnus-article-washing) |
| 322 | 323 | ||
| 323 | (defcustom gnus-emphasis-alist | 324 | (defcustom gnus-emphasis-alist |
| @@ -920,6 +921,7 @@ See Info node `(gnus)Customizing Articles' for details." | |||
| 920 | "Remove newlines from within URLs. | 921 | "Remove newlines from within URLs. |
| 921 | Valid values are nil, t, `head', `last', an integer or a predicate. | 922 | Valid values are nil, t, `head', `last', an integer or a predicate. |
| 922 | See Info node `(gnus)Customizing Articles' for details." | 923 | See Info node `(gnus)Customizing Articles' for details." |
| 924 | :version "21.4" | ||
| 923 | :group 'gnus-article-treat | 925 | :group 'gnus-article-treat |
| 924 | :link '(custom-manual "(gnus)Customizing Articles") | 926 | :link '(custom-manual "(gnus)Customizing Articles") |
| 925 | :type gnus-article-treat-custom) | 927 | :type gnus-article-treat-custom) |
| @@ -1124,6 +1126,7 @@ See Info node `(gnus)Customizing Articles' for details." | |||
| 1124 | "Unfold folded header lines. | 1126 | "Unfold folded header lines. |
| 1125 | Valid values are nil, t, `head', `last', an integer or a predicate. | 1127 | Valid values are nil, t, `head', `last', an integer or a predicate. |
| 1126 | See Info node `(gnus)Customizing Articles' for details." | 1128 | See Info node `(gnus)Customizing Articles' for details." |
| 1129 | :version "21.4" | ||
| 1127 | :group 'gnus-article-treat | 1130 | :group 'gnus-article-treat |
| 1128 | :link '(custom-manual "(gnus)Customizing Articles") | 1131 | :link '(custom-manual "(gnus)Customizing Articles") |
| 1129 | :type gnus-article-treat-custom) | 1132 | :type gnus-article-treat-custom) |
| @@ -1238,6 +1241,7 @@ See Info node `(gnus)Customizing Articles' and Info node | |||
| 1238 | Valid values are nil, t, `head', `last', an integer or a predicate. | 1241 | Valid values are nil, t, `head', `last', an integer or a predicate. |
| 1239 | See Info node `(gnus)Customizing Articles' and Info node | 1242 | See Info node `(gnus)Customizing Articles' and Info node |
| 1240 | `(gnus)Picons' for details." | 1243 | `(gnus)Picons' for details." |
| 1244 | :version "21.4" | ||
| 1241 | :group 'gnus-article-treat | 1245 | :group 'gnus-article-treat |
| 1242 | :group 'gnus-picon | 1246 | :group 'gnus-picon |
| 1243 | :link '(custom-manual "(gnus)Customizing Articles") | 1247 | :link '(custom-manual "(gnus)Customizing Articles") |
| @@ -1253,6 +1257,7 @@ See Info node `(gnus)Customizing Articles' and Info node | |||
| 1253 | Valid values are nil, t, `head', `last', an integer or a predicate. | 1257 | Valid values are nil, t, `head', `last', an integer or a predicate. |
| 1254 | See Info node `(gnus)Customizing Articles' and Info node | 1258 | See Info node `(gnus)Customizing Articles' and Info node |
| 1255 | `(gnus)Picons' for details." | 1259 | `(gnus)Picons' for details." |
| 1260 | :version "21.4" | ||
| 1256 | :group 'gnus-article-treat | 1261 | :group 'gnus-article-treat |
| 1257 | :group 'gnus-picon | 1262 | :group 'gnus-picon |
| 1258 | :link '(custom-manual "(gnus)Customizing Articles") | 1263 | :link '(custom-manual "(gnus)Customizing Articles") |
| @@ -1338,6 +1343,7 @@ See Info node `(gnus)Customizing Articles' for details." | |||
| 1338 | To automatically treat X-PGP-Sig, set it to head. | 1343 | To automatically treat X-PGP-Sig, set it to head. |
| 1339 | Valid values are nil, t, `head', `last', an integer or a predicate. | 1344 | Valid values are nil, t, `head', `last', an integer or a predicate. |
| 1340 | See Info node `(gnus)Customizing Articles' for details." | 1345 | See Info node `(gnus)Customizing Articles' for details." |
| 1346 | :version "21.4" | ||
| 1341 | :group 'gnus-article-treat | 1347 | :group 'gnus-article-treat |
| 1342 | :group 'mime-security | 1348 | :group 'mime-security |
| 1343 | :link '(custom-manual "(gnus)Customizing Articles") | 1349 | :link '(custom-manual "(gnus)Customizing Articles") |
| @@ -5645,7 +5651,10 @@ groups." | |||
| 5645 | "Start editing the contents of the current article buffer." | 5651 | "Start editing the contents of the current article buffer." |
| 5646 | (let ((winconf (current-window-configuration))) | 5652 | (let ((winconf (current-window-configuration))) |
| 5647 | (set-buffer gnus-article-buffer) | 5653 | (set-buffer gnus-article-buffer) |
| 5648 | (gnus-article-edit-mode) | 5654 | (let ((message-auto-save-directory |
| 5655 | ;; Don't associate the article buffer with a draft file. | ||
| 5656 | nil)) | ||
| 5657 | (gnus-article-edit-mode)) | ||
| 5649 | (funcall start-func) | 5658 | (funcall start-func) |
| 5650 | (set-buffer-modified-p nil) | 5659 | (set-buffer-modified-p nil) |
| 5651 | (gnus-configure-windows 'edit-article) | 5660 | (gnus-configure-windows 'edit-article) |
diff --git a/lisp/gnus/gnus-cite.el b/lisp/gnus/gnus-cite.el index bf9f5863428..5306f3b17bf 100644 --- a/lisp/gnus/gnus-cite.el +++ b/lisp/gnus/gnus-cite.el | |||
| @@ -124,6 +124,7 @@ The text matching the first grouping will be used as a button." | |||
| 124 | (defcustom gnus-cite-unsightly-citation-regexp | 124 | (defcustom gnus-cite-unsightly-citation-regexp |
| 125 | "^-----Original Message-----\nFrom: \\(.+\n\\)+\n" | 125 | "^-----Original Message-----\nFrom: \\(.+\n\\)+\n" |
| 126 | "Regexp matching Microsoft-type rest-of-message citations." | 126 | "Regexp matching Microsoft-type rest-of-message citations." |
| 127 | :version "21.4" | ||
| 127 | :group 'gnus-cite | 128 | :group 'gnus-cite |
| 128 | :type 'regexp) | 129 | :type 'regexp) |
| 129 | 130 | ||
| @@ -131,6 +132,7 @@ The text matching the first grouping will be used as a button." | |||
| 131 | "Non-nil means don't regard lines beginning with \">From \" as cited text. | 132 | "Non-nil means don't regard lines beginning with \">From \" as cited text. |
| 132 | Those lines may have been quoted by MTAs in order not to mix up with | 133 | Those lines may have been quoted by MTAs in order not to mix up with |
| 133 | the envelope From line." | 134 | the envelope From line." |
| 135 | :version "21.4" | ||
| 134 | :group 'gnus-cite | 136 | :group 'gnus-cite |
| 135 | :type 'boolean) | 137 | :type 'boolean) |
| 136 | 138 | ||
| @@ -141,6 +143,7 @@ the envelope From line." | |||
| 141 | (defcustom gnus-cite-attribution-face 'gnus-cite-attribution-face | 143 | (defcustom gnus-cite-attribution-face 'gnus-cite-attribution-face |
| 142 | "Face used for attribution lines. | 144 | "Face used for attribution lines. |
| 143 | It is merged with the face for the cited text belonging to the attribution." | 145 | It is merged with the face for the cited text belonging to the attribution." |
| 146 | :version "21.4" | ||
| 144 | :group 'gnus-cite | 147 | :group 'gnus-cite |
| 145 | :type 'face) | 148 | :type 'face) |
| 146 | 149 | ||
| @@ -278,7 +281,6 @@ This should make it easier to see who wrote what." | |||
| 278 | 281 | ||
| 279 | (defcustom gnus-cite-blank-line-after-header t | 282 | (defcustom gnus-cite-blank-line-after-header t |
| 280 | "If non-nil, put a blank line between the citation header and the button." | 283 | "If non-nil, put a blank line between the citation header and the button." |
| 281 | :version "21.4" | ||
| 282 | :group 'gnus-cite | 284 | :group 'gnus-cite |
| 283 | :type 'boolean) | 285 | :type 'boolean) |
| 284 | 286 | ||
| @@ -290,7 +292,6 @@ This should make it easier to see who wrote what." | |||
| 290 | If an article has more pages below the one you are looking at, but | 292 | If an article has more pages below the one you are looking at, but |
| 291 | nothing on those pages is a word of at least three letters that is not | 293 | nothing on those pages is a word of at least three letters that is not |
| 292 | in a boring face, then the pages will be skipped." | 294 | in a boring face, then the pages will be skipped." |
| 293 | :version "21.4" | ||
| 294 | :type '(repeat face) | 295 | :type '(repeat face) |
| 295 | :group 'gnus-article-hiding) | 296 | :group 'gnus-article-hiding) |
| 296 | 297 | ||
diff --git a/lisp/gnus/gnus-delay.el b/lisp/gnus/gnus-delay.el index ee431076fad..8a566e3e5d8 100644 --- a/lisp/gnus/gnus-delay.el +++ b/lisp/gnus/gnus-delay.el | |||
| @@ -41,6 +41,7 @@ | |||
| 41 | ;;;###autoload | 41 | ;;;###autoload |
| 42 | (defgroup gnus-delay nil | 42 | (defgroup gnus-delay nil |
| 43 | "Arrange for sending postings later." | 43 | "Arrange for sending postings later." |
| 44 | :version "21.4" | ||
| 44 | :group 'gnus) | 45 | :group 'gnus) |
| 45 | 46 | ||
| 46 | (defcustom gnus-delay-group "delayed" | 47 | (defcustom gnus-delay-group "delayed" |
diff --git a/lisp/gnus/gnus-diary.el b/lisp/gnus/gnus-diary.el index e82d77fa58b..7d2df362bbc 100644 --- a/lisp/gnus/gnus-diary.el +++ b/lisp/gnus/gnus-diary.el | |||
| @@ -102,7 +102,8 @@ | |||
| 102 | (require 'gnus-art) | 102 | (require 'gnus-art) |
| 103 | 103 | ||
| 104 | (defgroup gnus-diary nil | 104 | (defgroup gnus-diary nil |
| 105 | "Utilities on top of the nndiary backend for Gnus.") | 105 | "Utilities on top of the nndiary backend for Gnus." |
| 106 | :version "21.4") | ||
| 106 | 107 | ||
| 107 | (defcustom gnus-diary-summary-line-format "%U%R%z %uD: %(%s%) (%ud)\n" | 108 | (defcustom gnus-diary-summary-line-format "%U%R%z %uD: %(%s%) (%ud)\n" |
| 108 | "*Summary line format for nndiary groups." | 109 | "*Summary line format for nndiary groups." |
diff --git a/lisp/gnus/gnus-msg.el b/lisp/gnus/gnus-msg.el index 7dcef4b813b..6b093480940 100644 --- a/lisp/gnus/gnus-msg.el +++ b/lisp/gnus/gnus-msg.el | |||
| @@ -281,6 +281,7 @@ If nil, Gnus will never ask for confirmation if replying to mail." | |||
| 281 | "If non-nil, Gnus tries to suggest a default address to resend to. | 281 | "If non-nil, Gnus tries to suggest a default address to resend to. |
| 282 | If nil, the address field will always be empty after invoking | 282 | If nil, the address field will always be empty after invoking |
| 283 | `gnus-summary-resend-message'." | 283 | `gnus-summary-resend-message'." |
| 284 | :version "21.4" | ||
| 284 | :group 'gnus-message | 285 | :group 'gnus-message |
| 285 | :type 'boolean) | 286 | :type 'boolean) |
| 286 | 287 | ||
| @@ -1871,8 +1872,9 @@ this is a reply." | |||
| 1871 | (setq v (with-temp-buffer | 1872 | (setq v (with-temp-buffer |
| 1872 | (insert-file-contents v) | 1873 | (insert-file-contents v) |
| 1873 | (goto-char (point-max)) | 1874 | (goto-char (point-max)) |
| 1874 | (while (bolp) | 1875 | (skip-chars-backward "\n") |
| 1875 | (delete-char -1)) | 1876 | (delete-region (+ (point) (if (bolp) 0 1)) |
| 1877 | (point-max)) | ||
| 1876 | (buffer-string)))) | 1878 | (buffer-string)))) |
| 1877 | (setq results (delq (assoc element results) results)) | 1879 | (setq results (delq (assoc element results) results)) |
| 1878 | (push (cons element v) results)))) | 1880 | (push (cons element v) results)))) |
diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el index 841f0057566..046114cbe24 100644 --- a/lisp/gnus/gnus-registry.el +++ b/lisp/gnus/gnus-registry.el | |||
| @@ -66,6 +66,7 @@ | |||
| 66 | 66 | ||
| 67 | (defgroup gnus-registry nil | 67 | (defgroup gnus-registry nil |
| 68 | "The Gnus registry." | 68 | "The Gnus registry." |
| 69 | :version "21.4" | ||
| 69 | :group 'gnus) | 70 | :group 'gnus) |
| 70 | 71 | ||
| 71 | (defvar gnus-registry-hashtb nil | 72 | (defvar gnus-registry-hashtb nil |
diff --git a/lisp/gnus/gnus-spec.el b/lisp/gnus/gnus-spec.el index dc93fef5176..1177df4731a 100644 --- a/lisp/gnus/gnus-spec.el +++ b/lisp/gnus/gnus-spec.el | |||
| @@ -32,12 +32,14 @@ | |||
| 32 | 32 | ||
| 33 | (defcustom gnus-use-correct-string-widths (featurep 'xemacs) | 33 | (defcustom gnus-use-correct-string-widths (featurep 'xemacs) |
| 34 | "*If non-nil, use correct functions for dealing with wide characters." | 34 | "*If non-nil, use correct functions for dealing with wide characters." |
| 35 | :version "21.4" | ||
| 35 | :group 'gnus-format | 36 | :group 'gnus-format |
| 36 | :type 'boolean) | 37 | :type 'boolean) |
| 37 | 38 | ||
| 38 | (defcustom gnus-make-format-preserve-properties (featurep 'xemacs) | 39 | (defcustom gnus-make-format-preserve-properties (featurep 'xemacs) |
| 39 | "*If non-nil, use a replacement `format' function which preserves | 40 | "*If non-nil, use a replacement `format' function which preserves |
| 40 | text properties. This is only needed on XEmacs, as FSF Emacs does this anyway." | 41 | text properties. This is only needed on XEmacs, as FSF Emacs does this anyway." |
| 42 | :version "21.4" | ||
| 41 | :group 'gnus-format | 43 | :group 'gnus-format |
| 42 | :type 'boolean) | 44 | :type 'boolean) |
| 43 | 45 | ||
diff --git a/lisp/gnus/gnus-srvr.el b/lisp/gnus/gnus-srvr.el index 7fef378722a..d42c5d71cfd 100644 --- a/lisp/gnus/gnus-srvr.el +++ b/lisp/gnus/gnus-srvr.el | |||
| @@ -205,21 +205,25 @@ If nil, a faster, but more primitive, buffer is used instead." | |||
| 205 | 205 | ||
| 206 | (defcustom gnus-server-agent-face 'gnus-server-agent-face | 206 | (defcustom gnus-server-agent-face 'gnus-server-agent-face |
| 207 | "Face name to use on AGENTIZED servers." | 207 | "Face name to use on AGENTIZED servers." |
| 208 | :version "21.4" | ||
| 208 | :group 'gnus-server-visual | 209 | :group 'gnus-server-visual |
| 209 | :type 'face) | 210 | :type 'face) |
| 210 | 211 | ||
| 211 | (defcustom gnus-server-opened-face 'gnus-server-opened-face | 212 | (defcustom gnus-server-opened-face 'gnus-server-opened-face |
| 212 | "Face name to use on OPENED servers." | 213 | "Face name to use on OPENED servers." |
| 214 | :version "21.4" | ||
| 213 | :group 'gnus-server-visual | 215 | :group 'gnus-server-visual |
| 214 | :type 'face) | 216 | :type 'face) |
| 215 | 217 | ||
| 216 | (defcustom gnus-server-closed-face 'gnus-server-closed-face | 218 | (defcustom gnus-server-closed-face 'gnus-server-closed-face |
| 217 | "Face name to use on CLOSED servers." | 219 | "Face name to use on CLOSED servers." |
| 220 | :version "21.4" | ||
| 218 | :group 'gnus-server-visual | 221 | :group 'gnus-server-visual |
| 219 | :type 'face) | 222 | :type 'face) |
| 220 | 223 | ||
| 221 | (defcustom gnus-server-denied-face 'gnus-server-denied-face | 224 | (defcustom gnus-server-denied-face 'gnus-server-denied-face |
| 222 | "Face name to use on DENIED servers." | 225 | "Face name to use on DENIED servers." |
| 226 | :version "21.4" | ||
| 223 | :group 'gnus-server-visual | 227 | :group 'gnus-server-visual |
| 224 | :type 'face) | 228 | :type 'face) |
| 225 | 229 | ||
diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el index 971124ba831..81ca22a87ad 100644 --- a/lisp/gnus/gnus-start.el +++ b/lisp/gnus/gnus-start.el | |||
| @@ -299,6 +299,7 @@ claim them." | |||
| 299 | (defcustom gnus-subscribe-newsgroup-hooks nil | 299 | (defcustom gnus-subscribe-newsgroup-hooks nil |
| 300 | "*Hooks run after you subscribe to a new group. | 300 | "*Hooks run after you subscribe to a new group. |
| 301 | The hooks will be called with new group's name as argument." | 301 | The hooks will be called with new group's name as argument." |
| 302 | :version "21.4" | ||
| 302 | :group 'gnus-group-new | 303 | :group 'gnus-group-new |
| 303 | :type 'hook) | 304 | :type 'hook) |
| 304 | 305 | ||
| @@ -405,6 +406,7 @@ This hook is called as the first thing when Gnus is started." | |||
| 405 | 406 | ||
| 406 | (defcustom gnus-get-top-new-news-hook nil | 407 | (defcustom gnus-get-top-new-news-hook nil |
| 407 | "A hook run just before Gnus checks for new news globally." | 408 | "A hook run just before Gnus checks for new news globally." |
| 409 | :version "21.4" | ||
| 408 | :group 'gnus-group-new | 410 | :group 'gnus-group-new |
| 409 | :type 'hook) | 411 | :type 'hook) |
| 410 | 412 | ||
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el index 6ce2f55e2b7..5f2c2d7aeb1 100644 --- a/lisp/gnus/gnus-sum.el +++ b/lisp/gnus/gnus-sum.el | |||
| @@ -469,6 +469,7 @@ this variable specifies group names." | |||
| 469 | 469 | ||
| 470 | (defcustom gnus-spam-mark ?$ | 470 | (defcustom gnus-spam-mark ?$ |
| 471 | "*Mark used for spam articles." | 471 | "*Mark used for spam articles." |
| 472 | :version "21.4" | ||
| 472 | :group 'gnus-summary-marks | 473 | :group 'gnus-summary-marks |
| 473 | :type 'character) | 474 | :type 'character) |
| 474 | 475 | ||
| @@ -505,6 +506,7 @@ this variable specifies group names." | |||
| 505 | 506 | ||
| 506 | (defcustom gnus-recent-mark ?N | 507 | (defcustom gnus-recent-mark ?N |
| 507 | "*Mark used for articles that are recent." | 508 | "*Mark used for articles that are recent." |
| 509 | :version "21.4" | ||
| 508 | :group 'gnus-summary-marks | 510 | :group 'gnus-summary-marks |
| 509 | :type 'character) | 511 | :type 'character) |
| 510 | 512 | ||
| @@ -552,6 +554,7 @@ this variable specifies group names." | |||
| 552 | 554 | ||
| 553 | (defcustom gnus-undownloaded-mark ?- | 555 | (defcustom gnus-undownloaded-mark ?- |
| 554 | "*Mark used for articles that weren't downloaded." | 556 | "*Mark used for articles that weren't downloaded." |
| 557 | :version "21.4" | ||
| 555 | :group 'gnus-summary-marks | 558 | :group 'gnus-summary-marks |
| 556 | :type 'character) | 559 | :type 'character) |
| 557 | 560 | ||
| @@ -890,16 +893,19 @@ automatically when it is selected." | |||
| 890 | 893 | ||
| 891 | (defcustom gnus-summary-article-move-hook nil | 894 | (defcustom gnus-summary-article-move-hook nil |
| 892 | "*A hook called after an article is moved, copied, respooled, or crossposted." | 895 | "*A hook called after an article is moved, copied, respooled, or crossposted." |
| 896 | :version "21.4" | ||
| 893 | :group 'gnus-summary | 897 | :group 'gnus-summary |
| 894 | :type 'hook) | 898 | :type 'hook) |
| 895 | 899 | ||
| 896 | (defcustom gnus-summary-article-delete-hook nil | 900 | (defcustom gnus-summary-article-delete-hook nil |
| 897 | "*A hook called after an article is deleted." | 901 | "*A hook called after an article is deleted." |
| 902 | :version "21.4" | ||
| 898 | :group 'gnus-summary | 903 | :group 'gnus-summary |
| 899 | :type 'hook) | 904 | :type 'hook) |
| 900 | 905 | ||
| 901 | (defcustom gnus-summary-article-expire-hook nil | 906 | (defcustom gnus-summary-article-expire-hook nil |
| 902 | "*A hook called after an article is expired." | 907 | "*A hook called after an article is expired." |
| 908 | :version "21.4" | ||
| 903 | :group 'gnus-summary | 909 | :group 'gnus-summary |
| 904 | :type 'hook) | 910 | :type 'hook) |
| 905 | 911 | ||
| @@ -9178,6 +9184,7 @@ If nil, use to the current newsgroup method." | |||
| 9178 | "If non-nil, show and update the summary buffer as it's being built. | 9184 | "If non-nil, show and update the summary buffer as it's being built. |
| 9179 | If the value is t, update the buffer after every line is inserted. If | 9185 | If the value is t, update the buffer after every line is inserted. If |
| 9180 | the value is an integer (N), update the display every N lines." | 9186 | the value is an integer (N), update the display every N lines." |
| 9187 | :version "21.4" | ||
| 9181 | :group 'gnus-thread | 9188 | :group 'gnus-thread |
| 9182 | :type '(choice (const :tag "off" nil) | 9189 | :type '(choice (const :tag "off" nil) |
| 9183 | number | 9190 | number |
diff --git a/lisp/gnus/gnus-win.el b/lisp/gnus/gnus-win.el index 8de4673fddc..554c9dc3437 100644 --- a/lisp/gnus/gnus-win.el +++ b/lisp/gnus/gnus-win.el | |||
| @@ -62,6 +62,7 @@ | |||
| 62 | "*If non-nil, frames on all displays will be considered useable by Gnus. | 62 | "*If non-nil, frames on all displays will be considered useable by Gnus. |
| 63 | When nil, only frames on the same display as the selected frame will be | 63 | When nil, only frames on the same display as the selected frame will be |
| 64 | used to display Gnus windows." | 64 | used to display Gnus windows." |
| 65 | :version "21.4" | ||
| 65 | :group 'gnus-windows | 66 | :group 'gnus-windows |
| 66 | :type 'boolean) | 67 | :type 'boolean) |
| 67 | 68 | ||
| @@ -198,6 +199,7 @@ See the Gnus manual for an explanation of the syntax used.") | |||
| 198 | 199 | ||
| 199 | (defcustom gnus-configure-windows-hook nil | 200 | (defcustom gnus-configure-windows-hook nil |
| 200 | "*A hook called when configuring windows." | 201 | "*A hook called when configuring windows." |
| 202 | :version "21.4" | ||
| 201 | :group 'gnus-windows | 203 | :group 'gnus-windows |
| 202 | :type 'hook) | 204 | :type 'hook) |
| 203 | 205 | ||
diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el index bff1c3bba2f..c8dc878eacd 100644 --- a/lisp/gnus/gnus.el +++ b/lisp/gnus/gnus.el | |||
| @@ -1314,6 +1314,7 @@ If the default site is too slow, try one of these: | |||
| 1314 | (gnus-replace-in-string name "\\." "-") "-charter.html"))) | 1314 | (gnus-replace-in-string name "\\." "-") "-charter.html"))) |
| 1315 | "*An alist of (HIERARCHY . FORM) pairs used to construct the URL of a charter. | 1315 | "*An alist of (HIERARCHY . FORM) pairs used to construct the URL of a charter. |
| 1316 | When FORM is evaluated `name' is bound to the name of the group." | 1316 | When FORM is evaluated `name' is bound to the name of the group." |
| 1317 | :version "21.4" | ||
| 1317 | :group 'gnus-group-various | 1318 | :group 'gnus-group-various |
| 1318 | :type '(repeat (cons (string :tag "Hierarchy") (sexp :tag "Form")))) | 1319 | :type '(repeat (cons (string :tag "Hierarchy") (sexp :tag "Form")))) |
| 1319 | 1320 | ||
| @@ -1321,6 +1322,7 @@ When FORM is evaluated `name' is bound to the name of the group." | |||
| 1321 | "*Non-nil means that control messages are displayed using `browse-url'. | 1322 | "*Non-nil means that control messages are displayed using `browse-url'. |
| 1322 | Otherwise they are fetched with ange-ftp and displayed in an ephemeral | 1323 | Otherwise they are fetched with ange-ftp and displayed in an ephemeral |
| 1323 | group." | 1324 | group." |
| 1325 | :version "21.4" | ||
| 1324 | :group 'gnus-group-various | 1326 | :group 'gnus-group-various |
| 1325 | :type 'boolean) | 1327 | :type 'boolean) |
| 1326 | 1328 | ||
| @@ -1788,6 +1790,7 @@ total number of articles in the group.") | |||
| 1788 | (defcustom gnus-install-group-spam-parameters t | 1790 | (defcustom gnus-install-group-spam-parameters t |
| 1789 | "*Disable the group parameters for spam detection. | 1791 | "*Disable the group parameters for spam detection. |
| 1790 | Enable if `G c' in XEmacs is giving you trouble, and make sure to submit a bug report." | 1792 | Enable if `G c' in XEmacs is giving you trouble, and make sure to submit a bug report." |
| 1793 | :version "21.4" | ||
| 1791 | :type 'boolean | 1794 | :type 'boolean |
| 1792 | :group 'gnus-start) | 1795 | :group 'gnus-start) |
| 1793 | 1796 | ||
diff --git a/lisp/gnus/html2text.el b/lisp/gnus/html2text.el index 31d1869c695..ef05af9bae6 100644 --- a/lisp/gnus/html2text.el +++ b/lisp/gnus/html2text.el | |||
| @@ -24,11 +24,11 @@ | |||
| 24 | 24 | ||
| 25 | ;; These functions provide a simple way to wash/clean html infected | 25 | ;; These functions provide a simple way to wash/clean html infected |
| 26 | ;; mails. Definitely do not work in all cases, but some improvement | 26 | ;; mails. Definitely do not work in all cases, but some improvement |
| 27 | ;; in readability is generally obtained. Formatting is only done in | 27 | ;; in readability is generally obtained. Formatting is only done in |
| 28 | ;; the buffer, so the next time you enter the article it will be | 28 | ;; the buffer, so the next time you enter the article it will be |
| 29 | ;; "re-htmlized". | 29 | ;; "re-htmlized". |
| 30 | ;; | 30 | ;; |
| 31 | ;; The main function is "html2text" | 31 | ;; The main function is `html2text'. |
| 32 | 32 | ||
| 33 | ;;; Code: | 33 | ;;; Code: |
| 34 | 34 | ||
| @@ -47,9 +47,9 @@ | |||
| 47 | "The map of entity to text. | 47 | "The map of entity to text. |
| 48 | 48 | ||
| 49 | This is an alist were each element is a dotted pair consisting of an | 49 | This is an alist were each element is a dotted pair consisting of an |
| 50 | old string, and a replacement string. This replacement is done by the | 50 | old string, and a replacement string. This replacement is done by the |
| 51 | function \"html2text-substitute\" which basically performs a | 51 | function `html2text-substitute' which basically performs a |
| 52 | replace-string operation for every element in the list. This is | 52 | `replace-string' operation for every element in the list. This is |
| 53 | completely verbatim - without any use of REGEXP.") | 53 | completely verbatim - without any use of REGEXP.") |
| 54 | 54 | ||
| 55 | (defvar html2text-remove-tag-list | 55 | (defvar html2text-remove-tag-list |
| @@ -57,11 +57,11 @@ completely verbatim - without any use of REGEXP.") | |||
| 57 | "A list of removable tags. | 57 | "A list of removable tags. |
| 58 | 58 | ||
| 59 | This is a list of tags which should be removed, without any | 59 | This is a list of tags which should be removed, without any |
| 60 | formatting. Observe that if you the tags in the list are presented | 60 | formatting. Note that tags in the list are presented *without* |
| 61 | *without* any \"<\" or \">\". All occurences of a tag appearing in | 61 | any \"<\" or \">\". All occurences of a tag appearing in this |
| 62 | this list are removed, irrespective of whether it is a closing or | 62 | list are removed, irrespective of whether it is a closing or |
| 63 | opening tag, or if the tag has additional attributes. The actual | 63 | opening tag, or if the tag has additional attributes. The |
| 64 | deletion is done by the function \"html2text-remove-tags\". | 64 | deletion is done by the function `html2text-remove-tags'. |
| 65 | 65 | ||
| 66 | For instance the text: | 66 | For instance the text: |
| 67 | 67 | ||
| @@ -75,8 +75,10 @@ If this list contains the element \"font\".") | |||
| 75 | 75 | ||
| 76 | (defvar html2text-format-tag-list | 76 | (defvar html2text-format-tag-list |
| 77 | '(("b" . html2text-clean-bold) | 77 | '(("b" . html2text-clean-bold) |
| 78 | ("strong" . html2text-clean-bold) | ||
| 78 | ("u" . html2text-clean-underline) | 79 | ("u" . html2text-clean-underline) |
| 79 | ("i" . html2text-clean-italic) | 80 | ("i" . html2text-clean-italic) |
| 81 | ("em" . html2text-clean-italic) | ||
| 80 | ("blockquote" . html2text-clean-blockquote) | 82 | ("blockquote" . html2text-clean-blockquote) |
| 81 | ("a" . html2text-clean-anchor) | 83 | ("a" . html2text-clean-anchor) |
| 82 | ("ul" . html2text-clean-ul) | 84 | ("ul" . html2text-clean-ul) |
| @@ -86,7 +88,7 @@ If this list contains the element \"font\".") | |||
| 86 | "An alist of tags and processing functions. | 88 | "An alist of tags and processing functions. |
| 87 | 89 | ||
| 88 | This is an alist where each dotted pair consists of a tag, and then | 90 | This is an alist where each dotted pair consists of a tag, and then |
| 89 | the name of a function to be called when this tag is found. The | 91 | the name of a function to be called when this tag is found. The |
| 90 | function is called with the arguments p1, p2, p3 and p4. These are | 92 | function is called with the arguments p1, p2, p3 and p4. These are |
| 91 | demontrated below: | 93 | demontrated below: |
| 92 | 94 | ||
| @@ -117,17 +119,15 @@ formatting, and then moved afterward.") | |||
| 117 | ;; | 119 | ;; |
| 118 | 120 | ||
| 119 | 121 | ||
| 120 | (defun html2text-replace-string (from-string to-string p1 p2) | 122 | (defun html2text-replace-string (from-string to-string min max) |
| 121 | (goto-char p1) | 123 | "Replace FROM-STRING with TO-STRING in region from MIN to MAX." |
| 124 | (goto-char min) | ||
| 122 | (let ((delta (- (string-width to-string) (string-width from-string))) | 125 | (let ((delta (- (string-width to-string) (string-width from-string))) |
| 123 | (change 0)) | 126 | (change 0)) |
| 124 | (while (search-forward from-string p2 t) | 127 | (while (search-forward from-string max t) |
| 125 | (replace-match to-string) | 128 | (replace-match to-string) |
| 126 | (setq change (+ change delta)) | 129 | (setq change (+ change delta))) |
| 127 | ) | 130 | change)) |
| 128 | change | ||
| 129 | ) | ||
| 130 | ) | ||
| 131 | 131 | ||
| 132 | ;; | 132 | ;; |
| 133 | ;; </Utility functions> | 133 | ;; </Utility functions> |
| @@ -140,11 +140,11 @@ formatting, and then moved afterward.") | |||
| 140 | ;; <Functions related to attributes> i.e. <font size=+3> | 140 | ;; <Functions related to attributes> i.e. <font size=+3> |
| 141 | ;; | 141 | ;; |
| 142 | 142 | ||
| 143 | (defun html2text-attr-value (attr-list attr) | 143 | (defun html2text-attr-value (list attribute) |
| 144 | (nth 1 (assoc attr attr-list)) | 144 | "Get value of ATTRIBUTE from LIST." |
| 145 | ) | 145 | (nth 1 (assoc attribute list))) |
| 146 | 146 | ||
| 147 | (defun html2text-get-attr (p1 p2 tag) | 147 | (defun html2text-get-attr (p1 p2) |
| 148 | (goto-char p1) | 148 | (goto-char p1) |
| 149 | (re-search-forward " +[^ ]" p2 t) | 149 | (re-search-forward " +[^ ]" p2 t) |
| 150 | (let* ((attr-string (buffer-substring-no-properties (1- (point)) (1- p2))) | 150 | (let* ((attr-string (buffer-substring-no-properties (1- (point)) (1- p2))) |
| @@ -161,14 +161,10 @@ formatting, and then moved afterward.") | |||
| 161 | ((string-match "[^ ]=[^ ]" prev) | 161 | ((string-match "[^ ]=[^ ]" prev) |
| 162 | (let ((attr (nth 0 (split-string prev "="))) | 162 | (let ((attr (nth 0 (split-string prev "="))) |
| 163 | (value (nth 1 (split-string prev "=")))) | 163 | (value (nth 1 (split-string prev "=")))) |
| 164 | (setq attr-list (cons (list attr value) attr-list)) | 164 | (setq attr-list (cons (list attr value) attr-list)))) |
| 165 | ) | ||
| 166 | ) | ||
| 167 | ;; size= 3 | 165 | ;; size= 3 |
| 168 | ((string-match "[^ ]=\\'" prev) | 166 | ((string-match "[^ ]=\\'" prev) |
| 169 | (setq attr-list (cons (list (substring prev 0 -1) this) attr-list)) | 167 | (setq attr-list (cons (list (substring prev 0 -1) this) attr-list)))) |
| 170 | ) | ||
| 171 | ) | ||
| 172 | 168 | ||
| 173 | (while (< index (length tmp-list)) | 169 | (while (< index (length tmp-list)) |
| 174 | (cond | 170 | (cond |
| @@ -176,29 +172,20 @@ formatting, and then moved afterward.") | |||
| 176 | ((string-match "[^ ]=[^ ]" this) | 172 | ((string-match "[^ ]=[^ ]" this) |
| 177 | (let ((attr (nth 0 (split-string this "="))) | 173 | (let ((attr (nth 0 (split-string this "="))) |
| 178 | (value (nth 1 (split-string this "=")))) | 174 | (value (nth 1 (split-string this "=")))) |
| 179 | (setq attr-list (cons (list attr value) attr-list)) | 175 | (setq attr-list (cons (list attr value) attr-list)))) |
| 180 | ) | ||
| 181 | ) | ||
| 182 | ;; size =3 | 176 | ;; size =3 |
| 183 | ((string-match "\\`=[^ ]" this) | 177 | ((string-match "\\`=[^ ]" this) |
| 184 | (setq attr-list (cons (list prev (substring this 1)) attr-list))) | 178 | (setq attr-list (cons (list prev (substring this 1)) attr-list))) |
| 185 | |||
| 186 | ;; size= 3 | 179 | ;; size= 3 |
| 187 | ((string-match "[^ ]=\\'" this) | 180 | ((string-match "[^ ]=\\'" this) |
| 188 | (setq attr-list (cons (list (substring this 0 -1) next) attr-list)) | 181 | (setq attr-list (cons (list (substring this 0 -1) next) attr-list))) |
| 189 | ) | ||
| 190 | |||
| 191 | ;; size = 3 | 182 | ;; size = 3 |
| 192 | ((string= "=" this) | 183 | ((string= "=" this) |
| 193 | (setq attr-list (cons (list prev next) attr-list)) | 184 | (setq attr-list (cons (list prev next) attr-list)))) |
| 194 | ) | ||
| 195 | ) | ||
| 196 | (setq index (1+ index)) | 185 | (setq index (1+ index)) |
| 197 | (setq prev this) | 186 | (setq prev this) |
| 198 | (setq this next) | 187 | (setq this next) |
| 199 | (setq next (nth (1+ index) tmp-list)) | 188 | (setq next (nth (1+ index) tmp-list))) |
| 200 | ) | ||
| 201 | |||
| 202 | ;; | 189 | ;; |
| 203 | ;; Tags with no accompanying "=" i.e. value=nil | 190 | ;; Tags with no accompanying "=" i.e. value=nil |
| 204 | ;; | 191 | ;; |
| @@ -207,41 +194,25 @@ formatting, and then moved afterward.") | |||
| 207 | (setq next (nth 2 tmp-list)) | 194 | (setq next (nth 2 tmp-list)) |
| 208 | (setq index 1) | 195 | (setq index 1) |
| 209 | 196 | ||
| 210 | (if (not (string-match "=" prev)) | 197 | (when (and (not (string-match "=" prev)) |
| 211 | (progn | 198 | (not (string= (substring this 0 1) "="))) |
| 212 | (if (not (string= (substring this 0 1) "=")) | 199 | (setq attr-list (cons (list prev nil) attr-list))) |
| 213 | (setq attr-list (cons (list prev nil) attr-list)) | ||
| 214 | ) | ||
| 215 | ) | ||
| 216 | ) | ||
| 217 | |||
| 218 | (while (< index (1- (length tmp-list))) | 200 | (while (< index (1- (length tmp-list))) |
| 219 | (if (not (string-match "=" this)) | 201 | (when (and (not (string-match "=" this)) |
| 220 | (if (not (or (string= (substring next 0 1) "=") | 202 | (not (or (string= (substring next 0 1) "=") |
| 221 | (string= (substring prev -1) "="))) | 203 | (string= (substring prev -1) "=")))) |
| 222 | (setq attr-list (cons (list this nil) attr-list)) | 204 | (setq attr-list (cons (list this nil) attr-list))) |
| 223 | ) | ||
| 224 | ) | ||
| 225 | (setq index (1+ index)) | 205 | (setq index (1+ index)) |
| 226 | (setq prev this) | 206 | (setq prev this) |
| 227 | (setq this next) | 207 | (setq this next) |
| 228 | (setq next (nth (1+ index) tmp-list)) | 208 | (setq next (nth (1+ index) tmp-list))) |
| 229 | ) | 209 | |
| 230 | 210 | (when (and this | |
| 231 | (if this | 211 | (not (string-match "=" this)) |
| 232 | (progn | 212 | (not (string= (substring prev -1) "="))) |
| 233 | (if (not (string-match "=" this)) | 213 | (setq attr-list (cons (list this nil) attr-list))) |
| 234 | (progn | 214 | ;; return - value |
| 235 | (if (not (string= (substring prev -1) "=")) | 215 | attr-list)) |
| 236 | (setq attr-list (cons (list this nil) attr-list)) | ||
| 237 | ) | ||
| 238 | ) | ||
| 239 | ) | ||
| 240 | ) | ||
| 241 | ) | ||
| 242 | attr-list ;; return - value | ||
| 243 | ) | ||
| 244 | ) | ||
| 245 | 216 | ||
| 246 | ;; | 217 | ;; |
| 247 | ;; </Functions related to attributes> | 218 | ;; </Functions related to attributes> |
| @@ -266,10 +237,7 @@ formatting, and then moved afterward.") | |||
| 266 | (cond | 237 | (cond |
| 267 | ((string= list-type "ul") (insert " o ")) | 238 | ((string= list-type "ul") (insert " o ")) |
| 268 | ((string= list-type "ol") (insert (format " %s: " item-nr))) | 239 | ((string= list-type "ol") (insert (format " %s: " item-nr))) |
| 269 | (t (insert " x "))) | 240 | (t (insert " x ")))))) |
| 270 | ) | ||
| 271 | ) | ||
| 272 | ) | ||
| 273 | 241 | ||
| 274 | (defun html2text-clean-dtdd (p1 p2) | 242 | (defun html2text-clean-dtdd (p1 p2) |
| 275 | (goto-char p1) | 243 | (goto-char p1) |
| @@ -308,61 +276,51 @@ formatting, and then moved afterward.") | |||
| 308 | (html2text-delete-single-tag p1 p2) | 276 | (html2text-delete-single-tag p1 p2) |
| 309 | (goto-char p1) | 277 | (goto-char p1) |
| 310 | (newline 1) | 278 | (newline 1) |
| 311 | (insert (make-string fill-column ?-)) | 279 | (insert (make-string fill-column ?-))) |
| 312 | ) | ||
| 313 | 280 | ||
| 314 | (defun html2text-clean-ul (p1 p2 p3 p4) | 281 | (defun html2text-clean-ul (p1 p2 p3 p4) |
| 315 | (html2text-delete-tags p1 p2 p3 p4) | 282 | (html2text-delete-tags p1 p2 p3 p4) |
| 316 | (html2text-clean-list-items p1 (- p3 (- p1 p2)) "ul") | 283 | (html2text-clean-list-items p1 (- p3 (- p1 p2)) "ul")) |
| 317 | ) | ||
| 318 | 284 | ||
| 319 | (defun html2text-clean-ol (p1 p2 p3 p4) | 285 | (defun html2text-clean-ol (p1 p2 p3 p4) |
| 320 | (html2text-delete-tags p1 p2 p3 p4) | 286 | (html2text-delete-tags p1 p2 p3 p4) |
| 321 | (html2text-clean-list-items p1 (- p3 (- p1 p2)) "ol") | 287 | (html2text-clean-list-items p1 (- p3 (- p1 p2)) "ol")) |
| 322 | ) | ||
| 323 | 288 | ||
| 324 | (defun html2text-clean-dl (p1 p2 p3 p4) | 289 | (defun html2text-clean-dl (p1 p2 p3 p4) |
| 325 | (html2text-delete-tags p1 p2 p3 p4) | 290 | (html2text-delete-tags p1 p2 p3 p4) |
| 326 | (html2text-clean-dtdd p1 (- p3 (- p1 p2))) | 291 | (html2text-clean-dtdd p1 (- p3 (- p1 p2)))) |
| 327 | ) | ||
| 328 | 292 | ||
| 329 | (defun html2text-clean-center (p1 p2 p3 p4) | 293 | (defun html2text-clean-center (p1 p2 p3 p4) |
| 330 | (html2text-delete-tags p1 p2 p3 p4) | 294 | (html2text-delete-tags p1 p2 p3 p4) |
| 331 | (center-region p1 (- p3 (- p2 p1))) | 295 | (center-region p1 (- p3 (- p2 p1)))) |
| 332 | ) | ||
| 333 | 296 | ||
| 334 | (defun html2text-clean-bold (p1 p2 p3 p4) | 297 | (defun html2text-clean-bold (p1 p2 p3 p4) |
| 335 | (put-text-property p2 p3 'face 'bold) | 298 | (put-text-property p2 p3 'face 'bold) |
| 336 | (html2text-delete-tags p1 p2 p3 p4) | 299 | (html2text-delete-tags p1 p2 p3 p4)) |
| 337 | ) | ||
| 338 | 300 | ||
| 339 | (defun html2text-clean-title (p1 p2 p3 p4) | 301 | (defun html2text-clean-title (p1 p2 p3 p4) |
| 340 | (put-text-property p2 p3 'face 'bold) | 302 | (put-text-property p2 p3 'face 'bold) |
| 341 | (html2text-delete-tags p1 p2 p3 p4) | 303 | (html2text-delete-tags p1 p2 p3 p4)) |
| 342 | ) | ||
| 343 | 304 | ||
| 344 | (defun html2text-clean-underline (p1 p2 p3 p4) | 305 | (defun html2text-clean-underline (p1 p2 p3 p4) |
| 345 | (put-text-property p2 p3 'face 'underline) | 306 | (put-text-property p2 p3 'face 'underline) |
| 346 | (html2text-delete-tags p1 p2 p3 p4) | 307 | (html2text-delete-tags p1 p2 p3 p4)) |
| 347 | ) | ||
| 348 | 308 | ||
| 349 | (defun html2text-clean-italic (p1 p2 p3 p4) | 309 | (defun html2text-clean-italic (p1 p2 p3 p4) |
| 350 | (put-text-property p2 p3 'face 'italic) | 310 | (put-text-property p2 p3 'face 'italic) |
| 351 | (html2text-delete-tags p1 p2 p3 p4) | 311 | (html2text-delete-tags p1 p2 p3 p4)) |
| 352 | ) | ||
| 353 | 312 | ||
| 354 | (defun html2text-clean-font (p1 p2 p3 p4) | 313 | (defun html2text-clean-font (p1 p2 p3 p4) |
| 355 | (html2text-delete-tags p1 p2 p3 p4) | 314 | (html2text-delete-tags p1 p2 p3 p4)) |
| 356 | ) | ||
| 357 | 315 | ||
| 358 | (defun html2text-clean-blockquote (p1 p2 p3 p4) | 316 | (defun html2text-clean-blockquote (p1 p2 p3 p4) |
| 359 | (html2text-delete-tags p1 p2 p3 p4) | 317 | (html2text-delete-tags p1 p2 p3 p4)) |
| 360 | ) | ||
| 361 | 318 | ||
| 362 | (defun html2text-clean-anchor (p1 p2 p3 p4) | 319 | (defun html2text-clean-anchor (p1 p2 p3 p4) |
| 363 | ;; If someone can explain how to make the URL clickable I will | 320 | ;; If someone can explain how to make the URL clickable I will surely |
| 364 | ;; surely improve upon this. | 321 | ;; improve upon this. |
| 365 | (let* ((attr-list (html2text-get-attr p1 p2 "a")) | 322 | ;; Maybe `goto-addr.el' can be used here. |
| 323 | (let* ((attr-list (html2text-get-attr p1 p2)) | ||
| 366 | (href (html2text-attr-value attr-list "href"))) | 324 | (href (html2text-attr-value attr-list "href"))) |
| 367 | (delete-region p1 p4) | 325 | (delete-region p1 p4) |
| 368 | (when href | 326 | (when href |
| @@ -386,38 +344,27 @@ formatting, and then moved afterward.") | |||
| 386 | (let ((has-br-line) | 344 | (let ((has-br-line) |
| 387 | (refill-start) | 345 | (refill-start) |
| 388 | (refill-stop)) | 346 | (refill-stop)) |
| 389 | (if (re-search-forward "<br>$" p2 t) | 347 | (when (re-search-forward "<br>$" p2 t) |
| 390 | (setq has-br-line t) | 348 | (goto-char p1) |
| 391 | ) | 349 | (when (re-search-forward ".+[^<][^b][^r][^>]$" p2 t) |
| 392 | (if has-br-line | 350 | (beginning-of-line) |
| 393 | (progn | 351 | (setq refill-start (point)) |
| 394 | (goto-char p1) | 352 | (goto-char p2) |
| 395 | (if (re-search-forward ".+[^<][^b][^r][^>]$" p2 t) | 353 | (re-search-backward ".+[^<][^b][^r][^>]$" refill-start t) |
| 396 | (progn | 354 | (next-line 1) |
| 397 | (beginning-of-line) | 355 | (end-of-line) |
| 398 | (setq refill-start (point)) | 356 | ;; refill-stop should ideally be adjusted to |
| 399 | (goto-char p2) | 357 | ;; accomodate the "<br>" strings which are removed |
| 400 | (re-search-backward ".+[^<][^b][^r][^>]$" refill-start t) | 358 | ;; between refill-start and refill-stop. Can simply |
| 401 | (next-line 1) | 359 | ;; be returned from my-replace-string |
| 402 | (end-of-line) | 360 | (setq refill-stop (+ (point) |
| 403 | ;; refill-stop should ideally be adjusted to | 361 | (html2text-replace-string |
| 404 | ;; accomodate the "<br>" strings which are removed | 362 | "<br>" "" |
| 405 | ;; between refill-start and refill-stop. Can simply | 363 | refill-start (point)))) |
| 406 | ;; be returned from my-replace-string | 364 | ;; (message "Point = %s refill-stop = %s" (point) refill-stop) |
| 407 | (setq refill-stop (+ (point) | 365 | ;; (sleep-for 4) |
| 408 | (html2text-replace-string | 366 | (fill-region refill-start refill-stop)))) |
| 409 | "<br>" "" | 367 | (html2text-replace-string "<br>" "" p1 p2)) |
| 410 | refill-start (point)))) | ||
| 411 | ;; (message "Point = %s refill-stop = %s" (point) refill-stop) | ||
| 412 | ;; (sleep-for 4) | ||
| 413 | (fill-region refill-start refill-stop) | ||
| 414 | ) | ||
| 415 | ) | ||
| 416 | ) | ||
| 417 | ) | ||
| 418 | ) | ||
| 419 | (html2text-replace-string "<br>" "" p1 p2) | ||
| 420 | ) | ||
| 421 | 368 | ||
| 422 | ;; | 369 | ;; |
| 423 | ;; This one is interactive ... | 370 | ;; This one is interactive ... |
| @@ -452,7 +399,7 @@ fashion, quite close to pure guess-work. It does work in some cases though." | |||
| 452 | ;; | 399 | ;; |
| 453 | 400 | ||
| 454 | (defun html2text-remove-tags (tag-list) | 401 | (defun html2text-remove-tags (tag-list) |
| 455 | "Removes the tags listed in the list \"html2text-remove-tag-list\". | 402 | "Removes the tags listed in the list `html2text-remove-tag-list'. |
| 456 | See the documentation for that variable." | 403 | See the documentation for that variable." |
| 457 | (interactive) | 404 | (interactive) |
| 458 | (dolist (tag tag-list) | 405 | (dolist (tag tag-list) |
| @@ -461,7 +408,7 @@ See the documentation for that variable." | |||
| 461 | (delete-region (match-beginning 0) (match-end 0))))) | 408 | (delete-region (match-beginning 0) (match-end 0))))) |
| 462 | 409 | ||
| 463 | (defun html2text-format-tags () | 410 | (defun html2text-format-tags () |
| 464 | "See the variable \"html2text-format-tag-list\" for documentation" | 411 | "See the variable `html2text-format-tag-list' for documentation." |
| 465 | (interactive) | 412 | (interactive) |
| 466 | (dolist (tag-and-function html2text-format-tag-list) | 413 | (dolist (tag-and-function html2text-format-tag-list) |
| 467 | (let ((tag (car tag-and-function)) | 414 | (let ((tag (car tag-and-function)) |
| @@ -471,8 +418,7 @@ See the documentation for that variable." | |||
| 471 | (point-max) t) | 418 | (point-max) t) |
| 472 | (let ((p1) | 419 | (let ((p1) |
| 473 | (p2 (point)) | 420 | (p2 (point)) |
| 474 | (p3) (p4) | 421 | (p3) (p4)) |
| 475 | (attr (match-string 1))) | ||
| 476 | (search-backward "<" (point-min) t) | 422 | (search-backward "<" (point-min) t) |
| 477 | (setq p1 (point)) | 423 | (setq p1 (point)) |
| 478 | (re-search-forward (format "</%s>" tag) (point-max) t) | 424 | (re-search-forward (format "</%s>" tag) (point-max) t) |
| @@ -480,27 +426,18 @@ See the documentation for that variable." | |||
| 480 | (search-backward "</" (point-min) t) | 426 | (search-backward "</" (point-min) t) |
| 481 | (setq p3 (point)) | 427 | (setq p3 (point)) |
| 482 | (funcall function p1 p2 p3 p4) | 428 | (funcall function p1 p2 p3 p4) |
| 483 | (goto-char p1) | 429 | (goto-char p1)))))) |
| 484 | ) | ||
| 485 | ) | ||
| 486 | ) | ||
| 487 | ) | ||
| 488 | ) | ||
| 489 | 430 | ||
| 490 | (defun html2text-substitute () | 431 | (defun html2text-substitute () |
| 491 | "See the variable \"html2text-replace-list\" for documentation" | 432 | "See the variable `html2text-replace-list' for documentation." |
| 492 | (interactive) | 433 | (interactive) |
| 493 | (dolist (e html2text-replace-list) | 434 | (dolist (e html2text-replace-list) |
| 494 | (goto-char (point-min)) | 435 | (goto-char (point-min)) |
| 495 | (let ((old-string (car e)) | 436 | (let ((old-string (car e)) |
| 496 | (new-string (cdr e))) | 437 | (new-string (cdr e))) |
| 497 | (html2text-replace-string old-string new-string (point-min) (point-max)) | 438 | (html2text-replace-string old-string new-string (point-min) (point-max))))) |
| 498 | ) | ||
| 499 | ) | ||
| 500 | ) | ||
| 501 | 439 | ||
| 502 | (defun html2text-format-single-elements () | 440 | (defun html2text-format-single-elements () |
| 503 | "" | ||
| 504 | (interactive) | 441 | (interactive) |
| 505 | (dolist (tag-and-function html2text-format-single-element-list) | 442 | (dolist (tag-and-function html2text-format-single-element-list) |
| 506 | (let ((tag (car tag-and-function)) | 443 | (let ((tag (car tag-and-function)) |
| @@ -512,12 +449,7 @@ See the documentation for that variable." | |||
| 512 | (p2 (point))) | 449 | (p2 (point))) |
| 513 | (search-backward "<" (point-min) t) | 450 | (search-backward "<" (point-min) t) |
| 514 | (setq p1 (point)) | 451 | (setq p1 (point)) |
| 515 | (funcall function p1 p2) | 452 | (funcall function p1 p2)))))) |
| 516 | ) | ||
| 517 | ) | ||
| 518 | ) | ||
| 519 | ) | ||
| 520 | ) | ||
| 521 | 453 | ||
| 522 | ;; | 454 | ;; |
| 523 | ;; Main function | 455 | ;; Main function |
| @@ -540,6 +472,6 @@ See the documentation for that variable." | |||
| 540 | ;; | 472 | ;; |
| 541 | ;; </Interactive functions> | 473 | ;; </Interactive functions> |
| 542 | ;; | 474 | ;; |
| 543 | 475 | (provide 'html2text) | |
| 544 | ;;; arch-tag: e9e57b79-35d4-4de1-a647-e7e01fe56d1e | 476 | ;;; arch-tag: e9e57b79-35d4-4de1-a647-e7e01fe56d1e |
| 545 | ;;; html2text.el ends here | 477 | ;;; html2text.el ends here |
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index 585a72af549..fb63d6724be 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el | |||
| @@ -587,6 +587,7 @@ Done before generating the new subject of a forward." | |||
| 587 | non-word-constituents | 587 | non-word-constituents |
| 588 | "]\\)+>+\\|[ \t]*[]>|}+]\\)+")))) | 588 | "]\\)+>+\\|[ \t]*[]>|}+]\\)+")))) |
| 589 | "*Regexp matching the longest possible citation prefix on a line." | 589 | "*Regexp matching the longest possible citation prefix on a line." |
| 590 | :version "21.4" | ||
| 590 | :group 'message-insertion | 591 | :group 'message-insertion |
| 591 | :link '(custom-manual "(message)Insertion Variables") | 592 | :link '(custom-manual "(message)Insertion Variables") |
| 592 | :type 'regexp) | 593 | :type 'regexp) |
| @@ -743,6 +744,7 @@ Doing so would be even more evil than leaving it out." | |||
| 743 | "*Envelope-from when sending mail with sendmail. | 744 | "*Envelope-from when sending mail with sendmail. |
| 744 | If this is nil, use `user-mail-address'. If it is the symbol | 745 | If this is nil, use `user-mail-address'. If it is the symbol |
| 745 | `header', use the From: header of the message." | 746 | `header', use the From: header of the message." |
| 747 | :version "21.4" | ||
| 746 | :type '(choice (string :tag "From name") | 748 | :type '(choice (string :tag "From name") |
| 747 | (const :tag "Use From: header from message" header) | 749 | (const :tag "Use From: header from message" header) |
| 748 | (const :tag "Use `user-mail-address'" nil)) | 750 | (const :tag "Use `user-mail-address'" nil)) |
| @@ -855,7 +857,8 @@ the signature is inserted." | |||
| 855 | (let ((map (make-sparse-keymap 'message-minibuffer-local-map))) | 857 | (let ((map (make-sparse-keymap 'message-minibuffer-local-map))) |
| 856 | (set-keymap-parent map minibuffer-local-map) | 858 | (set-keymap-parent map minibuffer-local-map) |
| 857 | map) | 859 | map) |
| 858 | "Keymap for `message-read-from-minibuffer'.") | 860 | "Keymap for `message-read-from-minibuffer'." |
| 861 | :version "21.4") | ||
| 859 | 862 | ||
| 860 | ;;;###autoload | 863 | ;;;###autoload |
| 861 | (defcustom message-citation-line-function 'message-insert-citation-line | 864 | (defcustom message-citation-line-function 'message-insert-citation-line |
| @@ -1435,6 +1438,7 @@ no, only reply back to the author." | |||
| 1435 | 1438 | ||
| 1436 | (defcustom message-user-fqdn nil | 1439 | (defcustom message-user-fqdn nil |
| 1437 | "*Domain part of Messsage-Ids." | 1440 | "*Domain part of Messsage-Ids." |
| 1441 | :version "21.4" | ||
| 1438 | :group 'message-headers | 1442 | :group 'message-headers |
| 1439 | :link '(custom-manual "(message)News Headers") | 1443 | :link '(custom-manual "(message)News Headers") |
| 1440 | :type '(radio (const :format "%v " nil) | 1444 | :type '(radio (const :format "%v " nil) |
| @@ -6590,6 +6594,7 @@ which specify the range to operate on." | |||
| 6590 | '("^\\(Disposition-Notification-To\\|Return-Receipt-To\\):" | 6594 | '("^\\(Disposition-Notification-To\\|Return-Receipt-To\\):" |
| 6591 | . message-expand-name)) | 6595 | . message-expand-name)) |
| 6592 | "Alist of (RE . FUN). Use FUN for completion on header lines matching RE." | 6596 | "Alist of (RE . FUN). Use FUN for completion on header lines matching RE." |
| 6597 | :version "21.4" | ||
| 6593 | :group 'message | 6598 | :group 'message |
| 6594 | :type '(alist :key-type regexp :value-type function)) | 6599 | :type '(alist :key-type regexp :value-type function)) |
| 6595 | 6600 | ||
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index 51ec38dc387..b167ea7d104 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el | |||
| @@ -150,12 +150,14 @@ when displaying the image. The default value is \"\\\\`cid:\" which only | |||
| 150 | matches parts embedded to the Multipart/Related type MIME contents and | 150 | matches parts embedded to the Multipart/Related type MIME contents and |
| 151 | Gnus will never connect to the spammer's site arbitrarily. You may | 151 | Gnus will never connect to the spammer's site arbitrarily. You may |
| 152 | set this variable to nil if you consider all urls to be safe." | 152 | set this variable to nil if you consider all urls to be safe." |
| 153 | :version "21.4" | ||
| 153 | :type '(choice (regexp :tag "Regexp") | 154 | :type '(choice (regexp :tag "Regexp") |
| 154 | (const :tag "All URLs are safe" nil)) | 155 | (const :tag "All URLs are safe" nil)) |
| 155 | :group 'mime-display) | 156 | :group 'mime-display) |
| 156 | 157 | ||
| 157 | (defcustom mm-inline-text-html-with-w3m-keymap t | 158 | (defcustom mm-inline-text-html-with-w3m-keymap t |
| 158 | "If non-nil, use emacs-w3m command keys in the article buffer." | 159 | "If non-nil, use emacs-w3m command keys in the article buffer." |
| 160 | :version "21.4" | ||
| 159 | :type 'boolean | 161 | :type 'boolean |
| 160 | :group 'mime-display) | 162 | :group 'mime-display) |
| 161 | 163 | ||
| @@ -378,6 +380,7 @@ If not set, `default-directory' will be used." | |||
| 378 | 380 | ||
| 379 | (defcustom mm-attachment-file-modes 384 | 381 | (defcustom mm-attachment-file-modes 384 |
| 380 | "Set the mode bits of saved attachments to this integer." | 382 | "Set the mode bits of saved attachments to this integer." |
| 383 | :version "21.4" | ||
| 381 | :type 'integer | 384 | :type 'integer |
| 382 | :group 'mime-display) | 385 | :group 'mime-display) |
| 383 | 386 | ||
| @@ -435,6 +438,7 @@ If not set, `default-directory' will be used." | |||
| 435 | "Option of decrypting encrypted parts. | 438 | "Option of decrypting encrypted parts. |
| 436 | `never', not decrypt; `always', always decrypt; | 439 | `never', not decrypt; `always', always decrypt; |
| 437 | `known', only decrypt known protocols. Otherwise, ask user." | 440 | `known', only decrypt known protocols. Otherwise, ask user." |
| 441 | :version "21.4" | ||
| 438 | :type '(choice (item always) | 442 | :type '(choice (item always) |
| 439 | (item never) | 443 | (item never) |
| 440 | (item :tag "only known protocols" known) | 444 | (item :tag "only known protocols" known) |
diff --git a/lisp/gnus/mm-url.el b/lisp/gnus/mm-url.el index 1652dbca245..1388371c981 100644 --- a/lisp/gnus/mm-url.el +++ b/lisp/gnus/mm-url.el | |||
| @@ -49,6 +49,7 @@ | |||
| 49 | (require 'url) | 49 | (require 'url) |
| 50 | (error nil))) | 50 | (error nil))) |
| 51 | "*If non-nil, use external grab program `mm-url-program'." | 51 | "*If non-nil, use external grab program `mm-url-program'." |
| 52 | :version "21.4" | ||
| 52 | :type 'boolean | 53 | :type 'boolean |
| 53 | :group 'mm-url) | 54 | :group 'mm-url) |
| 54 | 55 | ||
| @@ -67,6 +68,7 @@ | |||
| 67 | (t "GET")) | 68 | (t "GET")) |
| 68 | "The url grab program. | 69 | "The url grab program. |
| 69 | Likely values are `wget', `w3m', `lynx' and `curl'." | 70 | Likely values are `wget', `w3m', `lynx' and `curl'." |
| 71 | :version "21.4" | ||
| 70 | :type '(choice | 72 | :type '(choice |
| 71 | (symbol :tag "wget" wget) | 73 | (symbol :tag "wget" wget) |
| 72 | (symbol :tag "w3m" w3m) | 74 | (symbol :tag "w3m" w3m) |
| @@ -77,6 +79,7 @@ Likely values are `wget', `w3m', `lynx' and `curl'." | |||
| 77 | 79 | ||
| 78 | (defcustom mm-url-arguments nil | 80 | (defcustom mm-url-arguments nil |
| 79 | "The arguments for `mm-url-program'." | 81 | "The arguments for `mm-url-program'." |
| 82 | :version "21.4" | ||
| 80 | :type '(repeat string) | 83 | :type '(repeat string) |
| 81 | :group 'mm-url) | 84 | :group 'mm-url) |
| 82 | 85 | ||
diff --git a/lisp/gnus/mm-util.el b/lisp/gnus/mm-util.el index b68b4ec584c..382133a027e 100644 --- a/lisp/gnus/mm-util.el +++ b/lisp/gnus/mm-util.el | |||
| @@ -123,13 +123,16 @@ | |||
| 123 | 123 | ||
| 124 | (defun mm-coding-system-p (cs) | 124 | (defun mm-coding-system-p (cs) |
| 125 | "Return non-nil if CS is a symbol naming a coding system. | 125 | "Return non-nil if CS is a symbol naming a coding system. |
| 126 | In XEmacs, also return non-nil if CS is a coding system object." | 126 | In XEmacs, also return non-nil if CS is a coding system object. |
| 127 | If CS is available, return CS itself in Emacs, and return a coding | ||
| 128 | system object in XEmacs." | ||
| 127 | (if (fboundp 'find-coding-system) | 129 | (if (fboundp 'find-coding-system) |
| 128 | (find-coding-system cs) | 130 | (find-coding-system cs) |
| 129 | (if (fboundp 'coding-system-p) | 131 | (if (fboundp 'coding-system-p) |
| 130 | (coding-system-p cs) | 132 | (when (coding-system-p cs) |
| 133 | cs) | ||
| 131 | ;; Is this branch ever actually useful? | 134 | ;; Is this branch ever actually useful? |
| 132 | (memq cs (mm-get-coding-system-list))))) | 135 | (car (memq cs (mm-get-coding-system-list)))))) |
| 133 | 136 | ||
| 134 | (defvar mm-charset-synonym-alist | 137 | (defvar mm-charset-synonym-alist |
| 135 | `( | 138 | `( |
| @@ -219,12 +222,12 @@ In XEmacs, also return non-nil if CS is a coding system object." | |||
| 219 | (big5 chinese-big5-1 chinese-big5-2) | 222 | (big5 chinese-big5-1 chinese-big5-2) |
| 220 | (tibetan tibetan) | 223 | (tibetan tibetan) |
| 221 | (thai-tis620 thai-tis620) | 224 | (thai-tis620 thai-tis620) |
| 225 | (windows-1251 cyrillic-iso8859-5) | ||
| 222 | (iso-2022-7bit ethiopic arabic-1-column arabic-2-column) | 226 | (iso-2022-7bit ethiopic arabic-1-column arabic-2-column) |
| 223 | (iso-2022-jp-2 latin-iso8859-1 greek-iso8859-7 | 227 | (iso-2022-jp-2 latin-iso8859-1 greek-iso8859-7 |
| 224 | latin-jisx0201 japanese-jisx0208-1978 | 228 | latin-jisx0201 japanese-jisx0208-1978 |
| 225 | chinese-gb2312 japanese-jisx0208 | 229 | chinese-gb2312 japanese-jisx0208 |
| 226 | korean-ksc5601 japanese-jisx0212 | 230 | korean-ksc5601 japanese-jisx0212) |
| 227 | katakana-jisx0201) | ||
| 228 | (iso-2022-int-1 latin-iso8859-1 greek-iso8859-7 | 231 | (iso-2022-int-1 latin-iso8859-1 greek-iso8859-7 |
| 229 | latin-jisx0201 japanese-jisx0208-1978 | 232 | latin-jisx0201 japanese-jisx0208-1978 |
| 230 | chinese-gb2312 japanese-jisx0208 | 233 | chinese-gb2312 japanese-jisx0208 |
| @@ -239,6 +242,9 @@ In XEmacs, also return non-nil if CS is a coding system object." | |||
| 239 | chinese-cns11643-3 chinese-cns11643-4 | 242 | chinese-cns11643-3 chinese-cns11643-4 |
| 240 | chinese-cns11643-5 chinese-cns11643-6 | 243 | chinese-cns11643-5 chinese-cns11643-6 |
| 241 | chinese-cns11643-7) | 244 | chinese-cns11643-7) |
| 245 | (iso-2022-jp-3 latin-jisx0201 japanese-jisx0208-1978 japanese-jisx0208 | ||
| 246 | japanese-jisx0213-1 japanese-jisx0213-2) | ||
| 247 | (shift_jis latin-jisx0201 katakana-jisx0201 japanese-jisx0208) | ||
| 242 | ,(if (or (not (fboundp 'charsetp)) ;; non-Mule case | 248 | ,(if (or (not (fboundp 'charsetp)) ;; non-Mule case |
| 243 | (charsetp 'unicode-a) | 249 | (charsetp 'unicode-a) |
| 244 | (not (mm-coding-system-p 'mule-utf-8))) | 250 | (not (mm-coding-system-p 'mule-utf-8))) |
| @@ -249,24 +255,47 @@ In XEmacs, also return non-nil if CS is a coding system object." | |||
| 249 | (coding-system-get 'mule-utf-8 'safe-charsets))))) | 255 | (coding-system-get 'mule-utf-8 'safe-charsets))))) |
| 250 | "Alist of MIME-charset/MULE-charsets.") | 256 | "Alist of MIME-charset/MULE-charsets.") |
| 251 | 257 | ||
| 252 | ;; Correct by construction, but should be unnecessary: | 258 | (defun mm-enrich-utf-8-by-mule-ucs () |
| 253 | ;; XEmacs hates it. | 259 | "Make the `utf-8' MIME charset usable by the Mule-UCS package. |
| 254 | (when (and (not (featurep 'xemacs)) | 260 | This function will run when the `un-define' module is loaded under |
| 255 | (fboundp 'coding-system-list) | 261 | XEmacs, and fill the `utf-8' entry in `mm-mime-mule-charset-alist' |
| 256 | (fboundp 'sort-coding-systems)) | 262 | with Mule charsets. It is completely useless for Emacs." |
| 257 | (setq mm-mime-mule-charset-alist | 263 | (unless (cdr (delete '(mm-enrich-utf-8-by-mule-ucs) |
| 258 | (apply | 264 | (assoc "un-define" after-load-alist))) |
| 259 | 'nconc | 265 | (setq after-load-alist |
| 260 | (mapcar | 266 | (delete '("un-define") after-load-alist))) |
| 261 | (lambda (cs) | 267 | (when (boundp 'unicode-basic-translation-charset-order-list) |
| 262 | (when (and (or (coding-system-get cs :mime-charset) ; Emacs 22 | 268 | (condition-case nil |
| 263 | (coding-system-get cs 'mime-charset)) | 269 | (let ((val (delq |
| 264 | (not (eq t (coding-system-get cs 'safe-charsets)))) | 270 | 'ascii |
| 265 | (list (cons (or (coding-system-get cs :mime-charset) | 271 | (copy-sequence |
| 266 | (coding-system-get cs 'mime-charset)) | 272 | (symbol-value |
| 267 | (delq 'ascii | 273 | 'unicode-basic-translation-charset-order-list)))) |
| 268 | (coding-system-get cs 'safe-charsets)))))) | 274 | (elem (assq 'utf-8 mm-mime-mule-charset-alist))) |
| 269 | (sort-coding-systems (coding-system-list 'base-only)))))) | 275 | (if elem |
| 276 | (setcdr elem val) | ||
| 277 | (setq mm-mime-mule-charset-alist | ||
| 278 | (nconc mm-mime-mule-charset-alist | ||
| 279 | (list (cons 'utf-8 val)))))) | ||
| 280 | (error)))) | ||
| 281 | |||
| 282 | ;; Correct by construction, but should be unnecessary for Emacs: | ||
| 283 | (if (featurep 'xemacs) | ||
| 284 | (eval-after-load "un-define" '(mm-enrich-utf-8-by-mule-ucs)) | ||
| 285 | (when (and (fboundp 'coding-system-list) | ||
| 286 | (fboundp 'sort-coding-systems)) | ||
| 287 | (let ((css (sort-coding-systems (coding-system-list 'base-only))) | ||
| 288 | cs mime mule alist) | ||
| 289 | (while css | ||
| 290 | (setq cs (pop css) | ||
| 291 | mime (or (coding-system-get cs :mime-charset) ; Emacs 22 | ||
| 292 | (coding-system-get cs 'mime-charset))) | ||
| 293 | (when (and mime | ||
| 294 | (not (eq t (setq mule | ||
| 295 | (coding-system-get cs 'safe-charsets)))) | ||
| 296 | (not (assq mime alist))) | ||
| 297 | (push (cons mime (delq 'ascii mule)) alist))) | ||
| 298 | (setq mm-mime-mule-charset-alist (nreverse alist))))) | ||
| 270 | 299 | ||
| 271 | (defvar mm-hack-charsets '(iso-8859-15 iso-2022-jp-2) | 300 | (defvar mm-hack-charsets '(iso-8859-15 iso-2022-jp-2) |
| 272 | "A list of special charsets. | 301 | "A list of special charsets. |
| @@ -332,16 +361,20 @@ mail with multiple parts is preferred to sending a Unicode one.") | |||
| 332 | "Return the MIME charset corresponding to the given Mule CHARSET." | 361 | "Return the MIME charset corresponding to the given Mule CHARSET." |
| 333 | (if (and (fboundp 'find-coding-systems-for-charsets) | 362 | (if (and (fboundp 'find-coding-systems-for-charsets) |
| 334 | (fboundp 'sort-coding-systems)) | 363 | (fboundp 'sort-coding-systems)) |
| 335 | (let (mime) | 364 | (let ((css (sort (sort-coding-systems |
| 336 | (dolist (cs (sort-coding-systems | 365 | (find-coding-systems-for-charsets (list charset))) |
| 337 | (copy-sequence | 366 | 'mm-sort-coding-systems-predicate)) |
| 338 | (find-coding-systems-for-charsets (list charset))))) | 367 | cs mime) |
| 339 | (unless mime | 368 | (while (and (not mime) |
| 340 | (when cs | 369 | css) |
| 341 | (setq mime (or (coding-system-get cs :mime-charset) | 370 | (when (setq cs (pop css)) |
| 342 | (coding-system-get cs 'mime-charset)))))) | 371 | (setq mime (or (coding-system-get cs :mime-charset) |
| 372 | (coding-system-get cs 'mime-charset))))) | ||
| 343 | mime) | 373 | mime) |
| 344 | (let ((alist mm-mime-mule-charset-alist) | 374 | (let ((alist (mapcar (lambda (cs) |
| 375 | (assq cs mm-mime-mule-charset-alist)) | ||
| 376 | (sort (mapcar 'car mm-mime-mule-charset-alist) | ||
| 377 | 'mm-sort-coding-systems-predicate))) | ||
| 345 | out) | 378 | out) |
| 346 | (while alist | 379 | (while alist |
| 347 | (when (memq charset (cdar alist)) | 380 | (when (memq charset (cdar alist)) |
| @@ -534,11 +567,14 @@ This affects whether coding conversion should be attempted generally." | |||
| 534 | (let ((priorities | 567 | (let ((priorities |
| 535 | (mapcar (lambda (cs) | 568 | (mapcar (lambda (cs) |
| 536 | ;; Note: invalid entries are dropped silently | 569 | ;; Note: invalid entries are dropped silently |
| 537 | (and (coding-system-p cs) | 570 | (and (setq cs (mm-coding-system-p cs)) |
| 538 | (coding-system-base cs))) | 571 | (coding-system-base cs))) |
| 539 | mm-coding-system-priorities))) | 572 | mm-coding-system-priorities))) |
| 540 | (> (length (memq a priorities)) | 573 | (and (setq a (mm-coding-system-p a)) |
| 541 | (length (memq b priorities))))) | 574 | (if (setq b (mm-coding-system-p b)) |
| 575 | (> (length (memq (coding-system-base a) priorities)) | ||
| 576 | (length (memq (coding-system-base b) priorities))) | ||
| 577 | t)))) | ||
| 542 | 578 | ||
| 543 | (defun mm-find-mime-charset-region (b e &optional hack-charsets) | 579 | (defun mm-find-mime-charset-region (b e &optional hack-charsets) |
| 544 | "Return the MIME charsets needed to encode the region between B and E. | 580 | "Return the MIME charsets needed to encode the region between B and E. |
diff --git a/lisp/gnus/mm-uu.el b/lisp/gnus/mm-uu.el index 17fa59311db..b140cb76df5 100644 --- a/lisp/gnus/mm-uu.el +++ b/lisp/gnus/mm-uu.el | |||
| @@ -80,6 +80,7 @@ This can be either \"inline\" or \"attachment\".") | |||
| 80 | 80 | ||
| 81 | (defcustom mm-uu-diff-groups-regexp "gnus\\.commits" | 81 | (defcustom mm-uu-diff-groups-regexp "gnus\\.commits" |
| 82 | "*Regexp matching diff groups." | 82 | "*Regexp matching diff groups." |
| 83 | :version "21.4" | ||
| 83 | :type 'regexp | 84 | :type 'regexp |
| 84 | :group 'gnus-article-mime) | 85 | :group 'gnus-article-mime) |
| 85 | 86 | ||
diff --git a/lisp/gnus/mml-sec.el b/lisp/gnus/mml-sec.el index b8107364411..8bd2ed784ad 100644 --- a/lisp/gnus/mml-sec.el +++ b/lisp/gnus/mml-sec.el | |||
| @@ -43,6 +43,7 @@ | |||
| 43 | (defcustom mml-default-sign-method "pgpmime" | 43 | (defcustom mml-default-sign-method "pgpmime" |
| 44 | "Default sign method. | 44 | "Default sign method. |
| 45 | The string must have an entry in `mml-sign-alist'." | 45 | The string must have an entry in `mml-sign-alist'." |
| 46 | :version "21.4" | ||
| 46 | :type '(choice (const "smime") | 47 | :type '(choice (const "smime") |
| 47 | (const "pgp") | 48 | (const "pgp") |
| 48 | (const "pgpauto") | 49 | (const "pgpauto") |
| @@ -60,6 +61,7 @@ The string must have an entry in `mml-sign-alist'." | |||
| 60 | (defcustom mml-default-encrypt-method "pgpmime" | 61 | (defcustom mml-default-encrypt-method "pgpmime" |
| 61 | "Default encryption method. | 62 | "Default encryption method. |
| 62 | The string must have an entry in `mml-encrypt-alist'." | 63 | The string must have an entry in `mml-encrypt-alist'." |
| 64 | :version "21.4" | ||
| 63 | :type '(choice (const "smime") | 65 | :type '(choice (const "smime") |
| 64 | (const "pgp") | 66 | (const "pgp") |
| 65 | (const "pgpauto") | 67 | (const "pgpauto") |
| @@ -83,6 +85,7 @@ Note that the output generated by using a `combined' mode is NOT | |||
| 83 | understood by all PGP implementations, in particular PGP version | 85 | understood by all PGP implementations, in particular PGP version |
| 84 | 2 does not support it! See Info node `(message)Security' for | 86 | 2 does not support it! See Info node `(message)Security' for |
| 85 | details." | 87 | details." |
| 88 | :version "21.4" | ||
| 86 | :group 'message | 89 | :group 'message |
| 87 | :type '(repeat (list (choice (const :tag "S/MIME" "smime") | 90 | :type '(repeat (list (choice (const :tag "S/MIME" "smime") |
| 88 | (const :tag "PGP" "pgp") | 91 | (const :tag "PGP" "pgp") |
diff --git a/lisp/gnus/mml2015.el b/lisp/gnus/mml2015.el index 6c89cfbe798..e083c2c9d9c 100644 --- a/lisp/gnus/mml2015.el +++ b/lisp/gnus/mml2015.el | |||
| @@ -83,6 +83,7 @@ | |||
| 83 | ("TRUST_FULLY" . t) | 83 | ("TRUST_FULLY" . t) |
| 84 | ("TRUST_ULTIMATE" . t)) | 84 | ("TRUST_ULTIMATE" . t)) |
| 85 | "Map GnuPG trust output values to a boolean saying if you trust the key." | 85 | "Map GnuPG trust output values to a boolean saying if you trust the key." |
| 86 | :version "21.4" | ||
| 86 | :group 'mime-security | 87 | :group 'mime-security |
| 87 | :type '(repeat (cons (regexp :tag "GnuPG output regexp") | 88 | :type '(repeat (cons (regexp :tag "GnuPG output regexp") |
| 88 | (boolean :tag "Trust key")))) | 89 | (boolean :tag "Trust key")))) |
diff --git a/lisp/gnus/nndiary.el b/lisp/gnus/nndiary.el index 81d5443b640..13000a8ad19 100644 --- a/lisp/gnus/nndiary.el +++ b/lisp/gnus/nndiary.el | |||
| @@ -223,6 +223,7 @@ | |||
| 223 | 223 | ||
| 224 | (defgroup nndiary nil | 224 | (defgroup nndiary nil |
| 225 | "The Gnus Diary backend." | 225 | "The Gnus Diary backend." |
| 226 | :version "21.4" | ||
| 226 | :group 'gnus-diary) | 227 | :group 'gnus-diary) |
| 227 | 228 | ||
| 228 | (defcustom nndiary-mail-sources | 229 | (defcustom nndiary-mail-sources |
diff --git a/lisp/gnus/nnmail.el b/lisp/gnus/nnmail.el index c1a23d8ca9b..040be1e60e1 100644 --- a/lisp/gnus/nnmail.el +++ b/lisp/gnus/nnmail.el | |||
| @@ -119,6 +119,7 @@ If nil, the first match found will be used." | |||
| 119 | (defcustom nnmail-split-fancy-with-parent-ignore-groups nil | 119 | (defcustom nnmail-split-fancy-with-parent-ignore-groups nil |
| 120 | "Regexp that matches group names to be ignored when applying `nnmail-split-fancy-with-parent'. | 120 | "Regexp that matches group names to be ignored when applying `nnmail-split-fancy-with-parent'. |
| 121 | This can also be a list of regexps." | 121 | This can also be a list of regexps." |
| 122 | :version "21.4" | ||
| 122 | :group 'nnmail-split | 123 | :group 'nnmail-split |
| 123 | :type '(choice (const :tag "none" nil) | 124 | :type '(choice (const :tag "none" nil) |
| 124 | (regexp :value ".*") | 125 | (regexp :value ".*") |
| @@ -127,6 +128,7 @@ This can also be a list of regexps." | |||
| 127 | (defcustom nnmail-cache-ignore-groups nil | 128 | (defcustom nnmail-cache-ignore-groups nil |
| 128 | "Regexp that matches group names to be ignored when inserting message ids into the cache (`nnmail-cache-insert'). | 129 | "Regexp that matches group names to be ignored when inserting message ids into the cache (`nnmail-cache-insert'). |
| 129 | This can also be a list of regexps." | 130 | This can also be a list of regexps." |
| 131 | :version "21.4" | ||
| 130 | :group 'nnmail-split | 132 | :group 'nnmail-split |
| 131 | :type '(choice (const :tag "none" nil) | 133 | :type '(choice (const :tag "none" nil) |
| 132 | (regexp :value ".*") | 134 | (regexp :value ".*") |
| @@ -353,6 +355,7 @@ discarded after running the split process." | |||
| 353 | 355 | ||
| 354 | (defcustom nnmail-spool-hook nil | 356 | (defcustom nnmail-spool-hook nil |
| 355 | "*A hook called when a new article is spooled." | 357 | "*A hook called when a new article is spooled." |
| 358 | :version "21.4" | ||
| 356 | :group 'nnmail | 359 | :group 'nnmail |
| 357 | :type 'hook) | 360 | :type 'hook) |
| 358 | 361 | ||
| @@ -575,6 +578,7 @@ Normally, regexes given in `nnmail-split-fancy' are implicitly surrounded | |||
| 575 | by \"\\=\\<...\\>\". If this variable is true, they are not implicitly\ | 578 | by \"\\=\\<...\\>\". If this variable is true, they are not implicitly\ |
| 576 | surrounded | 579 | surrounded |
| 577 | by anything." | 580 | by anything." |
| 581 | :version "21.4" | ||
| 578 | :group 'nnmail | 582 | :group 'nnmail |
| 579 | :type 'boolean) | 583 | :type 'boolean) |
| 580 | 584 | ||
| @@ -582,6 +586,7 @@ by anything." | |||
| 582 | "Whether to lowercase expanded entries (i.e. \\N) when splitting mails. | 586 | "Whether to lowercase expanded entries (i.e. \\N) when splitting mails. |
| 583 | This avoids the creation of multiple groups when users send to an address | 587 | This avoids the creation of multiple groups when users send to an address |
| 584 | using different case (i.e. mailing-list@domain vs Mailing-List@Domain)." | 588 | using different case (i.e. mailing-list@domain vs Mailing-List@Domain)." |
| 589 | :version "21.4" | ||
| 585 | :group 'nnmail | 590 | :group 'nnmail |
| 586 | :type 'boolean) | 591 | :type 'boolean) |
| 587 | 592 | ||
diff --git a/lisp/gnus/pgg-def.el b/lisp/gnus/pgg-def.el index b8d9cbec807..046f57dbbfe 100644 --- a/lisp/gnus/pgg-def.el +++ b/lisp/gnus/pgg-def.el | |||
| @@ -29,7 +29,8 @@ | |||
| 29 | 29 | ||
| 30 | (defgroup pgg () | 30 | (defgroup pgg () |
| 31 | "Glue for the various PGP implementations." | 31 | "Glue for the various PGP implementations." |
| 32 | :group 'mime) | 32 | :group 'mime |
| 33 | :version "21.4") | ||
| 33 | 34 | ||
| 34 | (defcustom pgg-default-scheme 'gpg | 35 | (defcustom pgg-default-scheme 'gpg |
| 35 | "Default PGP scheme." | 36 | "Default PGP scheme." |
diff --git a/lisp/gnus/sha1.el b/lisp/gnus/sha1.el index a9b68805d3f..51a826fe5fc 100644 --- a/lisp/gnus/sha1.el +++ b/lisp/gnus/sha1.el | |||
| @@ -60,6 +60,7 @@ | |||
| 60 | 60 | ||
| 61 | (defgroup sha1 nil | 61 | (defgroup sha1 nil |
| 62 | "Elisp interface for SHA1 hash computation." | 62 | "Elisp interface for SHA1 hash computation." |
| 63 | :version "21.4" | ||
| 63 | :group 'extensions) | 64 | :group 'extensions) |
| 64 | 65 | ||
| 65 | (defcustom sha1-maximum-internal-length 500 | 66 | (defcustom sha1-maximum-internal-length 500 |
| @@ -82,7 +83,6 @@ It must be a string \(program name\) or list of strings \(name and its args\)." | |||
| 82 | (error)) | 83 | (error)) |
| 83 | "*Use external SHA1 program. | 84 | "*Use external SHA1 program. |
| 84 | If this variable is set to nil, use internal function only." | 85 | If this variable is set to nil, use internal function only." |
| 85 | :version "21.4" | ||
| 86 | :type 'boolean | 86 | :type 'boolean |
| 87 | :group 'sha1) | 87 | :group 'sha1) |
| 88 | 88 | ||
diff --git a/lisp/gnus/sieve.el b/lisp/gnus/sieve.el index f4645168dec..c37ffb616db 100644 --- a/lisp/gnus/sieve.el +++ b/lisp/gnus/sieve.el | |||
| @@ -65,6 +65,7 @@ | |||
| 65 | 65 | ||
| 66 | (defgroup sieve nil | 66 | (defgroup sieve nil |
| 67 | "Manage sieve scripts." | 67 | "Manage sieve scripts." |
| 68 | :version "21.4" | ||
| 68 | :group 'tools) | 69 | :group 'tools) |
| 69 | 70 | ||
| 70 | (defcustom sieve-new-script "<new script>" | 71 | (defcustom sieve-new-script "<new script>" |
diff --git a/lisp/gnus/spam-stat.el b/lisp/gnus/spam-stat.el index f197d165cdd..eb33b7ad0b3 100644 --- a/lisp/gnus/spam-stat.el +++ b/lisp/gnus/spam-stat.el | |||
| @@ -128,6 +128,7 @@ | |||
| 128 | Use the functions to build a dictionary of words and their statistical | 128 | Use the functions to build a dictionary of words and their statistical |
| 129 | distribution in spam and non-spam mails. Then use a function to determine | 129 | distribution in spam and non-spam mails. Then use a function to determine |
| 130 | whether a buffer contains spam or not." | 130 | whether a buffer contains spam or not." |
| 131 | :version "21.4" | ||
| 131 | :group 'gnus) | 132 | :group 'gnus) |
| 132 | 133 | ||
| 133 | (defcustom spam-stat-file "~/.spam-stat.el" | 134 | (defcustom spam-stat-file "~/.spam-stat.el" |
diff --git a/lisp/gnus/spam.el b/lisp/gnus/spam.el index 1dc9058dd1f..075408b8fc7 100644 --- a/lisp/gnus/spam.el +++ b/lisp/gnus/spam.el | |||
| @@ -76,7 +76,8 @@ | |||
| 76 | ;;; Main parameters. | 76 | ;;; Main parameters. |
| 77 | 77 | ||
| 78 | (defgroup spam nil | 78 | (defgroup spam nil |
| 79 | "Spam configuration.") | 79 | "Spam configuration." |
| 80 | :version "21.4") | ||
| 80 | 81 | ||
| 81 | (defcustom spam-directory (nnheader-concat gnus-directory "spam/") | 82 | (defcustom spam-directory (nnheader-concat gnus-directory "spam/") |
| 82 | "Directory for spam whitelists and blacklists." | 83 | "Directory for spam whitelists and blacklists." |
diff --git a/lisp/gnus/starttls.el b/lisp/gnus/starttls.el index c172e88c515..7a2eef5e7d0 100644 --- a/lisp/gnus/starttls.el +++ b/lisp/gnus/starttls.el | |||
| @@ -126,6 +126,7 @@ | |||
| 126 | "Name of GNUTLS command line tool. | 126 | "Name of GNUTLS command line tool. |
| 127 | This program is used when GNUTLS is used, i.e. when | 127 | This program is used when GNUTLS is used, i.e. when |
| 128 | `starttls-use-gnutls' is non-nil." | 128 | `starttls-use-gnutls' is non-nil." |
| 129 | :version "21.4" | ||
| 129 | :type 'string | 130 | :type 'string |
| 130 | :group 'starttls) | 131 | :group 'starttls) |
| 131 | 132 | ||
| @@ -138,6 +139,7 @@ i.e. when `starttls-use-gnutls' is nil." | |||
| 138 | 139 | ||
| 139 | (defcustom starttls-use-gnutls (not (executable-find starttls-program)) | 140 | (defcustom starttls-use-gnutls (not (executable-find starttls-program)) |
| 140 | "*Whether to use GNUTLS instead of the `starttls' command." | 141 | "*Whether to use GNUTLS instead of the `starttls' command." |
| 142 | :version "21.4" | ||
| 141 | :type 'boolean | 143 | :type 'boolean |
| 142 | :group 'starttls) | 144 | :group 'starttls) |
| 143 | 145 | ||
| @@ -156,11 +158,13 @@ This program is used when GNUTLS is used, i.e. when | |||
| 156 | For example, non-TLS compliant servers may require | 158 | For example, non-TLS compliant servers may require |
| 157 | '(\"--protocols\" \"ssl3\"). Invoke \"gnutls-cli --help\" to | 159 | '(\"--protocols\" \"ssl3\"). Invoke \"gnutls-cli --help\" to |
| 158 | find out which parameters are available." | 160 | find out which parameters are available." |
| 161 | :version "21.4" | ||
| 159 | :type '(repeat string) | 162 | :type '(repeat string) |
| 160 | :group 'starttls) | 163 | :group 'starttls) |
| 161 | 164 | ||
| 162 | (defcustom starttls-process-connection-type nil | 165 | (defcustom starttls-process-connection-type nil |
| 163 | "*Value for `process-connection-type' to use when starting STARTTLS process." | 166 | "*Value for `process-connection-type' to use when starting STARTTLS process." |
| 167 | :version "21.4" | ||
| 164 | :type 'boolean | 168 | :type 'boolean |
| 165 | :group 'starttls) | 169 | :group 'starttls) |
| 166 | 170 | ||
| @@ -170,6 +174,7 @@ The default is what GNUTLS's \"gnutls-cli\" outputs." | |||
| 170 | ;; GNUTLS cli.c:main() print this string when it is starting to run | 174 | ;; GNUTLS cli.c:main() print this string when it is starting to run |
| 171 | ;; in the application read/write phase. If the logic, or the string | 175 | ;; in the application read/write phase. If the logic, or the string |
| 172 | ;; itself, is modified, this must be updated. | 176 | ;; itself, is modified, this must be updated. |
| 177 | :version "21.4" | ||
| 173 | :type 'regexp | 178 | :type 'regexp |
| 174 | :group 'starttls) | 179 | :group 'starttls) |
| 175 | 180 | ||
| @@ -178,6 +183,7 @@ The default is what GNUTLS's \"gnutls-cli\" outputs." | |||
| 178 | The default is what GNUTLS's \"gnutls-cli\" outputs." | 183 | The default is what GNUTLS's \"gnutls-cli\" outputs." |
| 179 | ;; GNUTLS cli.c:do_handshake() print this string on failure. If the | 184 | ;; GNUTLS cli.c:do_handshake() print this string on failure. If the |
| 180 | ;; logic, or the string itself, is modified, this must be updated. | 185 | ;; logic, or the string itself, is modified, this must be updated. |
| 186 | :version "21.4" | ||
| 181 | :type 'regexp | 187 | :type 'regexp |
| 182 | :group 'starttls) | 188 | :group 'starttls) |
| 183 | 189 | ||
| @@ -188,6 +194,7 @@ The default is what GNUTLS's \"gnutls-cli\" outputs." | |||
| 188 | ;; common.c:print_info(), that unconditionally print this string | 194 | ;; common.c:print_info(), that unconditionally print this string |
| 189 | ;; last. If that logic, or the string itself, is modified, this | 195 | ;; last. If that logic, or the string itself, is modified, this |
| 190 | ;; must be updated. | 196 | ;; must be updated. |
| 197 | :version "21.4" | ||
| 191 | :type 'regexp | 198 | :type 'regexp |
| 192 | :group 'starttls) | 199 | :group 'starttls) |
| 193 | 200 | ||