From: shuhei-k Date: Sun, 16 Aug 1998 22:32:00 +0000 (+0000) Subject: Sync up with Gnus 5.6.36. X-Git-Tag: semi-mule-199811302358~25 X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=debd721803734ae4b3fab0865e6522b1a199194e;p=elisp%2Fgnus.git- Sync up with Gnus 5.6.36. --- diff --git a/ChangeLog b/ChangeLog index dca94e4..cab01c3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 1998-08-16 Shuhei KOBAYASHI + * lisp/gnus.el (gnus-version-number): Update to 6.8.5. + + * Sync up with Gnus 5.6.36. + +1998-08-16 Shuhei KOBAYASHI + * lisp/gnus.el (gnus-version-number): Update to 6.8.4. * Sync up with Gnus 5.6.30. diff --git a/Makefile.in b/Makefile.in index 7c675a4..a30ae8d 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,3 +1,5 @@ +prefix = @prefix@ +datadir = @datadir@ lispdir = @lispdir@ srcdir = @srcdir@ diff --git a/lisp/ChangeLog b/lisp/ChangeLog index ed55690..5435e3d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,192 @@ +Fri Aug 14 23:03:51 1998 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v5.6.36 is released. + +1998-08-14 21:49:22 Lars Magne Ingebrigtsen + + * gnus.el (load): Push onto list. + + * gnus-group.el (gnus-group-get-new-news-this-group): Store active + info. + +Fri Aug 14 21:41:59 1998 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v5.6.35 is released. + +1998-08-14 00:00:15 Lars Magne Ingebrigtsen + + * gnus-srvr.el (gnus-server-scan-server): Error better. + + * nndir.el: Make independent of nnmh. + Revert. + + * message.el (message-remove-text-with-property): New function. + (message-fix-before-sending): Check for invisible text. + + * gnus.el (load): Create the Gnus buffer even when no splash. + + * gnus-msg.el (gnus-setup-message): Add buffer to list. + + * gnus-win.el (gnus-remove-some-windows): Use new buffer system. + (gnus-delete-windows-in-gnusey-frames): Ditto. + + * gnus.el (gnus-add-buffer): New function. + +1998-08-13 23:38:21 Lars Magne Ingebrigtsen + + * gnus-xmas.el (gnus-buffer-list): Removed. + + * gnus.el (gnus-buffers): New variable. + (gnus-get-buffer-create): New function; used throughout. + (gnus-buffers): New function. + + * gnus-msg.el (gnus-configure-posting-styles): Go to eoh + reliably. + + * message.el (message-goto-eoh): New command. + +1998-08-13 23:13:53 Simon Josefsson + + * gnus-msg.el (gnus-setup-message): use message-setup-hook + instead + (gnus-configure-posting-styles): new posting-style 'body + (gnus-configure-posting-styles): insert headers immediately + +1998-08-13 13:05:36 Lars Magne Ingebrigtsen + + * gnus-score.el (gnus-summary-increase-score): Change thread to + "r". + + * gnus-sum.el (gnus-summary-scroll-down): New command and + keystroke. + + * gnus-agent.el (gnus-agent-expire): Check that directories + exist. + +1998-08-12 20:56:41 Simon Josefsson + + * gnus-cache.el (gnus-uncacheable-groups): doc change + (gnus-cacheable-groups): new variable + (gnus-cache-possibly-enter-article): use it + +1998-08-12 22:30:16 Lars Magne Ingebrigtsen + + * nntp.el (nntp-encode-text): Too much text. + +1998-08-12 21:58:50 Matt Pharr + + * message.el (message-make-forward-subject-function): New + variable. + (message-wash-forwarded-subjects): Ditto. + +Wed Aug 12 21:09:58 1998 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v5.6.34 is released. + +1998-08-12 13:32:38 Lars Magne Ingebrigtsen + + * gnus-msg.el (gnus-post-method): Don't use `current' in drafts. + + * gnus-score.el (gnus-summary-increase-score): Changed T to h and + downcase. + +Tue Aug 11 20:46:25 1998 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v5.6.33 is released. + +1998-08-11 20:07:55 Lars Magne Ingebrigtsen + + * gnus-group.el (gnus-group-apropos): Check symbol value. + + * gnus-cite.el (gnus-cited-closed-text-button-line-format): + Changed. + +Tue Aug 11 19:42:42 1998 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v5.6.32 is released. + +1998-08-11 13:36:56 Lars Magne Ingebrigtsen + + * nndoc.el (nndoc-type-alist): Do MIME digests before multiparts. + + * gnus.el (gnus-predefined-server-alist): Expand vars. + +1998-08-09 Dave Love + + * gnus-art.el (article-display-x-face): Don't try (and fail) to + display multiple faces. + +1998-08-11 11:41:43 Lars Magne Ingebrigtsen + + * gnus-art.el (gnus-header-newsgroups-face): Don't bold so much. + + * gnus-group.el (gnus-group-rename-group): Remove old group name + from list of killed groups. + + * gnus-int.el (gnus-get-function): Error better. + + * gnus-art.el (gnus-article-narrow-to-signature): Inhibit motion + hooks. + (article-hide-pgp): Delete text instead of hiding it. + + * gnus-group.el (gnus-group-find-new-groups): Ditto. + + * gnus-start.el (gnus-find-new-newsgroups): Accept C-u C-u as a + total query. + +1998-08-10 09:31:36 Lars Magne Ingebrigtsen + + * gnus-art.el (gnus-article-prepare): Place point at the beginning + of the body. + + * gnus-cite.el (gnus-cite-attribution-face): Changed to italic. + + * gnus-art.el (gnus-article-edit-article): Delete "annotation" + text. + (gnus-insert-prev-page-button): Mark as annotation. + (gnus-insert-next-page-button): Ditto. + + * gnus-cite.el (gnus-cited-closed-text-button-line-format): New + variable. + (gnus-cited-closed-text-button-line-format-alist): Ditto. + (gnus-article-toggle-cited-text): Toggle between different + symbols. + +1998-08-09 19:58:36 Lars Magne Ingebrigtsen + + * gnus.el (gnus-version): Remove backend info. + +Sun Aug 9 19:37:40 1998 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v5.6.31 is released. + +1998-08-09 François Pinard + + * nndoc.el: Split MIME multipart messages, maybe recursively. + (nndoc-mime-parts-type-p, nndoc-transform-mime-parts, + nndoc-generate-mime-parts-head, nndoc-dissect-mime-parts, + nndoc-dissect-mime-parts-sub): New functions. + + * nndoc.el: Quoting boundaries is optional, for multipart digests. + +1998-08-09 17:51:25 Lars Magne Ingebrigtsen + + * gnus-agent.el (gnus-agent-save-group-info): Check whether file + exists. + + * message.el (message-goto-signature): Return nil if no sig. + (message-delete-not-region): Delete properly if no sig. + +1998-08-09 17:26:30 Simon Josefsson + + * gnus-srvr.el (gnus-browse-make-menu-bar): select did read + +1998-08-09 15:51:43 Lars Magne Ingebrigtsen + + * gnus-sum.el (t): Added keystroke for W W C. + + * gnus-cite.el (gnus-article-hide-citation-maybe): hiden->hidden. + Sun Aug 9 15:46:16 1998 Lars Magne Ingebrigtsen * gnus.el: Gnus v5.6.30 is released. @@ -25,7 +214,7 @@ Sun Aug 9 15:46:16 1998 Lars Magne Ingebrigtsen * gnus.el (gnus-continuum-version): Include quassia. - * gnus-sum.el (gnus-data-enter-list): Check before entering list. + * gnus-sum.el (gnus-data-enter-list): Check before entering list. 1998-08-06 11:13:56 Francois Felix Ingrand @@ -41,7 +230,7 @@ Thu Aug 6 07:58:17 1998 Lars Magne Ingebrigtsen * gnus-agent.el (gnus-agent-expire): Check whether (caar gnus-agent-article-alist) is nil. - * gnus.el (gnus-read-method): Allow selecting predefined servers. + * gnus.el (gnus-read-method): Allow selecting predefined servers. * gnus-topic.el (gnus-topic-update-topic-line): Compute right number when inserting missing topic lines. @@ -50,7 +239,7 @@ Thu Aug 6 07:58:17 1998 Lars Magne Ingebrigtsen is alive. * gnus-score.el (gnus-score-load-score-alist): Better error - messaging. + messaging. Tue Aug 4 09:42:31 1998 Kurt Swanson @@ -88,7 +277,7 @@ Tue Aug 4 09:42:31 1998 Kurt Swanson * gnus-sum.el (gnus-select-newsgroup): Set `gnus-newsgroup-unselected' when selecting specific articles via SELECT-ARTICLE - there may be more headers to fetch if - `gnus-fetch-old-headers' is non-nil. + `gnus-fetch-old-headers' is non-nil. (gnus-summary-read-group): pass SELECT-ARTICLE to `gnus-summary-read-group-1' and reset to nil when going to next group. (gnus-summary-read-group): Change `select-article' to @@ -120,7 +309,7 @@ Tue Aug 4 05:25:01 1998 Lars Magne Ingebrigtsen 1998-07-30 21:47:23 Lars Magne Ingebrigtsen * gnus-cache.el (gnus-summary-insert-cached-articles): Sort - articles. + articles. * nndir.el (nndir): Use nnml functions. @@ -160,7 +349,7 @@ Mon Jul 27 03:26:00 1998 Lars Magne Ingebrigtsen 1998-07-26 19:01:58 Lars Magne Ingebrigtsen * gnus-art.el (gnus-request-article-this-buffer): Pass along - header. + header. * gnus-sum.el (gnus-summary-update-article): Don't pass along iheader to regeneration routine. @@ -177,7 +366,7 @@ Sat Jul 25 19:31:36 1998 Lars Magne Ingebrigtsen 1998-07-25 14:53:24 Lars Magne Ingebrigtsen * gnus-salt.el (gnus-pick-mouse-pick-region): Use - gnus-read-event-char. + gnus-read-event-char. Sat Jul 25 02:43:35 1998 Lars Magne Ingebrigtsen @@ -216,7 +405,7 @@ Sat Jul 25 02:43:35 1998 Lars Magne Ingebrigtsen 1998-07-15 10:47:39 Lars Magne Ingebrigtsen * nnvirtual.el (nnvirtual-request-type): Handle non-numerical - articles. + articles. * gnus.el (gnus-news-group-p): Do something sensible with negative articlies. @@ -240,7 +429,7 @@ Wed Jul 15 10:10:07 1998 Lars Magne Ingebrigtsen Wed Jul 15 09:56:47 1998 Lars Magne Ingebrigtsen * gnus-sum.el (gnus-select-newsgroup): Accept select-articles - para, + para, 1998-07-13 Mike McEwan @@ -266,17 +455,17 @@ Sun Jul 12 04:01:22 1998 Lars Magne Ingebrigtsen * gnus-agent.el (gnus-agent-expire): Update group info to add expired articles to list of read articles and prevent - re-fetching. + re-fetching. 1998-07-12 Lars Magne Ingebrigtsen * nnmail.el (nnmail-active-file-coding-system): Changed to - binary. + binary. Sun Jul 12 03:16:18 1998 Lars Magne Ingebrigtsen * gnus-score.el (gnus-score-load-file): Specify which alist to - decay. + decay. 1998-07-12 Lars Magne Ingebrigtsen @@ -298,11 +487,11 @@ Fri Jul 10 04:15:35 1998 Lars Magne Ingebrigtsen Fri Jul 10 03:03:48 1998 François Pinard * gnus-sum.el (gnus-summary-respool-trace): New command and - keystroke. + keystroke. Fri Jul 10 02:18:01 1998 Lars Magne Ingebrigtsen - * gnus-util.el (gnus-prin1): Bind print-escape-multibyte to nil. + * gnus-util.el (gnus-prin1): Bind print-escape-multibyte to nil. Mon Jul 6 01:02:59 1998 Simon Josefsson @@ -331,7 +520,7 @@ Wed Jul 1 17:30:41 1998 Lars Magne Ingebrigtsen * gnus-topic.el (gnus-topic-mode-map): Bind TAB and M-TAB. * gnus-sum.el (gnus-build-sparse-threads): Make sure no dates are - nil. + nil. (gnus-summary-limit-mark-excluded-as-read): Use the intersection. * gnus-msg.el (gnus-setup-message): Clone all local variables from @@ -352,7 +541,7 @@ Wed Jul 1 13:33:26 1998 Lars Magne Ingebrigtsen Wed Jul 1 12:52:32 1998 Lars Magne Ingebrigtsen - * nntp.el (nntp-record-command): Give more precise time info. + * nntp.el (nntp-record-command): Give more precise time info. (nntp-next-result-arrived-p): Look for the end of error lines. Wed Jul 1 12:24:06 1998 François Pinard @@ -394,7 +583,7 @@ Mon Jun 29 21:22:46 1998 Lars Magne Ingebrigtsen Sun Jun 28 14:32:08 1998 Lars Magne Ingebrigtsen - * gnus-spec.el (gnus-face-face-function): Double quoting removed. + * gnus-spec.el (gnus-face-face-function): Double quoting removed. Sun Jun 28 09:54:52 1998 Lars Magne Ingebrigtsen @@ -406,7 +595,7 @@ Sun Jun 28 08:51:39 1998 Lars Magne Ingebrigtsen a temp buffer before replacing. * gnus-msg.el (gnus-post-news): Treat broken-reply-to in - followups. + followups. * gnus-sum.el (gnus-summary-goto-subject): Position point. @@ -420,7 +609,7 @@ Sat Jun 27 09:19:20 1998 Lars Magne Ingebrigtsen * gnus-util.el (gnus-put-text-properties-excluding-characters-with-faces): New - function. + function. Sat Jun 27 08:56:08 1998 Lars Magne Ingebrigtsen @@ -433,7 +622,7 @@ Sat Jun 27 08:49:51 1998 Arne Georg Gleditsch Sat Jun 27 08:45:09 1998 Lars Magne Ingebrigtsen * message.el (message-check-news-body-syntax): Buggy checksum - check. + check. Sat Jun 27 07:59:22 1998 Lars Magne Ingebrigtsen @@ -450,7 +639,7 @@ Sat Jun 27 03:18:57 1998 Lars Magne Ingebrigtsen * nnfolder.el (nnfolder-request-replace-article): Check all X-From headers. - * gnus-sum.el (gnus-update-marks): Don't nix out cache lists. + * gnus-sum.el (gnus-update-marks): Don't nix out cache lists. * nngateway.el (nngateway-mail2news-header-transformation): Changed semantics. @@ -482,7 +671,7 @@ Fri Jun 26 13:45:24 1998 Lars Magne Ingebrigtsen * gnus-util.el (gnus-delete-alist): New function. * gnus-sum.el (gnus-update-marks): Don't save list of cached - articles. + articles. * message.el (message-mode-menu): Include kill-buffer. @@ -499,7 +688,7 @@ Fri Jun 26 13:45:09 1998 Richard Stallman Fri Jun 26 13:30:42 1998 Kevin Christian * gnus-score.el (gnus-score-string): Do updating of scores after - fuzzies. + fuzzies. Fri Jun 26 07:26:03 1998 Lars Magne Ingebrigtsen @@ -517,7 +706,7 @@ Fri Jun 26 04:29:44 1998 Lars Magne Ingebrigtsen * gnus-score.el (gnus-score-load-file): Would ignore all score files without un-advanced rules. - * gnus-ems.el ((fboundp 'split-string)): Use it where it exists. + * gnus-ems.el ((fboundp 'split-string)): Use it where it exists. Fri Jun 26 04:23:12 1998 Lars Magne Ingebrigtsen @@ -526,7 +715,7 @@ Fri Jun 26 04:23:12 1998 Lars Magne Ingebrigtsen Fri Jun 26 03:39:32 1998 Lars Magne Ingebrigtsen * nnfolder.el (nnfolder-request-replace-article): Delete old - delimiter. + delimiter. * gnus-msg.el (gnus-summary-reply): Use it. @@ -551,9 +740,9 @@ Thu Jun 25 10:35:48 1998 Lars Magne Ingebrigtsen * gnus-sum.el (gnus-summary-limit-to-age): Reverse logic. * gnus-score.el (gnus-summary-score-entry): Removed interactive - spec. + spec. ((gnus-summary-score-map "V" gnus-summary-mode-map)): Removed - keystroke. + keystroke. * gnus-art.el (gnus-article-show-summary): Position point. @@ -577,7 +766,7 @@ Thu Jun 25 05:13:31 1998 Lars Magne Ingebrigtsen * gnus-salt.el (gnus-pick-mode-map): Reinstated keymap. * gnus-sum.el (gnus-build-sparse-threads): Put the proper date - in. + in. Wed Jun 24 07:52:30 1998 Lars Magne Ingebrigtsen @@ -590,12 +779,12 @@ Wed Jun 24 07:47:04 1998 Lars Magne Ingebrigtsen Wed Jun 24 07:33:17 1998 Vladimir Alexiev * nnvirtual.el (nnvirtual-update-xref-header): Regexp-quote group - name. + name. Wed Jun 24 06:15:27 1998 Lars Magne Ingebrigtsen * gnus-sum.el (gnus-build-sparse-threads): Give all the sparse - articles the date of the current child. + articles the date of the current child. * gnus-topic.el (gnus-group-topic-parameters): Didn't compute. @@ -626,7 +815,7 @@ Wed Jun 24 03:04:05 1998 Kim-Minh Kaplan Wed Jun 24 02:49:57 1998 Castor - * nntp.el (nntp-open-ssl-stream): + * nntp.el (nntp-open-ssl-stream): Wed Jun 24 02:31:46 1998 Lars Magne Ingebrigtsen @@ -636,7 +825,7 @@ Wed Jun 24 02:31:46 1998 Lars Magne Ingebrigtsen Wed Jun 24 01:43:26 1998 Decklin Foster * nngateway.el (nngateway-mail2news-header-transformation): New - function. + function. Wed Jun 24 00:25:45 1998 Lars Magne Ingebrigtsen @@ -650,18 +839,18 @@ Wed Jun 24 00:25:45 1998 Lars Magne Ingebrigtsen Tue Jun 23 23:58:48 1998 Lars Magne Ingebrigtsen * gnus-topic.el (gnus-topic-prepare-topic): Respect visible topic - param. + param. (gnus-topic-hierarchical-parameters): New function. 1998-06-02 Didier Verna * gnus-picon.el (gnus-get-buffer-name): use get-buffer-create - instead of get-buffer + instead of get-buffer Wed Jun 3 04:41:45 1998 Lars Magne Ingebrigtsen * nnkiboze.el (nnkiboze-request-delete-group): Delete .newsrc - file. + file. * nnmail.el (nnmail-article-group): Nuke looong lines. @@ -750,7 +939,7 @@ Sat May 23 19:44:43 1998 Lars Magne Ingebrigtsen Tue May 19 04:11:33 1998 Yoshiki Hayashi * nnheader.el (nnheader-translate-file-chars): Don't change - string. + string. Tue May 19 03:07:45 1998 P. E. Jareth Hein @@ -767,7 +956,7 @@ Tue May 12 06:12:42 1998 Lars Magne Ingebrigtsen Sun May 10 19:08:28 1998 Lars Magne Ingebrigtsen * gnus-group.el (gnus-group-read-ephemeral-group): Don't add - `address'. + `address'. Sun May 3 18:01:01 1998 Lars Magne Ingebrigtsen @@ -800,7 +989,7 @@ Sat May 2 01:36:37 1998 Lars Magne Ingebrigtsen `find-file-hooks' to nil. * nnmail.el (nnmail-process-unix-mail-format): Don't use - `find-file-noselect'. + `find-file-noselect'. * gnus-group.el (gnus-group-make-menu-bar): Typo. @@ -832,7 +1021,7 @@ Fri May 1 16:56:32 1998 Lars Magne Ingebrigtsen buffer. * gnus-soup.el (gnus-soup-parse-areas): Check whether the file - exists. + exists. * gnus-draft.el (gnus-draft-send): Use meta-information. @@ -844,7 +1033,7 @@ Fri May 1 16:56:32 1998 Lars Magne Ingebrigtsen Fri May 1 16:43:35 1998 Paul Franklin * message.el (message-generate-headers): Insert Sender when - required. + required. Fri May 1 15:28:55 1998 Lars Magne Ingebrigtsen @@ -854,10 +1043,10 @@ Fri May 1 15:28:55 1998 Lars Magne Ingebrigtsen when hiding. * gnus-msg.el (gnus-post-method): Allow ARG to override - `current'. + `current'. * gnus-sum.el (gnus-remove-thread): Remove the dummy root - properly. + properly. * nnfolder.el (nnfolder-goto-article): New function. (nnfolder-retrieve-headers): Use it. @@ -875,7 +1064,7 @@ Wed Apr 29 20:54:35 1998 Lars Magne Ingebrigtsen dummy roots. * gnus-cache.el (gnus-cache-enter-article): Update marks - properly. + properly. * gnus-xmas.el (gnus-xmas-draft-menu-add): New function. @@ -891,22 +1080,22 @@ Wed Apr 29 20:54:35 1998 Lars Magne Ingebrigtsen Wed Apr 29 20:18:45 1998 Kurt Swanson * gnus-art.el (article-update-date-lapsed): Bind - `deactivate-mark'. + `deactivate-mark'. * gnus-salt.el (gnus-pick-mode-map): Moved keys around to avoid - shadowing. + shadowing. * gnus-art.el (gnus-article-read-summary-keys): New version. - * gnus-sum.el (gnus-summary-make-menu-bar): New for article mode. + * gnus-sum.el (gnus-summary-make-menu-bar): New for article mode. * gnus-msg.el (gnus-post-method): `current' custom. Wed Apr 29 19:04:27 1998 Lars Magne Ingebrigtsen * gnus-sum.el (gnus-summary-set-local-parameters): Ignore - quit-config. - (gnus-select-newsgroup): Use the value of gnus-fetch-old-headers. + quit-config. + (gnus-select-newsgroup): Use the value of gnus-fetch-old-headers. * message.el (message-post-method): Doc fix. @@ -925,7 +1114,7 @@ Tue Apr 28 03:15:50 1998 Hallvard B. Furuseth Tue Apr 28 03:00:16 1998 Lars Magne Ingebrigtsen * gnus-sum.el (gnus-parent-headers): Don't infloop on nil - References. + References. * gnus-art.el (gnus-article-mode): Don't kill local vars. @@ -980,9 +1169,9 @@ Sun Apr 26 14:34:06 1998 Lars Magne Ingebrigtsen * gnus-sum.el (gnus-summary-update-info): Don't nix out scores. * gnus-start.el (gnus-active-to-gnus-format): Removed "." from - quoting. + quoting. - * gnus.el (gnus-cache-directory): Moved here. + * gnus.el (gnus-cache-directory): Moved here. (gnus-predefined-server-alist): Use. * message.el (message-autosave-directory): Put back in. @@ -1005,7 +1194,7 @@ Sun Apr 26 14:34:06 1998 Lars Magne Ingebrigtsen Sun Apr 26 14:05:40 1998 Frank Bennett * nnmail.el (nnmail-move-inbox): Push error'ed mailboxes onto the - list. + list. Sun Apr 26 13:01:53 1998 Lars Magne Ingebrigtsen @@ -1077,7 +1266,7 @@ Wed Apr 1 16:01:44 1998 Lars Magne Ingebrigtsen Sun Mar 29 11:54:33 1998 Lars Magne Ingebrigtsen * nnkiboze.el (nnkiboze-generate-group): Would mess up newsrs - hashtb. + hashtb. (nnkiboze-enter-nov): Created bogus Xrefs headers. * gnus-agent.el (gnus-agent-save-group-info): New function. @@ -1087,7 +1276,7 @@ Sun Mar 29 11:54:33 1998 Lars Magne Ingebrigtsen * message.el (message-expand-group): Allow completion from in the middle of strings. (message-font-lock-keywords): Work when mail-header-separator is - "". + "". Sun Mar 29 09:56:00 1998 Lars Magne Ingebrigtsen @@ -1142,7 +1331,7 @@ Thu Mar 19 15:09:14 1998 Wes Hardaker 1998-03-17 Per Abrahamsen * gnus-uu.el (gnus-uu-digest-headers): Add `Content-Type' and - `Content-Transfer-Encoding'. + `Content-Transfer-Encoding'. 1998-03-18 Per Abrahamsen @@ -1170,7 +1359,7 @@ Thu Mar 19 12:44:12 1998 Lars Magne Ingebrigtsen * gnus-msg.el: Would use nil group names. * nntp.el (nntp-send-authinfo): Send authinfo to "force"d - servers. + servers. * gnus-util.el (gnus-parse-netrc): Accept the "force" token. @@ -1207,7 +1396,7 @@ Fri Mar 13 22:07:17 1998 Shenghuo ZHU Fri Mar 13 21:10:24 1998 Lars Magne Ingebrigtsen - * nnvirtual.el (nnvirtual-request-group): Force updating of info. + * nnvirtual.el (nnvirtual-request-group): Force updating of info. Sun Mar 8 20:46:51 1998 Lars Magne Ingebrigtsen @@ -1220,7 +1409,7 @@ Sun Mar 8 14:05:25 1998 Lars Magne Ingebrigtsen Sun Mar 8 00:35:09 1998 Lars Magne Ingebrigtsen * gnus-picon.el (gnus-get-buffer-name): Look in the assoc for the - variable. + variable. * nntp.el (nntp-wait-for): Check more for dead connections. @@ -1280,7 +1469,7 @@ Sat Mar 7 15:01:57 1998 Lars Magne Ingebrigtsen Sat Mar 7 15:00:05 1998 Wes Hardaker * gnus-art.el (gnus-article-prepare): Mark articles as - downloadable. + downloadable. Wed Mar 4 22:33:27 1998 Ken Raeburn @@ -1329,10 +1518,10 @@ Sat Feb 28 13:35:26 1998 Lars Magne Ingebrigtsen (nntp-record-commands): New variable. (nntp-record-command): New function. - * gnus-agent.el (gnus-agent-group-path): Use real name of group. + * gnus-agent.el (gnus-agent-group-path): Use real name of group. * gnus-sum.el (gnus-summary-insert-subject): Don't allow nil - articles. + articles. (gnus-summary-read-group): Respect backward movement. 1998-03-01 Kim-Minh Kaplan @@ -1366,7 +1555,7 @@ Sat Feb 28 08:17:37 1998 Lars Magne Ingebrigtsen Sat Feb 28 08:10:27 1998 Lars Magne Ingebrigtsen * gnus-picon.el (gnus-picons-display-x-face): `buf' -- unbound - var. + var. Sat Feb 28 08:03:23 1998 François Pinard @@ -1378,7 +1567,7 @@ Sat Feb 28 07:43:00 1998 Nelson Jose dos Santos Ferreira - * gnus-start.el (gnus-ask-server-for-new-groups): Message more. + * gnus-start.el (gnus-ask-server-for-new-groups): Message more. Fri Feb 27 13:26:34 1998 Lars Magne Ingebrigtsen @@ -1399,7 +1588,7 @@ Mon Feb 23 18:26:48 1998 Lars Magne Ingebrigtsen * gnus-ems.el (gnus-ems-redefine): Define 'gnus-summary-set-display-table as a function that takes no - params. + params. * gnus.el (gnus-interactive): Don't use gnus-sum macros. (gnus-valid-select-methods): Include nnlistserv. @@ -1463,7 +1652,7 @@ Sat Feb 21 00:09:14 1998 Lars Magne Ingebrigtsen the mark doesn't change. * gnus-art.el (gnus-article-prepare): Don't enter article into - cache. + cache. * gnus-sum.el (gnus-summary-reparent-thread): Don't mark as read. (gnus-summary-mark-article): Don't do cache things here. @@ -1473,7 +1662,7 @@ Sat Feb 21 00:09:14 1998 Lars Magne Ingebrigtsen Fri Feb 20 22:56:22 1998 Lars Magne Ingebrigtsen * gnus-srvr.el (gnus-browse-unsubscribe-group): Wouldn't allow - unsubscription. + unsubscription. * gnus-sum.el (gnus-summary-insert-subject): Allow inserting articles outside limits. @@ -1481,7 +1670,7 @@ Fri Feb 20 22:56:22 1998 Lars Magne Ingebrigtsen * gnus-start.el (gnus-dribble-enter): Update mode line. * gnus-srvr.el (gnus-browse-unsubscribe-group): Allow - unsubscription. + unsubscription. * gnus-picon.el (gnus-article-display-picons): Check that the extents are live first. @@ -1497,7 +1686,7 @@ Thu Feb 19 02:28:17 1998 Jens-Ulrik Holger Petersen * gnus-sum.el (gnus-get-newsgroup-headers): Just use the header - value. + value. (gnus-summary-exit): Set global vars. Tue Feb 17 07:17:49 1998 Lars Magne Ingebrigtsen @@ -1513,7 +1702,7 @@ Tue Feb 17 07:00:43 1998 Lars Magne Ingebrigtsen Tue Feb 17 06:15:03 1998 Lars Magne Ingebrigtsen * nnmail.el (nnmail-purge-split-history): List of alists, not - alist. + alist. Mon Feb 16 20:22:04 1998 Lars Magne Ingebrigtsen @@ -1522,10 +1711,10 @@ Mon Feb 16 20:22:04 1998 Lars Magne Ingebrigtsen 1998-02-16 Lars Magne Ingebrigtsen * message.el (message-dont-send): Make sure the article really is - saved. + saved. * nnmail.el (nnmail-purge-split-history): Alist; not a list of - alists. + alists. 1998-02-16 Hrvoje Niksic @@ -1540,7 +1729,7 @@ Mon Feb 16 20:22:04 1998 Lars Magne Ingebrigtsen 1998-02-16 Lars Magne Ingebrigtsen * gnus-util.el (gnus-run-hooks): Use unwind-protect instead of - save-excursion. + save-excursion. 1998-02-16 Per Abrahamsen @@ -1572,7 +1761,7 @@ Sun Feb 15 19:41:14 1998 Lars Magne Ingebrigtsen Sun Feb 15 19:35:11 1998 Kurt Swanson * gnus-art.el (gnus-article-read-summary-keys): Go to top on - some. + some. Sun Feb 15 19:26:21 1998 SeokChan LEE @@ -1605,14 +1794,14 @@ Sun Feb 15 14:23:51 1998 Lars Magne Ingebrigtsen * message.el (message-mode): Set font-lock things before running mode hook. - * gnus-agent.el (gnus-agent-group-path): Respect long file names. + * gnus-agent.el (gnus-agent-group-path): Respect long file names. Sat Feb 14 21:31:25 1998 Lars Magne Ingebrigtsen * gnus-sum.el (gnus-summary-goto-last-article): Force jumping to articles outside limit. - * gnus-agent.el (gnus-agent-toggle-plugged): un/plug before hook. + * gnus-agent.el (gnus-agent-toggle-plugged): un/plug before hook. Sat Feb 14 21:08:03 1998 Kim-Minh Kaplan @@ -1629,7 +1818,7 @@ Sat Feb 14 19:28:01 1998 Lars Magne Ingebrigtsen Sat Feb 14 18:40:55 1998 Lars Magne Ingebrigtsen - * gnus-agent.el (gnus-agent-directory): Translate file chars. + * gnus-agent.el (gnus-agent-directory): Translate file chars. * gnus-sum.el (gnus-summary-print-article): Don't display all headers. @@ -1640,7 +1829,7 @@ Sat Feb 14 18:40:55 1998 Lars Magne Ingebrigtsen Sat Feb 14 18:39:45 1998 Fred Oberhauser * nnmail.el (nnmail-process-babyl-mail-format): Fix point - movement. + movement. Sat Feb 14 18:31:39 1998 Lars Magne Ingebrigtsen @@ -1677,7 +1866,7 @@ Sat Feb 14 17:41:44 1998 Lars Magne Ingebrigtsen * gnus-sum.el (gnus-summary-work-articles): change buffer before looking at marked articles (gnus-summary-work-articles): better check of marked articles - + Sat Feb 14 15:10:36 1998 Lars Magne Ingebrigtsen * nntp.el (nntp-send-authinfo): Use new .netrc functionality. @@ -1691,10 +1880,10 @@ Sat Feb 14 15:10:36 1998 Lars Magne Ingebrigtsen * gnus.el (gnus-expert-user): Dix fox. - * nnmail.el (nnmail-article-group): Remove duplicates from split. + * nnmail.el (nnmail-article-group): Remove duplicates from split. * message.el (message-check-news-header-syntax): Check more on - Message-ID. + Message-ID. * nnmh.el: Don't call nnmail-activate. @@ -1752,7 +1941,7 @@ Fri Feb 13 17:10:31 1998 Lars Magne Ingebrigtsen (gnus-cite-parse-maybe): Use it. * gnus-sum.el (gnus-summary-move-article): Move back to summary - buffer. + buffer. * nnfolder.el (nnfolder-request-accept-article): Save excursion. (nnfolder-request-move-article): Ditto. @@ -1785,12 +1974,12 @@ Tue Feb 10 21:59:53 1998 Lars Magne Ingebrigtsen * gnus-agent.el (gnus-agent-fetch-session): Reversed reversal. * gnus-topic.el (gnus-topic-rename): Check whether the new name - exists. + exists. Tue Feb 10 21:39:47 1998 dave edmondson * message.el (message-font-lock-keywords): Allow : as a citation - ending. + ending. Tue Feb 10 20:09:02 1998 Lars Magne Ingebrigtsen @@ -1801,11 +1990,11 @@ Mon Feb 9 17:02:09 1998 Lars Magne Ingebrigtsen * message.el (message-fill-header): Fill to column 990. * gnus-score.el (gnus-score-load-file): Exclude all excluded - files. + files. Mon Feb 9 16:55:41 1998 jari aalto - * gnus-art.el (gnus-article-time-format): Extended variable. + * gnus-art.el (gnus-article-time-format): Extended variable. Mon Feb 9 16:27:59 1998 Lars Magne Ingebrigtsen @@ -1837,7 +2026,7 @@ Sun Feb 8 18:13:58 1998 Lars Magne Ingebrigtsen Sun Feb 8 17:20:40 1998 Lars Magne Ingebrigtsen - * gnus-group.el (gnus-update-group-mark-positions): Bind `topic'. + * gnus-group.el (gnus-update-group-mark-positions): Bind `topic'. * message.el (message-expand-group): Added doc string. @@ -1847,7 +2036,7 @@ Sun Feb 8 17:20:40 1998 Lars Magne Ingebrigtsen Sun Feb 8 16:44:36 1998 Richard Hoskins * message.el (message-kill-to-signature): Don't kill the - delimiter. + delimiter. Sun Feb 8 16:15:33 1998 Lars Magne Ingebrigtsen @@ -1855,7 +2044,7 @@ Sun Feb 8 16:15:33 1998 Lars Magne Ingebrigtsen (gnus-summary-read-group-1): Use it. * message.el (message-cite-original-without-signature): New - function. + function. (message-cite-function): Added to custom. 1998-01-13 Per Abrahamsen @@ -1878,7 +2067,7 @@ Mon Feb 2 18:56:22 1998 Lars Magne Ingebrigtsen (gnus-agent-fetch-session): Use it. * gnus-art.el (article-strip-all-blank-lines): New command and - keystroke. + keystroke. Sun Feb 1 18:00:54 1998 Lars Magne Ingebrigtsen @@ -1895,7 +2084,7 @@ Sun Feb 1 18:00:54 1998 Lars Magne Ingebrigtsen Thu Jan 15 22:47:38 1998 * gnus-art.el (gnus-request-article-this-buffer): Put it into the - backlog. + backlog. Mon Jan 12 23:30:59 1998 Lars Magne Ingebrigtsen @@ -1953,15 +2142,15 @@ Sun Jan 4 14:28:35 1998 Lars Magne Ingebrigtsen 1997-12-10 Per Abrahamsen * gnus/gnus-msg.el (gnus-inews-insert-mime-headers): Added - documentation. + documentation. (gnus-inews-insert-mime-headers): Made it work with Emacs MULE. (gnus-inews-insert-mime-headers): Added as option to - `message-header-hook'. + `message-header-hook'. 1997-12-22 Per Abrahamsen * gnus/gnus-art.el (gnus-button-alist): Assume msg-id after "in - message". + message". 1997-12-22 Simon Josefsson @@ -1977,9 +2166,9 @@ Sun Jan 4 13:35:14 1998 Lars Magne Ingebrigtsen * nndraft.el (nndraft-request-associate-buffer): Open the damn server first. Sheesh. - * gnus-draft.el (gnus-draft-send): Bind message-send-hook to nil. + * gnus-draft.el (gnus-draft-send): Bind message-send-hook to nil. - * gnus-sum.el (gnus-summary-catchup): Don't nix out downloadable. + * gnus-sum.el (gnus-summary-catchup): Don't nix out downloadable. (gnus-summary-highlight): Highlight down/un as unread. Sun Jan 4 13:27:31 1998 Kim-Minh Kaplan @@ -1989,7 +2178,7 @@ Sun Jan 4 13:27:31 1998 Kim-Minh Kaplan Sun Jan 4 13:18:04 1998 Lars Magne Ingebrigtsen * nnsoup.el (nnsoup-store-reply): Bind mail-header-separator to - "". + "". * gnus-xmas.el (gnus-xmas-agent-server-menu-add): New. @@ -2054,7 +2243,7 @@ Fri Dec 19 21:39:43 1997 Hrvoje Niksic Fri Dec 19 21:26:08 1997 Lars Magne Ingebrigtsen - * gnus-cache.el (gnus-cache-read-active): Check for empty files. + * gnus-cache.el (gnus-cache-read-active): Check for empty files. Sun Dec 14 11:46:50 1997 Lars Magne Ingebrigtsen @@ -2063,7 +2252,7 @@ Sun Dec 14 11:46:50 1997 Lars Magne Ingebrigtsen 1997-12-10 SL Baur - * gnus-start.el (gnus-read-descriptions-file): Really bind and gag + * gnus-start.el (gnus-read-descriptions-file): Really bind and gag Mule. Fri Dec 5 15:15:05 1997 Danny Siu @@ -2077,7 +2266,7 @@ Sun Dec 14 11:11:22 1997 Lars Magne Ingebrigtsen * gnus-uu.el (gnus-uu-pre-uudecode-hook): New hook. * gnus-sum.el (gnus-summary-read-group-1): Set mode line after - configuring. + configuring. Sun Dec 14 11:03:26 1997 Wes Hardaker @@ -2099,7 +2288,7 @@ Sat Dec 6 17:27:04 1997 Kim-Minh Kaplan Sat Dec 6 17:23:26 1997 Christian von Roques * gnus-start.el (gnus-read-descriptions-file): Fix - enable-multibyte-characters. + enable-multibyte-characters. 1997-12-05 Dave Love @@ -2112,7 +2301,7 @@ Sat Dec 6 17:23:26 1997 Christian von Roques Sat Dec 6 17:16:28 1997 Lars Balker Rasmussen - * gnus-art.el (article-make-date-line): Don't add extra newlines. + * gnus-art.el (article-make-date-line): Don't add extra newlines. 1997-11-27 MORIOKA Tomohiko @@ -2127,7 +2316,7 @@ Sat Dec 6 17:04:40 1997 Kim-Minh Kaplan * nnml.el (nnml-parse-head): Out-of-bounds fix. * nndraft.el (nndraft-request-associate-buffer): Get proper file - name. + name. Sat Dec 6 15:35:37 1997 Gary D. Foster @@ -2136,7 +2325,7 @@ Sat Dec 6 15:35:37 1997 Gary D. Foster Thu Nov 27 19:56:59 1997 Lars Magne Ingebrigtsen * gnus-agent.el (gnus-summary-set-agent-mark): Remove marks - properly. + properly. 1997-11-27 Christoph Wedler @@ -2165,7 +2354,7 @@ Wed Nov 26 18:19:29 1997 Lars Magne Ingebrigtsen * nnweb.el (nnweb-type-definition): Rescued dejanewsold. * gnus-mh.el (gnus-summary-save-in-folder): Reverted to old - version. + version. * gnus-sum.el (gnus-kill-or-deaden-summary): Save excursion. @@ -2174,7 +2363,7 @@ Wed Nov 26 18:19:29 1997 Lars Magne Ingebrigtsen * gnus-start.el (gnus-setup-news): Always push archive server. * gnus-sum.el (gnus-read-header): Would bug out on sparse - articles. + articles. Wed Nov 26 17:50:41 1997 Kurt Swanson @@ -2187,16 +2376,16 @@ Wed Nov 26 17:40:57 1997 Lars Magne Ingebrigtsen Wed Nov 26 16:04:25 1997 Lars Magne Ingebrigtsen * gnus-sum.el (gnus-summary-move-article): Don't work on canceled - articles. + articles. * gnus-start.el (gnus-subscribe-hierarchical-interactive): Use - `read-char-exclusive'. + `read-char-exclusive'. * gnus-sum.el (gnus-summary-mode): Localize - gnus-summary-dummy-line-format. + gnus-summary-dummy-line-format. * nnml.el (nnml-open-nov): Check that the file exists before - inserting it. + inserting it. * gnus-art.el (article-date-ut): Insert a newline if needed. @@ -2214,7 +2403,7 @@ Wed Nov 26 15:47:40 1997 Greg Klanderman Wed Nov 26 15:43:53 1997 Lars Magne Ingebrigtsen * gnus-start.el (gnus-setup-news): Protect against nil - gnus-message-archive-method. + gnus-message-archive-method. 1997-11-26 Christoph Wedler @@ -2238,7 +2427,7 @@ Wed Nov 26 13:50:01 1997 Alastair Burt Wed Nov 26 13:45:35 1997 Lars Magne Ingebrigtsen - * gnus-util.el (gnus-kill-all-overlays): Remove check for XEmacs. + * gnus-util.el (gnus-kill-all-overlays): Remove check for XEmacs. 1997-09-30 Dave Love @@ -2268,7 +2457,7 @@ Wed Nov 26 10:31:17 1997 Lars Magne Ingebrigtsen that spanned several lines. * gnus-util.el (gnus-date-iso8601): Didn't pick out the date - header. + header. * gnus-demon.el (gnus-demon-scan-mail): Clean inboxes. @@ -2280,7 +2469,7 @@ Wed Nov 26 10:31:17 1997 Lars Magne Ingebrigtsen Wed Nov 26 08:54:26 1997 Lars Magne Ingebrigtsen * gnus-sum.el (gnus-summary-update-info): Would use wrong group - name. + name. 1997-11-26 Hrvoje Niksic @@ -2305,7 +2494,7 @@ Wed Nov 26 08:54:26 1997 Lars Magne Ingebrigtsen Wed Nov 26 08:31:28 1997 Lars Magne Ingebrigtsen - * gnus-art.el (gnus-stop-date-timer): Cancel instead of delete. + * gnus-art.el (gnus-stop-date-timer): Cancel instead of delete. (gnus-start-date-timer): Use the numerical prefix. Tue Nov 25 20:03:34 1997 Lars Magne Ingebrigtsen @@ -2319,7 +2508,7 @@ Tue Nov 25 19:57:55 1997 Dan Christensen Tue Nov 25 19:54:00 1997 Lars Magne Ingebrigtsen * gnus-move.el (gnus-move-group-to-server): Protect agains - nil-ness. + nil-ness. Tue Nov 25 19:03:38 1997 Lars Magne Ingebrigtsen @@ -2328,7 +2517,7 @@ Tue Nov 25 19:03:38 1997 Lars Magne Ingebrigtsen Tue Nov 25 16:05:01 1997 Lars Magne Ingebrigtsen * gnus-sum.el (gnus-read-header): Remove thread entry before - rebuilding. + rebuilding. * gnus-cite.el (gnus-cite-add-face): Keep track of all overlays. @@ -2338,10 +2527,10 @@ Tue Nov 25 16:05:01 1997 Lars Magne Ingebrigtsen (article-date-ut): Would move around. * gnus-group.el (gnus-group-read-ephemeral-group): Accept server - names. + names. * gnus-srvr.el (gnus-browse-foreign-server): Use proper server - names. + names. * gnus.el (gnus-group-prefixed-name): Give the right result for native groups. @@ -2373,7 +2562,7 @@ Mon Nov 24 18:07:21 1997 Lars Magne Ingebrigtsen Mon Nov 24 17:36:00 1997 Lars Magne Ingebrigtsen * message.el (message-reply): Respect Mail-Copies-To even when - `to-address'. + `to-address'. Mon Nov 24 17:32:47 1997 Thor Kristoffersen @@ -2385,7 +2574,7 @@ Mon Nov 24 16:18:19 1997 Lars Magne Ingebrigtsen entering group. * gnus-start.el (gnus-setup-news): Get correct value of archive - server. + server. Wed Oct 8 20:29:35 1997 Robert Bihlmeyer @@ -2398,7 +2587,7 @@ Mon Nov 24 14:09:00 1997 Lars Magne Ingebrigtsen * gnus-sum.el (gnus-last-newsgroup-variables-set): New variable. (gnus-set-global-variables): Don't do to much; gets run off of - pre-command-hook. + pre-command-hook. Got rid of gnus-set-global-variables throughout. (gnus-summary-exit): Update adaptive scoring here. (gnus-summary-isearch-article): Widen. @@ -2430,12 +2619,12 @@ Sun Nov 23 14:04:07 1997 Lars Magne Ingebrigtsen bound. And gagged. * message.el (message-send-mail-with-mh): Use - `mh-new-draft-name'. + `mh-new-draft-name'. * nnfolder.el (nnfolder-read-folder): Save new buffers. * gnus-sum.el (gnus-summary-make-menu-bar): Removed "write to - file". + file". * gnus-util.el (gnus-byte-code): Use indirect-function. @@ -2444,7 +2633,7 @@ Sun Nov 23 14:04:07 1997 Lars Magne Ingebrigtsen * gnus-sum.el (gnus-summary-reparent-thread): Update thread. * gnus-score.el (gnus-all-score-files): Don't do anything unless - GROUP. + GROUP. * nnmail.el (nnmail-split-it): Save-excursion. (nnmail-group-pathname): Translate file chars. @@ -2452,7 +2641,7 @@ Sun Nov 23 14:04:07 1997 Lars Magne Ingebrigtsen Sun Nov 23 13:41:10 1997 Gunnar Horrigmo * gnus-sum.el (gnus-summary-exit): Don't skip if group - disappeared. + disappeared. Sun Nov 23 13:32:55 1997 Lars Magne Ingebrigtsen @@ -2478,7 +2667,7 @@ Sun Nov 23 12:44:38 1997 Lars Magne Ingebrigtsen Sun Nov 23 12:15:00 1997 Hallvard B. Furuseth * gnus-sum.el (gnus-summary-limit-include-thread): Interactive - fix. + fix. Sun Nov 23 07:06:58 1997 Lars Magne Ingebrigtsen @@ -2499,7 +2688,7 @@ Sat Nov 22 18:04:34 1997 Lars Magne Ingebrigtsen Sat Nov 22 18:01:26 1997 Didier Verna - * gnus-sum.el (gnus-summary-remove-bookmark): Interactive spec. + * gnus-sum.el (gnus-summary-remove-bookmark): Interactive spec. Mon Nov 17 23:50:51 1997 Lars Magne Ingebrigtsen @@ -2517,7 +2706,7 @@ Thu Nov 13 22:57:23 1997 Kenichi Handa Thu Nov 13 22:30:19 1997 seokchan lee * message.el (message-ignored-supersedes-headers): Ignore more - headers. + headers. Thu Nov 13 22:28:13 1997 Lars Magne Ingebrigtsen @@ -2549,15 +2738,15 @@ Thu Nov 6 01:53:51 1997 Stefan Waldherr Thu Nov 6 01:52:43 1997 Lars Magne Ingebrigtsen * gnus-topic.el (gnus-topic-change-level): Really delete multiple - instances. + instances. Wed Nov 5 14:04:54 1997 Lars Magne Ingebrigtsen * gnus-topic.el (gnus-topic-update-topic-line): Possibly fix nil - numbers. + numbers. * gnus-sum.el (gnus-summary-show-article): New command and - keystroke. + keystroke. Tue Nov 4 06:29:58 1997 Lars Magne Ingebrigtsen @@ -2573,7 +2762,7 @@ Sat Oct 25 05:52:22 1997 Lars Magne Ingebrigtsen Sat Oct 25 00:39:42 1997 Lars Balker Rasmussen * gnus-art.el (gnus-article-fill-paragraph): New command and - keystroke. + keystroke. 1997-10-16 Colin Rafferty @@ -2600,7 +2789,7 @@ Mon Oct 13 00:01:35 1997 Lars Magne Ingebrigtsen Sun Oct 12 23:54:55 1997 ISO-2022-JP * gnus-agent.el (gnus-agent-article-file-coding-system): New - variable. + variable. Sun Oct 12 16:46:11 1997 Lars Magne Ingebrigtsen @@ -2628,21 +2817,21 @@ Sat Oct 4 00:16:39 1997 Lars Magne Ingebrigtsen * nnmail.el (nnmail-delete-incoming): Changed default to nil. * gnus-int.el (gnus-request-scan): Don't do anything if - unplugged. + unplugged. Fri Oct 3 21:09:19 1997 Lars Magne Ingebrigtsen * gnus-art.el (gnus-ignored-headers): Doc fix. * gnus-demon.el (gnus-demon-add-nntp-close-connection): New - function. + function. (gnus-demon-nntp-close-connection): Ditto. * nntp.el (nntp-last-command-time): New variable. (nntp-retrieve-data): Use it. * message.el (message-news-p): Messages with Posted-To aren't - news. + news. (message-mode): Heed message-yank-prefix when filling. * nndraft.el (nndraft-request-restore-buffer): Remove Xrefs and @@ -2664,7 +2853,7 @@ Sat Sep 27 12:57:44 1997 Lars Magne Ingebrigtsen * gnus-xmas.el (gnus-xmas-window-edges): New function. * gnus-score.el (gnus-score-edit-current-scores): Don't select - window. + window. Sat Sep 27 12:52:31 1997 Hallvard B. Furuseth @@ -2677,10 +2866,10 @@ Sat Sep 27 09:22:15 1997 Lars Magne Ingebrigtsen * gnus-sum.el (gnus-summary-pop-article): Force. * gnus-art.el (gnus-article-prepare): Push the article onto the - history. + history. * gnus-sum.el (gnus-summary-pop-article): Pop to the right - article. + article. * gnus-demon.el (gnus-demon-scan-news): Save excursion. @@ -2721,7 +2910,7 @@ Sat Sep 27 04:32:45 1997 Lars Magne Ingebrigtsen Sat Sep 27 03:50:12 1997 Lars Magne Ingebrigtsen * message.el (message-send): Post without asking. - (message-mode): Modify paragraphs-start and paragraph-separate. + (message-mode): Modify paragraphs-start and paragraph-separate. (message-newline-and-reformat): New command and keystroke. Thu Sep 25 00:13:41 1997 Lars Magne Ingebrigtsen @@ -2769,17 +2958,17 @@ Tue Sep 23 01:41:04 1997 Lars Magne Ingebrigtsen * dgnushack.el (dgnushack-compile): Check for cus-edit. * message.el (message-included-forward-headers): Include Mime - headers. + headers. (message-send): Allow posting without confirming from Agent. Mon Sep 22 05:43:14 1997 Lars Magne Ingebrigtsen * dgnushack.el (byte-compile-warnings): Don't warn about obsolete - variables. + variables. * gnus-sum.el (gnus-summary-refer-thread): New command and - keystroke. - (gnus-summary-limit-include-thread): New command and keystroke. + keystroke. + (gnus-summary-limit-include-thread): New command and keystroke. (gnus-summary-articles-in-thread): New function. (gnus-articles-in-thread): Renamed. @@ -2814,14 +3003,14 @@ Sun Sep 21 00:14:40 1997 Lars Magne Ingebrigtsen (gnus-current-prefix-symbols): New variable. * gnus-score.el (gnus-summary-increase-score): Take symbolic - prefix. + prefix. * gnus.el (gnus-interactive): Removed. (gnus-interactive): Renamed from gnus-interactive-1. (gnus-symbolic-argument): New command. * gnus-draft.el (gnus-draft-send-message): Disable message - checks. + checks. (gnus-draft-send): Ditto. (gnus-draft-setup): Don't save buffer. @@ -2830,7 +3019,7 @@ Sun Sep 21 00:14:40 1997 Lars Magne Ingebrigtsen * gnus-group.el (gnus-group-iterate): Use gensymmed variables. * pop3.el (pop3-md5): `with-temp-buffer' doesn't exist in Emacs - 19.34. + 19.34. * nneething.el (nneething-directory): Defvarred. @@ -2847,12 +3036,12 @@ Sun Sep 21 00:14:40 1997 Lars Magne Ingebrigtsen throughout. * gnus-sum.el (gnus-summary-edit-article): Supply additional - param. + param. * gnus-group.el (gnus-group-iterate): Undo bogus change. * gnus-agent.el (gnus-agentize): Just call gnus-open-agent - directly. + directly. * gnus.el (gnus-interactive): New macro. (gnus-interactive-1): New function. @@ -2919,12 +3108,12 @@ Thu Sep 18 03:33:54 1997 Lars Magne Ingebrigtsen * gnus-msg.el (gnus-setup-message): Slap a progn around forms. - * nndraft.el (nndraft-articles): Make sure directory exists. + * nndraft.el (nndraft-articles): Make sure directory exists. * message.el (message-mode): Don't delete article. * nnmh.el (nnmh-request-accept-article): Don't save when - noinsert. + noinsert. Wed Sep 17 03:37:59 1997 Lars Magne Ingebrigtsen @@ -2947,10 +3136,10 @@ Wed Sep 17 02:30:04 1997 Lars Magne Ingebrigtsen References. * gnus-agent.el (gnus-agent-fetch-group-1): Separated out into - function. + function. * message.el (message-delete-not-region): New command and - keystroke. + keystroke. Tue Sep 16 00:58:26 1997 Lars Magne Ingebrigtsen @@ -2963,7 +3152,7 @@ Tue Sep 16 00:58:26 1997 Lars Magne Ingebrigtsen * gnus-agent.el (gnus-agentize): Don't set twice. * gnus-art.el (gnus-article-prepare): Go to the right line before - marking. + marking. * gnus-start.el: Renamed the drafts group. @@ -2982,7 +3171,7 @@ Mon Sep 15 00:53:50 1997 Lars Magne Ingebrigtsen (gnus-get-newsgroup-headers): Ditto. * gnus-draft.el (gnus-group-send-drafts): Don't send when - unplugged. + unplugged. * gnus-sum.el (gnus-summary-read-group): Don't show-all when skipping groups. diff --git a/lisp/gnus-agent.el b/lisp/gnus-agent.el index 33ab63c..f3409ec 100644 --- a/lisp/gnus-agent.el +++ b/lisp/gnus-agent.el @@ -107,7 +107,7 @@ If nil, only read articles will be expired." (gnus-agent-read-servers) (gnus-category-read) (setq gnus-agent-overview-buffer - (get-buffer-create " *Gnus agent overview*")) + (gnus-get-buffer-create " *Gnus agent overview*")) (add-hook 'gnus-group-mode-hook 'gnus-agent-mode) (add-hook 'gnus-summary-mode-hook 'gnus-agent-mode) (add-hook 'gnus-server-mode-hook 'gnus-agent-mode)) @@ -535,7 +535,8 @@ the actual number of articles toggled is returned." (file (gnus-agent-lib-file "active"))) (gnus-make-directory (file-name-directory file)) (nnheader-temp-write file - (insert-file-contents file) + (when (file-exists-p file) + (insert-file-contents file)) (goto-char (point-min)) (when (re-search-forward (concat "^" (regexp-quote group) " ") nil t) (gnus-delete-line)) @@ -572,7 +573,7 @@ the actual number of articles toggled is returned." (defun gnus-agent-open-history () (save-excursion (push (cons (gnus-agent-method) - (set-buffer (get-buffer-create + (set-buffer (gnus-get-buffer-create (format " *Gnus agent %s history*" (gnus-agent-method))))) gnus-agent-history-buffers) @@ -714,7 +715,7 @@ the actual number of articles toggled is returned." gnus-agent-group-alist)) (setcdr alist (cons (cons (cdar crosses) t) (cdr alist))) (save-excursion - (set-buffer (get-buffer-create (format " *Gnus agent overview %s*" + (set-buffer (gnus-get-buffer-create (format " *Gnus agent overview %s*" group))) (when (= (point-max) (point-min)) (push (cons group (current-buffer)) gnus-agent-buffer-alist) @@ -1063,8 +1064,7 @@ The following commands are available: (defun gnus-category-setup-buffer () (unless (get-buffer gnus-category-buffer) (save-excursion - (set-buffer (get-buffer-create gnus-category-buffer)) - (gnus-add-current-to-buffer-list) + (set-buffer (gnus-get-buffer-create gnus-category-buffer)) (gnus-category-mode)))) (defun gnus-category-prepare () @@ -1272,7 +1272,7 @@ The following commands are available: history overview file histories elem art nov-file low info unreads marked article) (save-excursion - (setq overview (get-buffer-create " *expire overview*")) + (setq overview (gnus-get-buffer-create " *expire overview*")) (while (setq gnus-command-method (pop methods)) (let ((expiry-hashtb (gnus-make-hashtable 1023))) (gnus-agent-open-history) @@ -1348,6 +1348,7 @@ The following commands are available: (delete-file file)) ;; Schedule the history line for nuking. (push (cdr elem) histories))) + (gnus-make-directory (file-name-directory nov-file)) (write-region (point-min) (point-max) nov-file nil 'silent) ;; Delete the unwanted entries in the alist. (setq gnus-agent-article-alist diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index 224408b..6996a10 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -456,12 +456,12 @@ Obsolete; use the face `gnus-signature-face' for customizations instead." (defface gnus-header-from-face '((((class color) (background dark)) - (:foreground "spring green" :bold t)) + (:foreground "spring green")) (((class color) (background light)) - (:foreground "red3" :bold t)) + (:foreground "red3")) (t - (:bold t :italic t))) + (:italic t))) "Face used for displaying from headers." :group 'gnus-article-headers :group 'gnus-article-highlight) @@ -469,10 +469,10 @@ Obsolete; use the face `gnus-signature-face' for customizations instead." (defface gnus-header-subject-face '((((class color) (background dark)) - (:foreground "SeaGreen3" :bold t)) + (:foreground "SeaGreen3")) (((class color) (background light)) - (:foreground "red4" :bold t)) + (:foreground "red4")) (t (:bold t :italic t))) "Face used for displaying subject headers." @@ -482,12 +482,12 @@ Obsolete; use the face `gnus-signature-face' for customizations instead." (defface gnus-header-newsgroups-face '((((class color) (background dark)) - (:foreground "yellow" :bold t :italic t)) + (:foreground "yellow" :italic t)) (((class color) (background light)) - (:foreground "MidnightBlue" :bold t :italic t)) + (:foreground "MidnightBlue" :italic t)) (t - (:bold t :italic t))) + (:italic t))) "Face used for displaying newsgroups headers." :group 'gnus-article-headers :group 'gnus-article-highlight) @@ -588,7 +588,7 @@ Initialized from `text-mode-syntax-table.") b e (cons 'article-type (cons type gnus-hidden-properties)))) (defun gnus-article-unhide-text-type (b e type) - "Hide text of TYPE between B and E." + "Unhide text of TYPE between B and E." (remove-text-properties b e (cons 'article-type (cons type gnus-hidden-properties))) (when (memq 'intangible gnus-hidden-properties) @@ -907,15 +907,19 @@ characters to translate to." (nnheader-narrow-to-headers) (setq from (message-fetch-field "from")) (goto-char (point-min)) - (while (and gnus-article-x-face-command - (or force - ;; Check whether this face is censored. - (not gnus-article-x-face-too-ugly) - (and gnus-article-x-face-too-ugly from - (not (string-match gnus-article-x-face-too-ugly - from)))) - ;; Has to be present. - (re-search-forward "^X-Face: " nil t)) + ;; This used to try to do multiple faces (`while' instead of + ;; `when' below), but (a) sending multiple EOFs to xv doesn't + ;; work (b) it can crash some versions of Emacs (c) are + ;; multiple faces really something to encourage? + (when (and gnus-article-x-face-command + (or force + ;; Check whether this face is censored. + (not gnus-article-x-face-too-ugly) + (and gnus-article-x-face-too-ugly from + (not (string-match gnus-article-x-face-too-ugly + from)))) + ;; Has to be present. + (re-search-forward "^X-Face: " nil t)) ;; We now have the area of the buffer where the X-Face is stored. (save-excursion (let ((beg (point)) @@ -958,27 +962,25 @@ always hide." (goto-char (point-min)) ;; Hide the "header". (when (search-forward "\n-----BEGIN PGP SIGNED MESSAGE-----\n" nil t) - (gnus-article-hide-text-type (1+ (match-beginning 0)) - (match-end 0) 'pgp) + (delete-region (1+ (match-beginning 0)) (match-end 0)) (setq beg (point)) ;; Hide the actual signature. (and (search-forward "\n-----BEGIN PGP SIGNATURE-----\n" nil t) (setq end (1+ (match-beginning 0))) - (gnus-article-hide-text-type + (delete-region end (if (search-forward "\n-----END PGP SIGNATURE-----\n" nil t) (match-end 0) ;; Perhaps we shouldn't hide to the end of the buffer ;; if there is no end to the signature? - (point-max)) - 'pgp)) + (point-max)))) ;; Hide "- " PGP quotation markers. (when (and beg end) (narrow-to-region beg end) (goto-char (point-min)) (while (re-search-forward "^- " nil t) - (gnus-article-hide-text-type - (match-beginning 0) (match-end 0) 'pgp)) + (delete-region + (match-beginning 0) (match-end 0))) (widen)) (gnus-run-hooks 'gnus-article-hide-pgp-hook)))))) @@ -1086,37 +1088,38 @@ always hide." (defun gnus-article-narrow-to-signature () "Narrow to the signature; return t if a signature is found, else nil." (widen) - (when (and (boundp 'mime::preview/content-list) - mime::preview/content-list) - ;; We have a MIMEish article, so we use the MIME data to narrow. - (let ((pcinfo (car (last mime::preview/content-list)))) - (ignore-errors - (narrow-to-region - (funcall (intern "mime::preview-content-info/point-min") pcinfo) - (point-max))))) - - (when (gnus-article-search-signature) - (forward-line 1) - ;; Check whether we have some limits to what we consider - ;; to be a signature. - (let ((limits (if (listp gnus-signature-limit) gnus-signature-limit - (list gnus-signature-limit))) - limit limited) - (while (setq limit (pop limits)) - (if (or (and (integerp limit) - (< (- (point-max) (point)) limit)) - (and (floatp limit) - (< (count-lines (point) (point-max)) limit)) - (and (gnus-functionp limit) - (funcall limit)) - (and (stringp limit) - (not (re-search-forward limit nil t)))) - () ; This limit did not succeed. - (setq limited t - limits nil))) - (unless limited - (narrow-to-region (point) (point-max)) - t)))) + (let ((inhibit-point-motion-hooks t)) + (when (and (boundp 'mime::preview/content-list) + mime::preview/content-list) + ;; We have a MIMEish article, so we use the MIME data to narrow. + (let ((pcinfo (car (last mime::preview/content-list)))) + (ignore-errors + (narrow-to-region + (funcall (intern "mime::preview-content-info/point-min") pcinfo) + (point-max))))) + + (when (gnus-article-search-signature) + (forward-line 1) + ;; Check whether we have some limits to what we consider + ;; to be a signature. + (let ((limits (if (listp gnus-signature-limit) gnus-signature-limit + (list gnus-signature-limit))) + limit limited) + (while (setq limit (pop limits)) + (if (or (and (integerp limit) + (< (- (point-max) (point)) limit)) + (and (floatp limit) + (< (count-lines (point) (point-max)) limit)) + (and (gnus-functionp limit) + (funcall limit)) + (and (stringp limit) + (not (re-search-forward limit nil t)))) + () ; This limit did not succeed. + (setq limited t + limits nil))) + (unless limited + (narrow-to-region (point) (point-max)) + t))))) (defun gnus-article-search-signature () "Search the current buffer for the signature separator. @@ -1409,7 +1412,7 @@ is to run." (unless n (setq n 1)) (gnus-stop-date-timer) - (setq article-lapsed-timer + (setq article-lapsed-timer (nnheader-run-at-time 1 n 'article-update-date-lapsed))) (defun gnus-stop-date-timer () @@ -1891,9 +1894,9 @@ commands: (use-local-map gnus-article-mode-map) (gnus-update-format-specifications nil 'article-mode) (set (make-local-variable 'page-delimiter) gnus-page-delimiter) - (make-local-variable 'gnus-page-broken) - (make-local-variable 'gnus-button-marker-list) - (make-local-variable 'gnus-article-current-summary) + (make-local-variable 'gnus-page-broken) + (make-local-variable 'gnus-button-marker-list) + (make-local-variable 'gnus-article-current-summary) (gnus-set-default-directory) (buffer-disable-undo (current-buffer)) (setq buffer-read-only t) @@ -1919,23 +1922,20 @@ commands: (gnus-set-global-variables))) ;; Init original article buffer. (save-excursion - (set-buffer (get-buffer-create gnus-original-article-buffer)) + (set-buffer (gnus-get-buffer-create gnus-original-article-buffer)) (buffer-disable-undo (current-buffer)) (setq major-mode 'gnus-original-article-mode) - (gnus-add-current-to-buffer-list) (make-local-variable 'gnus-original-article)) (if (get-buffer name) (save-excursion (set-buffer name) (buffer-disable-undo (current-buffer)) (setq buffer-read-only t) - (gnus-add-current-to-buffer-list) (unless (eq major-mode 'gnus-article-mode) (gnus-article-mode)) (current-buffer)) (save-excursion - (set-buffer (get-buffer-create name)) - (gnus-add-current-to-buffer-list) + (set-buffer (gnus-get-buffer-create name)) (gnus-article-mode) (make-local-variable 'gnus-summary-buffer) (current-buffer))))) @@ -2038,7 +2038,7 @@ If ALL-HEADERS is non-nil, no headers are hidden." (message "Message marked for downloading")) (gnus-summary-mark-article article gnus-canceled-mark) (unless (memq article gnus-newsgroup-sparse) - (gnus-error 1 + (gnus-error 1 "No such article (may have expired or been canceled)"))))) (if (or (eq result 'pseudo) (eq result 'nneething)) (progn @@ -2119,6 +2119,8 @@ If ALL-HEADERS is non-nil, no headers are hidden." (gnus-set-mode-line 'article) (gnus-configure-windows 'article) (goto-char (point-min)) + (search-forward "\n\n" nil t) + (set-window-point (get-buffer-window (current-buffer)) (point)) t)))))) (defun gnus-article-wash-status () @@ -2143,7 +2145,9 @@ If ALL-HEADERS is non-nil, no headers are hidden." (if mime ?m ? ) (if emphasis ?e ? ))))) -(defun gnus-article-hide-headers-if-wanted () +(fset 'gnus-article-hide-headers-if-wanted 'gnus-article-maybe-hide-headers) + +(defun gnus-article-maybe-hide-headers () "Hide unwanted headers if `gnus-have-all-headers' is nil. Provided for backwards compatibility." (or (save-excursion (set-buffer gnus-summary-buffer) gnus-have-all-headers) @@ -2504,6 +2508,26 @@ If given a prefix, show the hidden text instead." ;; It was a pseudo. (t article))) + ;; Associate this article with the current summary buffer. + (setq gnus-article-current-summary gnus-summary-buffer) + + ;; Take the article from the original article buffer + ;; and place it in the buffer it's supposed to be in. + (when (and (get-buffer gnus-article-buffer) + (equal (buffer-name (current-buffer)) + (buffer-name (get-buffer gnus-article-buffer)))) + (save-excursion + (if (get-buffer gnus-original-article-buffer) + (set-buffer gnus-original-article-buffer) + (set-buffer (gnus-get-buffer-create gnus-original-article-buffer)) + (buffer-disable-undo (current-buffer)) + (setq major-mode 'gnus-original-article-mode) + (setq buffer-read-only t)) + (let (buffer-read-only) + (erase-buffer) + (insert-buffer-substring gnus-article-buffer)) + (setq gnus-original-article (cons group article)))) + ;; Update sparse articles. (when (and do-update-line (or (numberp article) @@ -2577,6 +2601,7 @@ groups." (let ((winconf (current-window-configuration))) (set-buffer gnus-article-buffer) (gnus-article-edit-mode) + (gnus-article-delete-text-of-type 'annotation) (gnus-set-text-properties (point-min) (point-max) nil) (gnus-configure-windows 'edit-article) (setq gnus-article-edit-done-function exit-func) @@ -3178,7 +3203,8 @@ forbidden in URL encoding." (gnus-eval-format gnus-prev-page-line-format nil `(gnus-prev t local-map ,gnus-prev-page-map - gnus-callback gnus-article-button-prev-page)))) + gnus-callback gnus-article-button-prev-page + gnus-type annotation)))) (defvar gnus-next-page-map nil) (unless gnus-next-page-map @@ -3206,9 +3232,10 @@ forbidden in URL encoding." (defun gnus-insert-next-page-button () (let ((buffer-read-only nil)) (gnus-eval-format gnus-next-page-line-format nil - `(gnus-next t local-map ,gnus-next-page-map - gnus-callback - gnus-article-button-next-page)))) + `(gnus-next + t local-map ,gnus-next-page-map + gnus-callback gnus-article-button-next-page + gnus-type annotation)))) (defun gnus-article-button-next-page (arg) "Go to the next page." diff --git a/lisp/gnus-bcklg.el b/lisp/gnus-bcklg.el index d9934e5..d370673 100644 --- a/lisp/gnus-bcklg.el +++ b/lisp/gnus-bcklg.el @@ -41,10 +41,9 @@ "Return the backlog buffer." (or (get-buffer gnus-backlog-buffer) (save-excursion - (set-buffer (get-buffer-create gnus-backlog-buffer)) + (set-buffer (gnus-get-buffer-create gnus-backlog-buffer)) (buffer-disable-undo (current-buffer)) (setq buffer-read-only t) - (gnus-add-current-to-buffer-list) (get-buffer gnus-backlog-buffer)))) (defun gnus-backlog-setup () diff --git a/lisp/gnus-cache.el b/lisp/gnus-cache.el index ff070f8..a772c6b 100644 --- a/lisp/gnus-cache.el +++ b/lisp/gnus-cache.el @@ -50,11 +50,26 @@ :group 'gnus-cache :type '(set (const ticked) (const dormant) (const unread) (const read))) +(defcustom gnus-cacheable-groups nil + "*Groups that match this regexp will be cached. + +If you only want to cache your nntp groups, you could set this +variable to \"^nntp\". + +If a group matches both gnus-cacheable-groups and gnus-uncacheable-groups +it's not cached." + :group 'gnus-cache + :type '(choice (const :tag "off" nil) + regexp)) + (defcustom gnus-uncacheable-groups nil "*Groups that match this regexp will not be cached. If you want to avoid caching your nnml groups, you could set this -variable to \"^nnml\"." +variable to \"^nnml\". + +If a group matches both gnus-cacheable-groups and gnus-uncacheable-groups +it's not cached." :group 'gnus-cache :type '(choice (const :tag "off" nil) regexp)) @@ -139,7 +154,9 @@ variable to \"^nnml\"." (when (and number (> number 0) ; Reffed article. (or force - (and (or (not gnus-uncacheable-groups) + (and (or (not gnus-cacheable-groups) + (string-match gnus-cacheable-groups group)) + (or (not gnus-uncacheable-groups) (not (string-match gnus-uncacheable-groups group))) (gnus-cache-member-of-class @@ -375,7 +392,7 @@ Returns the list of articles removed." (save-excursion (setq gnus-cache-buffer (cons group - (set-buffer (get-buffer-create " *gnus-cache-overview*")))) + (set-buffer (gnus-get-buffer-create " *gnus-cache-overview*")))) (buffer-disable-undo (current-buffer)) ;; Insert the contents of this group's cache overview. (erase-buffer) @@ -463,7 +480,7 @@ Returns the list of articles removed." articles))) (defun gnus-cache-braid-nov (group cached &optional file) - (let ((cache-buf (get-buffer-create " *gnus-cache*")) + (let ((cache-buf (gnus-get-buffer-create " *gnus-cache*")) beg end) (gnus-cache-save-buffers) (save-excursion @@ -495,7 +512,7 @@ Returns the list of articles removed." (kill-buffer cache-buf))) (defun gnus-cache-braid-heads (group cached) - (let ((cache-buf (get-buffer-create " *gnus-cache*"))) + (let ((cache-buf (gnus-get-buffer-create " *gnus-cache*"))) (save-excursion (set-buffer cache-buf) (buffer-disable-undo (current-buffer)) diff --git a/lisp/gnus-cite.el b/lisp/gnus-cite.el index 5dd0f89..5710910 100644 --- a/lisp/gnus-cite.el +++ b/lisp/gnus-cite.el @@ -1,12 +1,7 @@ ;;; gnus-cite.el --- parse citations in articles for Gnus ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. -;; Author: Per Abrahamsen -;; Keywords: news, mail - -;; This file is part of GNU Emacs. - -;; GNU Emacs is free software; you can redistribute it and/or modify +;; Author: Per Abhiddenware; 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 2, or (at your option) ;; any later version. @@ -52,8 +47,13 @@ article has citations." :type '(choice (const :tag "no" nil) (const :tag "yes" t))) -(defcustom gnus-cited-text-button-line-format "%(%{[...]%}%)\n" - "Format of cited text buttons." +(defcustom gnus-cited-opened-text-button-line-format "%(%{[-]%}%)\n" + "Format of opened cited text buttons." + :group 'gnus-cite + :type 'string) + +(defcustom gnus-cited-closed-text-button-line-format "%(%{[+]%}%)\n" + "Format of closed cited text buttons." :group 'gnus-cite :type 'string) @@ -100,7 +100,7 @@ The first regexp group should match the Supercite attribution." :group 'gnus-cite :type 'integer) -(defcustom gnus-cite-attribution-prefix +(defcustom gnus-cite-attribution-prefix "In article\\|in <\\|On \\(Mon\\|Tue\\|Wed\\|Thu\\|Fri\\|Sat\\|Sun\\)," "*Regexp matching the beginning of an attribution line." :group 'gnus-cite @@ -114,7 +114,7 @@ The text matching the first grouping will be used as a button." :type 'regexp) (defface gnus-cite-attribution-face '((t - (:underline t))) + (:italic t))) "Face used for attribution lines.") (defcustom gnus-cite-attribution-face 'gnus-cite-attribution-face @@ -281,11 +281,15 @@ This should make it easier to see who wrote what." ;; PREFIX: Is the citation prefix of the attribution line(s), and ;; TAG: Is a Supercite tag, if any. -(defvar gnus-cited-text-button-line-format-alist +(defvar gnus-cited-opened-text-button-line-format-alist `((?b (marker-position beg) ?d) (?e (marker-position end) ?d) (?l (- end beg) ?d))) -(defvar gnus-cited-text-button-line-format-spec nil) +(defvar gnus-cited-opened-text-button-line-format-spec nil) +(defvar gnus-cited-closed-text-button-line-format-alist + gnus-cited-opened-text-button-line-format-alist) +(defvar gnus-cited-closed-text-button-line-format-spec nil) + ;;; Commands: @@ -450,7 +454,8 @@ See the documentation for `gnus-article-highlight-citation'. If given a negative prefix, always show; if given a positive prefix, always hide." (interactive (append (gnus-article-hidden-arg) (list 'force))) - (gnus-set-format 'cited-text-button t) + (gnus-set-format 'cited-opened-text-button t) + (gnus-set-format 'cited-closed-text-button t) (save-excursion (set-buffer gnus-article-buffer) (cond @@ -465,7 +470,7 @@ always hide." (inhibit-point-motion-hooks t) (props (nconc (list 'article-type 'cite) gnus-hidden-properties)) - beg end) + beg end start) (while marks (setq beg nil end nil) @@ -494,26 +499,49 @@ always hide." (unless (save-excursion (search-backward "\n\n" nil t)) (insert "\n")) (put-text-property - (point) + (setq start (point-marker)) (progn (gnus-article-add-button (point) - (progn (eval gnus-cited-text-button-line-format-spec) (point)) + (progn (eval gnus-cited-closed-text-button-line-format-spec) + (point)) `gnus-article-toggle-cited-text - (cons beg end)) + (list (cons beg end) start)) (point)) 'article-type 'annotation) (set-marker beg (point))))))))) -(defun gnus-article-toggle-cited-text (region) +(defun gnus-article-toggle-cited-text (args) "Toggle hiding the text in REGION." - (let (buffer-read-only) - (funcall - (if (text-property-any - (car region) (1- (cdr region)) - (car gnus-hidden-properties) (cadr gnus-hidden-properties)) + (let* ((region (car args)) + (start (cadr args)) + (hidden + (text-property-any + (car region) (1- (cdr region)) + (car gnus-hidden-properties) (cadr gnus-hidden-properties))) + (inhibit-point-motion-hooks t) + buffer-read-only) + (funcall + (if hidden 'remove-text-properties 'gnus-add-text-properties) - (car region) (cdr region) gnus-hidden-properties))) + (car region) (cdr region) gnus-hidden-properties) + (save-excursion + (goto-char start) + (gnus-delete-line) + (put-text-property + (point) + (progn + (gnus-article-add-button + (point) + (progn (eval + (if hidden + gnus-cited-opened-text-button-line-format-spec + gnus-cited-closed-text-button-line-format-spec)) + (point)) + `gnus-article-toggle-cited-text + args) + (point)) + 'article-type 'annotation)))) (defun gnus-article-hide-citation-maybe (&optional arg force) "Toggle hiding of cited text that has an attribution line. @@ -535,27 +563,27 @@ See also the documentation for `gnus-article-highlight-citation'." (atts gnus-cite-attribution-alist) (buffer-read-only nil) (inhibit-point-motion-hooks t) - (hiden 0) + (hidden 0) total) (goto-char (point-max)) (gnus-article-search-signature) (setq total (count-lines start (point))) (while atts - (setq hiden (+ hiden (length (cdr (assoc (cdar atts) - gnus-cite-prefix-alist)))) + (setq hidden (+ hidden (length (cdr (assoc (cdar atts) + gnus-cite-prefix-alist)))) atts (cdr atts))) (when (or force - (and (> (* 100 hiden) (* gnus-cite-hide-percentage total)) - (> hiden gnus-cite-hide-absolute))) + (and (> (* 100 hidden) (* gnus-cite-hide-percentage total)) + (> hidden gnus-cite-hide-absolute))) (setq atts gnus-cite-attribution-alist) (while atts (setq total (cdr (assoc (cdar atts) gnus-cite-prefix-alist)) atts (cdr atts)) (while total - (setq hiden (car total) + (setq hidden (car total) total (cdr total)) - (goto-line hiden) - (unless (assq hiden gnus-cite-attribution-alist) + (goto-line hidden) + (unless (assq hidden gnus-cite-attribution-alist) (gnus-add-text-properties (point) (progn (forward-line 1) (point)) (nconc (list 'article-type 'cite) diff --git a/lisp/gnus-cus.el b/lisp/gnus-cus.el index 1bd882d..6e25832 100644 --- a/lisp/gnus-cus.el +++ b/lisp/gnus-cus.el @@ -186,8 +186,8 @@ DOC is a documentation string for the parameter.") (unless (setq info (gnus-get-info group)) (error "Killed group; can't be edited")) ;; Ready. - (kill-buffer (get-buffer-create "*Gnus Customize*")) - (switch-to-buffer (get-buffer-create "*Gnus Customize*")) + (kill-buffer (gnus-get-buffer-create "*Gnus Customize*")) + (switch-to-buffer (gnus-get-buffer-create "*Gnus Customize*")) (gnus-custom-mode) (make-local-variable 'gnus-custom-group) (setq gnus-custom-group group) @@ -544,8 +544,8 @@ eh?"))) ,(nth 1 entry))) gnus-score-parameters))) ;; Ready. - (kill-buffer (get-buffer-create "*Gnus Customize*")) - (switch-to-buffer (get-buffer-create "*Gnus Customize*")) + (kill-buffer (gnus-get-buffer-create "*Gnus Customize*")) + (switch-to-buffer (gnus-get-buffer-create "*Gnus Customize*")) (gnus-custom-mode) (make-local-variable 'gnus-custom-score-alist) (setq gnus-custom-score-alist scores) diff --git a/lisp/gnus-eform.el b/lisp/gnus-eform.el index ff35a42..6a93242 100644 --- a/lisp/gnus-eform.el +++ b/lisp/gnus-eform.el @@ -88,9 +88,8 @@ It is a slightly enhanced emacs-lisp-mode. Call EXIT-FUNC on exit. Display DOCUMENTATION in the beginning of the buffer." (let ((winconf (current-window-configuration))) - (set-buffer (get-buffer-create gnus-edit-form-buffer)) + (set-buffer (gnus-get-buffer-create gnus-edit-form-buffer)) (gnus-configure-windows 'edit-form) - (gnus-add-current-to-buffer-list) (gnus-edit-form-mode) (setq gnus-prev-winconf winconf) (setq gnus-edit-form-done-function exit-func) diff --git a/lisp/gnus-ems.el b/lisp/gnus-ems.el index 8138113..f51c81d 100644 --- a/lisp/gnus-ems.el +++ b/lisp/gnus-ems.el @@ -287,7 +287,7 @@ (let ((dir (nnheader-find-etc-directory "gnus")) pixmap file height beg i) (save-excursion - (switch-to-buffer (get-buffer-create gnus-group-buffer)) + (switch-to-buffer (gnus-get-buffer-create gnus-group-buffer)) (let ((buffer-read-only nil)) (erase-buffer) (when (and dir diff --git a/lisp/gnus-gl.el b/lisp/gnus-gl.el index c4fd928..93ef915 100644 --- a/lisp/gnus-gl.el +++ b/lisp/gnus-gl.el @@ -234,7 +234,7 @@ If this times out we give up and assume that something has died..." ) (defun bbb-connect-to-bbbd (host port) (unless grouplens-bbb-buffer (setq grouplens-bbb-buffer - (get-buffer-create (format " *BBBD trace: %s*" host))) + (gnus-get-buffer-create (format " *BBBD trace: %s*" host))) (save-excursion (set-buffer grouplens-bbb-buffer) (make-local-variable 'bbb-read-point) diff --git a/lisp/gnus-group.el b/lisp/gnus-group.el index f79b976..10a9bd9 100644 --- a/lisp/gnus-group.el +++ b/lisp/gnus-group.el @@ -816,9 +816,8 @@ The following commands are available: (or level gnus-group-default-list-level gnus-level-subscribed)))) (defun gnus-group-setup-buffer () - (set-buffer (get-buffer-create gnus-group-buffer)) + (set-buffer (gnus-get-buffer-create gnus-group-buffer)) (unless (eq major-mode 'gnus-group-mode) - (gnus-add-current-to-buffer-list) (gnus-group-mode) (when gnus-carpal (gnus-carpal-setup-buffer 'group)))) @@ -1472,7 +1471,7 @@ and with point over the group in question." (save-selected-window (save-excursion (funcall ,function ,group))))))))) - + (put 'gnus-group-iterate 'lisp-indent-function 1) ;; Selecting groups. @@ -1900,6 +1899,8 @@ and NEW-NAME will be prompted for." (gnus-set-active new-name (gnus-active group)) (gnus-message 6 "Renaming group %s to %s...done" group new-name) new-name) + (setq gnus-killed-list (delete group gnus-killed-list)) + (gnus-set-active group nil) (gnus-dribble-touch) (gnus-group-position-point))) @@ -2912,17 +2913,19 @@ If N is negative, this group and the N-1 previous groups will be checked." (ret (if (numberp n) (- n (length groups)) 0)) (beg (unless n (point))) - group) + group method) (while (setq group (pop groups)) (gnus-group-remove-mark group) ;; Bypass any previous denials from the server. - (gnus-remove-denial (gnus-find-method-for-group group)) + (gnus-remove-denial (setq method (gnus-find-method-for-group group))) (if (gnus-activate-group group (if dont-scan nil 'scan)) (progn (gnus-get-unread-articles-in-group (gnus-get-info group) (gnus-active group) t) (unless (gnus-virtual-group-p group) (gnus-close-group group)) + (gnus-agent-save-group-info + method (gnus-group-real-name group) (gnus-active group)) (gnus-group-update-group group)) (if (eq (gnus-server-status (gnus-find-method-for-group group)) 'denied) @@ -3021,6 +3024,7 @@ to use." (lambda (group) (and (symbol-name group) (string-match regexp (symbol-name group)) + (symbol-value group) (push (symbol-name group) groups))) gnus-active-hashtb) ;; Also go through all descriptions that are known to Gnus. @@ -3121,12 +3125,14 @@ group." (defun gnus-group-find-new-groups (&optional arg) "Search for new groups and add them. Each new group will be treated with `gnus-subscribe-newsgroup-method.' -If ARG (the prefix), use the `ask-server' method to query -the server for new groups." - (interactive "P") - (gnus-find-new-newsgroups arg) +With 1 C-u, use the `ask-server' method to query the server for new +groups. +With 2 C-u's, use most complete method possible to query the server +for new groups, and subscribe the new groups as zombies." + (interactive "p") + (gnus-find-new-newsgroups (or arg 1)) (gnus-group-list-groups)) - + (defun gnus-group-edit-global-kill (&optional article group) "Edit the global kill file. If GROUP, edit that local kill file instead." @@ -3156,16 +3162,13 @@ The hook gnus-suspend-gnus-hook is called before actually suspending." (interactive) (gnus-run-hooks 'gnus-suspend-gnus-hook) ;; Kill Gnus buffers except for group mode buffer. - (let* ((group-buf (get-buffer gnus-group-buffer)) - ;; Do this on a separate list in case the user does a ^G before we finish - (gnus-buffer-list - (delete group-buf (delete gnus-dribble-buffer - (append gnus-buffer-list nil))))) - (while gnus-buffer-list - (gnus-kill-buffer (pop gnus-buffer-list))) + (let* ((group-buf (get-buffer gnus-group-buffer))) + (apply (lambda (buf) + (unless (equal buf group-buf) + (kill-buffer buf))) + (gnus-buffers)) (gnus-kill-gnus-frames) (when group-buf - (setq gnus-buffer-list (list group-buf)) (bury-buffer group-buf) (delete-windows-on group-buf t)))) diff --git a/lisp/gnus-int.el b/lisp/gnus-int.el index 6a641aa..6eff329 100644 --- a/lisp/gnus-int.el +++ b/lisp/gnus-int.el @@ -149,6 +149,8 @@ If it is down, start it up (again)." (cdr method-fnlist-elt)))) ;; Maybe complain if there is no function. (unless (fboundp func) + (unless (car method) + (error "Trying to require a method that doesn't exist")) (require (car method)) (when (not (fboundp func)) (if noerror diff --git a/lisp/gnus-kill.el b/lisp/gnus-kill.el index 40d94d4..4672116 100644 --- a/lisp/gnus-kill.el +++ b/lisp/gnus-kill.el @@ -406,7 +406,6 @@ Returns the number of articles marked as read." () (gnus-message 6 "Processing kill file %s..." (car kill-files)) (find-file (car kill-files)) - (gnus-add-current-to-buffer-list) (goto-char (point-min)) (if (consp (ignore-errors (read (current-buffer)))) @@ -566,7 +565,7 @@ COMMAND must be a lisp expression or a string representing a key sequence." (not (consp (cdadr (nth 2 object)))))) (concat "\n" (gnus-prin1-to-string object)) (save-excursion - (set-buffer (get-buffer-create "*Gnus PP*")) + (set-buffer (gnus-get-buffer-create "*Gnus PP*")) (buffer-disable-undo (current-buffer)) (erase-buffer) (insert (format "\n(%S %S\n '(" (nth 0 object) (nth 1 object))) diff --git a/lisp/gnus-mh.el b/lisp/gnus-mh.el index 3960408..fa01f5a 100644 --- a/lisp/gnus-mh.el +++ b/lisp/gnus-mh.el @@ -64,7 +64,7 @@ Optional argument FOLDER specifies folder name." (funcall gnus-folder-save-name gnus-newsgroup-name gnus-current-headers gnus-newsgroup-last-folder) t)))) - (errbuf (get-buffer-create " *Gnus rcvstore*")) + (errbuf (gnus-get-buffer-create " *Gnus rcvstore*")) ;; Find the rcvstore program. (exec-path (if mh-lib (cons mh-lib exec-path) exec-path))) (gnus-eval-in-buffer-window gnus-original-article-buffer diff --git a/lisp/gnus-msg.el b/lisp/gnus-msg.el index 08a85bd..af8a885 100644 --- a/lisp/gnus-msg.el +++ b/lisp/gnus-msg.el @@ -189,7 +189,7 @@ Thank you for your help in stamping out bugs. (copy-sequence message-header-setup-hook))) (add-hook 'message-header-setup-hook 'gnus-inews-insert-gcc) (add-hook 'message-header-setup-hook 'gnus-inews-insert-archive-gcc) - (add-hook 'message-mode-hook 'gnus-configure-posting-styles) + (add-hook 'message-setup-hook 'gnus-configure-posting-styles) (unwind-protect (progn ,@forms) @@ -199,6 +199,7 @@ Thank you for your help in stamping out bugs. (cons ,group ,article)) (make-local-variable 'gnus-newsgroup-name) (gnus-run-hooks 'gnus-message-setup-hook)) + (gnus-add-buffer) (gnus-configure-windows ,config t) (set-buffer-modified-p nil)))) @@ -350,10 +351,8 @@ header line with the old Message-ID." ;; this copy is in the buffer gnus-article-copy. ;; if ARTICLE-BUFFER is nil, gnus-article-buffer is used ;; this buffer should be passed to all mail/news reply/post routines. - (setq gnus-article-copy (get-buffer-create " *gnus article copy*")) + (setq gnus-article-copy (gnus-get-buffer-create " *gnus article copy*")) (buffer-disable-undo gnus-article-copy) - (or (memq gnus-article-copy gnus-buffer-list) - (push gnus-article-copy gnus-buffer-list)) (let ((article-buffer (or article-buffer gnus-article-buffer)) end beg contents) (if (not (and (get-buffer article-buffer) @@ -512,6 +511,7 @@ If SILENT, don't prompt the user." method-alist)))) ;; Override normal method. ((and (eq gnus-post-method 'current) + (not (eq (car group-method) 'nndraft)) (not arg)) group-method) (gnus-post-method @@ -844,7 +844,7 @@ The source file has to be in the Emacs load path." (sit-for 0) ;; Go through all the files looking for non-default values for variables. (save-excursion - (set-buffer (get-buffer-create " *gnus bug info*")) + (set-buffer (gnus-get-buffer-create " *gnus bug info*")) (buffer-disable-undo (current-buffer)) (while files (erase-buffer) @@ -1087,6 +1087,7 @@ this is a reply." variable nil) ;; We find the variable that is to be modified. (if (and (not (stringp (car attribute))) + (not (eq 'body (car attribute))) (not (setq variable (cdr (assq (car attribute) gnus-posting-style-alist))))) (message "Couldn't find attribute %s" (car attribute)) @@ -1103,19 +1104,20 @@ this is a reply." ((listp value) (eval value)))) (if variable - (progn - ;; This is an ordinary variable. - (make-local-variable variable) - (set variable value-value)) - ;; This is a header to be added to the headers when - ;; posting. - (when value-value - (make-local-variable 'message-required-mail-headers) - (make-local-variable 'message-required-news-headers) - (push (cons (car attribute) value-value) - message-required-mail-headers) - (push (cons (car attribute) value-value) - message-required-news-headers))))))))) + ;; This is an ordinary variable. + (set (make-local-variable variable) value-value) + ;; This is either a body or a header to be inserted in the + ;; message + (when value-value + (let ((attr (car attribute))) + (if (eq 'body attr) + (save-excursion + (goto-char (point-max)) + (insert value-value)) + (save-excursion + (message-goto-eoh) + (insert (if (stringp attr) attr (symbol-name attr)) + ": " value-value "\n")))))))))))) ;;; Allow redefinition of functions. diff --git a/lisp/gnus-picon.el b/lisp/gnus-picon.el index 0291690..fd0d4ec 100644 --- a/lisp/gnus-picon.el +++ b/lisp/gnus-picon.el @@ -184,7 +184,7 @@ arguments necessary for the job.") (defun gnus-get-buffer-name (variable) "Returns the buffer name associated with the contents of a variable." - (let ((buf (get-buffer-create (gnus-window-to-buffer-helper + (let ((buf (gnus-get-buffer-create (gnus-window-to-buffer-helper (cdr (assq variable gnus-window-to-buffer)))))) (and buf @@ -211,10 +211,9 @@ arguments necessary for the job.") (save-excursion (if (get-buffer name) (set-buffer name) - (set-buffer (get-buffer-create name)) + (set-buffer (gnus-get-buffer-create name)) (buffer-disable-undo) (setq buffer-read-only t) - (gnus-add-current-to-buffer-list) (add-hook 'gnus-summary-prepare-exit-hook 'gnus-picons-kill-buffer)) (current-buffer)))) diff --git a/lisp/gnus-salt.el b/lisp/gnus-salt.el index d3c5ccf..43c9d91 100644 --- a/lisp/gnus-salt.el +++ b/lisp/gnus-salt.el @@ -557,9 +557,8 @@ Two predefined functions are available: (defun gnus-get-tree-buffer () "Return the tree buffer properly initialized." (save-excursion - (set-buffer (get-buffer-create gnus-tree-buffer)) + (set-buffer (gnus-get-buffer-create gnus-tree-buffer)) (unless (eq major-mode 'gnus-tree-mode) - (gnus-add-current-to-buffer-list) (gnus-tree-mode)) (current-buffer))) @@ -981,11 +980,10 @@ The following commands are available: (if (get-buffer buffer) () (save-excursion - (set-buffer (get-buffer-create buffer)) + (set-buffer (gnus-get-buffer-create buffer)) (gnus-carpal-mode) (setq gnus-carpal-attached-buffer (intern (format "gnus-%s-buffer" type))) - (gnus-add-current-to-buffer-list) (let ((buttons (symbol-value (intern (format "gnus-carpal-%s-buffer-buttons" type)))) diff --git a/lisp/gnus-score.el b/lisp/gnus-score.el index 141fbd9..4bdbcb6 100644 --- a/lisp/gnus-score.el +++ b/lisp/gnus-score.el @@ -505,7 +505,7 @@ used as score." (?l "lines" nil nil number) (?d "date" nil nil date) (?f "followup" nil nil string) - (?T "thread" nil nil string))) + (?r "thread" nil nil string))) (char-to-type '((?s s "substring" string) (?e e "exact string" string) @@ -550,7 +550,7 @@ used as score." (gnus-score-insert-help "Match on header" char-to-header 1))) (gnus-score-kill-help-buffer) - (unless (setq entry (assq hchar char-to-header)) + (unless (setq entry (assq (downcase hchar) char-to-header)) (if mimic (error "%c %c" prefix hchar) (error "Illegal header type"))) @@ -671,7 +671,7 @@ used as score." (defun gnus-score-insert-help (string alist idx) (setq gnus-score-help-winconf (current-window-configuration)) (save-excursion - (set-buffer (get-buffer-create "*Score Help*")) + (set-buffer (gnus-get-buffer-create "*Score Help*")) (buffer-disable-undo (current-buffer)) (delete-windows-on (current-buffer)) (erase-buffer) @@ -1403,7 +1403,7 @@ SCORE is the score to add." gnus-scores-articles)))) (save-excursion - (set-buffer (get-buffer-create "*Headers*")) + (set-buffer (gnus-get-buffer-create "*Headers*")) (buffer-disable-undo (current-buffer)) (when (gnus-buffer-live-p gnus-summary-buffer) (message-clone-locals gnus-summary-buffer)) @@ -2289,7 +2289,6 @@ SCORE is the score to add." 1 "No score rules apply to the current article (default score %d)." gnus-summary-default-score) (set-buffer "*Score Trace*") - (gnus-add-current-to-buffer-list) (while trace (insert (format "%S -> %s\n" (cdar trace) (if (caar trace) @@ -2335,7 +2334,6 @@ SCORE is the score to add." (while rules (insert (format "%-5d: %s\n" (caar rules) (cdar rules))) (pop rules)) - (gnus-add-current-to-buffer-list) (goto-char (point-min)) (gnus-configure-windows 'score-words)))) @@ -2506,7 +2504,7 @@ GROUP using BNews sys file syntax." (trans (cdr (assq ?: nnheader-file-name-translation-alist))) ofiles not-match regexp) (save-excursion - (set-buffer (get-buffer-create "*gnus score files*")) + (set-buffer (gnus-get-buffer-create "*gnus score files*")) (buffer-disable-undo (current-buffer)) ;; Go through all score file names and create regexp with them ;; as the source. diff --git a/lisp/gnus-soup.el b/lisp/gnus-soup.el index 3842c20..3d97829 100644 --- a/lisp/gnus-soup.el +++ b/lisp/gnus-soup.el @@ -133,7 +133,7 @@ If N is nil and any articles have been marked with the process mark, move those articles instead." (interactive "P") (let* ((articles (gnus-summary-work-articles n)) - (tmp-buf (get-buffer-create "*soup work*")) + (tmp-buf (gnus-get-buffer-create "*soup work*")) (area (gnus-soup-area gnus-newsgroup-name)) (prefix (gnus-soup-area-prefix area)) headers) @@ -512,7 +512,7 @@ Return whether the unpacking was successful." ".MSG")) (msg-buf (and (file-exists-p msg-file) (nnheader-find-file-noselect msg-file))) - (tmp-buf (get-buffer-create " *soup send*")) + (tmp-buf (gnus-get-buffer-create " *soup send*")) beg end) (cond ((/= (gnus-soup-encoding-format diff --git a/lisp/gnus-srvr.el b/lisp/gnus-srvr.el index 24e9bfd..e925ef1 100644 --- a/lisp/gnus-srvr.el +++ b/lisp/gnus-srvr.el @@ -195,7 +195,7 @@ The following commands are available: "Initialize the server buffer." (unless (get-buffer gnus-server-buffer) (save-excursion - (set-buffer (get-buffer-create gnus-server-buffer)) + (set-buffer (gnus-get-buffer-create gnus-server-buffer)) (gnus-server-mode) (when gnus-carpal (gnus-carpal-setup-buffer 'server))))) @@ -466,9 +466,12 @@ The following commands are available: (defun gnus-server-scan-server (server) "Request a scan from the current server." (interactive (list (gnus-server-server-name))) - (gnus-message 3 "Scanning %s...done" server) - (gnus-request-scan nil (gnus-server-to-method server)) - (gnus-message 3 "Scanning %s...done" server)) + (let ((method (gnus-server-to-method server))) + (if (not (gnus-get-function method 'request-scan)) + (error "Server %s can't scan" (car method)) + (gnus-message 3 "Scanning %s..." server) + (gnus-request-scan nil method) + (gnus-message 3 "Scanning %s...done" server)))) (defun gnus-server-read-server (server) "Browse a server." @@ -534,7 +537,7 @@ The following commands are available: '("Browse" ["Subscribe" gnus-browse-unsubscribe-current-group t] ["Read" gnus-browse-read-group t] - ["Select" gnus-browse-read-group t] + ["Select" gnus-browse-select-group t] ["Next" gnus-browse-next-group t] ["Prev" gnus-browse-next-group t] ["Exit" gnus-browse-exit t])) @@ -568,8 +571,7 @@ The following commands are available: 1 "Couldn't request list: %s" (gnus-status-message method)) nil) (t - (get-buffer-create gnus-browse-buffer) - (gnus-add-current-to-buffer-list) + (gnus-get-buffer-create gnus-browse-buffer) (when gnus-carpal (gnus-carpal-setup-buffer 'browse)) (gnus-configure-windows 'browse) diff --git a/lisp/gnus-start.el b/lisp/gnus-start.el index 581ed9f..40eebef 100644 --- a/lisp/gnus-start.el +++ b/lisp/gnus-start.el @@ -586,6 +586,7 @@ the first newsgroup." (defvar gnus-newsgroup-unreads) (defvar nnoo-state-alist) (defvar gnus-current-select-method) + (defun gnus-clear-system () "Clear all variables and buffers." ;; Clear Gnus variables. @@ -629,8 +630,9 @@ the first newsgroup." (kill-buffer (get-file-buffer (gnus-newsgroup-kill-file nil)))) (gnus-kill-buffer nntp-server-buffer) ;; Kill Gnus buffers. - (while gnus-buffer-list - (gnus-kill-buffer (pop gnus-buffer-list))) + (let ((buffers (gnus-buffers))) + (when buffers + (mapcar 'kill-buffer buffers))) ;; Remove Gnus frames. (gnus-kill-gnus-frames)) @@ -662,8 +664,8 @@ prompt the user for the name of an NNTP server to use." (> arg 0) (max (car gnus-group-list-mode) arg)))) - (gnus-splash) (gnus-clear-system) + (gnus-splash) (gnus-run-hooks 'gnus-before-startup-hook) (nnheader-init-server-buffer) (setq gnus-slave slave) @@ -780,9 +782,8 @@ prompt the user for the name of an NNTP server to use." (let ((dribble-file (gnus-dribble-file-name))) (save-excursion (set-buffer (setq gnus-dribble-buffer - (get-buffer-create + (gnus-get-buffer-create (file-name-nondirectory dribble-file)))) - (gnus-add-current-to-buffer-list) (erase-buffer) (setq buffer-file-name dribble-file) (auto-save-mode t) @@ -942,13 +943,25 @@ If LEVEL is non-nil, the news will be set up at level LEVEL." "Search for new newsgroups and add them. Each new newsgroup will be treated with `gnus-subscribe-newsgroup-method.' The `-n' option line from .newsrc is respected. -If ARG (the prefix), use the `ask-server' method to query the server -for new groups." - (interactive "P") - (let ((check (if (or (and arg (not (listp gnus-check-new-newsgroups))) - (null gnus-read-active-file) - (eq gnus-read-active-file 'some)) - 'ask-server gnus-check-new-newsgroups))) + +With 1 C-u, use the `ask-server' method to query the server for new +groups. +With 2 C-u's, use most complete method possible to query the server +for new groups, and subscribe the new groups as zombies." + (interactive "p") + (let* ((gnus-subscribe-newsgroup-method + gnus-subscribe-newsgroup-method) + (check (cond + ((or (and (= (or arg 1) 4) + (not (listp gnus-check-new-newsgroups))) + (null gnus-read-active-file) + (eq gnus-read-active-file 'some)) + 'ask-server) + ((= (or arg 1) 16) + (setq gnus-subscribe-newsgroup-method + 'gnus-subscribe-zombies) + t) + (t gnus-check-new-newsgroups)))) (unless (gnus-check-first-time-used) (if (or (consp check) (eq check 'ask-server)) @@ -2255,13 +2268,12 @@ If FORCE is non-nil, the .newsrc file is read." (gnus-gnus-to-newsrc-format) (gnus-message 8 "Saving %s...done" gnus-current-startup-file)) ;; Save .newsrc.eld. - (set-buffer (get-buffer-create " *Gnus-newsrc*")) + (set-buffer (gnus-get-buffer-create " *Gnus-newsrc*")) (make-local-variable 'version-control) (setq version-control 'never) (setq buffer-file-name (concat gnus-current-startup-file ".eld")) (setq default-directory (file-name-directory buffer-file-name)) - (gnus-add-current-to-buffer-list) (buffer-disable-undo (current-buffer)) (erase-buffer) (gnus-message 5 "Saving %s.eld..." gnus-current-startup-file) @@ -2403,7 +2415,7 @@ If FORCE is non-nil, the .newsrc file is read." () ; There are no slave files to read. (gnus-message 7 "Reading slave newsrcs...") (save-excursion - (set-buffer (get-buffer-create " *gnus slave*")) + (set-buffer (gnus-get-buffer-create " *gnus slave*")) (buffer-disable-undo (current-buffer)) (setq slave-files (sort (mapcar (lambda (file) diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 766a736..81880d0 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -1152,7 +1152,7 @@ increase the score of each group you read." [delete] gnus-summary-prev-page [backspace] gnus-summary-prev-page "\r" gnus-summary-scroll-up - "\e\r" gnus-summary-scroll-down + "\M-\r" gnus-summary-scroll-down "n" gnus-summary-next-unread-article "p" gnus-summary-prev-unread-article "N" gnus-summary-next-article @@ -1359,6 +1359,7 @@ increase the score of each group you read." [delete] gnus-summary-prev-page "p" gnus-summary-prev-page "\r" gnus-summary-scroll-up + "\M-\r" gnus-summary-scroll-down "<" gnus-summary-beginning-of-article ">" gnus-summary-end-of-article "b" gnus-summary-beginning-of-article @@ -1393,6 +1394,7 @@ increase the score of each group you read." "b" gnus-article-hide-boring-headers "s" gnus-article-hide-signature "c" gnus-article-hide-citation + "C" gnus-article-hide-citation-in-followups "p" gnus-article-hide-pgp "P" gnus-article-hide-pem "\C-c" gnus-article-hide-citation-maybe) @@ -2278,8 +2280,7 @@ marks of articles." (setq gnus-summary-buffer (current-buffer)) (not gnus-newsgroup-prepared)) ;; Fix by Sudish Joseph - (setq gnus-summary-buffer (set-buffer (get-buffer-create buffer))) - (gnus-add-current-to-buffer-list) + (setq gnus-summary-buffer (set-buffer (gnus-get-buffer-create buffer))) (gnus-summary-mode group) (when gnus-carpal (gnus-carpal-setup-buffer 'summary)) @@ -5239,12 +5240,6 @@ The state which existed when entering the ephemeral is reset." (select-window (get-buffer-window gnus-article-buffer)) ) -(defun gnus-summary-scroll-down () - "Scroll down one line current article." - (interactive) - (gnus-summary-scroll-up -1) - ) - ;;; Dead summaries. (defvar gnus-dead-summary-mode-map nil) @@ -5814,6 +5809,12 @@ Argument LINES specifies lines to be scrolled up (or down if negative)." (gnus-summary-recenter) (gnus-summary-position-point)) +(defun gnus-summary-scroll-down (lines) + "Scroll down (or up) one line current article. +Argument LINES specifies lines to be scrolled down (or up if negative)." + (interactive "p") + (gnus-summary-scroll-up (- lines))) + (defun gnus-summary-next-same-subject () "Select next article which has the same subject as current one." (interactive) @@ -7204,7 +7205,7 @@ latter case, they will be copied into the relevant groups." (not (file-regular-p file)) (error "Can't read %s" file)) (save-excursion - (set-buffer (get-buffer-create " *import file*")) + (set-buffer (gnus-get-buffer-create " *import file*")) (buffer-disable-undo (current-buffer)) (erase-buffer) (nnheader-insert-file-contents file) diff --git a/lisp/gnus-util.el b/lisp/gnus-util.el index 826c8ec..dbb5baa 100644 --- a/lisp/gnus-util.el +++ b/lisp/gnus-util.el @@ -540,7 +540,7 @@ Timezone package is used." (progn (set-buffer gnus-work-buffer) (erase-buffer)) - (set-buffer (get-buffer-create gnus-work-buffer)) + (set-buffer (gnus-get-buffer-create gnus-work-buffer)) (kill-all-local-variables) (buffer-disable-undo (current-buffer)))) @@ -723,7 +723,7 @@ with potentially long computations." (setq filename (expand-file-name filename)) (setq rmail-default-rmail-file filename) (let ((artbuf (current-buffer)) - (tmpbuf (get-buffer-create " *Gnus-output*")) + (tmpbuf (gnus-get-buffer-create " *Gnus-output*")) (coding-system-for-write 'binary)) (save-excursion (or (get-file-buffer filename) @@ -772,7 +772,7 @@ with potentially long computations." "Append the current article to a mail file named FILENAME." (setq filename (expand-file-name filename)) (let ((artbuf (current-buffer)) - (tmpbuf (get-buffer-create " *Gnus-output*"))) + (tmpbuf (gnus-get-buffer-create " *Gnus-output*"))) (save-excursion ;; Create the file, if it doesn't exist. (when (and (not (get-file-buffer filename)) diff --git a/lisp/gnus-uu.el b/lisp/gnus-uu.el index dca97f0..f937bbe 100644 --- a/lisp/gnus-uu.el +++ b/lisp/gnus-uu.el @@ -517,8 +517,8 @@ didn't work, and overwrite existing files. Otherwise, ask each time." (gnus-setup-message 'forward (setq gnus-uu-digest-from-subject nil) (gnus-uu-decode-save n file) - (setq buf (switch-to-buffer (get-buffer-create " *gnus-uu-forward*"))) - (gnus-add-current-to-buffer-list) + (setq buf (switch-to-buffer + (gnus-get-buffer-create " *gnus-uu-forward*"))) (erase-buffer) (insert-file file) (let ((fs gnus-uu-digest-from-subject)) @@ -834,10 +834,10 @@ didn't work, and overwrite existing files. Otherwise, ask each time." (eq in-state 'first-and-last)) (progn (setq state (list 'begin)) - (save-excursion (set-buffer (get-buffer-create "*gnus-uu-body*")) + (save-excursion (set-buffer (gnus-get-buffer-create "*gnus-uu-body*")) (erase-buffer)) (save-excursion - (set-buffer (get-buffer-create "*gnus-uu-pre*")) + (set-buffer (gnus-get-buffer-create "*gnus-uu-pre*")) (erase-buffer) (insert (format "Date: %s\nFrom: %s\nSubject: %s Digest\n\nTopics:\n" @@ -970,7 +970,7 @@ didn't work, and overwrite existing files. Otherwise, ask each time." (if (not (re-search-forward gnus-uu-postscript-end-string nil t)) (setq state (list 'wrong-type)) (setq end-char (point)) - (set-buffer (get-buffer-create gnus-uu-output-buffer-name)) + (set-buffer (gnus-get-buffer-create gnus-uu-output-buffer-name)) (insert-buffer-substring process-buffer start-char end-char) (setq file-name (concat gnus-uu-work-dir (cdr gnus-article-current) ".ps")) @@ -1025,7 +1025,7 @@ didn't work, and overwrite existing files. Otherwise, ask each time." ;; finally just replaces the next to last number with "[0-9]+". (let ((count 2)) (save-excursion - (set-buffer (get-buffer-create gnus-uu-output-buffer-name)) + (set-buffer (gnus-get-buffer-create gnus-uu-output-buffer-name)) (buffer-disable-undo (current-buffer)) (erase-buffer) (insert (regexp-quote string)) @@ -1126,7 +1126,7 @@ didn't work, and overwrite existing files. Otherwise, ask each time." (let ((out-list string-list) string) (save-excursion - (set-buffer (get-buffer-create gnus-uu-output-buffer-name)) + (set-buffer (gnus-get-buffer-create gnus-uu-output-buffer-name)) (buffer-disable-undo (current-buffer)) (while string-list (erase-buffer) @@ -1419,7 +1419,7 @@ didn't work, and overwrite existing files. Otherwise, ask each time." (setq gnus-uu-uudecode-process (start-process "*uudecode*" - (get-buffer-create gnus-uu-output-buffer-name) + (gnus-get-buffer-create gnus-uu-output-buffer-name) shell-file-name shell-command-switch (format "cd %s %s uudecode" gnus-uu-work-dir gnus-shell-command-separator)))) @@ -1485,7 +1485,7 @@ didn't work, and overwrite existing files. Otherwise, ask each time." (setq start-char (point)) (call-process-region start-char (point-max) shell-file-name nil - (get-buffer-create gnus-uu-output-buffer-name) nil + (gnus-get-buffer-create gnus-uu-output-buffer-name) nil shell-command-switch (concat "cd " gnus-uu-work-dir " " gnus-shell-command-separator " sh")))) @@ -1548,13 +1548,13 @@ didn't work, and overwrite existing files. Otherwise, ask each time." (setq command (format "cd %s ; %s" dir (gnus-uu-command action file-path))) (save-excursion - (set-buffer (get-buffer-create gnus-uu-output-buffer-name)) + (set-buffer (gnus-get-buffer-create gnus-uu-output-buffer-name)) (erase-buffer)) (gnus-message 5 "Unpacking: %s..." (gnus-uu-command action file-path)) (if (= 0 (call-process shell-file-name nil - (get-buffer-create gnus-uu-output-buffer-name) + (gnus-get-buffer-create gnus-uu-output-buffer-name) nil shell-command-switch command)) (message "") (gnus-message 2 "Error during unpacking of archive") @@ -1912,7 +1912,7 @@ If no file has been included, the user will be asked for a file." (unwind-protect (if (save-excursion (set-buffer (setq uubuf - (get-buffer-create uuencode-buffer-name))) + (gnus-get-buffer-create uuencode-buffer-name))) (erase-buffer) (funcall gnus-uu-post-encode-method file-path file-name)) (insert-buffer-substring uubuf) @@ -1945,7 +1945,7 @@ If no file has been included, the user will be asked for a file." (setq end-binary (point-max)) (save-excursion - (set-buffer (setq uubuf (get-buffer-create encoded-buffer-name))) + (set-buffer (setq uubuf (gnus-get-buffer-create encoded-buffer-name))) (erase-buffer) (insert-buffer-substring post-buf beg-binary end-binary) (goto-char (point-min)) @@ -1977,7 +1977,7 @@ If no file has been included, the user will be asked for a file." (setq i 1) (setq beg 1) (while (not (> i parts)) - (set-buffer (get-buffer-create send-buffer-name)) + (set-buffer (gnus-get-buffer-create send-buffer-name)) (erase-buffer) (insert header) (when (and threaded gnus-uu-post-message-id) diff --git a/lisp/gnus-win.el b/lisp/gnus-win.el index 803d2ea..c41fbae 100644 --- a/lisp/gnus-win.el +++ b/lisp/gnus-win.el @@ -319,7 +319,7 @@ See the Gnus manual for an explanation of the syntax used.") (t (cdr (assq type gnus-window-to-buffer)))))) (unless buffer (error "Illegal buffer type: %s" type)) - (switch-to-buffer (get-buffer-create + (switch-to-buffer (gnus-get-buffer-create (gnus-window-to-buffer-helper buffer))) (when (memq 'frame-focus split) (setq gnus-window-frame-focus window)) @@ -453,13 +453,7 @@ See the Gnus manual for an explanation of the syntax used.") (defun gnus-delete-windows-in-gnusey-frames () "Do a `delete-other-windows' in all frames that have Gnus windows." - (let ((buffers - (mapcar - (lambda (elem) - (let ((buf (gnus-window-to-buffer-helper (cdr elem)))) - (if (not (null buf)) - (get-buffer buf)))) - gnus-window-to-buffer))) + (let ((buffers (gnus-buffers))) (mapcar (lambda (frame) (unless (eq (cdr (assq 'minibuffer @@ -523,39 +517,22 @@ should have point." (nth 1 (window-edges window))) (defun gnus-remove-some-windows () - (let ((buffers gnus-window-to-buffer) + (let ((buffers (gnus-buffers)) buf bufs lowest-buf lowest) (save-excursion ;; Remove windows on all known Gnus buffers. - (while buffers - (and (setq buf (gnus-window-to-buffer-helper (cdar buffers))) - (get-buffer-window buf) - (progn - (push buf bufs) - (pop-to-buffer buf) - (when (or (not lowest) - (< (gnus-window-top-edge) lowest)) - (setq lowest (gnus-window-top-edge)) - (setq lowest-buf buf)))) - (setq buffers (cdr buffers))) - ;; Remove windows on *all* summary buffers. - (walk-windows - (lambda (win) - (let ((buf (window-buffer win))) - (when (string-match "^\\*\\(Dead \\)?Summary" (buffer-name buf)) - (push buf bufs) - (pop-to-buffer buf) - (when (or (not lowest) - (< (gnus-window-top-edge) lowest)) - (setq lowest-buf buf) - (setq lowest (gnus-window-top-edge))))))) + (while (setq buf (pop buffers)) + (when (get-buffer-window buf) + (push buf bufs) + (pop-to-buffer buf) + (when (or (not lowest) + (< (gnus-window-top-edge) lowest)) + (setq lowest (gnus-window-top-edge) + lowest-buf buf)))) (when lowest-buf (pop-to-buffer lowest-buf) (switch-to-buffer nntp-server-buffer)) - (while bufs - (when (not (eq (car bufs) lowest-buf)) - (delete-windows-on (car bufs))) - (setq bufs (cdr bufs)))))) + (mapcar (lambda (b) (delete-windows-on b t)) bufs)))) (provide 'gnus-win) diff --git a/lisp/gnus-xmas.el b/lisp/gnus-xmas.el index 9d3d239..00fc583 100644 --- a/lisp/gnus-xmas.el +++ b/lisp/gnus-xmas.el @@ -90,7 +90,6 @@ asynchronously. The compressed face will be piped to this command." (defvar gnus-active-hashtb) (defvar gnus-article-buffer) (defvar gnus-auto-center-summary) -(defvar gnus-buffer-list) (defvar gnus-current-headers) (defvar gnus-level-killed) (defvar gnus-level-zombie) diff --git a/lisp/gnus.el b/lisp/gnus.el index a25977f..791d6e4 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -253,11 +253,11 @@ is restarted, and sometimes reloaded." (defconst gnus-product-name "Shoe-gnus" "Product name of this version of gnus.") -(defconst gnus-version-number "6.8.4" +(defconst gnus-version-number "6.8.5" "Version number for this version of gnus.") (defconst gnus-version - (format "%s %s (based on Gnus 5.6.30; for SEMI 1.8, FLIM 1.8/1.9)" + (format "%s %s (based on Gnus 5.6.36; for SEMI 1.8, FLIM 1.8/1.9)" gnus-product-name gnus-version-number) "Version string for this version of gnus.") @@ -605,6 +605,33 @@ be set in `.emacs' instead." "Face used for normal interest read articles.") +;;; +;;; Gnus buffers +;;; + +(defvar gnus-buffers nil) + +(defun gnus-get-buffer-create (name) + "Do the same as `get-buffer-create', but store the created buffer." + (or (get-buffer name) + (car (push (get-buffer-create name) gnus-buffers)))) + +(defun gnus-add-buffer () + "Add the current buffer to the list of Gnus buffers." + (push (current-buffer) gnus-buffers)) + +(defun gnus-buffers () + "Return a list of live Gnus buffers." + (while (and gnus-buffers + (not (buffer-name (car gnus-buffers)))) + (pop gnus-buffers)) + (let ((buffers gnus-buffers)) + (while (cdr buffers) + (if (buffer-name (cadr buffers)) + (pop buffers) + (setcdr buffers (cddr buffers))))) + gnus-buffers) + ;;; Splash screen. (defvar gnus-group-buffer "*Group*") @@ -625,7 +652,7 @@ be set in `.emacs' instead." (defun gnus-splash () (save-excursion - (switch-to-buffer (get-buffer-create gnus-group-buffer)) + (switch-to-buffer (gnus-get-buffer-create gnus-group-buffer)) (let ((buffer-read-only nil)) (erase-buffer) (unless gnus-inhibit-startup-message @@ -693,9 +720,10 @@ be set in `.emacs' instead." (eval-when (load) (let ((command (format "%s" this-command))) - (when (and (string-match "gnus" command) - (not (string-match "gnus-other-frame" command))) - (gnus-splash)))) + (if (and (string-match "gnus" command) + (not (string-match "gnus-other-frame" command))) + (gnus-splash) + (gnus-get-buffer-create gnus-group-buffer)))) ;;; Do the rest. @@ -758,7 +786,7 @@ used to 899, you would say something along these lines: (or (getenv "NNTPSERVER") (and (file-readable-p gnus-nntpserver-file) (save-excursion - (set-buffer (get-buffer-create " *gnus nntp*")) + (set-buffer (gnus-get-buffer-create " *gnus nntp*")) (buffer-disable-undo (current-buffer)) (insert-file-contents gnus-nntpserver-file) (let ((name (buffer-string))) @@ -1426,10 +1454,10 @@ want." (defvar gnus-predefined-server-alist `(("cache" nnspool "cache" - (nnspool-spool-directory gnus-cache-directory) - (nnspool-nov-directory gnus-cache-directory) + (nnspool-spool-directory ,gnus-cache-directory) + (nnspool-nov-directory ,gnus-cache-directory) (nnspool-active-file - (nnheader-concat gnus-cache-directory "active")))) + ,(nnheader-concat gnus-cache-directory "active")))) "List of predefined (convenience) servers.") (defvar gnus-topic-indentation "") ;; Obsolete variable. @@ -1471,9 +1499,6 @@ want." (defvar gnus-article-buffer "*Article*") (defvar gnus-server-buffer "*Server*") -(defvar gnus-buffer-list nil - "Gnus buffers that should be killed on exit.") - (defvar gnus-slave nil "Whether this Gnus is a slave or not.") @@ -1936,6 +1961,7 @@ This restriction may disappear in later versions of Gnus." ;;; Gnus Utility Functions ;;; + (defmacro gnus-string-or (&rest strings) "Return the first element of STRINGS that is a non-blank string. STRINGS will be evaluated in normal `or' order." @@ -1950,11 +1976,6 @@ STRINGS will be evaluated in normal `or' order." (setq strings nil))) string)) -;; Add the current buffer to the list of buffers to be killed on exit. -(defun gnus-add-current-to-buffer-list () - (or (memq (current-buffer) gnus-buffer-list) - (push (current-buffer) gnus-buffer-list))) - (defun gnus-version (&optional arg) "Version number of this version of Gnus. If ARG, insert string at point." @@ -1962,16 +1983,6 @@ If ARG, insert string at point." (let ((methods gnus-valid-select-methods) (mess gnus-version) meth) - ;; Go through all the legal select methods and add their version - ;; numbers to the total version string. Only the backends that are - ;; currently in use will have their message numbers taken into - ;; consideration. - (while methods - (setq meth (intern (concat (caar methods) "-version"))) - (and (boundp meth) - (stringp (symbol-value meth)) - (setq mess (concat mess "; " (symbol-value meth)))) - (setq methods (cdr methods))) (if arg (insert (message mess)) (message mess)))) diff --git a/lisp/message.el b/lisp/message.el index 485b07b..23f43d6 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -349,6 +349,27 @@ If t, use `message-user-organization-file'." :group 'message-forwarding :type 'regexp) +(defcustom message-make-forward-subject-function + 'message-forward-subject-author-subject + "*A list of functions that are called to generate a subject header for forwarded messages. +The subject generated by the previous function is passed into each +successive function. + +The provided functions are: + +* message-forward-subject-author-subject (Source of article (author or + newsgroup)), in brackets followed by the subject +* message-forward-subject-fwd (Subject of article with 'Fwd:' prepended + to it." + :group 'message-forwarding + :type '(radio (function-item message-forward-subject-author-subject) + (function-item message-forward-subject-fwd))) + +(defcustom message-wash-forwarded-subjects nil + "*If non-nil, try to remove as much old cruft as possible from the subject of messages before generating the new subject of a forward." + :group 'message-forwarding + :type 'boolean) + (defcustom message-ignored-resent-headers "^Return-Receipt" "*All headers that match this regexp will be deleted when resending a message." :group 'message-interface @@ -487,6 +508,7 @@ might set this variable to '(\"-f\" \"you@some.where\")." (defvar gnus-select-method) (defcustom message-post-method (cond ((and (boundp 'gnus-post-method) + (listp gnus-post-method) gnus-post-method) gnus-post-method) ((boundp 'gnus-select-method) @@ -1532,13 +1554,22 @@ C-c C-r message-caesar-buffer-body (rot13 the message body)." (goto-char (point-min)) (search-forward (concat "\n" mail-header-separator "\n") nil t)) +(defun message-goto-eoh () + "Move point to the end of the headers." + (interactive) + (message-goto-body) + (forward-line -2)) + (defun message-goto-signature () - "Move point to the beginning of the message signature." + "Move point to the beginning of the message signature. +If there is no signature in the article, go to the end and +return nil." (interactive) (goto-char (point-min)) (if (re-search-forward message-signature-separator nil t) (forward-line 1) - (goto-char (point-max)))) + (goto-char (point-max)) + nil)) @@ -1578,16 +1609,17 @@ With the prefix argument FORCE, insert the header anyway." (interactive "r") (save-excursion (goto-char end) - (delete-region (point) (progn (message-goto-signature) - (forward-line -2) - (point))) + (delete-region (point) (if (not (message-goto-signature)) + (point) + (forward-line -2) + (point))) (insert "\n") (goto-char beg) (delete-region beg (progn (message-goto-body) (forward-line 2) (point)))) - (message-goto-signature) - (forward-line -2)) + (when (message-goto-signature) + (forward-line -2))) (defun message-kill-to-signature () "Deletes all text up to the signature." @@ -2052,7 +2084,12 @@ the user from the mailer." ;; Make sure there's a newline at the end of the message. (goto-char (point-max)) (unless (bolp) - (insert "\n"))) + (insert "\n")) + ;; Delete all invisible text. + (when (text-property-any (point-min) (point-max) 'invisible t) + (put-text-property (point-min) (point-max) 'invisible nil) + (unless (yes-or-no-p "Invisible text found and made visible; continue posting?") + (error "Invisible text found and made visible")))) (defun message-add-action (action &rest types) "Add ACTION to be performed when doing an exit of type TYPES." @@ -3815,19 +3852,81 @@ header line with the old Message-ID." (insert-file-contents file-name nil))) (t (error "message-recover cancelled"))))) +;;; Washing Subject: + +(defun message-wash-subject (subject) + "Remove junk like \"Re:\", \"(fwd)\", etc. that was added to the subject by previous forwarders, replyers, etc." + (nnheader-temp-write nil + (insert-string subject) + (goto-char (point-min)) + ;; strip Re/Fwd stuff off the beginning + (while (re-search-forward + "\\([Rr][Ee]:\\|[Ff][Ww][Dd]:\\|[Ff][Ww]:\\)" nil t) + (replace-match "")) + + ;; and gnus-style forwards [foo@bar.com] subject + (goto-char (point-min)) + (while (re-search-forward "\\[[^ \t]*\\(@\\|\\.\\)[^ \t]*\\]" nil t) + (replace-match "")) + + ;; and off the end + (goto-char (point-max)) + (while (re-search-backward "([Ff][Ww][Dd])" nil t) + (replace-match "")) + + ;; and finally, any whitespace that was left-over + (goto-char (point-min)) + (while (re-search-forward "^[ \t]+" nil t) + (replace-match "")) + (goto-char (point-max)) + (while (re-search-backward "[ \t]+$" nil t) + (replace-match "")) + + (buffer-string))) + ;;; Forwarding messages. +(defun message-forward-subject-author-subject (subject) + "Generate a subject for a forwarded message. +The form is: [Source] Subject, where if the original message was mail, +Source is the sender, and if the original message was news, Source is +the list of newsgroups is was posted to." + (concat "[" + (or (message-fetch-field + (if (message-news-p) "newsgroups" "from")) + "(nowhere)") + "] " subject)) + +(defun message-forward-subject-fwd (subject) + "Generate a subject for a forwarded message. +The form is: Fwd: Subject, where Subject is the original subject of +the message." + (concat "Fwd: " subject)) + (defun message-make-forward-subject () "Return a Subject header suitable for the message in the current buffer." (save-excursion (save-restriction (current-buffer) (message-narrow-to-head) - (concat "[" (or (message-fetch-field - (if (message-news-p) "newsgroups" "from")) - "(nowhere)") - "] " (or (eword-decode-unstructured-field-body - (message-fetch-field "Subject") "")))))) + (let ((funcs message-make-forward-subject-function) + (subject (if message-wash-forwarded-subjects + (message-wash-subject + (or (eword-decode-unstructured-field-body + (message-fetch-field "Subject")) "")) + (or (eword-decode-unstructured-field-body + (message-fetch-field "Subject")) "")))) + ;; Make sure funcs is a list. + (and funcs + (not (listp funcs)) + (setq funcs (list funcs))) + ;; Apply funcs in order, passing subject generated by previous + ;; func to the next one. + (while funcs + (when (message-functionp (car funcs)) + (setq subject (funcall (car funcs) subject))) + (setq funcs (cdr funcs))) + subject)))) ;;;###autoload (defun message-forward (&optional news) diff --git a/lisp/nndir.el b/lisp/nndir.el index c4c7509..a3b5eae 100644 --- a/lisp/nndir.el +++ b/lisp/nndir.el @@ -89,7 +89,7 @@ (nnoo-map-functions nndir (nnml-retrieve-headers 0 nndir-current-group 0 0) (nnml-request-article 0 nndir-current-group 0 0) - (nnml-request-group nndir-current-group 0 0) + (nnmh-request-group nndir-current-group 0 0) (nnml-close-group nndir-current-group 0) (nnml-request-list (nnoo-current-server 'nndir) nndir-directory) (nnml-request-newsgroups (nnoo-current-server 'nndir) nndir-directory)) diff --git a/lisp/nndoc.el b/lisp/nndoc.el index e4c79c1..16e6e9c 100644 --- a/lisp/nndoc.el +++ b/lisp/nndoc.el @@ -38,7 +38,7 @@ (defvoo nndoc-article-type 'guess "*Type of the file. One of `mbox', `babyl', `digest', `news', `rnews', `mmdf', `forward', -`rfc934', `rfc822-forward', `mime-digest', `standard-digest', +`rfc934', `rfc822-forward', `mime-digest', `mime-parts', `standard-digest', `slack-digest', `clari-briefs' or `guess'.") (defvoo nndoc-post-type 'mail @@ -87,6 +87,9 @@ from the document.") (body-end . "") (file-end . "") (subtype digest guess)) + (mime-parts + (generate-head-function . nndoc-generate-mime-parts-head) + (article-transform-function . nndoc-transform-mime-parts)) (standard-digest (first-article . ,(concat "^" (make-string 70 ?-) "\n *\n+")) (article-begin . ,(concat "^\n" (make-string 30 ?-) "\n *\n+")) @@ -128,7 +131,6 @@ from the document.") (subtype nil)))) - (defvoo nndoc-file-begin nil) (defvoo nndoc-first-article nil) (defvoo nndoc-article-begin nil) @@ -140,6 +142,11 @@ from the document.") (defvoo nndoc-body-begin-function nil) (defvoo nndoc-head-begin-function nil) (defvoo nndoc-body-end nil) +;; nndoc-dissection-alist is a list of sublists. Each sublist holds the +;; following items. ARTICLE is an ordinal starting at 1. HEAD-BEGIN, +;; HEAD-END, BODY-BEGIN and BODY-END are positions in the `nndoc' buffer. +;; LINE-COUNT is a count of lines in the body. SUBJECT, MESSAGE-ID and +;; REFERENCES, only present for MIME dissections, are field values. (defvoo nndoc-dissection-alist nil) (defvoo nndoc-prepare-body-function nil) (defvoo nndoc-generate-head-function nil) @@ -151,6 +158,8 @@ from the document.") (defvoo nndoc-current-buffer nil "Current nndoc news buffer.") (defvoo nndoc-address nil) +(defvoo nndoc-mime-header nil) +(defvoo nndoc-mime-subject nil) (defconst nndoc-version "nndoc 1.0" "nndoc version.") @@ -292,7 +301,9 @@ from the document.") (save-excursion (set-buffer nndoc-current-buffer) (nndoc-set-delims) - (nndoc-dissect-buffer))) + (if (eq nndoc-article-type 'mime-parts) + (nndoc-dissect-mime-parts) + (nndoc-dissect-buffer)))) (unless nndoc-current-buffer (nndoc-close-server)) ;; Return whether we managed to select a file. @@ -436,6 +447,46 @@ from the document.") (defun nndoc-rfc822-forward-body-end-function () (goto-char (point-max))) +(defun nndoc-mime-parts-type-p () + (let ((case-fold-search t) + (limit (search-forward "\n\n" nil t))) + (goto-char (point-min)) + (when (and limit + (re-search-forward + (concat "\ +^Content-Type:[ \t]*multipart/[a-z]+;\\(.*;\\)*" + "[ \t\n]*[ \t]boundary=\"?[^\"\n]*[^\" \t\n]") + limit t)) + t))) + +(defun nndoc-transform-mime-parts (article) + (unless (= article 1) + ;; Ensure some MIME-Version. + (goto-char (point-min)) + (search-forward "\n\n") + (let ((case-fold-search nil) + (limit (point))) + (goto-char (point-min)) + (or (save-excursion (re-search-forward "^MIME-Version:" limit t)) + (insert "MIME-Version: 1.0\n"))) + ;; Generate default header before entity fields. + (goto-char (point-min)) + (nndoc-generate-mime-parts-head article t))) + +(defun nndoc-generate-mime-parts-head (article &optional full-subject) + (let ((entry (cdr (assq article nndoc-dissection-alist)))) + (let ((subject (concat "<" (nth 5 entry) ">")) + (message-id (nth 6 entry)) + (references (nth 7 entry))) + (insert nndoc-mime-header + "Subject: " + (cond ((not full-subject) subject) + (nndoc-mime-subject (concat nndoc-mime-subject " " subject)) + (t subject)) + "\n") + (and message-id (insert "Message-ID: " message-id "\n")) + (and references (insert "References: " references "\n"))))) + (defun nndoc-clari-briefs-type-p () (when (let ((case-fold-search nil)) (re-search-forward "^\t[^a-z]+ ([^a-z]+) --" nil t)) @@ -473,7 +524,7 @@ from the document.") (when (and (re-search-forward (concat "^Content-Type: *multipart/digest;[ \t\n]*[ \t]" - "boundary=\"\\([^\"\n]*[^\" \t\n]\\)\"") + "boundary=\"?\\([^\"\n]*[^\" \t\n]\\)") nil t) (match-beginning 1)) (setq boundary-id (match-string 1) @@ -609,6 +660,104 @@ from the document.") (while (re-search-forward "^- -"nil t) (replace-match "-" t t))) +;; Against compiler warnings. +(defvar nndoc-mime-split-ordinal) + +(defun nndoc-dissect-mime-parts () + "Go through a MIME composite article and partition it into sub-articles. +When a MIME entity contains sub-entities, dissection produces one article for +the header of this entity, and one article per sub-entity." + (setq nndoc-dissection-alist nil + nndoc-mime-split-ordinal 0) + (save-excursion + (set-buffer nndoc-current-buffer) + (message-narrow-to-head) + (let ((case-fold-search t) + (message-id (message-fetch-field "Message-ID")) + (references (message-fetch-field "References"))) + (setq nndoc-mime-header (buffer-substring (point-min) (point-max)) + nndoc-mime-subject (message-fetch-field "Subject")) + (while (string-match "\ +^\\(Subject\\|Message-ID\\|References\\|Lines\\|\ +MIME-Version\\|Content-Type\\|Content-Transfer-Encoding\\|\ +\\):.*\n\\([ \t].*\n\\)*" + nndoc-mime-header) + (setq nndoc-mime-header (replace-match "" t t nndoc-mime-header))) + (widen) + (nndoc-dissect-mime-parts-sub (point-min) (point-max) + nil message-id references)))) + +(defun nndoc-dissect-mime-parts-sub (begin end position message-id references) + "Dissect an entity within a composite MIME message. +The article, which corresponds to a MIME entity, extends from BEGIN to END. +The string POSITION holds a dotted decimal representation of the article +position in the hierarchical structure, it is nil for the outer entity. +The generated article should use MESSAGE-ID and REFERENCES field values." + ;; Note: `case-fold-search' is already `t' from the calling function. + (let ((head-begin begin) + (body-end end) + head-end body-begin type subtype composite comment) + (save-excursion + ;; Gracefully handle a missing body. + (goto-char head-begin) + (if (search-forward "\n\n" body-end t) + (setq head-end (1- (point)) + body-begin (point)) + (setq head-end end + body-begin end)) + ;; Save MIME attributes. + (goto-char head-begin) + (if (re-search-forward "\ +^Content-Type: *\\([^ \t\n/;]+\\)/\\([^ \t\n/;]+\\)" + head-end t) + (setq type (downcase (match-string 1)) + subtype (downcase (match-string 2))) + (setq type "text" + subtype "plain")) + (setq composite (string= type "multipart") + comment (concat position + (when (and position composite) ".") + (when composite "*") + (when (or position composite) " ") + (cond ((string= subtype "plain") type) + ((string= subtype "basic") type) + (t subtype)))) + ;; Generate dissection information for this entity. + (push (list (incf nndoc-mime-split-ordinal) + head-begin head-end body-begin body-end + (count-lines body-begin body-end) + comment message-id references) + nndoc-dissection-alist) + ;; Recurse for all sub-entities, if any. + (goto-char head-begin) + (when (re-search-forward + (concat "\ +^Content-Type: *multipart/\\([a-z]+\\);\\(.*;\\)*" + "[ \t\n]*[ \t]boundary=\"?\\([^\"\n]*[^\" \t\n]\\)") + head-end t) + (let ((boundary (concat "\n--" (match-string 3) "\\(--\\)?[ \t]*\n")) + (part-counter 0) + begin end eof-flag) + (goto-char head-end) + (setq eof-flag (not (re-search-forward boundary body-end t))) + (while (not eof-flag) + (setq begin (point)) + (cond ((re-search-forward boundary body-end t) + (or (not (match-string 1)) + (string= (match-string 1) "") + (setq eof-flag t)) + (forward-line -1) + (setq end (point)) + (forward-line 1)) + (t (setq end body-end + eof-flag t))) + (nndoc-dissect-mime-parts-sub begin end + (concat position (when position ".") + (format "%d" + (incf part-counter))) + (nnmail-message-id) + message-id))))))) + ;;;###autoload (defun nndoc-add-type (definition &optional position) "Add document DEFINITION to the list of nndoc document definitions. diff --git a/lisp/nnmail.el b/lisp/nnmail.el index a03c195..c40f62c 100644 --- a/lisp/nnmail.el +++ b/lisp/nnmail.el @@ -1154,7 +1154,7 @@ FUNC will be called with the group name to determine the article number." (let ((trace (nreverse nnmail-split-trace)) (restore (current-buffer))) (nnheader-set-temp-buffer "*Split Trace*") - (gnus-add-current-to-buffer-list) + (gnus-add-buffer) (while trace (insert (car trace) "\n") (setq trace (cdr trace))) diff --git a/lisp/nntp.el b/lisp/nntp.el index 5b6545f..3528e33 100644 --- a/lisp/nntp.el +++ b/lisp/nntp.el @@ -400,7 +400,7 @@ server there that you can connect to. See also (if (re-search-forward "\n\\.\r?\n" nil t) t nil)) - ;; A result that startx with a 3xx or 4xx code is terminated + ;; A result that starts with a 3xx or 4xx code is terminated ;; by a newline. ((looking-at "[34]") (if (search-forward "\n" nil t) @@ -585,7 +585,7 @@ server there that you can connect to. See also (nnheader-message 6 "NNTP: Receiving articles...done")) ;; Now we have all the responses. We go through the results, - ;; washes it and copies it over to the server buffer. + ;; wash it and copy it over to the server buffer. (set-buffer nntp-server-buffer) (erase-buffer) (setq last-point (point-min)) @@ -1001,10 +1001,7 @@ password contained in '~/.nntp-authinfo'." (while (not (eobp)) (end-of-line) (delete-char 1) - (insert nntp-end-of-line)) - (forward-char -1) - (unless (eq (char-after (1- (point))) ?\r) - (insert "\r")))) + (insert nntp-end-of-line)))) (defun nntp-retrieve-headers-with-xover (articles &optional fetch-old) (set-buffer nntp-server-buffer) diff --git a/make.bat b/make.bat index 4a6b8a0..d183af9 100755 --- a/make.bat +++ b/make.bat @@ -1,57 +1,57 @@ -@echo off - -rem Written by David Charlap - -rem There are two catches, however. The emacs.bat batch file may not exist -rem in all distributions. It is part of the Voelker build of Emacs 19.34 -rem (http://www.cs.washington.edu/homes/voelker/ntemacs.html). If the user -rem installs Gnus with some other build, he may have to replace calls to -rem %1\emacs.bat with something else. -rem -rem Also, the emacs.bat file that Voelker ships does not accept more than 9 -rem parameters, so the attempts to compile the .texi files will fail. To -rem fix that (at least on NT. I don't know about Win95), the following -rem change should be made to emacs.bat: -rem -rem %emacs_dir%\bin\emacs.exe %1 %2 %3 %4 %5 %6 %7 %8 %9 -rem -rem should become -rem -rem %emacs_dir%\bin\emacs.exe %* -rem -rem which will allow the batch file to accept an unlimited number of -rem parameters. - -if "%1" == "" goto usage - -cd lisp -call %1\bin\emacs.bat -batch -q -no-site-file -l ./dgnushack.el -f dgnushack-compile -if not "%2" == "copy" goto info -copy *.el* %1\lisp - -:info -cd ..\texi -call %1\bin\emacs.bat -batch -q -no-site-file gnus.texi -l texinfmt -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer -call %1\bin\emacs.bat -batch -q -no-site-file message.texi -l texinfmt -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer -if not "%2" == "copy" goto done -copy gnus %1\info -copy gnus-?? %1\info -copy message %1\info - -:etc -cd ..\etc -copy gnus-tut.txt %1\etc - -:done -cd .. -goto end - -:usage -echo Usage: make ^ [copy] -echo. -echo where: ^ is the directory you installed emacs in -echo eg. d:\emacs\19.34 -echo copy indicates that the compiled files should be copied to your -echo emacs lisp, info, and etc directories - -:end +@echo off + +rem Written by David Charlap + +rem There are two catches, however. The emacs.bat batch file may not exist +rem in all distributions. It is part of the Voelker build of Emacs 19.34 +rem (http://www.cs.washington.edu/homes/voelker/ntemacs.html). If the user +rem installs Gnus with some other build, he may have to replace calls to +rem %1\emacs.bat with something else. +rem +rem Also, the emacs.bat file that Voelker ships does not accept more than 9 +rem parameters, so the attempts to compile the .texi files will fail. To +rem fix that (at least on NT. I don't know about Win95), the following +rem change should be made to emacs.bat: +rem +rem %emacs_dir%\bin\emacs.exe %1 %2 %3 %4 %5 %6 %7 %8 %9 +rem +rem should become +rem +rem %emacs_dir%\bin\emacs.exe %* +rem +rem which will allow the batch file to accept an unlimited number of +rem parameters. + +if "%1" == "" goto usage + +cd lisp +call %1\bin\emacs.bat -batch -q -no-site-file -l ./dgnushack.el -f dgnushack-compile +if not "%2" == "copy" goto info +copy *.el* %1\lisp + +:info +cd ..\texi +call %1\bin\emacs.bat -batch -q -no-site-file gnus.texi -l texinfmt -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer +call %1\bin\emacs.bat -batch -q -no-site-file message.texi -l texinfmt -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer +if not "%2" == "copy" goto done +copy gnus %1\info +copy gnus-?? %1\info +copy message %1\info + +:etc +cd ..\etc +copy gnus-tut.txt %1\etc + +:done +cd .. +goto end + +:usage +echo Usage: make ^ [copy] +echo. +echo where: ^ is the directory you installed emacs in +echo eg. d:\emacs\19.34 +echo copy indicates that the compiled files should be copied to your +echo emacs lisp, info, and etc directories + +:end diff --git a/texi/ChangeLog b/texi/ChangeLog index a2ec074..99e2d27 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,6 +1,44 @@ +1998-08-14 01:31:36 Simon Josefsson + + * gnus.texi (Posting Styles): New 'body style. + +1998-08-13 21:17:00 Lars Magne Ingebrigtsen + + * gnus.texi (Paging the Article): Addition. + +1998-08-13 00:13:47 Simon Josefsson + + * gnus.texi (Mail Group Commands): Typo. + +1998-08-12 21:28:09 Simon Josefsson + + * gnus.texi (Article Caching): gnus-cacheable-groups. + (Newest Features): remove gnus-cacheable-groups. + +1998-08-12 22:01:12 Lars Magne Ingebrigtsen + + * message.texi (Forwarding): Addition. + +1998-08-11 20:33:53 Justin Zaglio + + * gnus.texi (Group Maintenance): Fix. + +1998-08-11 11:44:20 Lars Magne Ingebrigtsen + + * gnus.texi (Group Maintenance): Fix. + +1998-08-10 08:59:25 Lars Magne Ingebrigtsen + + * gnus.texi (Article Highlighting): Addition. + (Article Fontisizing): Fix. + (Article Hiding): Change. + (Article Hiding): Fix. + 1998-08-09 15:32:24 Lars Magne Ingebrigtsen * gnus.texi (Hiding Headers): Fix. + (Article Hiding): Addition. + (Document Groups): Addition. 1998-08-08 06:06:37 Lars Magne Ingebrigtsen @@ -332,7 +370,7 @@ Sat Sep 20 20:53:43 1997 Lars Magne Ingebrigtsen Wed Sep 17 02:32:56 1997 Lars Magne Ingebrigtsen - * gnus.texi (Customizing Threading): Broken up into five nodes. + * gnus.texi (Customizing Threading): Broken up into five nodes. (Article Washing): Addition. * message.texi (Various Commands): Add. @@ -359,7 +397,7 @@ Sat Jul 19 23:02:03 1997 Lars Magne Ingebrigtsen Sat Jul 12 16:29:35 1997 Lars Magne Ingebrigtsen - * gnus.texi (Picon Configuration): Moved Picons to under XEmacs. + * gnus.texi (Picon Configuration): Moved Picons to under XEmacs. (Smileys): New section. Fri Jul 11 11:58:20 1997 Lars Magne Ingebrigtsen @@ -541,7 +579,7 @@ Mon Feb 3 07:31:47 1997 Lars Magne Ingebrigtsen Mon Jan 27 17:51:29 1997 Lars Magne Ingebrigtsen * gnus.texi (Highlighting and Menus): Removed - `gnus-display-type'. + `gnus-display-type'. Sat Jan 25 08:09:30 1997 Lars Magne Ingebrigtsen @@ -664,7 +702,7 @@ Fri Oct 25 09:04:59 1996 Lars Magne Ingebrigtsen Wed Oct 23 08:28:29 1996 Hrvoje Niksic - * gnus.texi (Fancy Mail Splitting): Removed trailing garbage. + * gnus.texi (Fancy Mail Splitting): Removed trailing garbage. Tue Oct 22 07:36:02 1996 Lars Magne Ingebrigtsen @@ -942,4 +980,3 @@ Mon Jul 29 10:12:24 1996 Lars Magne Ingebrigtsen (Advanced Scoring Example): New. (Advanced Scoring Syntax): New. (Advanced Scoring): New. - diff --git a/texi/Makefile.in b/texi/Makefile.in index c205abe..eb05e11 100644 --- a/texi/Makefile.in +++ b/texi/Makefile.in @@ -16,6 +16,7 @@ PERL=perl INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ SHELL = /bin/sh +PAPERTYPE=a4 all: gnus message @@ -73,7 +74,7 @@ latexps: cat postamble.tex >> gnus.tmplatexi $(LATEX) gnus.tmplatexi $(LATEX) gnus.tmplatexi - $(DVIPS) -f gnus.dvi > gnus.ps + $(DVIPS) -t $(PAPERTYPE) -f gnus.dvi > gnus.ps pss: make latex @@ -87,25 +88,25 @@ psout: latexboth: rm -f gnus-manual-a4.ps.gz gnus-manual-standard.ps.gz make latexps - mv /local/tmp/larsi/gnus.ps /local/tmp/larsi/gnus-manual-a4.ps - gzip /local/tmp/larsi/gnus-manual-a4.ps - sed 's/,a4paper//' gnus.latexi > gnus-standard.latexi + mv gnus.ps gnus-manual-a4.ps + gzip gnus-manual-a4.ps + sed 's/,a4paper/,letterpaper/' gnus.latexi > gnus-standard.latexi mv gnus-standard.latexi gnus.latexi - make latexps - mv /local/tmp/larsi/gnus.ps /local/tmp/larsi/gnus-manual-standard.ps - gzip /local/tmp/larsi/gnus-manual-standard.ps + make latexps PAPERTYPE=letter + mv gnus.ps gnus-manual-standard.ps + gzip gnus-manual-standard.ps out: - cp /local/tmp/larsi/gnus-manual-standard.ps.gz \ - /local/tmp/larsi/gnus-manual-a4.ps.gz \ + cp gnus-manual-standard.ps.gz \ + gnus-manual-a4.ps.gz \ /local/ftp/pub/emacs/gnus/manual - mv /local/tmp/larsi/gnus-manual-standard.ps.gz \ - /local/tmp/larsi/gnus-manual-a4.ps.gz \ + mv gnus-manual-standard.ps.gz \ + gnus-manual-a4.ps.gz \ /hom/larsi/www_docs/www.gnus.org/documents veryclean: make clean - rm -f gnus.dvi gnus.ps + rm -f gnus.dvi gnus.ps texi2latex.elc distclean: make clean diff --git a/texi/gnus.texi b/texi/gnus.texi index c8449b9..149fa32 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -62,6 +62,8 @@ \newcommand{\gnustilde}{\symbol{"7E}} \newcommand{\gnusless}{{$<$}} \newcommand{\gnusgreater}{{$>$}} +\newcommand{\gnusbraceleft}{{$>$}} +\newcommand{\gnusbraceright}{{$>$}} \newcommand{\gnushead}{\raisebox{-1cm}{\epsfig{figure=ps/gnus-head.eps,height=1cm}}} \newcommand{\gnusinteresting}{ @@ -1284,11 +1286,16 @@ Here's an example value for this variable that might look nice if the background is dark: @lisp -(face-spec-set 'my-group-face-1 '((t (:foreground "Red" :bold t)))) -(face-spec-set 'my-group-face-2 '((t (:foreground "SeaGreen" :bold t)))) -(face-spec-set 'my-group-face-3 '((t (:foreground "SpringGreen" :bold t)))) -(face-spec-set 'my-group-face-4 '((t (:foreground "SteelBlue" :bold t)))) -(face-spec-set 'my-group-face-5 '((t (:foreground "SkyBlue" :bold t)))) +(face-spec-set 'my-group-face-1 + '((t (:foreground "Red" :bold t)))) +(face-spec-set 'my-group-face-2 + '((t (:foreground "SeaGreen" :bold t)))) +(face-spec-set 'my-group-face-3 + '((t (:foreground "SpringGreen" :bold t)))) +(face-spec-set 'my-group-face-4 + '((t (:foreground "SteelBlue" :bold t)))) +(face-spec-set 'my-group-face-5 + '((t (:foreground "SkyBlue" :bold t)))) (setq gnus-group-highlight '(((> unread 200) . my-group-face-1) @@ -2390,8 +2397,10 @@ Find bogus groups and delete them @kindex F (Group) @findex gnus-group-find-new-groups Find new groups and process them (@code{gnus-group-find-new-groups}). -If given a prefix, use the @code{ask-server} method to query the server -for new groups. +With 1 @kbd{C-u}, use the @code{ask-server} method to query the server +for new groups. With 2 @kbd{C-u}'s, use most complete method possible +to query the server for new groups, and subscribe the new groups as +zombies. @item C-c C-x @kindex C-c C-x (Group) @@ -2894,7 +2903,7 @@ The @samp{Emacs} topic has the topic parameter @code{(score-file . "emacs.SCORE")}; the @samp{Relief} topic has the topic parameter @code{(score-file . "relief.SCORE")}; and the @samp{Misc} topic has the topic parameter @code{(score-file . "emacs.SCORE")}. In addition, -@samp{alt.religion.emacs} has the group parameter @code{(score-file +@* @samp{alt.religion.emacs} has the group parameter @code{(score-file . "religion.SCORE")}. Now, when you enter @samp{alt.sex.emacs} in the @samp{Relief} topic, you @@ -3696,6 +3705,12 @@ Scroll the current article back one page (@code{gnus-summary-prev-page}). Scroll the current article one line forward (@code{gnus-summary-scroll-up}). +@item M-RET +@kindex M-RET (Summary) +@findex gnus-summary-scroll-down +Scroll the current article one line backward +(@code{gnus-summary-scroll-down}). + @item A g @itemx g @kindex A g (Summary) @@ -5293,13 +5308,17 @@ to score unwanted articles down and have them marked as read. They will not then be downloaded by this command. @vindex gnus-uncacheable-groups -It is likely that you do not want caching on some groups. For instance, +@vindex gnus-cacheable-groups +It is likely that you do not want caching on all groups. For instance, if your @code{nnml} mail is located under your home directory, it makes no sense to cache it somewhere else under your home directory. Unless you -feel that it's neat to use twice as much space. To limit the caching, -you could set the @code{gnus-uncacheable-groups} regexp to -@samp{^nnml}, for instance. This variable is @code{nil} by -default. +feel that it's neat to use twice as much space. + +To limit the caching, you could set @code{gnus-cacheable-groups} to a +regexp of groups to cache, @samp{^nntp} for instance, or set the +@code{gnus-uncacheable-groups} regexp to @samp{^nnml}, for instance. +Both variables are @code{nil} by default. If a group matches both +variables, the group is not cached. @findex gnus-cache-generate-nov-databases @findex gnus-cache-generate-active @@ -6073,17 +6092,25 @@ these articles easier. @node Article Highlighting @subsection Article Highlighting -@cindex highlight +@cindex highlighting Not only do you want your article buffer to look like fruit salad, but -you want it to look like technicolor fruit salad. +you want it to look like technicolor fruit salad. @table @kbd @item W H a @kindex W H a (Summary) @findex gnus-article-highlight -Highlight the current article (@code{gnus-article-highlight}). +@findex gnus-article-maybe-highlight +Do much highlighting of the current article +(@code{gnus-article-highlight}). This function highlights header, cited +text, the signature, and adds buttons to the body and the head. + +Most users would prefer using @code{gnus-article-maybe-highlight} in +@code{gnus-article-display-hook} (@pxref{Customizing Articles}) instead. +This is a bit less agressive---it highlights only the headers, the +signature and adds buttons. @item W H h @kindex W H h (Summary) @@ -6169,6 +6196,8 @@ default. @end table +@xref{Customizing Articles} for how to highlight articles automatically. + @node Article Fontisizing @subsection Article Fontisizing @@ -6182,9 +6211,9 @@ like @samp{_this_} or @samp{*this*}. Gnus can make this look nicer by running the article through the @kbd{W e} (@code{gnus-article-emphasize}) command. -@vindex gnus-article-emphasis +@vindex gnus-emphasis-alist How the emphasis is computed is controlled by the -@code{gnus-article-emphasis} variable. This is an alist where the first +@code{gnus-emphasis-alist} variable. This is an alist where the first element is a regular expression to be matched. The second is a number that says what regular expression grouping is used to find the entire emphasized word. The third is a number that says what regexp grouping @@ -6221,6 +6250,8 @@ say something like: (copy-face 'red 'gnus-emphasis-italic) @end lisp +@xref{Customizing Articles} for how to fontize articles automatically. + @node Article Hiding @subsection Article Hiding @@ -6234,7 +6265,9 @@ too much cruft in most articles. @item W W a @kindex W W a (Summary) @findex gnus-article-hide -Do maximum hiding on the summary buffer (@kbd{gnus-article-hide}). +Do quite a lot of hiding on the article buffer +(@kbd{gnus-article-hide}). In particular, this function will hide +headers, PGP, cited text and the signature. @item W W h @kindex W W h (Summary) @@ -6276,21 +6309,13 @@ customizing the hiding: @table @code -@item gnus-cite-hide-percentage -@vindex gnus-cite-hide-percentage -If the cited text is of a bigger percentage than this variable (default -50), hide the cited text. - -@item gnus-cite-hide-absolute -@vindex gnus-cite-hide-absolute -The cited text must have at least this length (default 10) before it -is hidden. - -@item gnus-cited-text-button-line-format -@vindex gnus-cited-text-button-line-format +@item gnus-cited-opened-text-button-line-format +@itemx gnus-cited-closed-text-button-line-format +@vindex gnus-cited-closed-text-button-line-format +@vindex gnus-cited-opened-text-button-line-format Gnus adds buttons to show where the cited text has been hidden, and to allow toggle hiding the text. The format of the variable is specified -by this format-like variable (@pxref{Formatting Variables}). These +by these format-like variable (@pxref{Formatting Variables}). These specs are valid: @table @samp @@ -6308,6 +6333,25 @@ The number of lines at the beginning of the cited text to leave shown. @end table +@item W W C-c +@kindex W W C-c (Summary) +@findex gnus-article-hide-citation-maybe + +Hide citation (@code{gnus-article-hide-citation-maybe}) depending on the +following two variables: + +@table @code +@item gnus-cite-hide-percentage +@vindex gnus-cite-hide-percentage +If the cited text is of a bigger percentage than this variable (default +50), hide the cited text. + +@item gnus-cite-hide-absolute +@vindex gnus-cite-hide-absolute +The cited text must have at least this length (default 10) before it +is hidden. +@end table + @item W W C @kindex W W C (Summary) @findex gnus-article-hide-citation-in-followups @@ -6325,6 +6369,9 @@ hidden. If you give a positive prefix, they will always hide. Also @pxref{Article Highlighting} for further variables for citation customization. +@xref{Customizing Articles} for how to hide article elements +automatically. + @node Article Washing @subsection Article Washing @@ -6484,6 +6531,8 @@ body (@code{gnus-article-strip-leading-space}). @end table +@xref{Customizing Articles} for how to wash articles automatically. + @node Article Buttons @subsection Article Buttons @@ -6568,6 +6617,8 @@ Face used when the mouse cursor is over a button. @end table +@xref{Customizing Articles} for how to buttonize articles automatically. + @node Article Date @subsection Article Date @@ -6635,6 +6686,9 @@ that the article was posted in 1854. Although something like that is @end table +@xref{Customizing Articles} for how to display the date in your +preferred format automatically. + @node Article Signature @subsection Article Signature @@ -7171,7 +7225,7 @@ name, a @code{From} header and a @code{Subject} header. @item B r @kindex B r (Summary) @findex gnus-summary-respool-article -Respool the mail article (@code{gnus-summary-move-article}). +Respool the mail article (@code{gnus-summary-respool-article}). @code{gnus-summary-respool-default-method} will be used as the default select method when respooling. This variable is @code{nil} by default, which means that the current group select method will be used instead. @@ -7863,9 +7917,12 @@ been inserted into the article buffer. It is meant to handle all treatment of the article before it is displayed. @findex gnus-article-maybe-highlight -By default this hook just contains @code{gnus-article-hide-headers}, -@code{gnus-article-treat-overstrike}, and -@code{gnus-article-maybe-highlight}, but there are thousands, nay +@findex gnus-article-maybe-hide-headers +By default this hook just contains +@code{gnus-article-maybe-hide-headers}, +@code{gnus-hide-boring-headers}, @code{gnus-article-treat-overstrike}, +and @code{gnus-article-maybe-highlight} (and under XEmacs, +@code{gnus-article-display-x-face}), but there are thousands, nay millions, of functions you can put in this hook. For an overview of functions @pxref{Article Highlighting}, @pxref{Article Hiding}, @pxref{Article Washing}, @pxref{Article Buttons} and @pxref{Article @@ -8332,9 +8389,10 @@ to @dfn{match}. Each style may contain a arbitrary amount of @dfn{attributes}. Each attribute consists of a @var{(name . value)} pair. The attribute name can be one of @code{signature}, @code{signature-file}, -@code{organization}, @code{address} or @code{name}. The attribute name -can also be a string. In that case, this will be used as a header name, -and the value will be inserted in the headers of the article. +@code{organization}, @code{address}, @code{name} or @code{body}. The +attribute name can also be a string. In that case, this will be used as +a header name, and the value will be inserted in the headers of the +article. The attribute value can be a string (used verbatim), a function (the return value will be used), a variable (its value will be used) or a @@ -8356,6 +8414,7 @@ So here's a new example: (posting-from-work-p (signature-file "~/.work-signature") (address "user@@bar.foo") + (body "You are fired.\n\nSincerely, your boss.") (organization "Important Work, Inc")) ("^nn.+:" (signature-file "~/.mail-signature")))) @@ -9651,6 +9710,9 @@ element is @code{:}, then the second element will be called as a function with @var{args} given as arguments. The function should return a SPLIT. +@item +@code{nil}: If the split is @code{nil}, it is ignored. + @end enumerate In these splits, @var{FIELD} must match a complete field name. @@ -9679,8 +9741,8 @@ substitutions in the group names), you can say things like: @end example If the string contains the element @samp{\&}, then the previously -matched string will be substituted. Similarly, the elements @samp{\1} -up to @samp{\9} will be substituted with the text matched by the +matched string will be substituted. Similarly, the elements @samp{\\1} +up to @samp{\\9} will be substituted with the text matched by the groupings 1 through 9. @@ -10473,6 +10535,9 @@ The rnews batch transport format. @item forward Forwarded articles. +@item mime-parts +MIME multipart messages, besides digests. + @item mime-digest @cindex digest @cindex MIME digest @@ -10515,8 +10580,9 @@ Virtual server variables: @vindex nndoc-article-type This should be one of @code{mbox}, @code{babyl}, @code{digest}, @code{news}, @code{rnews}, @code{mmdf}, @code{forward}, @code{rfc934}, -@code{rfc822-forward}, @code{mime-digest}, @code{standard-digest}, -@code{slack-digest}, @code{clari-briefs} or @code{guess}. +@code{rfc822-forward}, @code{mime-parts}, @code{mime-digest}, +@code{standard-digest}, @code{slack-digest}, @code{clari-briefs} or +@code{guess}. @item nndoc-post-type @vindex nndoc-post-type @@ -11153,7 +11219,7 @@ If you would like to read @samp{soc.motss} both from a server in Japan and a server in Norway, you could use the following as the group regexp: @example -"^nntp\\+some\\.server\\.jp:soc\\.motss$\\|^nntp\\+some\\.server\\.no:soc\\.motss$" +"^nntp\\+server\\.jp:soc\\.motss$\\|^nntp\\+server\\.no:soc\\.motss$" @end example (Remember, though, that if you're creating the group with @kbd{G m}, you @@ -11649,7 +11715,7 @@ Mark the article for downloading (@code{gnus-agent-mark-article}). Remove the downloading mark from the article (@code{gnus-agent-unmark-article}). -@item @@ +@item @@ @kindex @@ (Agent Summary) @findex gnus-agent-toggle-mark Toggle whether to download the article (@code{gnus-agent-toggle-mark}). @@ -13519,7 +13585,9 @@ definition of that function: @lisp (defun gnus-decay-score (score) - "Decay SCORE according to `gnus-score-decay-constant' and `gnus-score-decay-scale'." + "Decay SCORE. +This is done according to `gnus-score-decay-constant' +and `gnus-score-decay-scale'." (floor (- score (* (if (< score 0) 1 -1) @@ -14738,12 +14806,12 @@ in either monochrome @code{XBM} format or color @code{XPM} and @vindex gnus-picons-piconsearch-url If you have a permanent connection to the Internet you can use Steve Kinzler's Picons Search engine by setting -@code{gnus-picons-piconsearch-url} to the string +@code{gnus-picons-piconsearch-url} to the string @* @file{http://www.cs.indiana.edu/picons/search.html}. @vindex gnus-picons-database Otherwise you need a local copy of his database. For instructions on -obtaining and installing the picons databases, point your Web browser at +obtaining and installing the picons databases, point your Web browser at @* @file{http://www.cs.indiana.edu/picons/ftp/index.html}. Gnus expects picons to be installed into a location pointed to by @code{gnus-picons-database}. @@ -14775,8 +14843,10 @@ To enable displaying picons, simply put the following line in your @lisp (setq gnus-use-picons t) -(add-hook 'gnus-article-display-hook 'gnus-article-display-picons t) -(add-hook 'gnus-article-display-hook 'gnus-picons-article-display-x-face) +(add-hook 'gnus-article-display-hook + 'gnus-article-display-picons t) +(add-hook 'gnus-article-display-hook + 'gnus-picons-article-display-x-face) @end lisp and make sure @code{gnus-picons-database} points to the directory @@ -14785,7 +14855,8 @@ containing the Picons databases. Alternatively if you want to use the web piconsearch engine add this: @lisp -(setq gnus-picons-piconsearch-url "http://www.cs.indiana.edu:800/piconsearch") +(setq gnus-picons-piconsearch-url + "http://www.cs.indiana.edu:800/piconsearch") @end lisp @@ -15201,7 +15272,7 @@ each unsolicited commercial email---at your leisure. If you are also a lazy net citizen, you will probably prefer complaining automatically with the @file{gnus-junk.el} package, available FOR FREE -at @file{}. +at @* @file{}. Since most e-mail spam is sent automatically, this may reconcile the cosmic balance somewhat. @@ -15388,7 +15459,7 @@ On July 28th 1996 work on Red Gnus was begun, and it was released on January 25th 1997 (after 84 releases) as ``Gnus 5.4'' (67 releases). On September 13th 1997, Quassia Gnus was started and lasted 37 -releases. If was released as ``Gnus 5.6.30' on March 8th 1998. +releases. If was released as ``Gnus 5.6 on March 8th 1998. If you happen upon a version of Gnus that has a prefixed name -- ``(ding) Gnus'', ``September Gnus'', ``Red Gnus'', ``Quassia Gnus'' -- @@ -15865,7 +15936,7 @@ actually are people who are using Gnus. Who'd'a thunk it! * ding Gnus:: New things in Gnus 5.0/5.1, the first new Gnus. * September Gnus:: The Thing Formally Known As Gnus 5.3/5.3. * Red Gnus:: Third time best---Gnus 5.4/5.5. -* Quassia Gnus:: Two times two is four, or Gnus 5.6.30. +* Quassia Gnus:: Two times two is four, or Gnus 5.6. @end menu These lists are, of course, just @emph{short} overviews of the @@ -16391,7 +16462,8 @@ mail before saving the mail (@pxref{Washing Mail}). Emphasized text can be properly fontisized: @lisp -(add-hook 'gnus-article-display-hook 'gnus-article-emphasize) +(add-hook 'gnus-article-display-hook + 'gnus-article-emphasize) @end lisp @end itemize @@ -16400,7 +16472,7 @@ Emphasized text can be properly fontisized: @node Quassia Gnus @subsubsection Quassia Gnus -New features in Gnus 5.6.30: +New features in Gnus 5.6: @itemize @bullet @@ -16626,8 +16698,6 @@ articles aren't displayed. @item nndoc should always allocate unique Message-IDs. @item - implement gnus-score-thread -@item If there are mail groups the first time you use Gnus, Gnus'll make the mail groups killed. @item @@ -17147,7 +17217,7 @@ you could also try to read the archive for that group. Part of the problem is that archives are spread all over the net, unlike FAQs. What would be best I suppose is to find the one closest to your site. -In any case, there is a list of general news group archives at +In any case, there is a list of general news group archives at @* ftp://ftp.neosoft.com/pub/users/claird/news.lists/newsgroup_archives.html @@ -17554,9 +17624,6 @@ Mac, MS (etc) characters into ISO 8859-1. numbers and match on the age of the article. @item - gnus-cacheable-groups - -@item @example > > > If so, I've got one gripe: It seems that when I fire up gnus 5.2.25 > > > under xemacs-19.14, it's creating a new frame, but is erasing the @@ -17724,6 +17791,10 @@ summary buffer for each article. Implement gnus-batch-brew-soup. @item +Group parameters and summary commands for un/subscribing to mailing +lists. + +@item Solve the halting problem. @c TODO @@ -18049,7 +18120,8 @@ useful data is in the summary buffer, anyway. Set this variable to Set this hook to all the available hiding commands: @lisp (setq gnus-article-display-hook - '(gnus-article-hide-headers gnus-article-hide-signature + '(gnus-article-hide-headers + gnus-article-hide-signature gnus-article-hide-citation)) @end lisp diff --git a/texi/message.texi b/texi/message.texi index 1d194f9..1fb2dfe 100644 --- a/texi/message.texi +++ b/texi/message.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename message -@settitle Message 5.6.30 Manual +@settitle Message 5.6.33 Manual @synindex fn cp @synindex vr cp @synindex pg cp @@ -42,7 +42,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Message 5.6.30 Manual +@title Message 5.6.33 Manual @author by Lars Magne Ingebrigtsen @page @@ -83,7 +83,7 @@ Message mode buffers. * Key Index:: List of Message mode keys. @end menu -This manual corresponds to Message 5.6.30. Message is distributed with +This manual corresponds to Message 5.6.33. Message is distributed with the Gnus distribution bearing the same version number as this manual has. @@ -267,6 +267,24 @@ forwarded message will be inserted first in the new mail. @vindex message-included-forward-headers Regexp matching header lines to be included in forwarded messages. +@item message-make-forward-subject-function +@vindex message-make-forward-subject-function +A list of functions that are called to generate a subject header for +forwarded messages. The subject generated by the previous function is +passed into each successive function. + +The provided functions are: + +@table @code +@item message-forward-subject-author-subject +@findex message-forward-subject-author-subject +Source of article (author or newsgroup), in brackets followed by the +subject. + +@item message-forward-subject-fwd +Subject of article with @samp{Fwd:} prepended to it. +@end table + @end table