1998-08-16 Shuhei KOBAYASHI <shuhei-k@jaist.ac.jp>
+ * lisp/gnus.el (gnus-version-number): Update to 6.8.5.
+
+ * Sync up with Gnus 5.6.36.
+
+1998-08-16 Shuhei KOBAYASHI <shuhei-k@jaist.ac.jp>
+
* lisp/gnus.el (gnus-version-number): Update to 6.8.4.
* Sync up with Gnus 5.6.30.
+prefix = @prefix@
+datadir = @datadir@
lispdir = @lispdir@
srcdir = @srcdir@
+Fri Aug 14 23:03:51 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Gnus v5.6.36 is released.
+
+1998-08-14 21:49:22 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * 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 <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Gnus v5.6.35 is released.
+
+1998-08-14 00:00:15 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * 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 <larsi@gnus.org>
+
+ * 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 <jas@pdc.kth.se>
+
+ * 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 <larsi@gnus.org>
+
+ * 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 <jas@pdc.kth.se>
+
+ * 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 <larsi@gnus.org>
+
+ * nntp.el (nntp-encode-text): Too much text.
+
+1998-08-12 21:58:50 Matt Pharr <mmp@Graphics.Stanford.EDU>
+
+ * message.el (message-make-forward-subject-function): New
+ variable.
+ (message-wash-forwarded-subjects): Ditto.
+
+Wed Aug 12 21:09:58 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Gnus v5.6.34 is released.
+
+1998-08-12 13:32:38 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * 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 <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Gnus v5.6.33 is released.
+
+1998-08-11 20:07:55 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * 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 <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Gnus v5.6.32 is released.
+
+1998-08-11 13:36:56 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * nndoc.el (nndoc-type-alist): Do MIME digests before multiparts.
+
+ * gnus.el (gnus-predefined-server-alist): Expand vars.
+
+1998-08-09 Dave Love <d.love@dl.ac.uk>
+
+ * 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 <larsi@gnus.org>
+
+ * 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 <larsi@gnus.org>
+
+ * 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 <larsi@gnus.org>
+
+ * gnus.el (gnus-version): Remove backend info.
+
+Sun Aug 9 19:37:40 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Gnus v5.6.31 is released.
+
+1998-08-09 François Pinard <pinard@iro.umontreal.ca>
+
+ * 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 <larsi@gnus.org>
+
+ * 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 <jas@pdc.kth.se>
+
+ * gnus-srvr.el (gnus-browse-make-menu-bar): select did read
+
+1998-08-09 15:51:43 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * 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 <larsi@menja.ifi.uio.no>
* gnus.el: Gnus v5.6.30 is released.
* 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 <felix@dial.oleane.com>
* 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.
is alive.
* gnus-score.el (gnus-score-load-score-alist): Better error
- messaging.
+ messaging.
Tue Aug 4 09:42:31 1998 Kurt Swanson <ksw@dna.lth.se>
* 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
1998-07-30 21:47:23 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus-cache.el (gnus-summary-insert-cached-articles): Sort
- articles.
+ articles.
* nndir.el (nndir): Use nnml functions.
1998-07-26 19:01:58 Lars Magne Ingebrigtsen <larsi@gnus.org>
* 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.
1998-07-25 14:53:24 Lars Magne Ingebrigtsen <larsi@gnus.org>
* 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 <larsi@menja.ifi.uio.no>
1998-07-15 10:47:39 Lars Magne Ingebrigtsen <larsi@gnus.org>
* nnvirtual.el (nnvirtual-request-type): Handle non-numerical
- articles.
+ articles.
* gnus.el (gnus-news-group-p): Do something sensible with negative
articlies.
Wed Jul 15 09:56:47 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* gnus-sum.el (gnus-select-newsgroup): Accept select-articles
- para,
+ para,
1998-07-13 Mike McEwan <mike@lotusland.demon.co.uk>
* 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 <larsi@ifi.uio.no>
* nnmail.el (nnmail-active-file-coding-system): Changed to
- binary.
+ binary.
Sun Jul 12 03:16:18 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* gnus-score.el (gnus-score-load-file): Specify which alist to
- decay.
+ decay.
1998-07-12 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
Fri Jul 10 03:03:48 1998 François Pinard <pinard@iro.umontreal.ca>
* gnus-sum.el (gnus-summary-respool-trace): New command and
- keystroke.
+ keystroke.
Fri Jul 10 02:18:01 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
- * 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 <jas@pdc.kth.se>
* 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
Wed Jul 1 12:52:32 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
- * 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 <pinard@iro.umontreal.ca>
Sun Jun 28 14:32:08 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
- * 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 <larsi@menja.ifi.uio.no>
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.
* gnus-util.el
(gnus-put-text-properties-excluding-characters-with-faces): New
- function.
+ function.
Sat Jun 27 08:56:08 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
Sat Jun 27 08:45:09 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* message.el (message-check-news-body-syntax): Buggy checksum
- check.
+ check.
Sat Jun 27 07:59:22 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
* 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.
* 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.
Fri Jun 26 13:30:42 1998 Kevin Christian <Kevin.Christian@symbios.com>
* gnus-score.el (gnus-score-string): Do updating of scores after
- fuzzies.
+ fuzzies.
Fri Jun 26 07:26:03 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* 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 <larsi@menja.ifi.uio.no>
Fri Jun 26 03:39:32 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* nnfolder.el (nnfolder-request-replace-article): Delete old
- delimiter.
+ delimiter.
* gnus-msg.el (gnus-summary-reply): Use it.
* 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.
* 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 <larsi@menja.ifi.uio.no>
Wed Jun 24 07:33:17 1998 Vladimir Alexiev <vladimir@cs.ualberta.ca>
* nnvirtual.el (nnvirtual-update-xref-header): Regexp-quote group
- name.
+ name.
Wed Jun 24 06:15:27 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* 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.
Wed Jun 24 02:49:57 1998 Castor <castor@my-dejanews.com>
- * nntp.el (nntp-open-ssl-stream):
+ * nntp.el (nntp-open-ssl-stream):
Wed Jun 24 02:31:46 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
Wed Jun 24 01:43:26 1998 Decklin Foster <djarum@base.org>
* nngateway.el (nngateway-mail2news-header-transformation): New
- function.
+ function.
Wed Jun 24 00:25:45 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
Tue Jun 23 23:58:48 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* gnus-topic.el (gnus-topic-prepare-topic): Respect visible topic
- param.
+ param.
(gnus-topic-hierarchical-parameters): New function.
1998-06-02 Didier Verna <verna@inf.enst.fr>
* 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 <larsi@ifi.uio.no>
* nnkiboze.el (nnkiboze-request-delete-group): Delete .newsrc
- file.
+ file.
* nnmail.el (nnmail-article-group): Nuke looong lines.
Tue May 19 04:11:33 1998 Yoshiki Hayashi <g740685@komaba.ecc.u-tokyo.ac.jp>
* nnheader.el (nnheader-translate-file-chars): Don't change
- string.
+ string.
Tue May 19 03:07:45 1998 P. E. Jareth Hein <jareth@camelot-soft.com>
Sun May 10 19:08:28 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* gnus-group.el (gnus-group-read-ephemeral-group): Don't add
- `address'.
+ `address'.
Sun May 3 18:01:01 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
`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.
buffer.
* gnus-soup.el (gnus-soup-parse-areas): Check whether the file
- exists.
+ exists.
* gnus-draft.el (gnus-draft-send): Use meta-information.
Fri May 1 16:43:35 1998 Paul Franklin <paul@cs.washington.edu>
* message.el (message-generate-headers): Insert Sender when
- required.
+ required.
Fri May 1 15:28:55 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
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.
dummy roots.
* gnus-cache.el (gnus-cache-enter-article): Update marks
- properly.
+ properly.
* gnus-xmas.el (gnus-xmas-draft-menu-add): New function.
Wed Apr 29 20:18:45 1998 Kurt Swanson <kurt@dna.lth.se>
* 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 <larsi@ifi.uio.no>
* 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.
Tue Apr 28 03:00:16 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* gnus-sum.el (gnus-parent-headers): Don't infloop on nil
- References.
+ References.
* gnus-art.el (gnus-article-mode): Don't kill local vars.
* 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.
Sun Apr 26 14:05:40 1998 Frank Bennett <bennett@rumple.soas.ac.uk>
* nnmail.el (nnmail-move-inbox): Push error'ed mailboxes onto the
- list.
+ list.
Sun Apr 26 13:01:53 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
Sun Mar 29 11:54:33 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* 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.
* 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 <larsi@menja.ifi.uio.no>
1998-03-17 Per Abrahamsen <abraham@dina.kvl.dk>
* gnus-uu.el (gnus-uu-digest-headers): Add `Content-Type' and
- `Content-Transfer-Encoding'.
+ `Content-Transfer-Encoding'.
1998-03-18 Per Abrahamsen <abraham@dina.kvl.dk>
* 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.
Fri Mar 13 21:10:24 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
- * 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 <larsi@ifi.uio.no>
Sun Mar 8 00:35:09 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* 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.
Sat Mar 7 15:00:05 1998 Wes Hardaker <wjhardaker@ucdavis.edu>
* gnus-art.el (gnus-article-prepare): Mark articles as
- downloadable.
+ downloadable.
Wed Mar 4 22:33:27 1998 Ken Raeburn <raeburn@cygnus.com>
(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 <KimMinh.Kaplan@utopia.eunet.fr>
Sat Feb 28 08:10:27 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* gnus-picon.el (gnus-picons-display-x-face): `buf' -- unbound
- var.
+ var.
Sat Feb 28 08:03:23 1998 François Pinard <pinard@iro.umontreal.ca>
Sat Feb 28 07:01:17 1998 Lasse Rasinen <lrasinen@iki.fi>
- * 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 <larsi@ifi.uio.no>
* 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.
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.
Fri Feb 20 22:56:22 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* gnus-srvr.el (gnus-browse-unsubscribe-group): Wouldn't allow
- unsubscription.
+ unsubscription.
* gnus-sum.el (gnus-summary-insert-subject): Allow inserting
articles outside limits.
* 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.
Thu Feb 19 01:58:47 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* 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 <larsi@ifi.uio.no>
Tue Feb 17 06:15:03 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* nnmail.el (nnmail-purge-split-history): List of alists, not
- alist.
+ alist.
Mon Feb 16 20:22:04 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
1998-02-16 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* 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 <hniksic@srce.hr>
1998-02-16 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* gnus-util.el (gnus-run-hooks): Use unwind-protect instead of
- save-excursion.
+ save-excursion.
1998-02-16 Per Abrahamsen <abraham@dina.kvl.dk>
Sun Feb 15 19:35:11 1998 Kurt Swanson <kurt@dna.lth.se>
* gnus-art.el (gnus-article-read-summary-keys): Go to top on
- some.
+ some.
Sun Feb 15 19:26:21 1998 SeokChan LEE <chan@xfer.kren.nm.kr>
* 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 <larsi@ifi.uio.no>
* 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 <KimMinh.Kaplan@utopia.eunet.fr>
Sat Feb 14 18:40:55 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
- * 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.
Sat Feb 14 18:39:45 1998 Fred Oberhauser <foberhauser@psipenta.de>
* nnmail.el (nnmail-process-babyl-mail-format): Fix point
- movement.
+ movement.
Sat Feb 14 18:31:39 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* 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 <larsi@ifi.uio.no>
* nntp.el (nntp-send-authinfo): Use new .netrc functionality.
* 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.
(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.
* 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 <dme@sco.com>
* message.el (message-font-lock-keywords): Allow : as a citation
- ending.
+ ending.
Tue Feb 10 20:09:02 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* 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 <jari.aalto@poboxes.com>
- * 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 <larsi@ifi.uio.no>
Sun Feb 8 17:20:40 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
- * 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.
Sun Feb 8 16:44:36 1998 Richard Hoskins <rmh@interlaced.net>
* message.el (message-kill-to-signature): Don't kill the
- delimiter.
+ delimiter.
Sun Feb 8 16:15:33 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
(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 <abraham@dina.kvl.dk>
(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 <larsi@ifi.uio.no>
Thu Jan 15 22:47:38 1998 <Use-Author-Address-Header@[127.1]>
* gnus-art.el (gnus-request-article-this-buffer): Put it into the
- backlog.
+ backlog.
Mon Jan 12 23:30:59 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
1997-12-10 Per Abrahamsen <abraham@dina.kvl.dk>
* 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 <abraham@dina.kvl.dk>
* gnus/gnus-art.el (gnus-button-alist): Assume msg-id after "in
- message".
+ message".
1997-12-22 Simon Josefsson <jas@faun.nada.kth.se>
* 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 <KimMinh.Kaplan@utopia.eunet.fr>
Sun Jan 4 13:18:04 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* nnsoup.el (nnsoup-store-reply): Bind mail-header-separator to
- "".
+ "".
* gnus-xmas.el (gnus-xmas-agent-server-menu-add): New.
Fri Dec 19 21:26:08 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
- * 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 <larsi@ifi.uio.no>
1997-12-10 SL Baur <steve@altair.xemacs.org>
- * 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 <dsiu@adobe.com>
* 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 <wjhardaker@ucdavis.edu>
Sat Dec 6 17:23:26 1997 Christian von Roques <roques@scalar.pond.sub.org>
* gnus-start.el (gnus-read-descriptions-file): Fix
- enable-multibyte-characters.
+ enable-multibyte-characters.
1997-12-05 Dave Love <d.love@dl.ac.uk>
Sat Dec 6 17:16:28 1997 Lars Balker Rasmussen <lbr@mjolner.dk>
- * gnus-art.el (article-make-date-line): Don't add extra newlines.
+ * gnus-art.el (article-make-date-line): Don't add extra newlines.
1997-11-27 MORIOKA Tomohiko <morioka@jaist.ac.jp>
* 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 <Gary.Foster@Corp.Sun.COM>
Thu Nov 27 19:56:59 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* gnus-agent.el (gnus-summary-set-agent-mark): Remove marks
- properly.
+ properly.
1997-11-27 Christoph Wedler <wedler@fmi.uni-passau.de>
* 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.
* 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 <kurt@dna.lth.se>
Wed Nov 26 16:04:25 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* 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.
Wed Nov 26 15:43:53 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* gnus-start.el (gnus-setup-news): Protect against nil
- gnus-message-archive-method.
+ gnus-message-archive-method.
1997-11-26 Christoph Wedler <wedler@fmi.uni-passau.de>
Wed Nov 26 13:45:35 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
- * 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 <d.love@dl.ac.uk>
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.
Wed Nov 26 08:54:26 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* gnus-sum.el (gnus-summary-update-info): Would use wrong group
- name.
+ name.
1997-11-26 Hrvoje Niksic <hniksic@srce.hr>
Wed Nov 26 08:31:28 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
- * 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 <larsi@ifi.uio.no>
Tue Nov 25 19:54:00 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* gnus-move.el (gnus-move-group-to-server): Protect agains
- nil-ness.
+ nil-ness.
Tue Nov 25 19:03:38 1997 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
Tue Nov 25 16:05:01 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* gnus-sum.el (gnus-read-header): Remove thread entry before
- rebuilding.
+ rebuilding.
* gnus-cite.el (gnus-cite-add-face): Keep track of all overlays.
(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.
Mon Nov 24 17:36:00 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* message.el (message-reply): Respect Mail-Copies-To even when
- `to-address'.
+ `to-address'.
Mon Nov 24 17:32:47 1997 Thor Kristoffersen <thor@unik.no>
entering group.
* gnus-start.el (gnus-setup-news): Get correct value of archive
- server.
+ server.
Wed Oct 8 20:29:35 1997 Robert Bihlmeyer <robbe@orcus.priv.at>
* 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.
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.
* 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.
Sun Nov 23 13:41:10 1997 Gunnar Horrigmo <horrigmo@online.no>
* gnus-sum.el (gnus-summary-exit): Don't skip if group
- disappeared.
+ disappeared.
Sun Nov 23 13:32:55 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
Sun Nov 23 12:15:00 1997 Hallvard B. Furuseth <h.b.furuseth@usit.uio.no>
* gnus-sum.el (gnus-summary-limit-include-thread): Interactive
- fix.
+ fix.
Sun Nov 23 07:06:58 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
Sat Nov 22 18:01:26 1997 Didier Verna <verna@inf.enst.fr>
- * 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 <larsi@ifi.uio.no>
Thu Nov 13 22:30:19 1997 seokchan lee <chan@xfer.kren.nm.kr>
* message.el (message-ignored-supersedes-headers): Ignore more
- headers.
+ headers.
Thu Nov 13 22:28:13 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
Thu Nov 6 01:52:43 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* gnus-topic.el (gnus-topic-change-level): Really delete multiple
- instances.
+ instances.
Wed Nov 5 14:04:54 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* 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 <larsi@ifi.uio.no>
Sat Oct 25 00:39:42 1997 Lars Balker Rasmussen <lbr@mjolner.dk>
* gnus-art.el (gnus-article-fill-paragraph): New command and
- keystroke.
+ keystroke.
1997-10-16 Colin Rafferty <craffert@ml.com>
Sun Oct 12 23:54:55 1997 ISO-2022-JP <ichikawa@hv.epson.co.jp>
* gnus-agent.el (gnus-agent-article-file-coding-system): New
- variable.
+ variable.
Sun Oct 12 16:46:11 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* 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 <larsi@ifi.uio.no>
* 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
* 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 <h.b.furuseth@usit.uio.no>
* 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.
Sat Sep 27 03:50:12 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* 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 <larsi@ifi.uio.no>
* 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 <larsi@ifi.uio.no>
* 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.
(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.
* 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.
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.
* 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 <larsi@ifi.uio.no>
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 <larsi@ifi.uio.no>
* 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.
(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.
(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))
(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))
(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)
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)
(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 ()
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)
(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
(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)
(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."
(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)
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)
(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))
(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))))))
(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.
(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 ()
(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)
(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)))))
(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
(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 ()
(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)
;; 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)
(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)
(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
(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."
"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 ()
: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))
(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
(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)
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
(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))
;;; gnus-cite.el --- parse citations in articles for Gnus
;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
-;; Author: Per Abrahamsen <abraham@iesd.auc.dk>
-;; 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.
: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)
: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
: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
;; 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:
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
(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)
(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.
(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)
(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)
,(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)
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)
(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
(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)
(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))))
(save-selected-window
(save-excursion
(funcall ,function ,group)))))))))
-
+
(put 'gnus-group-iterate 'lisp-indent-function 1)
;; Selecting groups.
(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)))
(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)
(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.
(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."
(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))))
(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
()
(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))))
(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)))
(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
(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)
(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))))
;; 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)
method-alist))))
;; Override normal method.
((and (eq gnus-post-method 'current)
+ (not (eq (car group-method) 'nndraft))
(not arg))
group-method)
(gnus-post-method
(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)
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))
((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.
(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
(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))))
(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)))
(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))))
(?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)
(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")))
(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)
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))
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)
(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))))
(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.
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)
".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
"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)))))
(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."
'("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]))
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)
(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.
(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))
(> 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)
(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)
"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))
(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)
() ; 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)
[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
[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
"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)
(setq gnus-summary-buffer (current-buffer))
(not gnus-newsgroup-prepared))
;; Fix by Sudish Joseph <joseph@cis.ohio-state.edu>
- (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))
(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)
(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)
(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)
(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))))
(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)
"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))
(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))
(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"
(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"))
;; 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))
(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)
(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))))
(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"))))
(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")
(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)
(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))
(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)
(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))
(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
(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)
(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)
(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.")
"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*")
(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
(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.
(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)))
(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.
(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.")
;;; 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."
(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."
(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))))
: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
(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)
(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))
\f
(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."
;; 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."
(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)
(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))
(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
(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+"))
(subtype nil))))
\f
-
(defvoo nndoc-file-begin nil)
(defvoo nndoc-first-article nil)
(defvoo nndoc-article-begin nil)
(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)
(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.")
(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.
(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))
(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)
(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.
(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)))
(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)
(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))
(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)
-@echo off\r
-\r
-rem Written by David Charlap <shamino@writeme.com>\r
-\r
-rem There are two catches, however. The emacs.bat batch file may not exist\r
-rem in all distributions. It is part of the Voelker build of Emacs 19.34\r
-rem (http://www.cs.washington.edu/homes/voelker/ntemacs.html). If the user\r
-rem installs Gnus with some other build, he may have to replace calls to\r
-rem %1\emacs.bat with something else.\r
-rem \r
-rem Also, the emacs.bat file that Voelker ships does not accept more than 9\r
-rem parameters, so the attempts to compile the .texi files will fail. To\r
-rem fix that (at least on NT. I don't know about Win95), the following\r
-rem change should be made to emacs.bat:\r
-rem \r
-rem %emacs_dir%\bin\emacs.exe %1 %2 %3 %4 %5 %6 %7 %8 %9\r
-rem \r
-rem should become\r
-rem \r
-rem %emacs_dir%\bin\emacs.exe %*\r
-rem \r
-rem which will allow the batch file to accept an unlimited number of\r
-rem parameters.\r
-\r
-if "%1" == "" goto usage\r
-\r
-cd lisp\r
-call %1\bin\emacs.bat -batch -q -no-site-file -l ./dgnushack.el -f dgnushack-compile\r
-if not "%2" == "copy" goto info\r
-copy *.el* %1\lisp\r
-\r
-:info\r
-cd ..\texi\r
-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\r
-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\r
-if not "%2" == "copy" goto done\r
-copy gnus %1\info\r
-copy gnus-?? %1\info\r
-copy message %1\info\r
-\r
-:etc\r
-cd ..\etc\r
-copy gnus-tut.txt %1\etc\r
-\r
-:done\r
-cd ..\r
-goto end\r
-\r
-:usage\r
-echo Usage: make ^<emacs-dir^> [copy]\r
-echo.\r
-echo where: ^<emacs-dir^> is the directory you installed emacs in\r
-echo eg. d:\emacs\19.34\r
-echo copy indicates that the compiled files should be copied to your\r
-echo emacs lisp, info, and etc directories\r
-\r
-:end\r
+@echo off
+
+rem Written by David Charlap <shamino@writeme.com>
+
+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 ^<emacs-dir^> [copy]
+echo.
+echo where: ^<emacs-dir^> 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
+1998-08-14 01:31:36 Simon Josefsson <jas@pdc.kth.se>
+
+ * gnus.texi (Posting Styles): New 'body style.
+
+1998-08-13 21:17:00 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Paging the Article): Addition.
+
+1998-08-13 00:13:47 Simon Josefsson <jas@pdc.kth.se>
+
+ * gnus.texi (Mail Group Commands): Typo.
+
+1998-08-12 21:28:09 Simon Josefsson <jas@pdc.kth.se>
+
+ * gnus.texi (Article Caching): gnus-cacheable-groups.
+ (Newest Features): remove gnus-cacheable-groups.
+
+1998-08-12 22:01:12 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * message.texi (Forwarding): Addition.
+
+1998-08-11 20:33:53 Justin Zaglio <justin@caxton.com>
+
+ * gnus.texi (Group Maintenance): Fix.
+
+1998-08-11 11:44:20 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Group Maintenance): Fix.
+
+1998-08-10 08:59:25 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Article Highlighting): Addition.
+ (Article Fontisizing): Fix.
+ (Article Hiding): Change.
+ (Article Hiding): Fix.
+
1998-08-09 15:32:24 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus.texi (Hiding Headers): Fix.
+ (Article Hiding): Addition.
+ (Document Groups): Addition.
1998-08-08 06:06:37 Lars Magne Ingebrigtsen <larsi@gnus.org>
Wed Sep 17 02:32:56 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
- * 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.
Sat Jul 12 16:29:35 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
- * 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 <larsi@ifi.uio.no>
Mon Jan 27 17:51:29 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* gnus.texi (Highlighting and Menus): Removed
- `gnus-display-type'.
+ `gnus-display-type'.
Sat Jan 25 08:09:30 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
Wed Oct 23 08:28:29 1996 Hrvoje Niksic <hniksic@srce.hr>
- * 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 <lars@eyesore.no>
(Advanced Scoring Example): New.
(Advanced Scoring Syntax): New.
(Advanced Scoring): New.
-
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
SHELL = /bin/sh
+PAPERTYPE=a4
all: gnus message
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
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
\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}{
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)
@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)
. "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
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)
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
@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)
@end table
+@xref{Customizing Articles} for how to highlight articles automatically.
+
@node Article Fontisizing
@subsection Article Fontisizing
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
(copy-face 'red 'gnus-emphasis-italic)
@end lisp
+@xref{Customizing Articles} for how to fontize articles automatically.
+
@node Article Hiding
@subsection Article Hiding
@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)
@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
@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
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
@end table
+@xref{Customizing Articles} for how to wash articles automatically.
+
@node Article Buttons
@subsection Article Buttons
@end table
+@xref{Customizing Articles} for how to buttonize articles automatically.
+
@node Article Date
@subsection Article Date
@end table
+@xref{Customizing Articles} for how to display the date in your
+preferred format automatically.
+
@node Article Signature
@subsection Article Signature
@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.
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
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
(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"))))
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.
@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.
@item forward
Forwarded articles.
+@item mime-parts
+MIME multipart messages, besides digests.
+
@item mime-digest
@cindex digest
@cindex MIME digest
@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
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
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}).
@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)
@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}.
@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
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
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{<URL:http://stud2.tuwien.ac.at/~e9426626/gnus-junk.html>}.
+at @* @file{<URL:http://stud2.tuwien.ac.at/~e9426626/gnus-junk.html>}.
Since most e-mail spam is sent automatically, this may reconcile the
cosmic balance somewhat.
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'' --
* 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
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
@node Quassia Gnus
@subsubsection Quassia Gnus
-New features in Gnus 5.6.30:
+New features in Gnus 5.6:
@itemize @bullet
@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
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
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
Implement gnus-batch-brew-soup.
@item
+Group parameters and summary commands for un/subscribing to mailing
+lists.
+
+@item
Solve the halting problem.
@c TODO
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
\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
@tex
@titlepage
-@title Message 5.6.30 Manual
+@title Message 5.6.33 Manual
@author by Lars Magne Ingebrigtsen
@page
* 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.
@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