*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 07:02:21 +0000 (07:02 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 07:02:21 +0000 (07:02 +0000)
23 files changed:
lisp/ChangeLog
lisp/gnus-cache.el
lisp/gnus-cus.el
lisp/gnus-ems.el
lisp/gnus-mh.el
lisp/gnus-msg.el
lisp/gnus-salt.el
lisp/gnus-score.el
lisp/gnus-soup.el
lisp/gnus-topic.el
lisp/gnus-vis.el
lisp/gnus-xmas.el
lisp/gnus.el
lisp/nnbabyl.el
lisp/nndoc.el
lisp/nnmail.el
lisp/nnmbox.el
lisp/nnmh.el
lisp/nnml.el
lisp/nnsoup.el
lisp/nntp.el
texi/ChangeLog
texi/gnus.texi

index d2f134a..4038471 100644 (file)
-Sun Jan 21 01:59:13 1996  Lars Magne Ingebrigtsen  <larsi@eistla.ifi.uio.no>
+Thu Jan 25 08:45:52 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
-       * gnus.el (gnus-summary-recenter): Recenter horizontally.
+       * nnmail.el (nnmail-insert-lines): Would return negative lines
+       numbers. 
 
-Sun Jan 21 01:08:58 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+       * gnus-xmas.el (gnus-xmas-extent-start-open): New function.
 
-       * gnus.el (gnus-horizontal-recenter): Would infloop.
-       (gnus-cut-threads): Cut off `more' threads.
-
-       * gnus-xmas.el (gnus-xmas-move-overlay): Handle detached extents. 
-       (gnus-xmas-make-overlay): New function.
-
-       * gnus-salt.el (gnus-tree-recenter): Search all frames.
-
-       * gnus.el (gnus-all-windows-visible-p): Be `frame' aware.
-
-       * gnus-salt.el (gnus-salt): Provide.
-
-       * gnus-xmas.el (gnus-xmas-tree-minimize): New function.
-
-       * gnus-salt.el (gnus-tree-read-summary-keys): Don't use
-       `overlay-end'. 
-
-       * gnus-xmas.el (gnus-xmas-define): Redefine overlay-end.
-
-       * gnus-ems.el (gnus-overlay-end): New alias.
-
-       * gnus-salt.el (gnus-tree-minimize): Don't use
-       `save-selected-window'. 
-
-Sat Jan 20 08:40:46 1996  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-uu.el (gnus-uu-grab-articles): Give a better message.
-
-Sat Jan 20 08:19:29 1996  Colin Rafferty  <craffert@sps.ml.com>
-
-       * gnus.el (gnus-summary-reparent-thread): New command and
-       keystroke. 
-
-Sat Jan 20 04:12:17 1996  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-score.el (gnus-score-kill-help-buffer): New function.
-       (gnus-summary-increase-score): Use the default values.
-
-       * gnus-cache.el (gnus-jog-cache): Make sure Gnus is started.
-       (gnus-jog-cache): New implementation.
-
-       * gnus.el (gnus-unload): Also unload nn*.
-       (gnus-group-mark-region): New command and keystroke.
-
-       * nnmail.el (nnmail-process-babyl-mail-format): Fold case.
-       (nnmail-process-unix-mail-format): Ditto.
-       (nnmail-process-mmdf-mail-format): Ditto.
-
-       * gnus.el (gnus-group-faq-directory): New default.
-
-       * gnus-mh.el (gnus-mh-mail-setup): Use original article buffer.
-
-       * gnus-salt.el (gnus-tree-highlight-article): Move point.
-
-Sat Jan 20 03:32:17 1996  Kai Grossjohann  <grossjoh@ls6.informatik.uni-dortmund.de>
-
-       * gnus.el (gnus-summary-find-matching): Typo.
-
-Sat Jan 20 00:54:13 1996  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-build-sparse-threads): Allow `more' as a value.
-       (gnus-request-update-mark): Wrong number of parameters.
-
-       * gnus-vis.el (gnus-article-highlight-signature): Use new function.
-
-       * gnus.el (gnus-group-uncollapsed-levels): New variable.
-       (gnus-short-group-name): Use it.
-       (gnus-narrow-to-signature): New function.
-       (gnus-article-hide-signature): Use it.
-
-       * gnus-msg.el (gnus-inews-insert-archive-gcc): Allow disabling
-       archiving. 
-       (gnus-inews-insert-archive-gcc): Allow var to be a function.
-       (gnus-inews-real-user-address): Always use `system-name'.
-
-       * gnus.el (gnus-sort-threads): Would choke when no sorting
-       functions were specified.
-       (gnus-group-sort-groups): Ditto.
-
-       * gnus-cite.el (gnus-dissect-cited-text): New function.
-       (gnus-article-toggle-cited-text): New function.
-       (gnus-cited-text-button-line-format): New variable.
-       (gnus-article-hide-citation): Add buttons.
-       (gnus-cited-lines-visible): New variable.
-
-       * gnus.el (gnus-summary-move-article): Don't allow moving to the
-       current group.
-
-Sat Jan 20 00:50:36 1996  Kai Grossjohann  <grossjoh@ls6.informatik.uni-dortmund.de>
-
-       * gnus.el (gnus-summary-move-article): Didn't update marks.
-
-Sat Jan 20 00:16:44 1996  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-request-accept-article): Make sure there's a
-       newline at the end of the article.
-
-       * gnus-soup.el (gnus-soup-parse-areas): Kill buffer after
-       parsing. 
-
-Thu Jan 18 11:50:06 1996  Wes Hardaker  <hardaker@ece.ucdavis.edu>
-       * gnus.el (auto-load): Added gnus-group-display-picons to the
-         gnus-picon auto-load list.  Also made the refernce(s) interactive.
-Fri Jan 19 04:20:16 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-xmas.el (gnus-xmas-read-event-char): Don't force event keys
-       to be numbers.
-
-Fri Jan 19 04:11:39 1996  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
-
-       * gnus-srvr.el (gnus-server-position-point): Define.
-
-       * gnus-salt.el (gnus-tree-recenter): Don't use
-       `save-selected-window'. 
-
-Thu Jan 18 03:08:40 1996  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
-
-       * gnus.el: 0.29 is released.
-
-Wed Jan 17 17:00:55 1996  Steven L. Baur  <steve@miranova.com>
-       * gnus-msg.el (gnus-inews-domain-name): mail-host-address may not
-       be predefined.
-
-Wed Jan 17 17:00:55 1996  Steven L. Baur  <steve@miranova.com>
-
-       * gnus-xmas.el (gnus-xmas-find-file-noselect):
-       nnheader-insert-file-contents-literally lost the prefix
-
-Thu Jan 18 00:03:30 1996  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
-
-       * gnus.el (gnus-horizontal-recenter): Didn't work very well.
-       (gnus-dribble-enter): Don't enter anything if the buffer doesn't
-       exist. 
-       (gnus-recenter): New command.
-       (gnus-summary-refer-article): Give an error message.
-       (gnus-article-refer-article): Don't move point.
-
-Wed Jan 17 23:32:43 1996  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
-
-       * gnus.el (gnus-article-hide-boring-headers): Hide empty headers. 
-       (gnus-summary-recenter): Place point before recentering.
-
-Wed Jan 17 22:58:05 1996  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el (gnus-article-hide-header): Hide boring headers
-       selectively. 
-       (gnus-article-hide-header): Didn't hide anything.
-
-       * nntp.el: Make sure `open-network-stream' has the right
-       definition. 
-
-       * gnus.el: 0.28 is released.
-
-Wed Jan 17 19:34:31 1996  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * nntp.el (tcp): Require tcp.
-
-       * gnus.el (gnus-update-marks): Ignore dead groups.
-
-       * gnus-cus.el: Changed `gnus-button-url' variable.
-
-Wed Jan 17 19:27:36 1996  Marc Auslander  <marc@watson.ibm.com>
-
-       * gnus.el (gnus-summary-mark-below): Would infloop.
-
-Wed Jan 17 19:00:02 1996  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-srvr.el (gnus-server-mode-map): Keymap was buggy.
-
-       * gnus-score.el (gnus-score-check-syntax): Would bug out on Lines
-       headers. 
-
-       * gnus.el (gnus-info-find-node): Configure to the info buffer.
-
-       * nnvirtual.el (nnvirtual-create-mapping): Division by zero.
-
-Wed Jan 17 18:53:50 1996  Ulrich Pfeifer  <pfeifer@buster.informatik.uni-dortmund.de>
-
-       * gnus.el (gnus-summary-move-article): Reversed checks.
-       (gnus-summary-move-article): Would try to remove mark from nil. 
-
-Wed Jan 17 18:37:45 1996  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-summary-update-article): Totally bugged out.
-
-       * nnml.el (nnml-request-article): Didn't fetch by Message-ID.
-
-Tue Jan 16 17:25:28 1996  Steven L. Baur  <steve@miranova.com>
-
-       * nnfolder.el (nnfolder-read-folder): Too many parameters for
-       find-file-noselect for XEmacs.
-
-       * nnbabyl.el (nnbabyl-read-mbox): Too many parameters for
-       find-file-noselect for XEmacs.
-
-       * nnmbox.el (nnmbox-possibly-change-newsgroup): Too many parameters
-       for find-file-noselect for XEmacs.
-
-       * gnus-xmas.el (insert-file-contents-literally): Restored from
-       v0.26 nnheader.el since XEmacs 19.13 doesn't have this function.
-
-       * gnus-msg.el (gnus-bug): (emacs-version) does not take a parameter
-       in XEmacs.
-
-       * gnus-nocem.el (gnus-nocem-scan-groups): make-vector takes two
-       parameters.
-
-Wed Jan 17 05:46:51 1996  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-xmas.el (gnus-xmas-find-file-noselect): Moved to this
-       file. 
-
-       * gnus-msg.el (gnus-forward-included-headers): New variable.
-       (gnus-forward-insert-buffer): Use it.
-
-       * gnus-score.el (gnus-score-adaptive): Use `mail-header-*' instead
-       of `gnus-header-*'.
-
-       * gnus.el (gnus-list-groups-with-ticked-articles): New variable.
-       (gnus-group-prepare-flat): Use it.
-       (gnus-header-from): Put back in again.
-       (gnus-article-hide-boring-headers): Don't bug out on articles with
-       no From header.
-
-       * gnus-topic.el (gnus-topic-find-groups): Ditto.
-
-       * gnus-msg.el (gnus-debug): Be more lenient with malformed files.
-
-Wed Jan 17 05:29:17 1996  Kai Grossjohann  <grossjoh@ls6.informatik.uni-dortmund.de>
-
-       * gnus-msg.el (gnus-inews-insert-gcc): Go through all Gcc'd
-       groups. 
-
-Wed Jan 17 02:26:21 1996  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-msg.el (gnus-inews-domain-name): Also use
-       mail-host-address.
-
-       * nndoc.el (nndoc-guess-type): Guess `news' when it's news.
-
-       * gnus-msg.el (gnus-debug): Only insert "environment" line if the
-       environment follows.
-       (gnus-inews-check-post): Check empty articles.
-
-       * gnus.el (gnus-summary-edit-article-done): Run display hook.
-       (gnus-newsrc-to-gnus-format): Group names can be just numbers.
-
-       * nnmail.el (nnmail-check-duplication): Allow
-       `nnmail-treat-duplicates' to be a function.
-
-       * nnheader.el (nnheader-functionp): New function.
-
-       * gnus-salt.el (gnus-pick-mode-map): Added `gnus-uu-mark-over'. 
-
-       * gnus-uu.el (gnus-uu-mark-over): New command and keystroke.
-
-       * gnus.el (gnus-find-new-newsgroups): Allow a prefix to force
-       `ask-server'. 
-
-Wed Jan 17 02:14:22 1996  Jason L. Tibbitts, III  <tibbs@sina.hpc.uh.edu>
-
-       * gnus.el (gnus-simplify-buffer-fuzzy): Didn't work for adaptive
-       scoring. 
-       (gnus-summary-select-article): Allow scrolling up.
-
-Tue Jan 16 22:28:41 1996  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
-
-       * gnus.el: Applied typo fix patches from eggert@twinsun.COM (Paul
-       Eggert).
-
-Tue Jan 16 21:14:44 1996  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: 0.27 is released.
-
-       * nnvirtual.el (nnvirtual-retrieve-headers): Would bug out on
-       canceled articles.
-
-       * gnus.el (gnus-message-archive-method): Never get new mail.
-
-Tue Jan 16 19:42:21 1996  Ken Raeburn  <raeburn@cygnus.com>
-
-       * nnmail.el (nnmail-process-babyl-mail-format): Some movemails do
-       not add an EOOH line.
-
-Tue Jan 16 19:26:31 1996  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
-
-       * nnml.el (nnml-request-article): Would try to retrieve
-       non-qualified path.
-       (nnml-possibly-change-directory): Nix out the file alist.
-
-       * nnheader.el (nnheader-article-to-file-alist): Translated twice.
-
-       * gnus.el (gnus-article-hidden-text-p): New function.
-
-Tue Jan 16 15:20:08 1996  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * nnspool.el (nnspool-retrieve-headers-with-nov): Extra slash in
-       path. 
-
-       * gnus-topic.el (gnus-topic-check-topology): Hardcoded "Gnus"
-       topic name.
-
-       * gnus-soup.el (gnus-soup-unique-prefix): Be silent.
-
-       * gnus.el (gnus-summary-insert-pseudos): Put text props instead of
-       adding.
-
-       * gnus-cite.el (gnus-article-hide-citation,
-       gnus-article-hide-citation-maybe): Toggle.
-
-       * gnus.el (gnus-article-show-hidden-text): Also hide.
-       (gnus-article-check-hidden-text): New function.
-       (gnus-article-hide-headers, gnus-article-hide-boring-headers,
-       gnus-article-hide-pgp, gnus-article-hide-signature): Toggle.
-
-Mon Jan 15 14:00:32 1996  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-group-sort-groups): Make composite sort function.
-
-       * gnus-msg.el (gnus-inews-do-gcc): Put the message in its own
-       buffer before archiving.
-
-       * gnus-topic.el (gnus-topic-mode-map): Bugged totally out.
-       (gnus-topic-mode): change-level-function is a function, not a
-       hook. 
-       (gnus-topic-yank-group): Yank into the line under point.
-
-       * gnus-score.el (gnus-score-check-syntax): Would always report
-       errors. 
-
-Sat Jan 13 00:31:02 1996  Lars Magne Ingebrigtsen  <larsi@bjob.no>
-
-       * gnus-salt.el (gnus-possibly-generate-tree): Cut thread before
-       generating. 
-
-       * gnus.el (gnus-cut-threads): New function.
-       (gnus-summary-prepare): Use it.
-       (gnus-id-to-header): New function.
-       (gnus-read-header): Use it.
-       (gnus-get-newsgroup-headers): Allow reading new versions of
-       headers.
-       (gnus-get-newsgroup-headers-xover): Ditto.
-
-       * nntp.el (nntp-accept-response): Never hang waiting for process
-       output. 
-
-       * gnus.el (gnus-ask-server-for-new-groups): Wouldn't subscribe
-       groups from odd servers.
-
-Fri Jan 12 11:36:07 1996  Lars Magne Ingebrigtsen  <larsi@bjob.no>
-
-       * nnfolder.el (nnfolder-possibly-change-group): Create parent
-       dirs.
-
-       * gnus-ems.el: Would remove intangible props under 19.30.
-
-       * nnmail.el (nnmail-expired-article-p): Accept inhibition.
-       (nnmail-save-active): Create the directory if it doesn't exist. 
-       (nnmail-procmail-suffix): Changed default.
-
-       * gnus-msg.el (gnus-inews-do-gcc): Report failures.
-
-       * gnus.el (gnus-request-create-group): Accept a method parameter.
-
-       * gnus-msg.el (gnus-tokenize-header): Accept a separator.
-
-       * nnfolder.el (nnfolder-inhibit-expiry): New variable.
-
-       * gnus-msg.el (gnus-message-archive-group): New variable.
-       (gnus-inews-insert-archive-gcc): New function.
-
-       * gnus.el (gnus-message-archive-method): New variable.
-       (gnus-ask-server-for-new-groups): Use it.
-       (gnus-read-active-file): Ditto.
-       (gnus-read-all-descriptions-files): Ditto.
-
-       * nndraft.el (nndraft-request-accept-article): Don't be so
-       chatty. 
-
-       * gnus-score.el (gnus-score-default-header): New variable.
-       (gnus-score-default-type): Ditto.
-       (gnus-score-default-duration): Ditto.
-
-       * nnheader.el (nntp-header-number): Removed all `nntp-header-'
-       aliases. 
-       (mail-header-number): Rewrote all macros.
-       (nnheader-insert-file-contents-literally): Removed.
-
-       * gnus-score.el (gnus-score-adaptive): Wrap macros.
-
-       * nnheader.el (mail-header-message-id): New alias for
-       `mail-header-id'. 
-
-       * gnus.el (gnus-replace-chars-in-string): Removed.
-       (gnus-summary-find-matching): Wrap `mail-header-' macros in
-       lambdas instead of using the Gnus functions.
-       (gnus-header-number): Removed all functional equivalents.
-
-       * nnmail.el: Changed gnus-verbose-backends in all backends.
-
-       * nnspool.el (nnspool-replace-chars-in-string): Removed.
-       (nnspool-number-base-10): Removed.
-
-       * nnheader.el (nnheader-message): New function.
-       (gnus-verbose-backends): Changed default.
-       (nnheader-be-verbose): New function.
-       (nnheader-group-pathname): New function.
-
-       * nnfolder.el (nnfolder-generate-active-file): New command.
-
-       * nnheader.el (nnheader-mail-file-mbox-p): New function.
-       (nnheader-file-to-group): New function.
-
-       * gnus-cache.el (gnus-uncacheable-groups): New default.
-
-Thu Jan 11 22:26:42 1996  Lars Magne Ingebrigtsen  <larsi@bjob.no>
-
-       * gnus-salt.el (gnus-pick-display-summary): New variable.
-       (gnus-pick-start-reading): Use it.
-
-Wed Jan 10 19:45:33 1996  Paul Eggert  <eggert@twinsun.com>
-
-       * gnus.el (gnus-article-date-ut): Avoid race condition when
-       computing current time and zone.
-       * gnus-msg.el (gnus-inews-date): Likewise.
-
-Thu Jan 11 10:55:34 1996  Lars Magne Ingebrigtsen  <larsi@bjob.no>
-
-       * gnus.el (gnus-summary-goto-colon): New function; use horizontal
-       recentering. 
-
-       * gnus-salt.el (gnus-generate-tree): Use new recenter function.
-       (gnus-highlight-selected-tree): Ditto.
-
-       * gnus.el (gnus-set-mode-line): Make tree buffer mode line.
-       (gnus-article-goto-next-page): Didn't work all the time.
-       (gnus-article-read-summary-keys): Allow proper paging from the
-       tree buffer.
-       (gnus-horizontal-recenter): New function.
-
-       * gnus-vis.el (gnus-article-add-buttons): New implementation.
-       (gnus-button-alist): New default.
-
-       * gnus.el (gnus-select-article-hook): Changed default.
-       (gnus-summary-display-article): Removed call to
-       `gnus-summary-show-thread'. 
-
-       * gnus-vis.el (gnus-article-highlight-headers): New implementation.
-
-       * gnus-soup.el (gnus-soup-write-areas): Be silent.
-       (gnus-soup-write-replies): Ditto.
-
-Wed Jan 10 09:50:39 1996  Lars Magne Ingebrigtsen  <larsi@bjob.no>
-
-       * gnus.el (gnus-sort-articles): New function.
-       (gnus-summary-prepare): Use it.
-       (gnus-sort-threads): New implementation.
-       (gnus-sort-articles): Ditto.
-       (gnus-make-sort-function): New function.
-
-       * nnmail.el (nnmail-pre-get-new-mail-hook): New variable.
-       (nnmail-post-get-new-mail-hook): New variable.
-       (nnmail-split-incoming): Do more checking for babyl file format. 
-       (nnmail-process-babyl-mail-format): Really remove bogus Message-IDs.
-       (nnmail-process-unix-mail-format): Ditto.
-       (nnmail-process-mmdf-mail-format): Ditto.
-
-       * nndraft.el (nndraft-request-associate-buffer): Clear modtime.
-
-       * gnus-vis.el (gnus-button-marker-list): New variable.
-       (gnus-article-add-buttons): Use it to delete all old markers.
-
-       * nnkiboze.el (nnkiboze-close-group): Don't delete all NOV lines
-       on Gnus startup.
-
-       * gnus.el (gnus-sort-threads): Use `gnus-article-sort-functions'. 
-
-       * gnus-score.el (gnus-summary-increase-score): Prompt when
-       matching on References.
-
-       * nnsoup.el (nnsoup-make-active): Clear message.
-
-       * gnus.el (gnus-window-min-width): New variable.
-       (gnus-window-min-height): New variable.
-       (gnus-configure-frame): Use them.
-       (gnus-summary-prepare-exit-hook): Defun instead of defvar.
-       (gnus-summary-exit-hook): Ditto.
-       (gnus-parse-headers-hook): Ditto.
-
-       * gnus-salt.el (gnus-generate-tree-function): New variable.
-       (gnus-tree-edge): New macro.
-
-       * gnus-ems.el: Set a default
-       `nnheader-file-name-translation-alist' based on system-type.
-
-       * gnus-msg.el (gnus-bug): Don't `message' emacs-version.
-
-Tue Jan 09 10:51:22 1996  Lars Magne Ingebrigtsen  <larsi@bjob.no>
-
-       * nnvirtual.el (nnvirtual-possibly-change-group): Would choke on
-       exit when using cache.
-
-       * gnus.el (gnus-request-article-this-buffer): Didn't allow reading
-       from virtual groups.
-
-       * gnus-salt.el (gnus-tree-mode): New major mode.
-
-       * gnus.el (gnus-read-init-file): Give better error messages when
-       reading the init file.
-
-       * gnus-srvr.el (gnus-browse-mode): Moved to this file.
-
-       * gnus.el (gnus-summary-display-article): Don't call the visual
-       updating functions twice.
-       (gnus-id-to-article): New function.
-       (gnus-article-displayed-root-p): New function.
-       (gnus-summary-top-thread): New command and keystroke.
-       (gnus-parent-id): Would bug out on empty References.
-       (gnus-add-configuration): Doc fix.
-
-       * gnus-vis.el (gnus-summary-highlight-line-function): New
-       variable. 
-       (gnus-summary-highlight-line): Use it.
-
-       * gnus.el (gnus-article-read-summary-keys): Accept parameter to
-       not restore window config.
-
-       * nnspool.el (nnspool-find-id): Condition-case the grep call.
-
-       * gnus.el (gnus-updated-mode-lines): New default.
-
-Mon Jan 08 00:00:32 1996  Lars Magne Ingebrigtsen  <larsi@bjob.no>
-
-       * gnus.el (gnus-use-trees): New variable.
-
-       * gnus-salt.el (gnus-binary-mode): New minor mode.
-       (gnus-tree-mode): New major mode.
-
-       * gnus-msg.el (gnus-mail-method): New variable.
-       (gnus-mail-setup): Use it.
-
-       * gnus.el (gnus-build-sparse-threads): New function.
-       (gnus-sparse-mark): New variable.
-       (gnus-build-sparse-threads): New variable.
-       (gnus-summary-read-group): Use the new function.
-       (gnus-cut-thread): New subst.
-       (gnus-cut-thread): Limit fetch-old-headers 'some properly.
-
-       * nnheader.el (make-mail-header): New function.
-
-       * nnml.el (nnml-make-nov-line): Fudge better Message-IDs.
-
-       * nnheader.el (nnheader-narrow-to-headers): Moved the function here.
-
-       * gnus.el (gnus-summary-import-article): Make arpa date.
-
-       * nnheader.el (nnheader-replace-header): New function.
-
-       * gnus.el (gnus-summary-move-article): Move, copy and crosspost in
-       one function.
-       (gnus-summary-copy-article): Just use the move function.
-       (gnus-summary-crosspost-article): New command and keystroke.
-
-Sun Jan 07 06:25:00 1996  Lars Magne Ingebrigtsen  <larsi@bjob.no>
-
-       * gnus-score.el (gnus-score-followup): Allow "thread" scoring.
-
-       * nnml.el (nnml-request-article): Allow fetching gzipped articles.
-       (nnml-retrieve-headers): Ditto.
-       (nnmail-article-file-alist): New variable.
-
-       * nnheader.el (nnheader-article-to-file-alist): New function.
-
-       * gnus-demon.el (gnus-demon-time-to-step): Use gnus-encode-date.
-
-       * gnus.el (gnus-encode-date): New function.
-       (gnus-time-minus): New function.
-       (gnus-article-date-ut): Use them.
-       (gnus-seconds-since-epoch): Removed.
-       (gnus-define-keys): New macro.
-       (gnus-define-keys-1): New function.
-
-       * gnus.el: Rewrote all keymaps.
-
-       * gnus-msg.el (gnus-tokenize-header): New function.
-
-       * gnus-cus.el: Hide boring headers by default.
-
-       * gnus-msg.el (gnus-use-followup-to): Changed default.
-       (gnus-check-before-posting): Ditto.
-       (gnus-inews-check-post): Check for totally redirected followups. 
-
-       * nnmh.el (nnmh-request-group): Would insert into group buffer.
-
-       * gnus-uu.el (gnus-uu-unmark-by-regexp): New command.
-       (gnus-uu-unmark-region): New command.
-       (gnus-uu-unmark-buffer): New command.
-
-       * gnus-salt.el (gnus-pick-mode): New function.
-       (gnus-pick-start-reading): New command.
-
-       * gnus.el (gnus-summary-mark-excluded-as-read): New command and
-       keystroke. 
-
-       * gnus-salt.el: New file.
-
-       * gnus-uu.el (gnus-uu-mark-all): Rewrite.
-
-       * gnus-msg.el (gnus-inews-news): Use new method.
-
-       * nnsoup.el (nnsoup-store-reply): Accept already prepared news.
-
-       * gnus-msg.el (gnus-post-method): Allow a 0 prefix to prompt the
-       user for a post method.
-       (gnus-inews-news): Doc fix.
-
-       * gnus.el (gnus-summary-prepare): Don't try to generate the
-       summary buffer when there are no headers.
-
-Sat Jan 06 15:04:34 1996  Lars Magne Ingebrigtsen  <larsi@bjob.no>
-
-       * gnus-vis.el: Inserted all new commands in all menus.
-
-       * gnus-topic.el (gnus-topic-make-menu-bar): New function.
-
-       * gnus-score.el (gnus-score-check-syntax): Do further syntax
-       checking. 
-
-       * gnus.el (gnus-configure-frame): Don't bug out on the `nil'
-       buffer. 
-
-       * gnus-score.el (gnus-score-update-all-lines): New function.
-       (gnus-summary-rescore): Use it.
-
-       * gnus.el (gnus-simplify-subject-fully): Didn't strip leading Re:
-       if `gnus-summary-gather-subject-limit' was a number.
-       (gnus-short-group-name): Collapse more.
-
-Tue Jan  2 19:22:12 1996  Michael Ernst  <mernst@asia.cs.rice.edu>
-
-       * gnus.el (gnus-simplify-subject-ignored-prefixes): new variable.
-       (gnus-simplify-subject): use above to simplify subjects.
-
-Sat Jan 06 14:14:24 1996  Lars Magne Ingebrigtsen  <larsi@bjob.no>
-
-       * gnus.el (gnus-strict-mime): Doc fix.
-
-Tue Jan  2 17:27:34 1996  Michael Ernst  <mernst@cs.rice.edu>
-
-       * gnus.el (gnus-simplify-subject): Remove more kinds of "Re:"
-       prefixes, and remove multiple prefixes when they exist.
-
-Sat Jan 06 12:55:37 1996  Lars Magne Ingebrigtsen  <larsi@bjob.no>
-
-       * gnus.el (gnus-summary-initial-limit): Don't always show groups
-       that have had all articles expunged.
-       (gnus-summary-read-group): Would bug out when deadening buffers.
-       (gnus-summary-exit): Wouldn't update windows when deadening.
-       (gnus-summary-isearch-article): Use proper window config.
-       (gnus-article-remove-trailing-blank-lines): New command and
-       keystroke.  Suggested by Michael Ernst <mernst@cs.rice.edu>.
-
-       * gnus-score.el (gnus-score-edit-alist): Make sure the score dir
-       exists. 
-       (gnus-score-edit-file): Ditto.
-
-       * nnml.el (nnml-generate-active-info): Could {pre,ap}pend all
-       lines with ".".
-
-Fri Jan 05 02:14:34 1996  Lars Magne Ingebrigtsen  <larsi@bjob.no>
-
-       * gnus.el (gnus-summary-insert-pseudos): Add mouse face to
-       pseudos. 
-
-       * nnmail.el (nnmail-check-duplication): New function.
-       (nnmail-treat-duplicates): Renamed variable; new values.
-       (nnmail-process-babyl-mail-format): Use it.
-       (nnmail-process-unix-mail-format): Ditto.
-       (nnmail-process-mmdf-mail-format): Ditto.
-
-       * gnus.el (gnus-visible-headers): Changed default.
-
-       * gnus-xmas.el (gnus-xmas-define): Provide a sloppy
-       `encode-time'. 
-
-       * nnvirtual.el (nnvirtual-always-rescan): New variable.
-       (nnvirtual-request-group): Use it.
-
-       * nntp.el (nntp-read-server-type): New function.
-       (nntp-server-action-alist): New variable.
-
-       * gnus-cache.el (gnus-cache-possibly-remove-articles): Allow
-       caching in virtual groups.
-
-       * nnvirtual.el (nnvirtual-find-group-art): New function
-       * gnus-cache.el (gnus-cache-possibly-enter-article): Use it.
-
-       * gnus.el (gnus-group-exit): Close the cache instead of open it.
-       (gnus-group-quit): Ditto.
-       (gnus-virtual-group-p): New function.
-       (gnus-mark-xrefs-as-read): Use it.
-       (gnus-select-newsgroup): Allow cache lists to be displayed in
-       virtual groups.
-
-       * gnus-cache.el (gnus-cache-possibly-enter-article): Check for
-       pseudos. 
-
-       * nnvirtual.el (nnvirtual-request-update-mark): New function.
-       * gnus.el (gnus-summary-mark-article-as-read): Use it.
-
-       * nntp.el (nntp-request-type): New function.
-
-       * nnspool.el (nnspool-request-type): New function.
-
-       * nnvirtual.el: Complete rewrite.  Now much slower.
-
-       * gnus.el (gnus-request-update-info): Changed into a subst.
-       (gnus-get-unread-articles-in-group): Allow updating from the
-       backends here.
-       (gnus-check-group): New function.
-
-       * nnheader.el (nnheader-get-report): New function.
-
-       * gnus.el (gnus-adjust-marked-articles): Would uncompess killed
-       lists. 
-
-       * gnus-topic.el (gnus-topic-grok-active-1): New function.
-       (gnus-topic-grok-active): New function.
-       (gnus-group-active-topic-p): New function.
-       (gnus-topic-fold): Use it.
-       (gnus-topic-list-active): New command and keystroke.
-
-       * nneething.el (nneething-exclude-files): Changed default.
-
-       * nnheader.el (nnheader-insert): New function.
-
-Thu Jan 04 01:45:08 1996  Lars Magne Ingebrigtsen  <larsi@bjob.no>
-
-       * nndoc.el (nndoc-request-group): Report.
-
-       * nnmbox.el (nnmbox-request-group): Report.
-
-       * nnml.el (nnml-request-group): Report.
-       (nnml-request-article): Report.
-
-       * nnmh.el: Report.
-
-       * nnfolder.el (nnfolder-request-group): Report.
-
-       * nnheader.el (nnheader-report): New function.
-
-       * gnus.el (gnus-sort-gathered-threads): New function.
-       (gnus-summary-prepare): Use it.
-       (gnus-gather-threads-by-subject): Renamed function.
-       (gnus-ids-in-references): New function.
-       (gnus-summary-thread-gathering-function): New variable.
-       (gnus-summary-prepare): Use it.
-       (gnus-summary-gather-threads-by-references): New function.
-
-       * nneething.el (nneething-create-mapping): Add timestamps to
-       mappings. 
-
-       * gnus.el (gnus-article-setup-buffer): Also allow several
-       `gnus-original-article-buffer's. 
-       (gnus-configure-frame): Allow `frame' in buffer confuguration. 
-       (gnus-other-frame): New command.
-       (gnus-build-get-header): Don't mark unread old-fetched headers as
-       read if they are unread.
-       (gnus-article-read-summary-keys): New command.
-       (gnus-article-mode-map): New implementation -- actually works.
-       (gnus-article-goto-next-page): New command.
-       (gnus-article-goto-prev-page): New command.
-       (gnus-summary-rescan-group): New implementation.
-
-       * gnus-msg.el (gnus-mail-send-and-exit): Add `to-list' instead of
-       `to-address'. 
-       (gnus-mail-reply): Use `broken-reply-to' group parameter.
-       (gnus-news-followup): Ditto.
-
-       * nnheader.el (nnheader-file-name-translation-alist): New variable.
-       (nnheader-translate-file-chars): New function.
-       * nnkiboze.el (nnkiboze-score-file): Use it.
-       (nnkiboze-nov-file-name): Ditto.
-       * gnus-score.el (gnus-score-file-name): Use it.
-       * gnus.el (gnus-read-save-file-name): Use it.
-
-       * gnus.el (gnus-group-universal-argument): New command and
-       keystroke.
-       (gnus-summary-universal-argument): Rewrite.
-       (gnus-group-unmark-all-groups): New command and keystroke.
-       (gnus-read-save-file-name): If the user types a directory name,
-       append the default file name to the directory.
-       (gnus-summary-insert-subject): Wouldn't allow `P'-ing past an
-       undisplayed canceled article.
-       (gnus-summary-update-article): New function.
-       (gnus-summary-edit-article-done): Use it.
-
-Wed Jan 03 10:42:48 1996  Lars Magne Ingebrigtsen  <larsi@bjob.no>
-
-       * gnus.el (gnus-article-hide-header): New function.
-       (gnus-article-hide-boring-headers): New command and keystroke.
-       (gnus-boring-article-headers): New variable.
-
-       * gnus-score.el (gnus-score-expiry-days): Allow nil as a value.
-       (gnus-update-score-entry-dates): New variable.
-       (gnus-score-string): Use it.
-
-       * gnus.el (gnus-summary-limit-to-author): New command and
-       keystroke. 
-       (gnus-summary-goto-unread): Allow `never' value.
-       (gnus-summary-next-page): Use it.
-       (gnus-summary-mark-forward): Ditto.
-
-Wed Jan 03 09:58:14 1996  Masaharu Onishi  <onishi@nova.co.jp>
-
-       * gnus.el (gnus-parent-id): Didn't return the last Message-ID if
-       the References contained newlines.
-
-Wed Jan 03 03:51:05 1996  Lars Magne Ingebrigtsen  <larsi@bjob.no>
-
-       * gnus-msg.el (gnus-inews-modify-mail-mode-map): Typo.
-
-       * nndoc.el (nndoc-guess-type): Look for babyl before forward.
-
-       * nnmail.el (nnmail-crosspost-link-function): New variable.
-       * nnml.el (nnml-save-mail): Use it.
-       * nnmh.el (nnmh-save-mail): Ditto.
-
-       * gnus.el (gnus-group-set-current-level): Would bug out on killed
-       groups. 
-
-       * gnus-topic.el (gnus-topic-yank-group): Would yank articles into
-       wrong topics.
-
-       * gnus.el (gnus-summary-exit): Run the exit hook at an earlier
-       point. 
-       (gnus-summary-mode-map): "T T" clobbering.
-       (gnus-summary-number-of-articles-in-thread): Wouldn't count
-       adopted threads.
-       (gnus-summary-walk-group-buffer): Respect the gnus-keep-same-level
-       variable. 
-
-       * gnus-topic.el (gnus-topic-change-level): New function.
-
-       * gnus.el (gnus-group-change-level-function): New variable.
-
-       * gnus-topic.el (gnus-topic-mode): Toggling the mode off would bug
-       out. 
-       (gnus-topic-check-topology): Make sure that the topic-alist does
-       exist. 
-
-       * gnus-xmas.el (gnus-xmas-read-event-char): Typo.
-
-       * gnus.el (gnus-summary-mark-article-as-read): Auto-expire ancient
-       articles.
-       (gnus-goto-next-group-when-activating): New variable.
-       (gnus-group-get-new-news-this-group): Use it.
-
-       * nndoc.el (nndoc-transform-clari-briefs): New function.
-       (nndoc-type-alist): Understand ClariNet briefs.
-
-       * gnus.el (gnus-group-read-ephemeral-group): Return whether the
-       group could be entered.
-
-       * gnus-cache.el (gnus-cache-write-active): Would bug out when the
-       cache dir didn't exist.
-
-Tue Jan 02 08:31:45 1996  Lars Magne Ingebrigtsen  <larsi@bjob.no>
-
-       * gnus-msg.el (gnus-inews-set-point): New function.
-       (gnus-sendmail-mail-setup): Use it.
-       (gnus-new-news): Ditto.
-
-       * gnus.el (gnus-group-browse-foreign-server): Place point before
-       prompt.   
-
-Thu Dec 21 02:57:06 1995  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
-
-       * gnus.el (gnus-summary-walk-group-buffer): Would skip every other
-       group. 
-
-       * gnus.el: 0.26 is released.
-
-Wed Dec 20 10:18:18 1995  Hideki Ono  <ono@tamaru.kuee.kyoto-u.ac.jp>
-       * gnus.el (gnus-update-marks): Compressed list shouldn't be sort.
-Wed Dec 20 00:02:44 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-summary-number-of-articles-in-thread): Would
-       return 0.
-       (gnus-parse-simple-format): Would mangle some simple mode lines.
-       (gnus-group-line-format-alist): Wrong spec.
-
-       * gnus-score.el (gnus-file-name-translation-table): New variable.
-       (gnus-score-find-bnews): Use it.
-       (gnus-score-file-name): Ditto.
-
-       * gnus-xmas.el (gnus-xmas-group-startup-message): Show the TTY
-       startup screen on a TTY.
-
-       * gnus.el (gnus-save-killed-list): Doc fix.
-       (gnus-simplify-mode-line): Leave a bit of space after the id.
-       (gnus-max-width-function): Would never chop off anything.
-       (gnus-update-format): Didn't update spec list.
-
-       * nnmail.el (nnmail-insert-lines): Never insert negative Lineses
-       headers. 
-
-       * gnus-cache.el (gnus-cache-possibly-enter-article): Didn't enter
-       articles into the `gnus-newsgroup-cached' list.
-
-       * gnus-topic.el (gnus-group-prepare-topics): Don't check the
-       topology quite so often.
-
-       * gnus.el (gnus-group-remove-mark): Didn't remove mark from
-       undisplayed groups.
-
-       * nnspool.el (nnspool-request-head): Didn't return the artgroup. 
-
-       * gnus.el (gnus-summary-update-line): Update tertiary mark as
-       well. 
-
-Tue Dec 19 22:47:29 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-xmas.el (gnus-xmas-read-event-char): Junk all non-key
-       events. 
-
-       * gnus.el (gnus-group-line-format-alist): %t should be a string. 
-
-       * gnus-cache.el (gnus-cache-generate-active): Would create bogus
-       active files. 
-
-Tue Dec 19 18:13:49 1995  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
-
-       * gnus.el: 0.25 is released.
-
-       * gnus-msg.el (gnus-cancel-news): Insert the usual user name, not
-       the "real" one.
-
-       * gnus.el (gnus-group-list-inactive-groups): New variable.
-       (gnus-group-prepare-flat): Use it.
-       (gnus-summary-select-article): Returned wrong value.
-
-       * gnus-topic.el (gnus-topic-find-groups): Ditto.
-
-Tue Dec 19 00:26:26 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-summary-limit-to-articles): Reset the processed
-       articles. 
-       (gnus-summary-goto-subject): Would bug out when used silently.
-
-       * nnsoup.el (nnsoup-request-expire-articles): Didn't really work. 
-
-       * gnus-cite.el (gnus-article-hide-citation): Take a prefix to
-       "show". 
-
-       * gnus.el (gnus-article-hide-headers): Take a prefix to "show".
-       (gnus-article-hide-pgp): Ditto.
-       (gnus-article-hide-signature): Ditto.
-       (gnus-article-hide): Ditto.
-       (gnus-article-show-hidden-text): New function.
-
-Mon Dec 18 15:13:21 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-request-restore-buffer): New function.
-
-       * gnus-msg.el (gnus-associate-buffer-with-draft): New function.
-       (gnus-enter-into-draft-group): Removed functio.
-
-       * gnus.el (gnus-request-associate-buffer): New function.
-
-       * nndraft.el: New file.
-
-Sun Dec 17 20:16:45 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-score.el (gnus-score-score-files-1): New function.
-       (gnus-score-score-files): Use it to be able to provide full bnews
-       file syntax matching when using short file names.
-
-       * gnus-cite.el (gnus-article-hide-citation-in-followups): New
-       command and keystroke.
-
-       * gnus-score.el (gnus-summary-rescore): New command and keystroke.
-
-       * gnus.el (gnus-summary-catchup-and-goto-next-group): Didn't save
-       point. 
-       (gnus-single-article-buffer): New variable.
-       (gnus-article-setup-buffer): Use it.
-       (gnus-summary-setup-buffer): Ditto.
-       (gnus-move-split-methods): New variable.
-       (gnus-get-split-value): New function.
-       (gnus-read-save-file-name): Use it.
-       (gnus-read-move-group-name): New function.
-       (gnus-summary-copy-article): Use them.
-       (gnus-summary-move-article): Ditto.
-
-Sun Dec 17 16:06:11 1995  Lars Magne Ingebrigtsen  <larsi@hymir.ifi.uio.no>
-
-       * gnus.el: 0.24 is released.
-
-       * nndoc.el (nndoc-guess-digest-type): Didn't grok MIME digests.
-
-       * gnus.el (gnus-all-windows-visible-p): Would bug out on buffers
-       that didn't exist. 
-       (gnus-all-windows-visible-p): Allow strings in buffer-config.
-       (gnus-configure-frame): Ditto.
-       (gnus-remove-text-with-property): Didn't remove all text.
-
-       * gnus-uu.el (gnus-uu-grab-articles): Would delete files after
-       decoding them. 
-
-Sun Dec 17 00:12:34 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-score.el (gnus-score-followup-article): New command.
-       (gnus-score-followup-thread): New command.
-
-       * gnus.el (gnus-compile): New implementation; save in
-       .newsrc.eld. 
-       (gnus-summary-rethread-thread): New command and keystroke.
-
-Sat Dec 16 22:22:58 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * nnspool.el (nnspool-find-article-by-message-id): Decompose the
-       output; renamed.
-       (nnspool-request-article): Use the function.
-       (nnspool-retrieve-headers): Ditto.
-
-       * gnus.el (gnus-group-catchup): Do the auto-expirable thaang.
-
-       * gnus-cache.el (gnus-cache-possibly-enter-article): Don't enter
-       empty articles into the cache.
-
-       * nnspool.el (nnspool-find-nov-line): Would often not find the
-       right line.
-
-Sat Dec 16 14:26:27 1995  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
-
-       * gnus.el (gnus-summary-exit): Would nix out the group name of
-       parents to nndoc groups.
-
-       * gnus.el: 0.23 is released.
-
-Fri Dec 15 20:55:26 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-buffer-configuration): New default value.
-       (gnus-configure-windows): Use it.
-       (gnus-all-windows-visible-p): New implementation.
-
-Fri Dec 15 19:28:07 1995  Jason L. Tibbitts, III  <tibbs@uh.edu>
-
-       * nnml.el (nnml-generate-nov-file): Directory names with/without
-       slashes.
-
-Fri Dec 15 18:55:28 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-cache.el (gnus-cache-generate-nov-databases): Called wrong
-       nnml function.
-
-       * gnus.el (gnus-summary-exit): Don't clear the group name until
-       the last hook has been run.
-
-Fri Dec 15 18:53:29 1995  Lance A. Brown  <labrown@dg-rtp.dg.com>
-
-       * gnus.el (gnus-parse-simple-format): %4,4i would break function.
-
-Fri Dec 15 18:48:07 1995  Michael Sperber  <sperber@informatik.uni-tuebingen.de>
-
-       * nnheader.el (nnheader-file-to-number): Would return a list of
-       strings. 
-
-Fri Dec 15 12:14:08 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-configure-frame): New function.
-
-Thu Dec 14 20:16:30 1995  Jason L. Tibbitts, III  <tibbs@uh.edu>
-
-       * gnus.el (gnus-simplify-subject-fully): New function.
-
-Thu Dec 14 17:55:03 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-update-missing-marks): New function.
-       (gnus-select-newsgroup): Use it.
-
-       * gnus-uu.el (gnus-uu-grabbed-file-functions): New variable.
-       (gnus-uu-grab-articles): Use it.
-       (gnus-uu-grab-view, gnus-uu-grab-move): New functions.
-
-       * gnus-score.el (gnus-possibly-score-headers): Allow a
-       `score-file' group parameter.
-
-Thu Dec 14 12:42:20 1995  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
-
-       * nnheader.el (nnheader-file-to-number): Returned strings instead
-       of numbers.
-
-Thu Dec 14 10:48:51 1995  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el (gnus-summary-toggle-header): Don't do that hook dance.
-
-       * gnus.el: 0.22 is released.
-
-Thu Dec 14 10:02:08 1995  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
-
-       * gnus-xmas.el (gnus-xmas-read-event-char): New function.
-
-       * gnus.el (gnus-summary-last-subject): New function.
-       (gnus-summary-next-article): Understand all key events.
-       (gnus-summary-walk-group-buffer): New function.
-       (gnus-read-event-char): New function.
-
-Wed Dec 13 16:06:29 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-msg.el (gnus-new-mail, gnus-mail-reply): Didn't insert
-       Gcc. 
-
-       * gnus-score.el (gnus-score-load-file): Allow `adapt-file' atom. 
-       (gnus-score-adaptive): Use it.
-
-       * gnus.el (gnus-group-visible-select-group): New command and
-       keystroke. 
-       (gnus-read-save-file-name): Extend the syntax of
-       `gnus-split-methods'.
-       (gnus-article-archive-name): New function.
-       (gnus-split-methods): New default; use function above.
-       (gnus-summary-update-secondary-mark): Update highlighting after
-       setting secondary marks.
-
-       * nnfolder.el (nnfolder-request-group): Don't load all nnfolder
-       groups on startup.
-
-Tue Dec 12 19:48:55 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-group-insert-group-line): Number of marked (etc)
-       didn't work.
-
-Tue Dec 12 19:37:05 1995  Timo Metzemakers  <metzemakers@labri.u-bordeaux.fr>
-
-       * gnus.el (gnus-summary-reselect-current-group): Really reselect
-       the group. 
-
-Tue Dec 12 10:38:05 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * nnmail.el (nnmail-days-to-time): Would result in short expiry
-       times in groups with veeery long expiry times.
-
-       * gnus-vis.el (gnus-summary-highlight-line): Bind `number'.
-
-       * gnus-score.el (gnus-score-find-bnews): Protect agains bogus
-       score file names.
-
-       * gnus.el (gnus-activate-all-groups): New command and keystroke.
-
-       * gnus-vis.el (gnus-article-prev-button): New command and keystroke.
-
-       * gnus-cache.el (gnus-cache-generate-nov-databases): New command. 
-
-       * gnus-score.el (gnus-score-load-file): Accept
-       `thread-mark-and-expunge' atom.
-
-       * gnus.el (gnus-newsgroup-saved): New variable.
-       (gnus-summary-set-saved-mark): New function.
-       (gnus-kill-summary-on-exit): New variable.
-       (gnus-dead-summary-mode): New minor mode.
-       (gnus-deaden-summary, gnus-summary-wake-up-the-dead): New
-       functions. 
-       (gnus-summary-catchup-and-goto-next-group): Respect
-       `gnus-auto-select-next', etc. 
-       (gnus-article-hide-headers): New implementation.
-       (gnus-article-header-rank): New function.
-       (gnus-article-header-less): Ditto.
-       (gnus-visible-headers, gnus-ignored-headers): Can now be lists of
-       regexps. 
-       (gnus-thread-expunge-below): New variable.
-       (gnus-expunge-thread): New variable.
-
-       * gnus-mh.el (gnus-summary-save-in-folder): There is no
-       `mh-search-path'. 
-
-Mon Dec 11 07:21:25 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-article-sort-functions): New variable.
-       (gnus-article-sort-by-number, gnus-article-sort-by-author,
-       gnus-article-sort-by-subject, gnus-article-sort-by-date, 
-       (gnus-article-sort-by-score): New functions.
-       (gnus-thread-sort-by-number, gnus-thread-sort-by-author,
-       gnus-thread-sort-by-subject, gnus-thread-sort-by-date,
-       gnus-thread-sort-by-score, gnus-summary-sort-by-number,
-       gnus-summary-sort-by-author, gnus-summary-sort-by-subject,
-       gnus-summary-sort-by-date, gnus-summary-sort-by-score,
-       gnus-summary-sort):  New implementations.
-       (gnus-summary-mode-line-format): Doc fix.
-       (gnus-insert-pseudo-articles): New variable.
-       (gnus-activate-level): New variable.
-       (gnus-get-unread-articles): Use it.
-
-       * nnkiboze.el (nnkiboze-request-delete-group): New function.
-
-       * gnus.el (gnus-subscribe-killed): New function.
-       (gnus-group-kill-group): Make mass group slaughter faster.
-       (gnus-group-kill-level): New command and keystroke.
-
-       * gnus-cache.el (gnus-cache-generate-active): Messed up the active
-       file. 
-
-       * gnus.el (gnus-summary-update-secondary-mark): New function.
-       (gnus-cached-mark): New variable.
-       (gnus-gmt-to-local): Removed function.
-       (gnus-narrow-to-page): New implementation.
-
-       * gnus-cache.el (gnus-cache-enter-article): New command and
-       keystroke. 
-       (gnus-cache-remove-article): Ditto.
-       (gnus-passive-cache): New variable.
-       (gnus-cached-article-p): New function.
-
-       * gnus.el (gnus-summary-mode-line-format,
-       gnus-article-mode-line-format, gnus-group-mode-line-format):
-       Include the buffer name in all mode lines.
-
-       * gnus-topic.el (gnus-topic-yank-group, gnus-topic-kill-group):
-       Allow kill/yank inside and in between topics.
-
-       * gnus.el (gnus-request-type): Wouldn't work.
-
-Sun Dec 10 13:16:49 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-topic.el (gnus-topic-insert-topic-line): Remove old text
-       properties before setting new.
-
-       * nnml.el: Understand jka-compr.
-       (nnml-generate-nov-databases): Would make empty group disappear. 
-
-       * nnheader.el (nnheader-numerical-short-files): New variable.
-       (nnheader-numerical-full-files): Ditto.
-
-       * gnus-msg.el (gnus-summary-resend-message): Rename old Resent-*
-       headers. 
-
-       * gnus-cache.el (gnus-cache-retrieve-headers): Allow fetching of
-       old headers. 
-
-       * nnmail.el (nnmail-get-spool-files): Don't ditch procmail
-       symlinks. 
-
-       * gnus-msg.el (gnus-inews-insert-signature): Don't insert
-       signature if mail-signature.
-
-       * gnus.el (gnus-group-make-help-group): Find gnus-tut in the etc
-       directory. 
-
-Sun Dec 10 12:29:54 1995  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
-
-       * gnus.el (gnus-article-date-ut): Bugged out on pseudos.
-
-Sun Dec 10 10:38:47 1995  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: 0.21 is released.
-       
-       * gnus.el (gnus-backlog-shutdown): New function.
-       (gnus-backlog-buffer): Would return a list the first time called. 
-
-       * gnus-msg.el (gnus-summary-send-draft): Didn't manage to actually
-       post anything.
-       (gnus-summary-cancel-article): Would bug out when canceling
-       canceled articles.
-
-       * gnus.el (gnus-create-xref-hashtb): Wouldn't mark component
-       groups as read. 
-       (gnus-method-option-p): Only checked 'post.
-
-Sun Dec 10 07:18:56 1995  David K}gedal  <davidk@lysator.liu.se>
-
-       * gnus-cache.el (gnus-cache-generate-active): Didn't work.
-
-Sun Dec 10 10:01:06 1995  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
-
-       * gnus-setup.el (gnus-use-bbdb): `gnus-startup-hook' wasn't
-       quoted. 
-
-Sun Dec 10 06:37:45 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * nndoc.el: Reimplemented most of this file.
-
-Sat Dec  9 16:35:54 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-summary-setup-buffer): Didn't set
-       `gnus-summary-buffer' reliably. 
-       (gnus-summary-enter-digest-group): Use the original article
-       buffer. 
-
-Sat Dec  9 10:59:52 1995  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
-
-       * gnus.el (gnus-group-expire-articles): Wrong arguments.
-
-       * nnmail.el (nnmail-time-less): Didn't return proper times.
-
-       * gnus.el: 0.20 is released.
-
-Sat Dec  9 08:50:34 1995  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el (gnus-update-marks): Chop off nils at the end of group
-       infos. 
-
-       * gnus.el: 0.19 is released.
-
-Sat Dec  9 03:21:40 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-setup.el (gnus-use-bbdb): Said `gnus-use-mh' instead of
-       `gnus-use-mhe'. 
-
-Fri Dec  8 07:44:35 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * nnmail.el (nnmail-expiry-wait): Can now be a floating point
-       number. 
-
-       * gnus.el (gnus-group-list-level): New command and keystroke.
-       (gnus-group-expire-articles): Use `expiry-wait' group parameter.
-
-       * nnmail.el (gnus-expired-article-p): New function.
-       (nnmail-expired-article-p): New function.
-       (nnmail-expiry-wait): Allow `never' and `immediate' values. 
-
-       * nnbabyl.el (nnbabyl-request-expire-articles): Use it.
-       * nnml.el (nnml-request-expire-articles): Ditto.
-       * nnmh.el (nnmh-request-expire-articles): Ditto.
-       * nnfolder.el (nnfolder-request-expire-articles): Ditto.
-       * nnmbox.el (nnmbox-request-expire-articles): Ditto.
-       * nnsoup.el (nnsoup-request-expire-articles): Ditto.
-
-       * gnus-msg.el (gnus-required-mail-headers): Allow Expires as a
-       value. 
-       (gnus-inews-insert-headers): Use it.
-       (gnus-inews-expires): New function.
-       (gnus-article-expires): New variable.
-       (gnus-distribution-function): New variable.
-       (gnus-inews-distribution): New function.
-
-       * gnus.el (gnus-group-edit-group-done): Allow creation of new
-       groups. 
-
-       * gnus-topic.el (gnus-topic-insert-topic-line): Remove excess
-       properties. 
-
-       * gnus-mh.el (gnus-mh-mail-setup): Let mh decide where to put
-       point. 
-
-       * gnus.el (gnus-summary-exit): Clear group name.
-       (gnus-summary-exit-no-update): Ditto.
-
-Tue Dec  5 21:54:39 1995  Steven L. Baur  <steve@miranova.com>
-
-       * gnus-setup.el: Use default installation paths, misc. cleanup
-
-Fri Dec  8 06:33:48 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * nnmail.el (nnmail-save-active): Don't bug out on backends that
-       don't have an active file.
-
-Wed Dec  6 08:29:04 1995  Steven L. Baur  <steve@miranova.com>
-
-       * gnus-msg.el (gnus-mail-reply): Defend against zmacs regions being
-       enabled.
-
-Fri Dec  8 05:20:06 1995  Jens Lautenbacher  <jtl@tkm.physik.uni-karlsruhe.de>
-
-       * gnus.el (gnus-group-unsubscribe-group): Don't update groups twice.
-
-Thu Dec  7 10:31:04 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-cache.el (gnus-cache-open): New function.
-       (gnus-cache-close): Ditto.
-       (gnus-cache-generate-active): New command.
-       (gnus-cache-update-active): New function.
-       (gnus-cache-write-active): Ditto.
-       (gnus-cache-read-active): Ditto.
-
-       * gnus.el (gnus-kill-all-overlays): New function.
-
-       * gnus-cache.el (gnus-cache-active-file): New variable.
-
-Wed Dec  6 23:08:28 1995  Lars Magne Ingebrigtsen  <larsi@hnoss.ifi.uio.no>
-
-       * nnspool.el (nnspool-find-nov-line): Wouldn't do anything right.
-
-Wed Dec  6 04:25:38 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-update-marks): Killed articles shouldn't be
-       uncompressed. 
-       (gnus-article-hide-pgp): Don't delete "- " quotes.
-
-       * gnus-topic.el (gnus-topic-create-topic): Default to the root
-       topic as the parent.
-
-       * gnus-msg.el (gnus-debug): Reverse order.
-
-       * nnsoup.el (nnsoup-store-reply): Do more messaging.
-
-       * gnus-soup.el (gnus-soup-store): Enter each buffer just once.
-
-       * gnus-topic.el (gnus-topic-move-matching): Swapped interactive
-       args. 
-       (gnus-topic-copy-matching): Ditto.
-
-       * gnus.el (gnus-summary-prepare-threads): Mark low-scored as
-       expirable, if desired.
-       (gnus-summary-prepare-unthreaded): Ditto.
-       (gnus-summary-limit-children): Ditto.
-
-Wed Dec  6 04:14:28 1995  Wes Hardaker  <hardaker@ece.ucdavis.edu>
-
-       * gnus.el (gnus-gnus-to-newsrc-format): Would bug on on ranks.
-
-Tue Dec  5 15:58:01 1995  Jens Lautenbacher  <jtl@tkm.physik.uni-karlsruhe.de>
-       * gnus.el (gnus-build-old-threads): Will work again.
-Tue Dec  5 10:35:51 1995  David K}gedal  <davidk@lysator.liu.se>
-
-       * gnus-msg.el (gnus-inews-insert-headers): Use cadr of the result
-       from gnus-extract-address-components instead of the car.
-       (gnus-summary-resend-message): Do not call mail-setup, and use
-       fewer headers.
-
-Wed Dec  6 03:01:04 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * nnmail.el (nnmail-process-mmdf-mail-format): Renamed.
-       (nnmail-process-mmdf-mail-format): Wouldn't skip delims.
-
-       * gnus-mh.el (gnus-summary-save-in-folder): Search `exec-path' for
-       "rcvstore".
-
-       * nnvirtual.el (nnvirtual-request-type): New function.
-
-       * gnus-msg.el (gnus-post-news): Allow correct followup and posting
-       in nnsoup and nnvirtual groups.
-
-       * nnsoup.el (nnsoup-request-type): New function.
-
-       * gnus.el (gnus-request-type): New function.
-
-       * gnus-msg.el (gnus-news-group-p): New function.
-
-Wed Dec  6 02:20:13 1995  Steven L. Baur  <steve@miranova.com>
-
-       * gnus-setup.el: New version.
-
-Tue Dec  5 10:07:09 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-msg.el (gnus-mail-reply): Would sometimes try to go to
-       nil. 
-
-       * gnus.el (gnus-article-prepare): Nix out non-header headers.
-       (gnus-set-mode-line): Protect agains pseudos.
-       (gnus-update-marks): Always sort before compressing.
-
-Tue Dec  5 09:57:20 1995  Ishikawa Ichiro  <ichiro@ccsr.u-tokyo.ac.jp>
-
-       * gnus-msg.el (gnus-group-post-news): Don't bug out on empty group
-       buffers. 
-
-Tue Dec  5 09:32:57 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * nnmail.el (nnmail-process-unix-mail-format): Better error
-       message.
-
-       * gnus-topic.el (gnus-topic-rename): Bugged out and didn't
-       redisplay. 
-
-Sun Dec  3 11:44:08 1995  Steven L. Baur  <steve@miranova.com>
-
-       * gnus-msg.el (gnus-inews-do-fcc): Protect call to rmail-output by
-       temporarily setting mail-use-rfc822 to t.
-
-       * gnus.el (gnus-summary-save-in-mail): Ditto.
-
-Tue Dec  5 09:28:00 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * nnmail.el (nnmail-get-new-mail): Dereference symlinks.
-
-Tue Dec  5 03:22:37 1995  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
-
-       * nnbabyl.el (nnbabyl-close-server): Restore buffer mode on exit.
-
-       * gnus-score.el (gnus-summary-increase-score): Simplify Xref
-       matches. 
-
-       * gnus.el: 0.18 is released.
-
-Mon Dec  4 02:06:19 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-msg.el (gnus-summary-resend-message): New command and
-       keystroke. 
-       (gnus-inews-insert-headers): Deleted wrong part of line.
-
-       * nnmail.el (nnmail-process-unix-mail-format): Don't bug out on
-       (nearly) empty files.
-
-       * gnus-msg.el (gnus-summary-mail-other-window): Force window config.
-
-       * gnus-cache.el (gnus-cache-file-name): Make sure there are no
-       double slashes in the name.
-
-Mon Dec  4 02:00:01 1995  Jason L. Tibbitts, III  <tibbs@uh.edu>
-
-       * gnus-uu.el (gnus-uu-decode-with-method): Didn't respect
-       `gnus-uu-do-not-unpack-archives'. 
-
-Mon Dec  4 01:52:10 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-summary-move-article): Marked all moved articles
-       as read.
-
-Sun Dec  3 16:49:58 1995  Jens Lautenbacher  <jtl@physik.uni-karlsruhe.de>
-       * gnus-topic.el (gnus-topic-update-topic-line): bombed out on exit
-         from a group that was selected from the list of killed groups
-Sun Dec  3 15:03:02 1995  Jens Lautenbacher  <jtl@tkm.physik.uni-karlsruhe.de>
-       * gnus-topic.el (gnus-topic-update-topic): parameter `group' in
-         call to gnus-group-goto-group may be NIL in topic-mode
-Sun Dec  3 11:44:08 1995  Steven L. Baur  <steve@miranova.com>
-
-       * gnus.el (gnus-slave-no-server): New Function.
-       (gnus-no-server): Add optional slave parameter.
-
-Mon Dec  4 01:05:47 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-group-goto-group): Ignore nil groups.
-
-Sun Dec  3 04:19:33 1995  Jens Lautenbacher  <jtl@tkm.physik.uni-karlsruhe.de>
-       * gnus-topic.el (gnus-topic-mode-map): Using mouse-2 to hide/show
-         topics works.
-Fri Dec  1 21:21:18 1995  Steven L. Baur  <steve@miranova.com>
-
-       * gnus-msg.el (gnus-inews-insert-headers): Call new function for
-       value of X-Newsreader:, and X-Mailer: headers
-       (gnus-extended-version): New function returning a string with Gnus
-       version + Emacs version
-
-Mon Dec  4 00:18:44 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el: Show Apparently-To and Resent-*. 
-       (gnus-build-get-header): Include old-fetched articles in the limit.
-
-Sun Dec  3 22:45:15 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-topic.el (gnus-topic): Provide.
-
-Sun Dec  3 03:09:29 1995  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el (gnus-group-insert-group-line): Didn't set proper
-       numbers of unread articles.
-
-       * gnus-setup.el: New file.
-
-Sun Dec  3 00:34:01 1995  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
-
-       * gnus-topic.el (gnus-topic-delete): New command and keystroke. 
-
-       * gnus.el: 0.17 is released.
-
-Sat Dec  2 00:10:23 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-intern-safe): Didn't return the proper symbol. 
-
-       * gnus-topic.el (gnus-topic-move-matching): New command and
-       keystroke. 
-       (gnus-topic-copy-matching): New command and keystroke.
-       (gnus-topic-change-name): New command and keystroke.
-
-       * gnus.el (gnus-group-mark-regexp): New command and keystroke.
-
-       * gnus-topic.el (gnus-topic-mark-topic): New command and
-       keystroke. 
-       (gnus-topic-get-new-news-this-topic): New command and keystroke. 
-
-       * gnus.el (gnus-group-set-mark): New function.
-
-Fri Dec  1 01:58:48 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-topic.el (gnus-topic-copy-to-topic): New function.
-
-       * gnus-topic.el: Changes throughout.
-
-       * gnus.el (gnus-summary-prepare-threads): Have "name" default more
-       often to From.
-       (gnus-summary-insert-line): Ditto.
-       (gnus-get-unread-articles): Close the group.
-       (gnus-update-format-specifications): Really read the descriptions
-       files.
-       (gnus-post-method): Would return the wrong posting method.
-       (gnus-summary-dummy-line-format): Set mouse-face.
-       (gnus-update-summary-mark-positions): Bind `gnus-visual' to nil.
-       (gnus-get-newsgroup-headers): Don't reset
-       `gnus-article-internal-prepare-hook'. 
-       (gnus-group-edit-global-kill): Better message.
-       (gnus-topic-alist): New variable.
-
-       * gnus-msg.el (gnus-signature-before-forwarded-message): New
-       variable. 
-       (gnus-forward-start-separator): Changed name.
-       (gnus-forward-end-separator): Ditto.
-       (gnus-forward-insert-buffer): Use them.
-
-       * gnus.el (gnus-check-bogus-newsgroups): Be a bit more
-       conservative in removing bogus groups.
-
-Wed Nov 29 22:02:36 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-mouse-pick-group): Doc fix.
-       (gnus-group-expire-articles): Bugged out on compress sequences. 
-       (gnus-parse-complex-format): Changed %[ specs into %{ specs.
-       (gnus-group-set-mode-line): Bind `header'.
-       (gnus-summary-prepare-threads): Don't output lots and lots of
-       dummy lines.
-
-       * gnus-topic.el (gnus-mouse-pick-topic): New command.
-
-       * gnus.el (gnus-group-insert-group-line): Make sure
-       `gnus-tmp-number' is a string.
-       (gnus-summary-find-next): Wouldn't handle
-       `gnus-summary-check-current'. 
-
-Wed Nov 29 21:56:33 1995  Luc Van Eycken  <Luc.VanEycken@esat.kuleuven.ac.be>
-
-       * gnus.el (gnus-summary-hide-thread): Didn't hide the last thread.
-
-Wed Nov 29 16:49:25 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-summary-prepare-threads): WOuld possibly print
-       empty lines when that wasn't required.
-
-       * gnus-topic.el (gnus-group-prepare-topics): Created buggy
-       topologies. 
-
-       * gnus.el (gnus-group-sort-by-method): Didn't sort.
-       (gnus-article-prepare): Deactivate active regions.
-       (gnus-add-marked-articles): Bugged out when forcing marks.
-       (gnus-get-newsgroup-headers): Allow dependencies hashtb as a
-       parameter. 
-       * nnvirtual.el (nnvirtual-convert-headers): Use it.
-
-       * gnus-vis.el (gnus-button-url): New function.
-       (gnus-button-alist): Use it.
-
-       * gnus.el (gnus-dribble-read-file): Turn on auto save mode
-       unconditionally. 
-
-       * gnus-msg.el (gnus-forward-start-delimiter): New variable.
-       (gnus-forward-end-delimiter): Ditto.
-       (gnus-forward-insert-buffer): Use them.
-
-       * gnus-vis.el (gnus-button-alist): Handle mailto: URLs
-       internally. 
-
-Sun Nov 26 14:46:55 1995  Steven L. Baur  <steve@diana.miranova.com>
-       * gnus.el (gnus-summary-edit-article): force read of articles
-       that Gnus thinks are pseudos.
-
-Sun Nov 26 14:46:55 1995  Steven L. Baur  <steve@diana.miranova.com>
-
-        * gnus.el (gnus-no-server): typo prevented entry to gnus
-
-Wed Nov 29 15:03:18 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-functionp): New function.
-       (gnus-group-list-active): Really read the active file first. 
-       (gnus-group-list-killed): Ditto.
-
-       * gnus-msg.el: Used throughout.
-       (gnus-mail-reply): When yanking multiple articles, didn't cite
-       right. 
-
-Mon Nov 27 17:39:04 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * nnmail.el (nnmail-process-unix-mail-format): Might possibly
-       collate two mails.
-       (nnmail-process-unix-mail-format): Would become confused when
-       articles contained Content-Length headers.
-
-Sun Nov 26 15:15:29 1995  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: 0.16 is released.
-
-       * gnus.el (gnus-select-newsgroup): Would bug out on dead groups. 
-       (gnus-summary-hide-thread): Didn't work at all.
-
-       * gnus-xmas.el (gnus-xmas-group-remove-excess-properties):
-       Redefinition of the function.
-       (gnus-xmas-group-insert-group-line-info): Removed function.
-
-       * gnus.el (gnus-group-remove-excess-properties): New dummy
-       function. 
-
-Sat Nov 25 13:41:08 1995  Steven L. Baur  <steve@diana.miranova.com (Steven L. Baur)>
-
-       * gnus.el (gnus-mouse-face-function): One comma too many on
-       gnus-mouse-face-prop
-
-       * gnus-xmas.el (gnus-xmas-redefine): Don't undefine
-       gnus-mouse-face-function.
-       (gnus-xmas-group-insert-group-line-info): Remove now bogus first
-       parameter.
-
-Sun Nov 26 14:33:52 1995  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
-
-       * gnus-score.el (gnus-score-set-mark-below): Use new update
-       function. 
-
-Sat Nov 25 18:31:11 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-byte-code): Didn't work for uncompiled functions.
-       (gnus-summary-prepare-unthreaded): Mark articles as read.
-       (gnus-summary-update-lines): Just do visual highlighting.
-       (gnus-summary-insert-line): Allow visual highlights here.
-       (gnus-summary-update-lines): Removed function.
-       (gnus-summary-prepare-threads): More efficient implementation.
-
-       * gnus-score.el (gnus-score-update-lines): New implementation.
-
-Sat Nov 25 12:38:20 1995  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
-
-       * gnus.el (gnus-group-first-unread-group): Bugged out on topics.
-
-Sat Nov 25 10:55:49 1995  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: 0.15 is released.
-
-       * gnus-topic.el (gnus-topic-mode): Allow not redisplaying.
-
-       * gnus.el (gnus-summary-update-info): Kill score list.
-
-       * gnus-vis.el (gnus-button-alist): Didn't allow clicking on URLs.
-
-       * gnus.el (gnus-summary-read-group): Wouldn't allow selecting
-       groups with just ticked articles.
-
-Fri Nov 24 13:35:45 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-update-format): Command to update and show format
-       specs. 
-
-Thu Nov 23 12:58:33 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-guess-doc-type): New function.
-       (gnus-group-make-doc-group): Accept forward and MMFD.
-       (gnus-summary-enter-digest-group): Guess at a type.  Prefix forces
-       old interpretation.
-       (gnus-find-new-newsgroups): Would choke on unbound group syms.
-       (gnus-group-insert-group-line-info): Might bug out when listing
-       bogus things.
-
-       * nndoc.el (nndoc-type-to-regexp): Now understands MMFD files. 
-
-       * gnus.el (gnus-summary-work-articles): Include the active region
-       in the process/prefix convention.
-       (gnus-group-process-prefix): Ditto.
-
-       * nnmail.el (nnmail-article-group): Be a bit more efficient.
-
-       * nnmbox.el (nnmbox-save-mail): Accept stuff from MMFD and babyl
-       inboxes. 
-       * nnfolder.el (nnfolder-save-mail): Ditto.
-
-       * nnmail.el (nnmail-crash-box): New variable.
-       (nnmail-get-new-mail): First move over to .gnus-crash-box before
-       moving to Incoming*.
-       (nnmail-process-mmfd-mail-format): New function.
-
-       * gnus-mh.el (gnus-mh-mail-setup): Copy the keymap before altering
-       it. 
-
-       * gnus.el (gnus-tmp-prev-perm): Removed variable and use thereof. 
-       (gnus-no-server): Make `gnus-group-use-permanent-levels' into a
-       buffer-local variable.
-
-Thu Nov 23 12:54:41 1995  Luc Van Eycken  <Luc.VanEycken@esat.kuleuven.ac.be>
-
-       * gnus.el (gnus-summary-prepare-threads): Put data-pos at the
-       beginning of the line.
-
-Thu Nov 23 12:18:38 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-summary-limit-children): Would sometimes bug out. 
-       (gnus-article-date-ut): Would narrow to headers.
-       (gnus-article-date-ut): Do highlighting when called
-       interactively. 
-
-       * gnus-cache.el (gnus-cache-request-article): Made buffer not
-       read-only. 
-
-Thu Nov 23 12:04:16 1995  <morioka@jaist.ac.jp>
-
-       * gnus.el (gnus-decode-encoded-word-method): New variable.
-       (gnus-article-prepare): Use it.
-
-Thu Nov 23 10:32:23 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-ems.el (gnus-ems-redefine): New Mule definition.
-
-       * gnus.el (gnus-permanently-visible-groups): New variable.
-       (gnus-group-prepare-flat): Use it.
-
-       * gnus-topic.el (gnus-topic-find-groups): Ditto.
-
-Thu Nov 23 10:03:12 1995  Marc Horowitz  <marc@mit.edu>
-
-       * gnus-uu.el (gnus-uu-grab-articles): Use the normal Gnus article
-       fetching functions.
-
-Thu Nov 23 08:53:28 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-vis.el (gnus-button-alist): Recognize <news:message-id>
-       URLs and treat them internally.
-
-       * nnmail.el (nnmail-get-spool-files): Allow `pop' as a value to
-       `nnmail-spool-file'. 
-
-Thu Nov 23 08:40:12 1995  Ken Raeburn  <raeburn@cygnus.com>
-
-       * nnmail.el (nnmail-process-babyl-mail-format): New function.
-       (nnmail-get-new-mail): Now really handles POP mail.
-
-Wed Nov 22 13:26:45 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-summary-next-article): Use
-       `gnus-group-next-unread-group', etc.
-       (gnus-group-save-newsrc): Allow a prefix to force.
-       (gnus-group-sort-groups): Accept a prefix to reverse the sort. 
-       (gnus-parse-simple-format): Optimize the output.
-
-Tue Nov 21 11:28:59 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-parse-complex-format): Now allows multiple
-       mouse-face regions and multiple face regions.
-       (gnus-update-format-specifications): Allow forcing.
-
-       * gnus-topic.el: Turned into a minor mode.  Now supports
-       hierarchal topics.
-
-       * gnus.el (gnus-nntp-message): Removed function.
-       (gnus-request-post): Now only accepts one parameter. 
-
-Mon Nov 20 08:51:45 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-open-server): Didn't deny properly.
-       (gnus-offer-save-summaries): Ignore unprepared summaries.
-
-       * gnus-srvr.el (gnus-server-insert-server-line): Would list
-       incorrectly. 
-
-       * nnspool.el (nnspool-close-server): Really close.
-       * nnmh.el (nnmh-close-server): Ditto.
-       * nnml.el (nnml-close-server): Ditto.
-
-       * gnus-srvr.el (gnus-server-read-server): Do updates when failing
-       to connect.
-       (gnus-enter-server-buffer): Changed name.
-
-       * gnus.el: Changes thourout to avoid uncompressing/compressing
-       marks lists when starting up and shutting down.
-       (gnus-create-xref-hashtb): Mark ticks and dormants as read. 
-       (gnus-backlog-request-article): Bind `buffer-read-only' to nil. 
-
-Sun Nov 19 07:46:43 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-summary-toggle-header): Inhibit hiding.
-       (gnus-mode-non-string-length): Increased due to the new line
-       number element.
-       (gnus-group-quit-config): Returned a list instead of a buffer. 
-
-Sun Nov 19 07:28:29 1995  Steven L. Baur  <steve@miranova.com>
-
-       * gnus.el (gnus-mouse-face-function): One "," too many.
-
-       * gnus-xmas.el (gnus-xmas-redefine): Don't redefine
-       `gnus-mouse-face-function'.
-
-       * gnus-msg.el (gnus-inews-article): Removed X- prefixes too late.
-
-Sun Nov 19 06:20:14 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-msg.el (gnus-mail-reply): Repsect Mail-Copies-To.
-
-       * gnus.el: Autoload `gnus-summary-save-in-folder'.
-
-Mon Nov 13 00:35:47 1995  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
-
-       * gnus-mh.el (gnus-summary-save-in-folder): Save
-       `gnus-original-article-buffer' instead of `gnus-article-buffer'.
-
-       * gnus-vm.el (gnus-summary-save-in-vm): Save
-       `gnus-original-article-buffer' instead of `gnus-article-buffer'.
-
-       * gnus.el (gnus-summary-save-in-rmail): Save
-       `gnus-original-article-buffer' instead of `gnus-article-buffer'.
-       (gnus-summary-save-in-mail): Save `gnus-original-article-buffer'
-       instead of `gnus-article-buffer'.
-
-Sun Nov 19 01:17:56 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-article-prepare): Changed canceled-message.
-       (gnus-summary-hide-thread): Hide even the last thread.
-
-       * nnsoup.el (nnsoup-close-group): Kill all buffers related to the
-       group. 
-
-Sat Nov 18 07:14:59 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-group-mode): Don't create menus unless the menu
-       bar is being used.
-
-       * gnus-msg.el (gnus-post-news): Use `to-list' parameter.
-
-Fri Nov 17 03:35:58 1995  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
-
-       * gnus-el: 0.14 is released.
-
-       * gnus-vis.el ((require 'cl)): Require cl.
-
-       * gnus.el (gnus-active): New macro.
-       (gnus-intern-safe): Ditto.
-       (gnus-set-active): Ditto.
-
-Fri Nov 17 01:33:26 1995  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el (gnus-max-width-function): Totally bugged out.
-
-       * gnus-msg.el (gnus-new-news): Set point on Subject.
-       (gnus-inews-insert-bfcc): Don't narrow to headers.
-
-       * gnus.el (gnus-articles-to-read): `C-u SPC' would have no real
-       effect. 
-       (gnus-article-date-ut): Would chop up lines.
-
-       * nnheader.el: Require cl.
-
-Fri Nov 17 00:11:10 1995  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
-
-       * gnus.el (gnus-select-newsgroup): Expiry marks would disappear.
-       (gnus-headers-decode-quoted-printable): Use subst-char instead of
-       search/replace. 
-       (gnus-remove-thread): Didn't remove properly.
-
-Thu Nov 16 06:28:17 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el: Intern group in active hashtb throughout.
-
-Wed Nov 15 06:13:48 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el: 0.13 is released.
-
-       * gnus-score.el (gnus-score-get): Turned into a defsubst.
-       (gnus-score-find-bnews): Slightly less funcalling.
-
-       * gnus.el (gnus-group-real-name): Turned into a macro.
-       (gnus-server-equal): Ditto.
-       (gnus-server-add-address): Turned into defsubst.
-       (gnus-server-get-method): Ditto.
-       (gnus-secondary-method-p): Ditto.
-
-Mon Nov 13 22:13:10 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-group-mode-map): Moved fetch-faq.
-
-       * gnus-vis.el (gnus-button-alist): Be a bit more restrictive.
-
-       * gnus-msg.el (gnus-inews-insert-headers): Would choke on empty
-       headers.
-
-       * nnml.el (nnml-make-nov-line): Include the Xref: in the nov line.
-
-Mon Nov 13 21:54:36 1995    <morioka@jaist.ac.jp>
-
-       * gnus.el (gnus-summary-save-in-rmail): Save original article
-       buffer.
-
-Mon Nov 13 15:10:28 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * nnsoup.el (nnsoup-open-server): Don't force using nnsoup as a
-       posting agent.
-
-       * gnus.el (gnus-info-group, gnus-info-level, gnus-info-read,
-       gnus-info-method, gnus-info-options): New macros.  Massive changes
-       throughout the file.
-       (gnus-get-info): New macro.
-       (gnus-group-add-score): New function.
-       (gnus-summary-bubble-group): New function.
-       (gnus-group-mode-map): New group sort submap.
-       (gnus-group-sort-groups-by-alphabet,
-       gnus-group-sort-groups-by-unread, gnus-group-sort-groups-by-level,
-       gnus-group-sort-groups-by-score, gnus-group-sort-groups-by-rank,
-       gnus-group-sort-groups-by-method): New commands and keystrokes.
-
-       * nnsoup.el (nnsoup-set-variables): Autoload; doc fix.
-
-       * gnus-score.el (gnus-score-headers): Score "header" names are now
-       case-insensitive.
-
-       * gnus.el (gnus-rebuild-thread): Didn't work when using a
-       non-threaded display.
-
-Sun Nov 12 00:11:34 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * nnmail.el (nnmail-use-long-file-names): New variable.
-       (nnmail-group-pathname): Use it.
-
-       * gnus.el (gnus-auto-select-first): Allow `best' as a value.
-
-       * gnus-uu.el (gnus-uu-save-article): Quote lines that start with
-       dashes. 
-
-       * gnus-mh.el (gnus-mh-mail-setup): Don't use a (None) subject. 
-
-       * gnus-msg.el (gnus-inews-insert-bfcc): New function.
-       (gnus-new-news): Use it.
-
-       * gnus.el (gnus-summary-generate-hook): New variable.
-       (gnus-summary-prepare): Use it.
-
-       * nnsoup.el (nnsoup-index-buffer): Disable undo.
-
-       * gnus.el (gnus-select-newsgroup): Fetch old headers before
-       scoring. 
-       (gnus-dribble-read-file): Force setting the dribble buffer file
-       name. 
-       (gnus-summary-catchup-to-here): Treat `all' right, and catchup to
-       the right article.
-       (gnus-summary-catchup): Update mode line.
-       (gnus-summary-refer-references): Didn't really work.
-       (gnus-summary-toggle-header): Would barf if point weren't at
-       point-min.
-
-Sat Nov 11 11:21:58 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * nnmail.el (nnmail-move-inbox): Bind default directory before
-       calling movemail.
-
-       * nndoc.el (nndoc-type-to-regexp): Changed babyl body-begin regexp.
-
-       * nnml.el (nnml-generate-nov-databases): Don't choke on files that
-       start with empty lines.
-
-       * gnus.el (gnus-souped-mark): New variable.
-       (gnus-summary-mark-article-as-read): Use it.
-       (gnus-set-mode-line): Would compute incorrect mode lines. 
-
-       * gnus.el: Changes throughout making ticked and dormant articles
-       subsets of the read articles instead of the unread articles. 
-
-       * gnus-soup.el (gnus-soup-add-article): Use it.
-
-       * gnus-msg.el (gnus-post-news): Respect to `to-group' group
-       parameter. 
-
-       * gnus.el (gnus-sublist-p): New function.
-       (gnus-group-prepare-flat-list-dead): Faster implementation.
-
-Fri Nov 10 03:17:03 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-newsgroup-threads): Double defvar.
-       (gnus-newsgroup-prepared): New variable.
-       (gnus-summary-setup-buffer): Use it.
-       (gnus-summary-prepare-threads): Don't destroy threads while
-       generating. 
-       (gnus-remove-thread): Didn't remove gathered threads.
-       (gnus-rebuild-thread): Didn't generate anything properly.
-       (gnus-summary-refer-parent-article): Didn't find parent.
-
-       * gnus-msg.el (gnus-mail-send-method): Removed variable.
-       (gnus-auto-mail-to-author): Doc fix.
-
-       * nnheader.el (nnheader-remove-header): Return the number of
-       headers removed.
-
-       * gnus.el (gnus-headers-de-quoted-unreadable): New function.
-       (gnus-headers-decode-quoted-readable): New function.
-       (gnus-article-de-quoted-unreadable): Use it.
-
-Fri Nov 10 00:00:47 1995  Steven L. Baur <steve@miranova.com>
-
-       * gnus-vis.el (gnus-header-button-alist): Recognize X-Url
-       headers. 
-
-Fri Nov 10 00:00:47 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-msg.el (gnus-delete-supersedes-headers): Also remove Xref
-       and Lines.
-       (gnus-summary-supersede-article): Delete multi-line headers.
-       (gnus-news-followup): Insert a few empty lines in new articles.
-       (gnus-mail-reply): Put point the right place when replying.
-       (gnus-inews-organization): Don't interpret signatures that begin
-       with ~ as strings.
-       (gnus-news-followup): Respect the Newsgroup header.
-
-       * nnsoup.el (nnsoup-write-buffers): New function.
-       (nnsoup-request-close): Use it.
-       (nnsoup-pack-replies): Ditto.
-
-       * gnus-soup.el (gnus-soup-parse-replies): Didn't kill buffer.
-       (gnus-soup-write-prefixes): Would change current buffer.
-
-Thu Nov  9 20:54:35 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-mouse-face-function): More efficient implementation.
-       (gnus-max-width-function): Ditto.
-
-       * gnus-msg.el (gnus-inews-news): Get the error message from the
-       right backend.
-
-       * gnus.el (gnus-summary-limit-to-score): Don't infloop.
-       (gnus-request-post-buffer): Removed function.
-       (gnus-method-option-p): New function.
-       (gnus-post-method): New function.
-       (gnus-request-post): Use it.
-
-       * nnsoup.el (nnsoup-write-active-file): Would possibly kill the
-       active file.
-
-Mon Nov  6 13:16:33 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-msg.el (gnus-new-news): Removed prompting for group name.
-       (gnus-group-post-news): Prompt for group name.
-       (gnus-inews-do-fcc): Rewrite.
-
-       * gnus.el (gnus-group-get-parameter): New function.
-
-Sat Nov  4 19:24:57 1995  sudish joseph  <joseph@cis.ohio-state.edu>
-
-       * gnus-msg.el (gnus-group-post-news): Use the group under point as
-         the default when composing the post buffer.  (This means that
-         `a' over a mail group will get you a *mail* buffer.)  Using a
-         prefix ARG will force a fresh post buffer (i.e., no default
-         group is used).
-
-Mon Nov  6 12:54:40 1995  steve@miranova.com (Steven L. Baur)
-
-       * gnus-topic.el (gnus-topic-toggle-topic): New command and
-       keystroke. 
-
-Sat Nov  4 19:07:31 1995  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus-vis.el (gnus-group-make-menu-bar): Add key description for
-       the "See old articles" entry and made it run
-       gnus-group-select-group with an argument. 
-       * gnus.el (gnus-group-select-group-all): Deleted.
-
-Mon Nov  6 12:22:20 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-save-newsrc-file): Set local `version-control' to
-       `never'. 
-       (gnus-gnus-to-newsrc-format): Ditto.
-
-       * gnus-msg.el (gnus-new-news): Move point to the right place.
-       (gnus-sendmail-mail-setup): Ditto.
-
-Sun Nov  5 10:05:47 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-msg.el (gnus-configure-posting-styles): Make sure that
-       `gnus-newsgroup-name' is set.
-
-       * gnus-topic.el (gnus-group-add-to-topic): Remove process marks. 
-
-       * nnml.el (nnml-request-move-article): The article has to be
-       deletable to be moved.
-       * nnmh.el (nnmh-request-move-article): Ditto.
-
-       * nnmh.el (nnmh-deletable-article-p): New function.
-
-       * nnml.el (nnml-deletable-article-p): New function.
-
-       * gnus.el (gnus-data-compute-positions): Doc fix.
-       (gnus-summary-sort): Make sure positions were updated.
-       (gnus-request-article-this-buffer): Set original article buffer to
-       be read-only.
-
-Fri Nov  3 03:01:09 1995  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
-
-       * gnus.el (gnus-request-article-this-buffer): Make sure all
-       overlays are dead.
-
-Fri Nov  3 00:41:22 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-xmas.el: Removed mouse tracker.
-
-       * gnus.el (gnus-mouse-face-function): Redefined so that it also
-       works under XEmacs.
-
-Thu Nov  2 03:40:22 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-batch-score): Don't generate threads and stuff.
-       (gnus-sort-threads): Better message.
-
-Tue Oct 31 21:26:35 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-topic.el (gnus-topic-remove-topic): Would eat groups under
-       emtpy topics.
-
-       * gnus.el (gnus-simplify-buffer-fuzzy): Would strip trailing
-       newlines. 
-       (gnus-group-list-groups): Update format specs.
-       (gnus-summary-limit-children): Didn't mark as read.
-
-Mon Oct 30 00:09:42 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-summary-find-matching): Wouldn't do `backward' ok.
-       (gnus-summary-limit-to-subject): Don't just limit to articles
-       after point.
-       (gnus-articles-to-read): Respond properly to numerical prefixes.
-
-       * gnus-msg.el (gnus-inews-article): Do the To/X-To shuffle dance.
-
-       * gnus.el (gnus-summary-expire-articles): Be less complaining when
-       doing total-expiry.
-
-       * gnus-msg.el (gnus-mail-send): Remove empty headers before
-       sending. 
-       (gnus-inews-remove-empty-headers): New function.
-
-       * gnus.el (gnus-summary-find-next): Respect
-       `gnus-summary-check-current'. 
-       (gnus-summary-find-prev): Ditto.
-       (gnus-summary-mode-map): Limit map had disappeared.
-       (gnus-summary-limit-children): Wouldn't limit properly with
-       gnus-fetch-old-headers 'some.
-
-Sun Oct 29 23:37:17 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * nnmh.el: Use nnmail's new definition.
-       * nnml.el: Ditto.
-
-       * nnmail.el (nnmail-group-pathname): Use nnmh's definition.
-
-       * gnus.el (gnus-group-startup-message): Change.
-
-Sun Oct 29 19:57:57 1995  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: 0.12 is released.
-
-Tue Oct 24 22:11:44 1995  Peter Arius  <arius@informatik.uni-erlangen.de>
-
-       * gnus.el (gnus-summary-skip-intangible): Quotes missing in macro 
-       body; turned into an inline function.
-       (gnus-summary-article-intangible-p): dito.
-       (gnus-summary-article-number): Didn't skip intangible articles 
-       when compiled.  Turned from macro into an inline function.
-
-Thu Oct 26 00:04:57 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-msg.el (gnus-new-news): Would bug out on nil group names.
+       * gnus-topic.el (gnus-topic-insert-topic-line): Remove excess
+       properties. 
 
-       * gnus-mh.el (gnus-mh-mail-send-and-exit): Use mh's send-letter
+       * gnus-xmas.el (gnus-xmas-topic-remove-excess-properties): New
        function. 
 
-       * gnus.el (gnus-summary-number-of-articles-in-thread): Don't count
-       limited articles.       
-       (gnus-summary-number-of-articles-in-thread): Count false roots
-       correctly. 
-
-       * gnus-msg.el (gnus-inews-do-fcc): Expand the FCC file name.
-
-       * gnus.el (gnus-summary-read-group): Update summary line after
-       setting the initial limit.
-       (gnus-summary-mode-map): Moved all limit commands to the `/'
-       submap. 
-
-       * gnus-msg.el (gnus-new-mail): Didn't run `gnus-mail-hook'.
+Thu Jan 25 07:34:05 1996  Lars Magne Ingebrigtsen  <larsi@eistla.ifi.uio.no>
 
-Wed Oct 25 22:45:44 1995  Lars Ingebrigtsen  <lars@eyesore.no>
+       * gnus-ems.el (gnus-extent-detached-p): New alias.
 
-       * gnus-mh.el (gnus-mh-mail-setup): Didn't set `gnus-mail-buffer'. 
+       * gnus-xmas.el (gnus-xmas-find-glyph-directory): Changed from
+       "etc" to "etc/gnus".
 
-       * gnus.el (gnus-compile): Didn't really work.
+Tue Jan 23 13:40:35 1996  Lars Ingebrigtsen  <lars@eyesore.no>
 
-       * nnbabyl.el (nnbabyl-request-article): Handle Summary-Line.
+       * gnus-score.el (gnus-score-make-menu-bar): New function.
+       (gnus-score-menu-hook): New variable.
 
-       * gnus-topic.el: Didn't really work.
-
-       * gnus.el (gnus-parse-simple-format): Bugged out on user format
-       functions. 
-       (gnus-group-make-help-group): Don't signal errors on non-retrieval
-       of the doc group.
-       (gnus-summary-toggle-header): Would delete functions from hook
-       forever. 
-
-Thu Oct 19 10:08:24 1995  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
-       * gnus-msg.el (gnus-inews-send-mail-copy): Changed X-Courtesy-Copy
-       to Posted-To.
-Mon Oct 16 11:57:14 1995  Lars Ingebrigtsen  <lars@eyesore.no>
+       * gnus-vis.el (gnus-article-next-button): Move point.
 
-       * gnus.el (gnus-group-foreign-p): New definition.  Secondary
-       groups aren't foreign.
-       (gnus-group-native-p): New function.
-       (gnus-group-secondary-p): New function.
+       * nndoc.el (nndoc-type-alist): Recognize ends of digests. 
+       (nndoc-retrieve-headers): Don't bug out on non-existant articles. 
 
-       * gnus-msg.el (gnus-inews-news): Would bug out when called from a
-       "non-running" Gnus.
+       * gnus-msg.el (gnus-mail-buffer): Renamed.
 
-       * gnus-mh.el (gnus-mh-mail-setup): Bugged out.
+       * gnus-cache.el (gnus-cache-possibly-remove-articles): Check some
+       more. 
 
-       * gnus.el: 0.11 is released.
+       * nnmail.el (nnmail-insert-lines): Off by 1.
 
-Wed Oct  4 23:08:30 1995  Sudish Joseph <joseph@cis.ohio-state.edu>
-       * gnus.el (gnus-server-yank-server): Couldn't add new servers coz
-         this bugged out when gnus-server-alist was empty.
-         (gnus-server-prepare): Bugged out.
-Mon Oct 16 10:59:47 1995  Lars Ingebrigtsen  <lars@eyesore.no>
+       * nnml.el (nnml-deletable-article-p): Check for file writability.
+       * nnmh.el (nnml-deletable-article-p): Ditto.
 
-       * gnus.el (gnus-rebuild-thread): Rebuild complete gathered
-       threads. 
+       * gnus-msg.el (gnus-associate-buffer-with-draft): Allow
+       disabling. 
+       (gnus-use-draft): New variable.
 
-Sun Oct 15 07:57:26 1995  Lars Ingebrigtsen  <lars@eyesore.no>
+       * gnus.el (gnus-summary-move-article): Use `move' action by
+       default. 
 
-       * gnus-msg.el (gnus-new-news): Would insert prefixed group name. 
+       * nnmail.el (nnmail-get-split-group): Be more restrictive in
+       selecting procmail spools.
+       (nnmail-get-spool-files): Don't return the spool file when doing a
+       single procmail file.
 
-       * gnus.el (gnus-update-format-specifications): Allow the format
-       strings to be forms.
+       * gnus.el (gnus-summary-move-article): Allow moving to the same
+       group. 
 
-       * gnus-topic.el (gnus-group-add-to-topic): New command and
+       * gnus-score.el (gnus-score-pretty-print): New command and
        keystroke. 
+       (gnus-summary-increase-score): Would always bug out.
+       (gnus-score-edit-done): Change windows before loading score file. 
 
-       * gnus.el (gnus-article-hide-pgp): Decode the "^- " stuff.
-
-       * gnus-msg.el (gnus-inews-send-mail-copy): WOuld screw things up
-       when inserting courtesy message.
-
-       * gnus.el (gnus-group-set-current-level): Do better prompting.
-       (gnus-group-set-current-level): Didn't heed the process mark.
-       (gnus-select-newsgroup): Would do odd things when selecting a
-       group with a numerical prefix with some ticked articles.
-
-Sun Oct 15 03:16:03 1995  Lars Magne Ingebrigtsen  <larsi@gjalp.ifi.uio.no>
-
-       * gnus.el: 0.10 is released.
-
-       * gnus.el (gnus-summary-limit-to-marks): Don't do any adaptive
-       thingies. 
-
-Sun Oct 15 01:27:57 1995  Lars Magne Ingebrigtsen  <larsi@gymir.ifi.uio.no>
-
-       * gnus.el (gnus-summary-limit-to-marks): Doc fix.
-       (gnus-remove-articles-1): Updated positions incorrectly. 
-       (gnus-parse-simple-format): User-defined specs bugged out.
-
-Sat Oct 14 10:04:27 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-msg.el (gnus-posting-styles): New variable.
-       (gnus-posting-style-alist): New variable.
-       (gnus-configure-posting-styles): New function.
-       (gnus-new-news): Use it. 
-       (gnus-news-followup): Use it.
-       (gnus-mail-setup): Use it.
-
-       * gnus-score.el (gnus-score-adaptive): Iterate over data, not the
-       buffer. 
-
-       * gnus.el (gnus-data-pseudo-p): New function.
-
-       * gnus-score.el: Removed `gnus-score-remove-lines-adaptive'.
-
-       * nnfolder.el (nnfolder-request-delete-group): Didn't totally
-       remove the group from all structures.
-
-       * gnus.el (gnus-summary-move-article): Don't remove lines that
-       correspond to moved articles.
-       (gnus-summary-copy-article): Copy into the cache, possibly.
-       (gnus-summary-move-article): Ditto.
-
-       * gnus-uu.el (gnus-uu-find-articles-matching): Iterate over the
-       data instead of the buffer.
-
-       * gnus.el (gnus-rebuild-thread): Didn't work on untreaded displays
-       (or anywhere else).
-       (gnus-summary-insert-dummy-line): New implementation.
-       (gnus-summary-prepare-threads): Don't output dummy lines that
-       don't have children.
-       (gnus-summary-skip-intangible): New function.
-       (gnus-summary-article-intangible-p): New function.
-
-Sat Oct 14 02:07:39 1995  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
-
-       * gnus.el: 0.9 is released.
-
-       * gnus.el (gnus-summary-refer-parent-article): Take a look at the
-       actual References header.
-
-       * gnus-msg.el (gnus-bug): Wrong number of arguments for
-       `mail-setup'. 
-
-Fri Oct 13 10:25:49 1995  Lars Ingebrigtsen  <lars@eyesore.no>
+       * gnus.el (gnus-summary-reparent-thread): Rethread after
+       reparenting. 
 
-       * gnus-msg.el (gnus-mail-reply): Would ignore To headers. 
+       * gnus-xmas.el (gnus-xmas-make-overlay): Don't make extents
+       undetachable. 
 
-Fri Oct 13 05:58:15 1995  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
+       * nndoc.el (nndoc-post-type): New variable.
 
-       * gnus.el: 0.8 is released.
+Tue Jan 23 13:39:11 1996  Eberhard Mattes  <mattes@azu.informatik.uni-stuttgart.de>
 
-       * gnus.el (gnus-parse-format): Would totally bug out.
+       * nndoc.el (nndoc-request-type): New function.
 
-Fri Oct 13 01:38:43 1995  Lars Ingebrigtsen  <lars@eyesore.no>
+Tue Jan 23 00:13:10 1996  Lars Ingebrigtsen  <lars@eyesore.no>
 
-       * gnus.el (gnus-summary-toggle-header): Run
-       `gnus-article-display-hook' after unhiding headers.
+       * gnus.el (gnus-group-group-indentation): New function.
+       (gnus-group-update-group-line): Use it.
+       (gnus-group-update-group): Indent.
 
-       * gnus-vis.el (gnus-summary-highlight-line): Would sometimes boug
-       out on nil marks.
+       * gnus-topic.el (gnus-topic-hide-subtopics): Removed variable.
+       (gnus-topic-prepare-topic): Indent group lines.
+       (gnus-topic-yank-group): Indent groups.
 
-       * gnus-msg.el (gnus-new-news): Have `C-c C-d' work in new
-       *post-news* buffers.
-       (gnus-post-prepare-function): Not used.
-       (gnus-post-prepare-hook): Ditto.
+       * gnus.el (gnus-group-update-hook): New variable.
+       (gnus-group-insert-group-line): Use it.
 
-       * gnus-soup.el (gnus-soup-write-replies): Create dir if it doesn't
-       exist.
+       * gnus-vis.el (gnus-group-highlight-line): New function.
 
-       * gnus-msg.el (gnus-prepare-article-hook): Don't insert
-       signature. 
+       * gnus.el (gnus-group-entry): New macro.
 
-       * gnus-score.el (gnus-score-adaptive): Would bug out an pseudos. 
+       * gnus-vis.el (gnus-group-highlight): New variable.
 
-       * nnfolder.el (nnfolder-request-create-group): Would create bogus
-       active entries.
+       * gnus-topic.el (gnus-topic-insert-topic-line): Would show "..."
+       too often.
+       (gnus-topic-indent): Don't move point.
+       (gnus-topic-unindent): Ditto.
+       (gnus-topic-prepare-topic): Display unread articles in sub-topics.
 
-Thu Oct 12 09:47:37 1995  Lars Ingebrigtsen  <lars@eyesore.no>
+       * nnsoup.el (nnsoup-next-prefix): New function.
+       (nnsoup-read-areas): Use it.
 
-       * gnus.el (gnus-summary-pipe-output): Raise the *Shell* window. 
-       (gnus-group-sort-groups): Would peel off the first group.
+       * gnus-soup.el (gnus-soup-set-area-prefix): New macro.
 
-       * gnus-msg.el (gnus-mail-forward): Would create two headers.
+       * nnsoup.el (nnsoup-tmp-directory): New directory.
+       (nnsoup-write-active-file): Save it.
+       (nnsoup-unpack-packets): Use it.
 
-       * nndoc.el (nndoc-type-to-regexp): Allow reading of forwarded
-       article. 
+       * gnus-msg.el (gnus-dissociate-buffer-from-draft): New command and
+       keystroke.
 
-       * gnus-msg.el (gnus-mail-setup): Changed params.
+       * gnus.el (gnus-group-list-groups): Goto last group if at eob.
 
-Thu Oct 12 03:20:42 1995  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+       * gnus-topic.el (gnus-topic-mode): Use it.
+       (gnus-topic-goto-next-group): New function.
 
-       * gnus.el: 0.7 is released.
+       * gnus.el (gnus-group-list-groups): Allow positioning point in
+       topic buffers.
+       (gnus-group-goto-next-group-function): New internal variable.
 
-       * gnus-xmas.el (gnus-xmas-setup-group-toolbar): Would bug out when
-       there was no etc dir.
-
-Thu Oct 12 02:42:50 1995  Lars Magne Ingebrigtsen  <larsi@bera.ifi.uio.no>
-
-       * gnus-msg.el (gnus-inews-check-post): Check for bogus From lines.
-
-Wed Oct 11 03:29:56 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-data-update-list): New function.
-       (gnus-rebuild-thread): Didn't really work.
-       (gnus-summary-isearch-article): Allow regexp isearch.
-       (gnus-buffer-substring): Made into a macro.
-
-Thu Oct  5 13:09:27 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-nov-parse-line): Use NoCeM.
-
-       * gnus-score.el (gnus-score-close): New function.
-
-       * gnus-nocem.el: New file.
-
-       * gnus-demon.el: New file.
-
-Wed Oct  4 20:03:44 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-summary-limit-to-unread): Did the opposite of what
-       it was supposed to do.
-       (gnus-summary-initial-limit): New function.
-       (gnus-summary-limit-children): New function.  fetch-old 'some,
-       dormant and expunge now works again.
-       (gnus-compile): New command.
-       
-       * gnus.el: Byte-compile all default format specs.
-
-Wed Oct  4 12:28:04 1995  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: 0.6 is released.
-
-       * x-easymenu.el: Included twice.
-
-Mon Oct  2 08:23:30 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-soup.el (gnus-soup-write-prefixes): New function.
-
-       * gnus.el (gnus-group-make-directory-group): Create better group
-       names. 
-       (gnus-summary-toggle-header): More correct implementation.
-
-       * nneething.el (nneething-map-file): Would bug out if the map dir
-       exists. 
-
-       * gnus.el (gnus-saved-headers): New variable.
-
-       * gnus-msg.el (gnus-news-followup): Do X-Mail-Copy handling.
+       * nnsoup.el (nnsoup-read-active-file): Give a proper return
+       value. 
 
-       * gnus-topic.el (gnus-topic-insert-topic): Use `topic' local
-       params. 
+       * gnus.el (gnus-start-news-server): Give a better error message. 
 
-       * gnus.el (gnus-group-update-group): New implementation.
+Mon Jan 21 23:34:55 1996  Morioka Tomohiko  <morioka@jaist.ac.jp>
+       * gnus-mh.el (gnus-mh-mail-setup): It didn't work when pressing
+       `R' or yanking because of lack of setting to variable
+       `mail-reply-buffer' and mh-sent-from-folder buffer local variable
+       `mh-show-buffer'.
 
-       * gnus-msg.el (gnus-mailing-list-groups): New variable.
+Mon Jan 22 02:58:42 1996  Lars Ingebrigtsen  <lars@eyesore.no>
 
-       * gnus.el (gnus-open-server): Deny or allow opening based on
-       previous successes.
-       (gnus-server-open-server): New command and keystroke.
-       (gnus-server-close-server): Ditto.
-       (gnus-server-deny-server): Ditto.
-       (gnus-backlog-enter-article): New function.
-       (gnus-backlog-remove-oldest-article): New function.
-       (gnus-backlog-request-article): New function.
-       (gnus-request-article-this-buffer): Use the backlog.
-       (gnus-keep-backlog): New variable.
+       * nntp.el (nntp-open-server-internal): Make sure that the server
+       was successfully opened.
 
-       * nntp.el: Removed all `nntp-timeout-servers' code. 
+       * gnus.el (gnus-read-active-file): Wouldn't activate properly. 
+       (gnus-read-active-file): Ignore errors from the archive server.
 
-Sun Oct  1 11:40:58 1995  Lars Ingebrigtsen  <lars@eyesore.no>
+       * nnbabyl.el (nnbabyl-request-group): Ditto.
 
-       * gnus.el (gnus-score-find-bnews): Would sometimes add the local
-       score file twice.
+       * nnmbox.el (nnmbox-request-group): Would bug out.
 
-Thu Sep 28 21:10:44 1995  Per Abrahamsen  <abraham@dina.kvl.dk>
+Sat Jan 20 20:39:03 1996  Steven L. Baur  <steve@miranova.com>
 
-       * gnus.el (gnus-article-treat-overstrike): Fixed range error for
-       the letter backspace underscore case. 
+       * nnmbox.el (nnmbox-read-mbox): find-file-noselect ->
+       nnheader-find-file-noselect.
 
-Wed Sep 27 17:28:31 1995  Per Abrahamsen  <abraham@dina.kvl.dk>
+Mon Jan 22 01:15:52 1996  Lars Ingebrigtsen  <lars@eyesore.no>
 
-       * gnus-msg.el (gnus-inews-insert-mime-headers): Allow it to be
-       called in the compose buffer.
+       * gnus.el (gnus-group-mark-buffer): Optional param.
 
-Sun Oct  1 10:26:26 1995  Lars Ingebrigtsen  <lars@eyesore.no>
+       * nnsoup.el (nnsoup-request-expire-articles): Message more. 
+       (nnsoup-read-active-file): Add proper active info.
+       (nnsoup-request-group): New implementation.
+       (nnsoup-request-list): Ditto.
 
-       * gnus.el (gnus-summary-copy-article): Would bug out on
-       respooling. 
+Sun Jan 21 08:22:47 1996  Lars Ingebrigtsen  <lars@eyesore.no>
 
-       * nndir.el (nndir-request-expire-articles): Couldn't expire
+       * gnus.el (gnus-request-article-this-buffer): Update sparse
        articles. 
+       (gnus-data-set-number): New macro.
+       (gnus-summary-update-article): Use it.
 
-       * gnus.el (gnus-group-make-group): Returned nil.
-
-       * gnus-msg.el (gnus-post-news): Couldn't post from the group
-       buffer. 
-
-Wed Sep 27 14:53:36 1995  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus-edit.el (gnus-score-custom-get): Setting adapt to an atom
-       didn't work.  Reported by kchrist@lochness.ncrmicro.ncr.com (Kevin
-       Christian). 
-
-Sun Oct  1 09:34:18 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-msg.el (gnus-message-of): New function.
-
-       * gnus.el (gnus-get-newsgroup-headers): Don't set references to
-       "none". 
-       (gnus-summary-prepare-threads): Would output the subject several
-       times when dummying.
-       (gnus-get-newsgroup-headers): Would never find the first header in
-       each head.
-
-Sat Sep 30 05:05:57 1995  Lars Magne Ingebrigtsen  <larsi@hymir.ifi.uio.no>
-
-       * gnus-msg.el (gnus-news-followup): Insert signature before
-       composing. 
-
-Fri Sep 29 05:33:01 1995  Lars Magne Ingebrigtsen  <larsi@hymir.ifi.uio.no>
-
-       * gnus.el: 0.5 is released.
+Sun Jan 21 03:54:18 1996  Lars Magne Ingebrigtsen  <larsi@eistla.ifi.uio.no>
 
-       * gnus.el (gnus-article-mode-map): Took out boogaboo.
-
-Thu Sep 28 05:12:00 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-xmas.el: New file for XEmacs functions.
-       (gnus-xmas-find-glyph-directory): New function.
-       (gnus-xmas-glyph-directory): New variable.
-
-       * nnkiboze.el (nnkiboze-generate-group): Also search read
-       articles.  Would destroy mark lists. 
-       (nnkiboze-level): New variable.
-       (nnkiboze-generate-group): Use it.
-       (nnkiboze-remove-read-articles): New variable.
-       (nnkiboze-close-group): Use it.
-
-       * gnus.el (gnus-article-hide-pgp): New command and keystroke.
-       (gnus-group-make-kiboze-group): Didn't allow scoring on "all",
-       etc. 
-       (gnus-group-make-kiboze-group): Ignored
-       `gnus-use-long-file-name'. 
-
-Wed Sep 27 06:44:57 1995  Lars Magne Ingebrigtsen  <larsi@hymir.ifi.uio.no>
-
-       * gnus.el (gnus-summary-hide-thread): Didn't work.
-       (gnus-summary-go-to-next-thread): New implementation.
-
-       * gnus-topic.el (gnus-group-topic-face): Changed to bold.
-
-Tue Sep 26 20:06:13 1995  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus-vis.el (gnus-header-button-alist): Fixed regexps.  Doc
-       cleanup. 
-       (gnus-article-add-buttons-to-head): Allow multiple headers to be
-       match by the same `gnus-header-button-alist' entry.
-
-Wed Sep 27 04:19:55 1995  Lars Magne Ingebrigtsen  <larsi@hymir.ifi.uio.no>
-
-       * gnus.el (gnus-group-make-doc-group): Move point to the group
-       that was created.
-
-       * gnus-msg.el (gnus-news-followup): Would configure to `reply'
-       config. 
-
-       * gnus.el (gnus-summary-limit-to-marks): Did the opposite of what
-       it was supposed to do.
-       (gnus-summary-prepare-unthreaded): Would never allow
-       seeing dormant articles
-
-       * nnml.el (nnml-find-id): Inserted dir instead of nov file. 
-
-       * gnus-msg.el (gnus-required-mail-headers): Make In-Reply-To a
-       required header, when it is optional.
-
-       * nndir.el: Didn't work for the archive groups.
-
-       * gnus.el (gnus-group-make-archive-group): Create a more sensible
-       server name.
-       (gnus-request-article-this-buffer): Used `insert-buffer'.
-
-Tue Sep 26 02:54:56 1995  Lars Magne Ingebrigtsen  <larsi@gjalp.ifi.uio.no>
-
-       * gnus.el (gnus-summary-prepare-threads): Would thread incorrectly
-               when using 'adopt, sometimes.
-       (gnus-read-newsrc-el-file): Give an error message when the .eld
-               file bugs out.
-
-Tue Sep 26 01:36:17 1995  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: 0.4 is released.
-
-       * gnus.el (gnus-summary-prepare-threads): New roots would be
-               ignored. 
-
-       * gnus-msg.el (gnus-new-news): Didn't save winconf.
-
-       * gnus.el (gnus-group-fetch-faq): Didn't really work.
-
-Mon Sep 25 22:43:22 1995  Lars Magne Ingebrigtsen  <larsi@gjalp.ifi.uio.no>
-
-       * gnus.el: 0.3 is released.
-
-       * gnus-msg.el (gnus-inews-insert-headers): Heed
-               check-before-posting. 
-               (gnus-mail-reply): Allow specification of In-Reply-To.
-               (gnus-inews-in-reply-to): New function.
-
-Mon Sep 25 00:03:03 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-get-unread-articles): Don't treat nnvirtual groups
-       specially. 
-       (gnus-get-unread-articles): Allow updating of info.
-       (gnus-request-update-info): New function.
-       (gnus-group-sort-function): Can now be a list.
-       (gnus-group-sort-groups): Use it.
-       (gnus-group-sort-by-method): New function.
-       (gnus-group-topic-p): New function.
-
-       * gnus-topic.el: Finally included Ilja Weis' gnus-topic.
-
-Sun Sep 24 02:18:12 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-vis.el (gnus-header-button-alist): New variable.
-       (gnus-button-mailto): New function.
-       (gnus-button-reply): New function.
-       (gnus-article-add-buttons-to-head): New command and keystroke.
-
-       * gnus.el (gnus-group-add-parameter): New function.
-       (gnus-fetch-group): New autoloaded command.
-       (gnus-summary-articles-in-thread): New function.
-       (gnus-summary-kill-thread): Use it.
-       (gnus-summary-raise-thread): Ditto.
-       (gnus-thread-operation-ignore-subject): New variable.
-
-       * gnus-msg.el (gnus-post-news): When posting to a mail group that
-       has no to-address, add the To in the mail to the group
-       parameters. 
-
-       * gnus.el (gnus-create-xref-hashtb): Mark ticked and dormant
-       articles as read when Xreffing.
-       (gnus-dribble-directory): New variable.
-       (gnus-dribble-file-name): Use it.
-       (gnus-auto-select-next): Additional value: `almost-quietly'.
-       (gnus-summary-next-article): Use it.
-       (gnus-summary-last-article-p): New function.
-       (gnus-summary-save-article-body-file): New command and keystroke.
-       (gnus-summary-save-body-in-file): New function.
-       (gnus-prompt-before-saving): New variable.
-       (gnus-summary-save-article): Use it.
-       (gnus-request-article-this-buffer): Fetch the article from
-       `gnus-article-original-buffer' if it is there.
-       (gnus-summary-mode-line-format-alist): New specs for ticked,
-       dormant, read and expunged articles.
-
-       * gnus-cache.el (gnus-uncacheable-groups): New variable.
-       (gnus-cache-possibly-enter-article): Use it.
-
-       * gnus-score.el (gnus-score-uncacheable-files): New variable.
-       (gnus-score-save): Use it.
-
-       * gnus.el (gnus-auto-subscribed-groups): New variable.
-
-       * nnfolder.el (nnfolder-request-delete-group): New function.
-       (nnfolder-request-rename-group): New function.
-
-       * nnbabyl.el (nnbabyl-request-delete-group): New function.
-       (nnbabyl-request-rename-group): New function.
-
-       * nnmbox.el (nnmbox-save-mail): Ran wrong hook.
-       (nnmbox-request-delete-group): New function.
-       (nnmbox-request-rename-group): New function.
-
-       * nnmh.el (nnmh-request-delete-group): New function.
-       (nnmh-request-rename-group): New function.
-
-Sat Sep 23 02:33:29 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-summary-next-article): Use `read-char-exclusive'
-       instead of read-char.
-
-       * nnbabyl.el (nnbabyl-retrieve-headers): Wrong number of arguments.
-
-       * gnus.el (gnus-save-quick-newsrc-hook): New hook.
-       (gnus-save-quick-newsrc-hook): New hook.
-
-       * gnus-msg.el (gnus-news-followup): Used news-mode instead of
-       news-reply-mode. 
-
-       * gnus-uu.el (gnus-uu-digest-mail-forward): Would call wrong
-       forward function.
-
-       * gnus-msg.el (gnus-mail-reply): Would add _-_ to all
-       message-ids. 
-
-       * gnus.el (gnus-request-delete-group): New function.
-       (gnus-request-rename-group): New function.
-       (gnus-group-delete-group): New command and keystroke.
-       (gnus-group-rename-group): New command and keystroke.
-
-       * nnml.el (nnml-request-delete-group): New function.
-       (nnml-request-rename-group): New function.
-
-       * nnsoup.el (nnsoup-request-scan): New function.
-
-Fri Sep 22 22:35:37 1995  Lars Magne Ingebrigtsen  <larsi@mimir.ifi.uio.no>
-
-       * gnus.el: 0.2 is released.
-
-Thu Sep 21 14:19:41 1995  Sudish Joseph <joseph@cis.ohio-state.edu>
-
-       * gnus.el (gnus-article-display-x-face): Use start-process instead
-         of call-process-region so that we may delete the old x-face
-         process when visiting a new article.
-
-Fri Sep 22 22:35:37 1995  Lars Magne Ingebrigtsen  <larsi@mimir.ifi.uio.no>
-
-       * gnus.el (gnus-read-header): Didn't work when reffing.
-
-Fri Sep 22 21:28:32 1995  Lars Magne Ingebrigtsen  <larsi@hnoss.ifi.uio.no>
-
-       * nntp.el (nntp-find-group-and-number): int-to-string instead of
-               string-to-int. 
-
-       * gnus.el (gnus-set-global-variables): Didn't set
-               gnus-newsgroup-data. 
-
-       * gnus-msg.el (gnus-mail-send): Didn't remove
-               mail-header-separator. 
-
-       * gnus.el (gnus-activate-group): Scanned groups too late.
-
-Fri Sep 22 01:05:59 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-summary-prepare-threads): Use `gnus-subject-equal'
-       to compare the not-thread-ignore-subject thing.
-       (gnus-visual-p): New function.
-       (gnus-visual): Can now be a list of visual elements.
-       (gnus-request-article-this-buffer): Request all article to
-       `gnus-original-article-buffer', and then copy it to wherever it's
-       supposed to go.
-       (gnus-original-article-buffer): New variable.
-       (gnus-summary-insert-article): New function.
-       (gnus-summary-goto-subject): Allow jumping to articles not
-       currently in the buffer.
-
-       * gnus-msg.el: Reworked all the sendmail/mh-e/vm/rnewspost buffer
-       entry points. 
-
-Thu Sep 21 13:47:01 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-group-mode-map): New score submap.
-       (gnus-group-list-active): New command and keystroke.
-       (gnus-group-get-new-news): Allow a forced re-read of the active
-       file(s). 
-
-       * gnus-score.el (gnus-score-flush-cache): New command and
-       keystroke. 
-
-       * gnus.el (gnus-group-set-current-level): Display current level.
-       (gnus-group-quick-select-group): New command and keystroke.
-
-       * gnus-uu.el (gnus-uu-digest-mail-forward): If the subject or from
-       are the same in a series, use that from or subject in the
-       headers. 
-
-       * nnmail.el (nnmail-delete-file-function): New variable.
-       * nnml.el (nnml-request-expire-articles): Use it.
-
-       * gnus.el (gnus-summary-read-group): Allow entering a group for
-       side-effects; without generating the summary buffer lines.
-       (gnus-summary-show-article): Allow the prefix to fetch the "raw"
-       article. 
-       (gnus-group-faq-directory): Allow lists as values.
-       (gnus-group-fetch-faq): If given a prefix arg, prompt for faq dir
-       from list above.
-
-       * nntp.el (nntp-request-close): Send QUIT to the server before
-       hanging up. 
-
-Thu Sep 21 02:10:14 1995  Lars Magne Ingebrigtsen  <larsi@hymir.ifi.uio.no>
-
-       * nnml.el (nnml-request-expire-articles): Bugged out.
-       (nnmh-request-expire-articles): Ditto.
-
-Wed Sep 20 22:20:09 1995  Lars Magne Ingebrigtsen  <larsi@hymir.ifi.uio.no>
-
-       * gnus.el: v0.01 is released.
-
-       * gnus.el (gnus-create-xref-hashtb): Our newsreader has Xrefs with
-               "group/number" instead of "group:number".
-               
-       * gnus-msg.el (gnus-cancel-news): Make sure the From line is the
-               read address.
-
-Wed Sep 20 01:42:46 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-uu.el (gnus-uu-unmark-thread): New command and keystroke. 
-
-       * gnus-msg.el (gnus-inews-check-post): Check for Approved.
-
-       * nnspool.el (nnspool-rejected-article-hook): New hook.
-
-       * gnus-msg.el (gnus-make-draft-group): New function.
-       (gnus-summary-send-draft): New command.
-       (gnus-draft-group-directory): New variable.
-       (gnus-message-sent-hook): New hook.
-
-       * nnmh.el (nnmh-request-create-group): New function.
-
-       * nndir.el (nndir-request-accept-article): New function.
-       (nndir-request-expire-articles): New function.
-       (nndir-request-create-group): New function.
-
-       * gnus-msg.el (gnus-required-mail-headers): New variable.
-       (gnus-inews-do-gcc): New function.
-       (gnus-outgoing-message-group): New variable.
-
-       * gnus.el (gnus-select-newsgroup): Don't use magic to fetch old
-       headers. 
-       (gnus-select-newsgroup): Don't fetch old headers if there is only
-       1 article in the group.
-
-Tue Sep 19 20:16:24 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus-msg.el (gnus-inews-article): Remove To and Cc headers after
-       posting.
-
-       * gnus.el (gnus-writable-groups): New function.
-
-       * gnus-msg.el (gnus-bounced-headers-junk): New variable.
-       (gnus-resend-bounced-mail): New command and keystroke.
-
-       * gnus.el (gnus-newsgroup-threads): Removed variable all over. 
-       (gnus-asynchronous-article-function): Removed variable.
-
-       * gnus-msg.el (gnus-inews-article): Do mail sending after all the
-       headers have been generated.
-
-       * nnheader.el (nnheader-set-temp-buffer): New function.
-
-       * gnus-msg.el (gnus-inews-remove-headers-after-mail): New
-       function. 
-
-       * nnheader.el (nnheader-remove-header): New function.
-
-       * gnus-msg.el (gnus-inews-cleanup-headers): Forked out into a
-       separate function.
-
-Sun Sep 17 01:11:10 1995  Sudish Joseph <joseph@cis.ohio-state.edu>
-
-       * gnus-score.el (gnus-score-trace): (car gnus-score-trace) now
-         contains the score file from which the 'cdr was loaded, instead
-         of the (unused) article number. 
-         Modified each of the gnus-score-{type} functions to use the
-         above format for gnus-score-trace.
-         (gnus-score-find-trace): Show score file from which each entry
-         was loaded.
-
-Tue Sep 19 17:03:17 1995  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * nntp.el (nntp-warn-about-losing-connection): New variable.
-
-Mon Sep 18 14:54:30 1995  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-       * gnus.el (gnus-summary-respool-query): Rename from
-       `gnus-summary-fancy-query' and made it work with all values for
-       `nnmail-split-methods'. 
-       (gnus-summary-mode-map): Updated for above change.
-
-Tue Sep 19 00:03:57 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-read-header): All the backends now deliver group
-       name and number when fetching by Message-ID, so article numbers
-       should be better.
-
-       * nntp.el (nntp-find-group-and-number): New function.
-
-       * nnspool.el (nnspool-find-article-by-message-id): Didn't kill the
-       work buffer.
-       (nnspool-article-pathname): Changed logic.
-
-       * gnus.el (gnus-read-header): Don't use nn*-retrieve-headers.
-
-       * nnmbox.el (nnmbox-request-article): Allow fetches by
-       Message-ID.
-       * nnbabyl.el (nnbabyl-request-article): Ditto.
-       * nnfolder.el (nnfolder-request-article): Ditto.
-
-       * nnml.el (nnml-id-to-number): New function.
-       (nnml-request-article): Allow fetches by Message-ID.
-
-       * gnus.el (gnus-summary-import-article): Insert Message-ID and
-       Lines. 
-       (gnus-summary-set-local-parameters): New function to allow local
-       variables in group parameters.
-       (gnus-summary-mode-line-format-alist): Allow unprefixed group name
-       in the mode lines.
-
-       * gnus-msg.el (gnus-mail-reply-using-mail): New key in mail
-       buffers. 
-       (gnus-put-message): New function.
-
-Mon Sep 18 11:42:37 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-article-date-original): New command and keystroke.
-       (gnus-article-parent-p): New function.
-       (gnus-summary-article-parent): New function.
-       (gnus-summary-article-children): New function.
-       (gnus-summary-go-down-thread): New implementation.
-       (gnus-summary-go-up-thread): Ditto.
-       (gnus-getenv-nntpserver): New function to use /etc/nntpserver.
-       (gnus-select-method): Use it.
-       (gnus-nntp-server-file): New variable.
-       (gnus-summary-gather-exclude-subject): New variable.
-       (gnus-gather-threads): Use it.
-       (gnus-summary-refer-references): New command and keystroke.
-
-       * gnus-cite.el (gnus-cite-attribution-suffix): Changed name from
-       `gnus-cite-attribution-postfix'. 
-
-       * nnml.el (nnml-request-expire-articles): Feature group name in
-       message. 
-       * nnmbox.el (nnmbox-request-expire-articles): Ditto.
-       * nnbabyl.el (nnbabyl-request-expire-articles): Ditoo.
-       * nnmh.el (nnmh-request-expire-articles): Ditto.
-       * nnfolder.el (nnfolder-request-expire-articles): Ditto.
-
-       * gnus-uu.el (gnus-uu-mark-buffer): New command and keystroke.
-
-       * gnus.el (gnus-make-threads): Minimized implementation.
-       (gnus-make-threads-and-expunge): Removed.
-       (gnus-get-newsgroup-headers): Do full threading here.
-       (gnus-summary-prepare-threads): Do weeding here.
-       (gnus-summary-prepare-unthreaded): And here.
-       (gnus-nov-parse-line): Do full threading here as well.
-       (gnus-request-scan): New function, and new functions in all the
-       mail backends.
-       (gnus-activate-group): Possibly scan.
-       (gnus-master-read-slave-newsrc): New function.
-       (gnus-slave-save-newsrc): New function.
-       (gnus-read-newsrc-file): Use them.
-       (gnus-slave): New command.
-
-Sun Sep 17 16:04:38 1995  Lars Ingebrigtsen  <lars@eyesore.no>
-
-       * gnus.el (gnus-total-expirable-newsgroups): New variable.
-       (gnus-group-total-expirable-p): New function; use it.
-       (gnus-group-auto-expirable-p): New function.  Allow 
-       `(auto-expire . t)'.
-       (gnus-get-newsgroup-headers): Faster implementation.
-
-       * nnheader.el (nnheader-insert-references): Used a Gnus function.
-
-       * nnmail.el (nnmail-delete-incoming): Changed default to nil.
-       (nnmail-get-new-mail): New function.
-       * nnfolder.el (nnfolder-get-new-mail): Use it.
-       * nnmh.el (nnmh-get-new-mail): Ditto.
-       * nnml.el (nnml-get-new-mail): Ditto.
-       * nnmbox.el (nnmbox-get-new-mail): Ditto.
-       * nnbabyl.el (nnbabyl-get-new-mail): Ditto.
-
-       * nnheader.el (nnheader-max-head-length): New variable.
-       (nnheader-insert-head): Use it.
-
-       * gnus.el (gnus-summary-find-matching): New function.
-       (gnus-newsgroup-data-reverse, gnus-newsgroup-limit,
-       gnus-newsgroup-limits, gnus-newsgroup-data): New variables.
-       (gnus-summary-mode-map): New limit map.
-       (gnus-summary-limit-to-subject): New command and keystroke.
-       (gnus-summary-limit-to-articles): New command and keystroke.
-       (gnus-summary-limit-to-unread): Changed name.
-       (gnus-summary-limit-to-score): Changed name.
-       (gnus-summary-unlimit-dormant): Changed name.
-       (gnus-summary-limit-to-nondormant): Changed name.
-       (gnus-summary-limit): New function.
-       (gnus-data-*): New macros and functions.
-       (gnus-summary-limit-to-marks): Changed name.
+       * gnus-soup.el (gnus-soup-add-article): Don't save canceled
+       articles. 
 
index 88e4dc7..b90ca1e 100644 (file)
@@ -187,10 +187,11 @@ variable to \"^nnml\".")
     (let ((arts gnus-cache-removable-articles)
          ga)
       (while arts
-       (setq ga (nnvirtual-find-group-art gnus-newsgroup-name (pop arts)))
-       (let ((gnus-cache-removable-articles (list (cdr ga)))
-             (gnus-newsgroup-name (car ga)))
-         (gnus-cache-possibly-remove-articles-1))))
+       (when (setq ga (nnvirtual-find-group-art
+                       gnus-newsgroup-name (pop arts)))
+         (let ((gnus-cache-removable-articles (list (cdr ga)))
+               (gnus-newsgroup-name (car ga)))
+           (gnus-cache-possibly-remove-articles-1)))))
     (setq gnus-cache-removable-articles nil)))
 
 (defun gnus-cache-possibly-remove-articles-1 ()
index c3ff99f..5be817a 100644 (file)
@@ -62,7 +62,7 @@ If `visual' is disabled, there will be no menus and few faces.  Most of
 the visual customization options below will be ignored.  GNUS will use
 less space and be faster as a result.")
                  (default . 
-                   (summary-highlight 
+                   (summary-highlight group-highlight
                     article-highlight 
                     summary-menu group-menu article-menu
                     tree-highlight menu highlight
index 6984e71..05c0a6b 100644 (file)
 (defalias 'gnus-overlay-put 'overlay-put)
 (defalias 'gnus-move-overlay 'move-overlay)
 (defalias 'gnus-overlay-end 'overlay-end)
+(defalias 'gnus-extent-detached-p 'ignore)
+(defalias 'gnus-group-remove-excess-properties 'ignore)
+(defalias 'gnus-topic-remove-excess-properties 'ignore)
+(defalias 'gnus-extent-start-open 'ignore)
+
 
 (eval-and-compile 
   (autoload 'gnus-xmas-define "gnus-xmas")
index 39a26a9..77e5b35 100644 (file)
@@ -91,6 +91,11 @@ Optional argument FOLDER specifies folder name."
     (setq mh-sent-from-folder gnus-original-article-buffer)
     (setq mh-sent-from-msg 1)
     (setq gnus-mail-buffer (buffer-name (current-buffer)))
+    (setq mail-reply-buffer replybuffer)
+    (save-excursion
+      (set-buffer mh-sent-from-folder)
+      (setq mh-show-buffer replybuffer)
+      )
     (use-local-map (copy-keymap (current-local-map)))
     (local-set-key "\C-c\C-c" 'gnus-mh-mail-send-and-exit)
     (setq mh-show-buffer gnus-article-copy)
index 485e4ab..03f3915 100644 (file)
@@ -154,6 +154,9 @@ the group.")
           "drafts"))
   "*The directory where draft messages will be stored.")
 
+(defvar gnus-use-draft t
+  "*Whether Gnus should use the draft group.")
+
 (defvar gnus-posting-styles nil
   "*Alist of styles to use when posting.")
 
@@ -319,7 +322,7 @@ headers.")
 ;;; Internal variables.
 
 (defvar gnus-post-news-buffer "*post-news*")
-(defvar gnus-mail-buffer "*mail*")
+(defvar gnus-mail-buffer "*Mail Gnus*")
 (defvar gnus-article-copy nil)
 (defvar gnus-reply-subject nil)
 (defvar gnus-newsgroup-followup nil)
@@ -1094,7 +1097,7 @@ called."
                (condition-case ()
                    (save-excursion
                      (set-buffer (, (buffer-name)))
-                     (gnus-put-in-draft-group nil 'silent))
+                     (gnus-associate-buffer-with-draft nil 'silent))
                  (error 
                   (ding)
                   (gnus-message 
@@ -1135,7 +1138,7 @@ called."
       (run-hooks 'gnus-message-sent-hook)
       ;; If the posting was unsuccessful (that it, it was rejected) we
       ;; put it into the draft group.
-      (or result (gnus-put-in-draft-group))
+      (or result (gnus-associate-buffer-with-draft))
       result)))
 
 (defun gnus-inews-cleanup-headers ()
@@ -1973,7 +1976,7 @@ If INHIBIT-PROMPT, never prompt for a Subject."
     (gnus-configure-posting-styles)
     (news-setup nil subject nil (and group (gnus-group-real-name group)) nil)
     ;; Associate this buffer with the draft group.
-    (gnus-associate-buffer-with-draft)
+    (gnus-enter-buffer-into-draft)
     (goto-char (point-min))
 
     (unless (re-search-forward 
@@ -2012,7 +2015,7 @@ If INHIBIT-PROMPT, never prompt for a Subject."
        (set-buffer (get-buffer-create gnus-post-news-buffer))
        (news-reply-mode)
        ;; Associate this buffer with the draft group.
-       (gnus-associate-buffer-with-draft)
+       (gnus-enter-buffer-into-draft)
        (if (and (buffer-modified-p)
                 (> (buffer-size) 0)
                 (not (gnus-y-or-n-p 
@@ -2552,7 +2555,8 @@ Headers will be generated before sending."
   (use-local-map (copy-keymap (current-local-map)))
   (local-set-key "\C-c\C-c" 'gnus-mail-send-and-exit)
   (local-set-key "\C-c\C-p" 'gnus-put-message)
-  (local-set-key "\C-c\C-d" 'gnus-put-in-draft-group))
+  (local-set-key "\C-c\M-d" 'gnus-dissociate-buffer-from-draft)
+  (local-set-key "\C-c\C-d" 'gnus-associate-buffer-with-draft))
 
 (defun gnus-mail-setup (type &optional to subject in-reply-to cc
                             replybuffer actions)
@@ -2583,7 +2587,7 @@ Headers will be generated before sending."
     (t 'gnus-sendmail-mail-setup))
    to subject in-reply-to cc replybuffer actions)
   ;; Associate this mail buffer with the draft group.
-  (gnus-associate-buffer-with-draft))
+  (gnus-enter-buffer-into-draft))
 
 (defun gnus-sendmail-mail-setup (to subject in-reply-to cc replybuffer actions)
   (mail-mode)
@@ -2732,7 +2736,7 @@ Headers will be generated before sending."
     (gnus-check-server method)
     group))
 
-(defun gnus-put-in-draft-group (&optional generate silent)
+(defun gnus-associate-buffer-with-draft (&optional generate silent)
   "Enter the current buffer into the draft group."
   (interactive)
   (when (gnus-request-accept-article (gnus-make-draft-group) t)
@@ -2741,21 +2745,29 @@ Headers will be generated before sending."
       (gnus-mail-send-and-exit 'dont-send))
     (set-buffer-modified-p nil)))
 
-(defun gnus-associate-buffer-with-draft ()
-  (save-excursion
-    ;; Make sure the draft group exists.
-    (gnus-make-draft-group)
-    ;; Associate the buffer with the draft group.
-    (let ((article (gnus-request-associate-buffer (gnus-draft-group))))
-      ;; Arrange for deletion of the draft after successful sending.
-      (make-local-variable 'gnus-message-sent-hook)
-      (setq gnus-message-sent-hook
-           (list
-            `(lambda ()
-               (let ((gnus-verbose-backends nil))
-                 (gnus-request-expire-articles 
-                  (quote ,(list article))
-                  ,(gnus-draft-group) t))))))))
+(defun gnus-enter-buffer-into-draft ()
+  (when gnus-use-draft
+    (save-excursion
+      ;; Make sure the draft group exists.
+      (gnus-make-draft-group)
+      ;; Associate the buffer with the draft group.
+      (let ((article (gnus-request-associate-buffer (gnus-draft-group))))
+       ;; Arrange for deletion of the draft after successful sending.
+       (make-local-variable 'gnus-message-sent-hook)
+       (setq gnus-message-sent-hook
+             (list
+              `(lambda ()
+                 (let ((gnus-verbose-backends nil))
+                   (gnus-request-expire-articles 
+                    (quote ,(list article))
+                    ,(gnus-draft-group) t)))))))))
+
+(defun gnus-dissociate-buffer-from-draft ()
+  "Disable auto-saving and association to the draft group of the current buffer."
+  (interactive)
+  (run-hooks gnus-message-sent-hook)
+  (setq buffer-file-name nil)
+  (setq buffer-auto-save-file-name nil))
 
 (defun gnus-summary-send-draft ()
   "Enter a mail/post buffer to edit and send the draft."
@@ -2772,7 +2784,7 @@ Headers will be generated before sending."
       (gnus-inews-modify-mail-mode-map)
       (when (eq major-mode 'news-reply-mode)
        (local-set-key "\C-c\C-c" 'gnus-inews-news))
-      (gnus-associate-buffer-with-draft) 
+      (gnus-enter-buffer-into-draft) 
       ;; Insert the separator.
       (goto-char (point-min))
       (search-forward "\n\n")
index 7ad9633..46ab56e 100644 (file)
@@ -591,8 +591,7 @@ Two predefined functions are available:
     (set-buffer gnus-tree-buffer)
     (when (setq region (gnus-tree-article-region article))
       (when (or (not gnus-selected-tree-overlay)
-               (and (fboundp 'extent-detached-p)
-                    (extent-detached-p gnus-selected-tree-overlay)))
+               (gnus-extent-detached-p gnus-selected-tree-overlay))
        ;; Create a new overlay.
        (gnus-overlay-put
         (setq gnus-selected-tree-overlay (gnus-make-overlay 1 2))
index f503506..28be5c6 100644 (file)
@@ -330,7 +330,7 @@ used as score."
     (gnus-score-kill-help-buffer)
     (if mimic (message "%c %c %c" prefix hchar tchar pchar)
       (message ""))
-    (unless (setq temporary (assq pchar char-to-perm))
+    (unless (setq temporary (cadr (assq pchar char-to-perm)))
       (if mimic 
          (error "%c %c %c %c" prefix hchar tchar pchar)
        (error "")))
@@ -1712,14 +1712,20 @@ SCORE is the score to add."
 ;;; Score mode.
 ;;;
 
-(defvar gnus-score-mode-map nil)
-(defvar gnus-score-mode-hook nil)
+(defvar gnus-score-mode-hook nil
+  "*Hook run in score mode buffers.")
+
+(defvar gnus-score-menu-hook nil
+  "*Hook run after creating the score mode menu.")
 
-(if gnus-score-mode-map
-    ()
+(defvar gnus-score-mode-map nil)
+(unless gnus-score-mode-map
   (setq gnus-score-mode-map (copy-keymap emacs-lisp-mode-map))
-  (define-key gnus-score-mode-map "\C-c\C-c" 'gnus-score-edit-done)
-  (define-key gnus-score-mode-map "\C-c\C-d" 'gnus-score-edit-insert-date))
+  (gnus-define-keys 
+   gnus-score-mode-map
+   "\C-c\C-c" gnus-score-edit-done
+   "\C-c\C-d" gnus-score-edit-insert-date
+   "\C-c\C-p" gnus-score-pretty-print))
 
 (defun gnus-score-mode ()
   "Mode for editing score files.
@@ -1729,17 +1735,40 @@ This mode is an extended emacs-lisp mode.
   (interactive)
   (kill-all-local-variables)
   (use-local-map gnus-score-mode-map)
+  (when (and menu-bar-mode
+            (gnus-visual-p 'score-menu 'menu))
+    (gnus-score-make-menu-bar))
   (set-syntax-table emacs-lisp-mode-syntax-table)
   (setq major-mode 'gnus-score-mode)
   (setq mode-name "Score")
   (lisp-mode-variables nil)
   (run-hooks 'emacs-lisp-mode-hook 'gnus-score-mode-hook))
 
+(defun gnus-score-make-menu-bar ()
+  (unless (boundp 'gnus-score-menu)
+    (easy-menu-define
+     gnus-score-menu gnus-score-mode-map ""
+     '("Score"
+       ["Exit" gnus-score-edit-done t]
+       ["Insert date" gnus-score-edit-insert-date t]
+       ["Format" gnus-score-pretty-print t]
+       ))
+    (run-hooks 'gnus-score-menu-hook)))
+
 (defun gnus-score-edit-insert-date ()
   "Insert date in numerical format."
   (interactive)
   (insert (int-to-string (gnus-day-number (current-time-string)))))
 
+(defun gnus-score-pretty-print ()
+  "Format the current score file."
+  (interactive)
+  (goto-char (point-min))
+  (let ((form (read (current-buffer))))
+    (erase-buffer)
+    (pp form (current-buffer)))
+  (goto-char (point-min)))
+
 (defun gnus-score-edit-done ()
   "Save the score file and return to the summary buffer."
   (interactive)
@@ -1748,9 +1777,9 @@ This mode is an extended emacs-lisp mode.
     (gnus-make-directory (file-name-directory (buffer-file-name)))
     (save-buffer)
     (kill-buffer (current-buffer))
+    (and winconf (set-window-configuration winconf))
     (gnus-score-remove-from-cache bufnam)
-    (gnus-score-load-file bufnam)
-    (and winconf (set-window-configuration winconf))))
+    (gnus-score-load-file bufnam)))
 
 (defun gnus-score-find-trace ()
   "Find all score rules that applies to the current article."
index 3467fa6..177f7f3 100644 (file)
@@ -75,31 +75,33 @@ format.")
 ;;; Access macros:
 
 (defmacro gnus-soup-area-prefix (area)
-  (` (aref (, area) 0)))
+  `(aref ,area 0))
+(defmacro gnus-soup-set-area-prefix (area prefix)
+  `(aset ,area 0 ,prefix))
 (defmacro gnus-soup-area-name (area)
-  (` (aref (, area) 1)))
+  `(aref ,area 1))
 (defmacro gnus-soup-area-encoding (area)
-  (` (aref (, area) 2)))
+  `(aref ,area 2))
 (defmacro gnus-soup-area-description (area)
-  (` (aref (, area) 3)))
+  `(aref ,area 3))
 (defmacro gnus-soup-area-number (area)
-  (` (aref (, area) 4)))
+  `(aref ,area 4))
 (defmacro gnus-soup-area-set-number (area value)
-  (` (aset (, area) 4 (, value))))
+  `(aset ,area 4 ,value))
 
 (defmacro gnus-soup-encoding-format (encoding)
-  (` (aref (, encoding) 0)))
+  `(aref ,encoding 0))
 (defmacro gnus-soup-encoding-index (encoding)
-  (` (aref (, encoding) 1)))
+  `(aref ,encoding 1))
 (defmacro gnus-soup-encoding-kind (encoding)
-  (` (aref (, encoding) 2)))
+  `(aref ,encoding 2))
 
 (defmacro gnus-soup-reply-prefix (reply)
-  (` (aref (, reply) 0)))
+  `(aref ,reply 0))
 (defmacro gnus-soup-reply-kind (reply)
-  (` (aref (, reply) 1)))
+  `(aref ,reply 1))
 (defmacro gnus-soup-reply-encoding (reply)
-  (` (aref (, reply) 2)))
+  `(aref ,reply 2))
 
 ;;; Commands:
 
@@ -134,13 +136,13 @@ move those articles instead."
        (setq headers (gnus-summary-article-header (car articles)))
        ;; Put the article in a buffer.
        (set-buffer tmp-buf)
-       (gnus-request-article-this-buffer 
-        (car articles) gnus-newsgroup-name)
-       (gnus-soup-store gnus-soup-directory prefix headers
-                        gnus-soup-encoding-type 
-                        gnus-soup-index-type)
-       (gnus-soup-area-set-number area
-        (1+ (or (gnus-soup-area-number area) 0)))
+       (when (gnus-request-article-this-buffer 
+              (car articles) gnus-newsgroup-name)
+         (gnus-soup-store gnus-soup-directory prefix headers
+                          gnus-soup-encoding-type 
+                          gnus-soup-index-type)
+         (gnus-soup-area-set-number 
+          area (1+ (or (gnus-soup-area-number area) 0))))
        ;; Mark article as read. 
        (set-buffer gnus-summary-buffer)
        (gnus-summary-remove-process-mark (car articles))
index aeb33ca..a57541b 100644 (file)
@@ -34,7 +34,7 @@
 (defvar gnus-topic-mode-hook nil
   "Hook run in topic mode buffers.")
 
-(defvar gnus-topic-line-format "%i[ %(%{%n%}%) -- %a ]%v\n"
+(defvar gnus-topic-line-format "%i[ %(%{%n%}%) -- %A ]%v\n"
   "Format of topic lines.
 It works along the same lines as a normal formatting string,
 with some simple extensions.
@@ -44,6 +44,7 @@ with some simple extensions.
 %v  Nothing if the topic is visible, \"...\" otherwise.
 %g  Number of groups in the topic.
 %a  Number of unread articles in the groups in the topic.
+%A  Number of unread articles in the groups in the topic and its subtopics.
 ")
 
 (defvar gnus-group-topic-topics-only nil
@@ -52,9 +53,6 @@ with some simple extensions.
 (defvar gnus-topic-unique t
   "*If non-nil, each group will only belong to one topic.")
 
-(defvar gnus-topic-hide-subtopics t
-  "*If non-nil, hide subtopics along with groups.")
-
 ;; Internal variables.
 
 (defvar gnus-topic-killed-topics nil)
@@ -66,7 +64,8 @@ with some simple extensions.
     (?v visible ?s)
     (?i indentation ?s)
     (?g number-of-groups ?d)
-    (?a number-of-articles ?d)
+    (?a (gnus-topic-articles-in-topic entries) ?d)
+    (?A total-number-of-articles ?d)
     (?l level ?d)))
 
 (defvar gnus-topic-line-format-spec nil)
@@ -103,7 +102,6 @@ use the `gnus-group-topics' to sort the groups.
 If ALL is non-nil, list groups that have no unread articles.
 If LOWEST is non-nil, list all newsgroups of level LOWEST or higher."
   (set-buffer gnus-group-buffer)
-  (setq gnus-topic-indentation "")
   (let ((buffer-read-only nil)
         (lowest (or lowest 1))
        tlist info)
@@ -135,32 +133,45 @@ If LOWEST is non-nil, list all newsgroups of level LOWEST or higher."
   (setq gnus-group-list-mode (cons level all))
   (run-hooks 'gnus-group-prepare-hook))
 
-(defun gnus-topic-prepare-topic (topic level &optional list-level all)
-  "Insert TOPIC into the group buffer."
+(defun gnus-topic-prepare-topic (topic level &optional list-level all silent)
+  "Insert TOPIC into the group buffer.
+If SILENT, don't insert anything.  Return the number of unread
+articles in the topic and its subtopics."
   (let* ((type (pop topic))
         (entries (gnus-topic-find-groups (car type) list-level all))
-        (visiblep (eq (nth 1 type) 'visible))
-        info entry)
-    ;; Insert the topic line.
-    (gnus-topic-insert-topic-line 
-     (car type) visiblep
-     (not (eq (nth 2 type) 'hidden))
-     level entries)
-    (when visiblep
-      ;; Insert all the groups that belong in this topic.
-      (while entries
-       (setq entry (pop entries)
-             info (nth 2 entry))
+        (visiblep (and (eq (nth 1 type) 'visible) (not silent)))
+        (gnus-group-indentation (make-string (* 2 level) ? ))
+        (beg (progn (beginning-of-line) (point)))
+        (topic (reverse topic))
+        (unread 0)
+        info entry end)
+    ;; Insert any sub-topics.
+    (while topic
+      (incf unread
+           (gnus-topic-prepare-topic 
+            (pop topic) (1+ level) list-level all
+            (not visiblep))))
+    (setq end (point))
+    (goto-char beg)
+    ;; Insert all the groups that belong in this topic.
+    (while (setq info (nth 2 (setq entry (pop entries))))
+      (when visiblep 
        (gnus-group-insert-group-line 
         (gnus-info-group info)
         (gnus-info-level info) (gnus-info-marks info) 
-        (car entry) (gnus-info-method info))))
-    ;; Insert any sub-topics.
-    (when (or visiblep
-             (and (not gnus-topic-hide-subtopics)
-                  (eq (nth 2 type) 'shown)))
-      (while topic
-       (gnus-topic-prepare-topic (pop topic) (1+ level) list-level all)))))
+        (car entry) (gnus-info-method info)))
+      (when (numberp (car entry))
+       (incf unread (car entry))))
+    (goto-char beg)
+    ;; Insert the topic line.
+    (unless silent
+      (gnus-extent-start-open (point))
+      (gnus-topic-insert-topic-line 
+       (car type) visiblep
+       (not (eq (nth 2 type) 'hidden))
+       level entries unread))
+    (goto-char end)
+    unread))
 
 (defun gnus-topic-find-groups (topic &optional level all)
   "Return entries for all visible groups in TOPIC."
@@ -240,20 +251,20 @@ If LOWEST is non-nil, list all newsgroups of level LOWEST or higher."
   "Return non-nil if the current topic is visible."
   (get-text-property (gnus-point-at-bol) 'gnus-topic-visible))
 
-(defun gnus-topic-insert-topic-line (name visiblep shownp level entries)
-  (let* ((visible (if (and visiblep shownp) "" "..."))
+(defun gnus-topic-insert-topic-line (name visiblep shownp level entries 
+                                         &optional unread)
+  (let* ((visible (if visiblep "" "..."))
         (indentation (make-string (* 2 level) ? ))
-        (number-of-articles (gnus-topic-articles-in-topic entries))
+        (total-number-of-articles unread)
         (number-of-groups (length entries))
         (active-topic (eq gnus-topic-alist gnus-topic-active-alist)))
-    (setq gnus-topic-indentation "")
     (beginning-of-line)
     ;; Insert the text.
     (add-text-properties 
      (point)
      (prog1 (1+ (point)) 
        (eval gnus-topic-line-format-spec)
-       (gnus-group-remove-excess-properties))
+       (gnus-topic-remove-excess-properties))
      (list 'gnus-topic name
           'gnus-topic-level level
           'gnus-active active-topic
@@ -367,10 +378,14 @@ If LOWEST is non-nil, list all newsgroups of level LOWEST or higher."
     out))
 
 (defun gnus-topic-goto-topic (topic)
-  (goto-char (point-min))
-  (while (and (not (equal topic (gnus-group-topic-name)))
-             (zerop (forward-line 1))))
-  (gnus-group-topic-name))
+  (let ((orig (point)))
+    (goto-char (point-min))
+    (while (and (not (equal topic (gnus-group-topic-name)))
+               (zerop (forward-line 1))))
+    (or (gnus-group-topic-name)
+       (progn
+         (goto-char orig)
+         nil))))
   
 (defun gnus-topic-update-topic ()
   (when (and (eq major-mode 'gnus-group-mode)
@@ -381,20 +396,33 @@ If LOWEST is non-nil, list all newsgroups of level LOWEST or higher."
       (gnus-group-goto-group group)
       (gnus-group-position-point))))
 
-(defun gnus-topic-update-topic-line ()
-  (let* ((buffer-read-only nil)
-        (topic (gnus-group-topic-name))
-        (entry (gnus-topic-find-topology topic))
-        (level (car entry))
-        (type (nth 1 entry))
-        (entries (gnus-topic-find-groups (car type)))
-        (visiblep (eq (nth 1 type) 'visible)))
+(defun gnus-topic-update-topic-line (&optional topic level)
+  (unless topic
+    (setq topic gnus-topic-topology)
+    (setq level 0))
+  (let* ((type (pop topic))
+        (buffer-read-only nil)
+        (entries (gnus-topic-find-groups 
+                  (car type) (car gnus-group-list-mode)
+                  (cdr gnus-group-list-mode)))
+        (visiblep (eq (nth 1 type) 'visible))
+        (unread 0)
+        info entry end)
+    ;; Tally any sub-topics.
+    (while topic
+      (incf unread (gnus-topic-update-topic-line (pop topic) (1+ level))))
+    ;; Tally all the groups that belong in this topic.
+    (while (setq info (nth 2 (setq entry (pop entries))))
+      (when (numberp (car entry))
+       (incf unread (car entry))))
     ;; Insert the topic line.
-    (when topic
-      (gnus-delete-line)
+    (when (gnus-topic-goto-topic (car type))
       (gnus-topic-insert-topic-line 
        (car type) visiblep
-       (not (eq (nth 2 type) 'hidden)) level entries))))
+       (not (eq (nth 2 type) 'hidden))
+       level entries unread)
+      (gnus-delete-line))
+    unread))
 
 (defun gnus-topic-grok-active (&optional force)
   "Parse all active groups and create topic structures for them."
@@ -521,7 +549,6 @@ If LOWEST is non-nil, list all newsgroups of level LOWEST or higher."
     (setq gnus-topic-mode 
          (if (null arg) (not gnus-topic-mode)
            (> (prefix-numeric-value arg) 0)))
-    (make-local-variable 'gnus-group-prepare-function)
     ;; Infest Gnus with topics.
     (when gnus-topic-mode
       (when (and menu-bar-mode
@@ -536,7 +563,11 @@ If LOWEST is non-nil, list all newsgroups of level LOWEST or higher."
        (push (cons 'gnus-topic-mode gnus-topic-mode-map)
              minor-mode-map-alist))
       (add-hook 'gnus-summary-exit-hook 'gnus-topic-update-topic)
+      (make-local-variable 'gnus-group-prepare-function)
       (setq gnus-group-prepare-function 'gnus-group-prepare-topics)
+      (make-local-variable 'gnus-group-goto-next-group-function)
+      (setq gnus-group-goto-next-group-function 
+           'gnus-topic-goto-next-group)
       (setq gnus-group-change-level-function 'gnus-topic-change-level)
       (run-hooks 'gnus-topic-mode-hook)
       ;; We check the topology.
@@ -652,6 +683,31 @@ group."
       (let ((entry (assoc (caar gnus-topic-topology) gnus-topic-alist)))
        (setcdr entry (cons group (cdr entry)))))))
 
+(defun gnus-topic-goto-next-group (group props)
+  "Go to group or the next group after group."
+  (if (null group)
+      (gnus-topic-goto-topic (cadr (memq 'gnus-topic props)))
+    (if (gnus-group-goto-group group)
+       t
+      ;; The group is no longer visible.
+      (let* ((list (assoc (gnus-group-topic group) gnus-topic-alist))
+            (after (cdr (member group (cdr list)))))
+       ;; First try to put point on a group after the current one.
+       (while (and after
+                   (not (gnus-group-goto-group (car after))))
+         (setq after (cdr after)))
+       ;; Then try to put point on a group before point.
+       (unless after
+         (setq after (cdr (member group (reverse (cdr list)))))
+         (while (and after 
+                     (not (gnus-group-goto-group (car after))))
+           (setq after (cdr after))))
+       ;; Finally, just put point on the topic.
+       (unless after
+         (gnus-topic-goto-topic (car list))
+         (setq after nil))
+       t))))
+
 (defun gnus-topic-kill-group (&optional n discard)
   "Kill the next N groups."
   (interactive "P")
@@ -672,6 +728,11 @@ group."
         (car item) (gnus-topic-parent-topic previous) previous))
     (let* ((prev (gnus-group-group-name))
           (gnus-topic-inhibit-change-level t)
+          (gnus-group-indentation
+           (make-string 
+            (* 2 (or (save-excursion
+                       (gnus-topic-goto-topic (gnus-group-parent-topic))
+                       (gnus-group-topic-level)) 0)) ? ))
           yanked group alist)
       ;; We first yank the groups the normal way...
       (setq yanked (gnus-group-yank-group arg))
@@ -786,7 +847,8 @@ If UNINDENT, remove an indentation."
       (when topic
        (gnus-topic-goto-topic topic)
        (gnus-topic-kill-group)
-       (gnus-topic-create-topic topic parent)))))
+       (gnus-topic-create-topic topic parent)
+       (gnus-topic-goto-topic topic)))))
 
 (defun gnus-topic-unindent ()
   "Unindent a topic."
@@ -799,7 +861,8 @@ If UNINDENT, remove an indentation."
     (when topic
       (gnus-topic-goto-topic topic)
       (gnus-topic-kill-group)
-      (gnus-topic-create-topic topic grandparent))))
+      (gnus-topic-create-topic topic grandparent)
+      (gnus-topic-goto-topic topic))))
 
 (defun gnus-topic-list-active (&optional force)
   "List all groups that Gnus knows about in a topicsified fashion.
index e2663b7..b811407 100644 (file)
@@ -254,6 +254,38 @@ HEADER is a regexp to match a header.  For a fuller explanation, see
 ;(eval-when-compile
 ;  (defvar browse-url-browser-function))
 
+;;; Group mode highlighting.
+
+(defvar gnus-group-highlight
+  (cond 
+   ((not (eq gnus-display-type 'color))
+    '((mailp . bold)
+      ((= unread 0) . italic)))
+   ((eq gnus-background-mode 'dark)
+    `(((not mailp) .
+       ,(custom-face-lookup "ForestGreen" nil nil t nil nil))
+      ((zerop unread) .
+       ,(custom-face-lookup "Blue" nil nil t nil nil))))
+   (t
+    `(((not mailp) .
+       ,(custom-face-lookup "ForestGreen" nil nil t nil nil))
+      ((zerop unread) .
+       ,(custom-face-lookup "Blue" nil nil t nil nil)))))
+  "Group lines are highlighted with the FACE for the first FORM which
+evaluate to a non-nil value.  
+
+Point will be at the beginning of the line when FORM is evaluated.
+Variables bound when these forms are evaluated include:
+
+group: The group name.
+unread: The number of unread articles.
+method: The select method.
+mailp: Whether the select method is a mail method.
+level: The level of the group.
+score: The score of the group.
+")
+
+
 ;;; Internal variables.
 
 (defvar gnus-button-marker-list nil)
@@ -1000,6 +1032,36 @@ If nil, the user will be asked for a duration.")
          (funcall gnus-summary-highlight-line-function article face))))
     (goto-char p)))
 
+(defun gnus-group-highlight-line ()
+  "Highlight the current line according to `gnus-group-highlight'."
+  (let* ((list gnus-group-highlight)
+        (p (point))
+        (end (progn (end-of-line) (point)))
+        ;; now find out where the line starts and leave point there.
+        (beg (progn (beginning-of-line) (point)))
+        (group (gnus-group-group-name))
+        (entry (gnus-group-entry group))
+        (unread (if (numberp (car entry)) (car entry) 0))
+        (info (nth 2 entry))
+        (method (gnus-server-get-method group (gnus-info-method info)))
+        (mailp (memq 'mail (assoc (symbol-name
+                                   (car (or method gnus-select-method)))
+                                  gnus-valid-select-methods)))
+        (level (gnus-info-level info))
+        (score (gnus-info-score info))
+        (inhibit-read-only t))
+    ;; Eval the cars of the lists until we find a match.
+    (while (and list
+               (not (eval (caar list))))
+      (setq list (cdr list)))
+    (let ((face (cdar list)))
+      (unless (eq face (get-text-property beg 'face))
+       (put-text-property 
+        beg end 'face 
+        (setq face (if (boundp face) (symbol-value face) face)))
+       (gnus-extent-start-open beg)))
+    (goto-char p)))
+
 ;;;
 ;;; gnus-carpal
 ;;;
@@ -1227,7 +1289,7 @@ If N is negative, move backward instead."
       (when (get-text-property (point) 'gnus-callback)
        (goto-char (funcall function (point) 'gnus-callback nil limit)))
       ;; Go to the next (or previous) button.
-      (funcall function (point) 'gnus-callback nil limit)
+      (gnus-goto-char (funcall function (point) 'gnus-callback nil limit))
       (decf n))
     (unless (zerop n)
       (gnus-message 5 "No more buttons"))
index 09fdb05..edd0149 100644 (file)
@@ -138,6 +138,17 @@ It is provided only to ease porting of broken FSF Emacs programs."
      '(gnus-topic nil gnus-topic-level nil gnus-topic-visible nil))
     (goto-char end)))
                  
+(defun gnus-xmas-topic-remove-excess-properties ()
+  (let ((end (point))
+       (beg (progn (forward-line -1) (point))))
+    (remove-text-properties beg end '(gnus-group nil))
+    (goto-char end)))
+
+(defun gnus-xmas-extent-start-open (point)
+  (map-extents (lambda (extent arg)
+                (set-extent-property extent 'start-open t))
+              nil point (min (1+ (point)) (point-max))))
+                 
 (defun gnus-xmas-copy-article-buffer (&optional article-buffer)
   (setq gnus-article-copy (get-buffer-create " *gnus article copy*"))
   (buffer-disable-undo gnus-article-copy)
@@ -169,11 +180,6 @@ call it with the value of the `gnus-data' text property."
 (defun gnus-xmas-move-overlay (extent start end &optional buffer)
   (set-extent-endpoints extent start end))
 
-(defun gnus-xmas-make-overlay (from to &optional buf)
-  (let ((extent (make-extent from to buf)))
-    (set-extent-property extent 'detachable nil)
-    extent))
-
 ;; Fixed by Christopher Davis <ckd@loiosh.kei.com>.
 (defun gnus-xmas-article-add-button (from to fun &optional data)
   "Create a button between FROM and TO with callback FUN and data DATA."
@@ -289,10 +295,11 @@ call it with the value of the `gnus-data' text property."
   (or (face-differs-from-default-p 'underline)
       (funcall (intern "set-face-underline-p") 'underline t))
 
-  (fset 'gnus-make-overlay 'gnus-xmas-make-overlay)
+  (fset 'gnus-make-overlay 'make-extent)
   (fset 'gnus-overlay-put 'set-extent-property)
   (fset 'gnus-move-overlay 'gnus-xmas-move-overlay)
   (fset 'gnus-overlay-end 'extent-end-position)
+  (fset 'gnus-extent-detached-p 'extent-detached-p)
       
   (fset 'set-text-properties 'gnus-xmas-set-text-properties)
 
@@ -374,6 +381,9 @@ pounce directly on the real variables themselves.")
   (fset 'gnus-summary-recenter 'gnus-xmas-summary-recenter)
   (fset 'gnus-group-remove-excess-properties
        'gnus-xmas-group-remove-excess-properties)
+  (fset 'gnus-topic-remove-excess-properties
+       'gnus-xmas-topic-remove-excess-properties)
+  (fset 'gnus-extent-start-open 'gnus-xmas-extent-start-open)
   (fset 'gnus-copy-article-buffer 'gnus-xmas-copy-article-buffer)
   (fset 'gnus-article-push-button 'gnus-xmas-article-push-button)
   (fset 'gnus-article-add-button 'gnus-xmas-article-add-button)
@@ -406,7 +416,7 @@ pounce directly on the real variables themselves.")
        (while path
          (setq dir (concat
                     (file-name-directory (directory-file-name (car path)))
-                    "etc/"))
+                    "etc/gnus/"))
          (if (and (file-exists-p dir)
                   (file-directory-p dir)
                   (file-exists-p (concat dir "gnus-group-exit-icon-up.xpm")))
index 7ff6d15..ad4210f 100644 (file)
@@ -1489,6 +1489,14 @@ The default function `gnus-summary-highlight-line' will
 highlight the line according to the `gnus-summary-highlight'
 variable.")
 
+(defvar gnus-group-update-hook '(gnus-group-highlight-line)
+  "*A hook called when a group line is changed.
+The hook will not be called if `gnus-visual' is nil.
+
+The default function `gnus-group-highlight-line' will
+highlight the line according to the `gnus-group-highlight'
+variable.")
+
 (defvar gnus-mark-article-hook (list 'gnus-summary-mark-unread-as-read)
   "*A hook called when an article is selected for the first time.
 The hook is intended to mark an article as read (or unread)
@@ -1512,8 +1520,13 @@ It is called with three parameters -- GROUP, LEVEL and OLDLEVEL.")
 \f
 ;; Internal variables
 
+(defvar gnus-topic-indentation "") ;; Obsolete variable.
+
 (defvar gnus-override-subscribe-method nil)
 
+(defvar gnus-group-goto-next-group-function nil
+  "Function to override finding the next group after listing groups.")
+
 (defconst gnus-article-mark-lists
   '((marked . tick) (replied . reply)
     (expirable . expire) (killed . killed)
@@ -1526,7 +1539,7 @@ It is called with three parameters -- GROUP, LEVEL and OLDLEVEL.")
 (defvar gnus-newsgroup-selected-overlay nil)
 
 (defvar gnus-inhibit-hiding nil)
-(defvar gnus-topic-indentation "")
+(defvar gnus-group-indentation "")
 (defvar gnus-inhibit-limiting nil)
 
 (defvar gnus-article-mode-map nil)
@@ -1579,7 +1592,7 @@ It is called with three parameters -- GROUP, LEVEL and OLDLEVEL.")
     (?p gnus-tmp-process-marked ?c)
     (?s gnus-tmp-news-server ?s)
     (?n gnus-tmp-news-method ?s)
-    (?P gnus-topic-indentation ?s)
+    (?P gnus-group-indentation ?s)
     (?z gnus-tmp-news-method-string ?s)
     (?u gnus-tmp-user-defined ?s)))
 
@@ -1658,7 +1671,7 @@ variable (string, integer, character, etc).")
   "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
   "The mail address of the Gnus maintainers.")
 
-(defconst gnus-version "September Gnus v0.30"
+(defconst gnus-version "September Gnus v0.31"
   "Version number for this version of Gnus.")
 
 (defvar gnus-info-nodes
@@ -1946,6 +1959,7 @@ Thank you for your help in stamping out bugs.
       gnus-server-make-menu-bar gnus-article-make-menu-bar
       gnus-browse-make-menu-bar gnus-highlight-selected-summary
       gnus-summary-highlight-line gnus-carpal-setup-buffer
+      gnus-group-highlight
       gnus-article-add-button gnus-insert-next-page-button
       gnus-insert-prev-page-button gnus-visual-turn-off-edit-menu)
      ("gnus-vis" :interactive t
@@ -2066,6 +2080,10 @@ Thank you for your help in stamping out bugs.
   "Get the currently computed number of unread articles in GROUP."
   `(car (gnus-gethash ,group gnus-newsrc-hashtb)))
 
+(defmacro gnus-group-entry (group)
+  "Get the newsrc entry for GROUP."
+  `(gnus-gethash ,group gnus-newsrc-hashtb))
+
 (defmacro gnus-active (group)
   "Get active info on GROUP."
   `(gnus-gethash ,group gnus-active-hashtb))
@@ -2283,7 +2301,7 @@ Thank you for your help in stamping out bugs.
 (defun gnus-group-line-format-spec ()
   (insert gnus-tmp-marked-mark gnus-tmp-subscribed
          gnus-tmp-process-marked
-         gnus-topic-indentation
+         gnus-group-indentation
          (format "%5s: " gnus-tmp-number-of-unread))
   (put-text-property
    (point)
@@ -4246,32 +4264,36 @@ listed."
   (gnus-group-setup-buffer)            ;May call from out of group buffer
   (gnus-update-format-specifications)
   (let ((case-fold-search nil)
+       (props (text-properties-at (gnus-point-at-bol)))
        (group (gnus-group-group-name)))
     (funcall gnus-group-prepare-function level unread lowest)
     (if (zerop (buffer-size))
        (gnus-message 5 gnus-no-groups-message)
-      (goto-char (point-min))
-      (if (not group)
-         ;; Go to the first group with unread articles.
-         (gnus-group-search-forward nil nil nil t)
-       ;; Find the right group to put point on.  If the current group
-       ;; has disappeared in the new listing, try to find the next
-       ;; one.  If no next one can be found, just leave point at the
-       ;; first newsgroup in the buffer.
-       (if (not (gnus-goto-char
-                 (text-property-any
-                  (point-min) (point-max)
-                  'gnus-group (gnus-intern-safe group gnus-active-hashtb))))
-           (let ((newsrc (nthcdr 3 (gnus-gethash group gnus-newsrc-hashtb))))
-             (while (and newsrc
-                         (not (gnus-goto-char
-                               (text-property-any
-                                (point-min) (point-max) 'gnus-group
-                                (gnus-intern-safe
-                                 (car (car newsrc)) gnus-active-hashtb)))))
-               (setq newsrc (cdr newsrc)))
-             (or newsrc (progn (goto-char (point-max))
-                               (forward-line -1))))))
+      (goto-char (point-max))
+      (when (or (not gnus-group-goto-next-group-function)
+               (not (funcall gnus-group-goto-next-group-function 
+                             group props)))
+       (if (not group)
+           ;; Go to the first group with unread articles.
+           (gnus-group-search-forward t)
+         ;; Find the right group to put point on.  If the current group
+         ;; has disappeared in the new listing, try to find the next
+         ;; one.        If no next one can be found, just leave point at the
+         ;; first newsgroup in the buffer.
+         (if (not (gnus-goto-char
+                   (text-property-any
+                    (point-min) (point-max)
+                    'gnus-group (gnus-intern-safe group gnus-active-hashtb))))
+             (let ((newsrc (cdddr (gnus-gethash group gnus-newsrc-hashtb))))
+               (while (and newsrc
+                           (not (gnus-goto-char
+                                 (text-property-any
+                                  (point-min) (point-max) 'gnus-group
+                                  (gnus-intern-safe
+                                   (car (car newsrc)) gnus-active-hashtb)))))
+                 (setq newsrc (cdr newsrc)))
+               (or newsrc (progn (goto-char (point-max))
+                                 (forward-line -1)))))))
       ;; Adjust cursor point.
       (gnus-group-position-point))))
 
@@ -4287,7 +4309,6 @@ If ALL is non-nil, list groups that have no unread articles.
 If LOWEST is non-nil, list all newsgroups of level LOWEST or higher.
 If REGEXP, only list groups matching REGEXP."
   (set-buffer gnus-group-buffer)
-  (setq gnus-topic-indentation "")
   (let ((buffer-read-only nil)
        (newsrc (cdr gnus-newsrc-alist))
        (lowest (or lowest 1))
@@ -4548,6 +4569,7 @@ increase the score of each group you read."
   "Update the current line in the group buffer."
   (let* ((buffer-read-only nil)
         (group (gnus-group-group-name))
+        (gnus-group-indentation (gnus-group-group-indentation))
         (entry (and group (gnus-gethash group gnus-newsrc-hashtb))))
     (and entry
         (not (gnus-ephemeral-group-p group))
@@ -4579,9 +4601,6 @@ increase the score of each group you read."
           (- (1+ (cdr active)) (car active)) 0)
        nil))))
 
-;; Dummy function redefined when running under XEmacs.
-(defalias 'gnus-group-remove-excess-properties 'ignore)
-
 (defun gnus-group-insert-group-line
   (gnus-tmp-group gnus-tmp-level gnus-tmp-marked number
                  gnus-tmp-method)
@@ -4645,7 +4664,12 @@ increase the score of each group you read."
                        (string-to-int gnus-tmp-number-of-unread)
                      t)
        gnus-marked ,gnus-tmp-marked-mark
+       gnus-indentation ,gnus-group-indentation
        gnus-level ,gnus-tmp-level))
+    (when (gnus-visual-p 'group-highlight 'highlight)
+      (forward-line -1)
+      (run-hooks 'gnus-group-update-hook)
+      (forward-line))
     ;; Allow XEmacs to remove front-sticky text properties.
     (gnus-group-remove-excess-properties)))
 
@@ -4673,8 +4697,9 @@ already."
                          loc (point-max) 'gnus-group ident))
          (setq found t)
          (goto-char loc)
-         (gnus-delete-line)
-         (gnus-group-insert-group-line-info group)
+         (let ((gnus-group-indentation (gnus-group-group-indentation)))
+           (gnus-delete-line)
+           (gnus-group-insert-group-line-info group))
          (setq loc (1+ loc)))
        (if (or found visible-only)
            ()
@@ -4693,7 +4718,8 @@ already."
              (setq entry (cdr entry)))
            (or entry (goto-char (point-max))))
          ;; Finally insert the line.
-         (gnus-group-insert-group-line-info group))
+         (let ((gnus-group-indentation (gnus-group-group-indentation)))
+           (gnus-group-insert-group-line-info group)))
        (gnus-group-set-mode-line)))))
 
 (defun gnus-group-set-mode-line ()
@@ -4725,6 +4751,10 @@ already."
   "Get the level of the newsgroup on the current line."
   (get-text-property (gnus-point-at-bol) 'gnus-level))
 
+(defun gnus-group-group-indentation ()
+  "Get the indentation of the newsgroup on the current line."
+  (or (get-text-property (gnus-point-at-bol) 'gnus-indentation) ""))
+
 (defun gnus-group-group-unread ()
   "Get the number of unread articles of the newsgroup on the current line."
   (get-text-property (gnus-point-at-bol) 'gnus-unread))
@@ -4824,7 +4854,7 @@ If UNMARK, remove the mark instead."
       (goto-char beg)
       (- num (gnus-group-mark-group num unmark)))))
 
-(defun gnus-group-mark-buffer (unmark)
+(defun gnus-group-mark-buffer (&optional unmark)
   "Mark all groups in the buffer.
 If UNMARK, remove the mark instead."
   (interactive "P")
@@ -6805,6 +6835,9 @@ The following commands are available:
 (defmacro gnus-data-number (data)
   `(car ,data))
 
+(defmacro gnus-data-set-number (data number)
+  `(setcar ,data ,number))
+
 (defmacro gnus-data-mark (data)
   `(nth 1 ,data))
 
@@ -7583,11 +7616,14 @@ If NO-DISPLAY, don't generate a summary buffer."
                      (delq number gnus-newsgroup-unselected)))
            (push number gnus-newsgroup-ancient)))))))
 
-(defun gnus-summary-update-article (article)
+(defun gnus-summary-update-article (article &optional header)
   "Update ARTICLE in the summary buffer."
-  (let ((id (mail-header-id (gnus-summary-article-header article))))
+  (let ((id (mail-header-id (gnus-summary-article-header article)))
+       (data (gnus-data-find article)))
     (setcar (gnus-id-to-thread id) nil)
-    (gnus-summary-insert-subject id)))
+    (gnus-summary-insert-subject id)
+    ;; Set the (possibly) new article number in the data structure.
+    (gnus-data-set-number data (gnus-id-to-article id))))
 
 (defun gnus-rebuild-thread (id)
   "Rebuild the thread containing ID."
@@ -10790,7 +10826,8 @@ re-spool using this method.
 For this function to work, both the current newsgroup and the
 newsgroup that you want to move to have to support the `request-move'
 and `request-accept' functions."
-  (interactive (list current-prefix-arg nil nil 'move))
+  (interactive "P")
+  (unless action (setq action 'move))
   (gnus-set-global-variables)
   ;; Check whether the source group supports the required functions.
   (cond ((and (eq action 'move)
@@ -10821,8 +10858,8 @@ and `request-accept' functions."
       (set (intern (format "gnus-current-%s-group" action)) to-newsgroup))
     (setq to-method (if select-method (list select-method "")
                      (gnus-find-method-for-group to-newsgroup)))
-    (when (equal to-newsgroup gnus-newsgroup-name)
-      (error "Can't %s to the same group you're already in" action))
+    ;;(when (equal to-newsgroup gnus-newsgroup-name)
+    ;;(error "Can't %s to the same group you're already in" action))
     ;; Check the method we are to move this article to...
     (or (gnus-check-backend-function 'request-accept-article (car to-method))
        (error "%s does not support article copying" (car to-method)))
@@ -11915,9 +11952,7 @@ with that article."
   "Make current article child of the marked (or previous) article.
 
 Note that the re-threading will only work if `gnus-thread-ignore-subject'
-is non-nil or the Subject: of both articles are the same.
-
-The change will not be visible until the next group retrieval."
+is non-nil or the Subject: of both articles are the same."
   (interactive)
   (or (not (gnus-group-read-only-p))
       (error "The current newsgroup does not support article editing."))
@@ -11955,6 +11990,7 @@ The change will not be visible until the next group retrieval."
            (error "Couldn't replace article."))
        (set-buffer gnus-summary-buffer)
        (gnus-summary-unmark-all-processable)
+       (gnus-summary-rethread-current)
        (message "Article %d is now the child of article %d."
                 current-article parent-article)))))
 
@@ -12817,103 +12853,107 @@ The following commands are available:
 
 (defun gnus-request-article-this-buffer (article group)
   "Get an article and insert it into this buffer."
-  (let (sparse)
-    (prog1
-       (save-excursion
-         (if (get-buffer gnus-original-article-buffer)
-             (set-buffer (get-buffer gnus-original-article-buffer))
-           (set-buffer (get-buffer-create gnus-original-article-buffer))
-           (buffer-disable-undo (current-buffer))
-           (setq major-mode 'gnus-original-article-mode)
-           (setq buffer-read-only t)
-           (gnus-add-current-to-buffer-list))
+  (prog1
+      (save-excursion
+       (if (get-buffer gnus-original-article-buffer)
+           (set-buffer (get-buffer gnus-original-article-buffer))
+         (set-buffer (get-buffer-create gnus-original-article-buffer))
+         (buffer-disable-undo (current-buffer))
+         (setq major-mode 'gnus-original-article-mode)
+         (setq buffer-read-only t)
+         (gnus-add-current-to-buffer-list))
 
-         (setq group (or group gnus-newsgroup-name))
+       (setq group (or group gnus-newsgroup-name))
 
-         ;; Open server if it has closed.
-         (gnus-check-server (gnus-find-method-for-group group))
+       ;; Open server if it has closed.
+       (gnus-check-server (gnus-find-method-for-group group))
 
-         ;; Using `gnus-request-article' directly will insert the article into
-         ;; `nntp-server-buffer' - so we'll save some time by not having to
-         ;; copy it from the server buffer into the article buffer.
+       ;; Using `gnus-request-article' directly will insert the article into
+       ;; `nntp-server-buffer' - so we'll save some time by not having to
+       ;; copy it from the server buffer into the article buffer.
 
-         ;; We only request an article by message-id when we do not have the
-         ;; headers for it, so we'll have to get those.
-         (and (stringp article)
-              (let ((gnus-override-method gnus-refer-article-method))
-                (gnus-read-header article)))
+       ;; We only request an article by message-id when we do not have the
+       ;; headers for it, so we'll have to get those.
+       (when (stringp article)
+         (let ((gnus-override-method gnus-refer-article-method))
+           (gnus-read-header article)))
 
-         ;; If the article number is negative, that means that this article
-         ;; doesn't belong in this newsgroup (possibly), so we find its
-         ;; message-id and request it by id instead of number.
-         (if (not (numberp article))
-             ()
-           (save-excursion
-             (set-buffer gnus-summary-buffer)
-             (let ((header (gnus-summary-article-header article)))
-               (if (< article 0)
-                   (cond 
-                    ((memq article gnus-newsgroup-sparse)
-                     ;; This is a sparse gap article.
-                     (setq article (mail-header-id header)))
-                    ((vectorp header)
-                     ;; It's a real article.
-                     (setq article (mail-header-id header)))
-                    (t
-                     ;; It is an extracted pseudo-article.
-                     (setq article 'pseudo)
-                     (gnus-request-pseudo-article header))))
+       ;; If the article number is negative, that means that this article
+       ;; doesn't belong in this newsgroup (possibly), so we find its
+       ;; message-id and request it by id instead of number.
+       (when (numberp article)
+         (save-excursion
+           (set-buffer gnus-summary-buffer)
+           (let ((header (gnus-summary-article-header article)))
+             (if (< article 0)
+                 (cond 
+                  ((memq article gnus-newsgroup-sparse)
+                   ;; This is a sparse gap article.
+                   (setq article (mail-header-id header)))
+                  ((vectorp header)
+                   ;; It's a real article.
+                   (setq article (mail-header-id header)))
+                  (t
+                   ;; It is an extracted pseudo-article.
+                   (setq article 'pseudo)
+                   (gnus-request-pseudo-article header))))
                
-               (let ((method (gnus-find-method-for-group 
-                              gnus-newsgroup-name)))
-                 (if (not (eq (car method) 'nneething))
-                     ()
-                   (let ((dir (concat (file-name-as-directory (nth 1 method))
-                                      (mail-header-subject header))))
-                     (if (file-directory-p dir)
-                         (progn
-                           (setq article 'nneething)
-                           (gnus-group-enter-directory dir)))))))))
+             (let ((method (gnus-find-method-for-group 
+                            gnus-newsgroup-name)))
+               (if (not (eq (car method) 'nneething))
+                   ()
+                 (let ((dir (concat (file-name-as-directory (nth 1 method))
+                                    (mail-header-subject header))))
+                   (if (file-directory-p dir)
+                       (progn
+                         (setq article 'nneething)
+                         (gnus-group-enter-directory dir)))))))))
 
-         (cond
-          ;; We first check `gnus-original-article-buffer'.
-          ((and (equal (car gnus-original-article) group)
-                (eq (cdr gnus-original-article) article))
-           ;; We don't have to do anything, since it's already where we
-           ;; want it.
-           'article)
-          ;; Check the backlog.
-          ((and gnus-keep-backlog
-                (gnus-backlog-request-article group article (current-buffer)))
-           'article)
-          ;; Check the cache.
-          ((and gnus-use-cache
-                (numberp article)
-                (gnus-cache-request-article article group))
-           'article)
-          ;; Get the article and put into the article buffer.
-          ((or (stringp article) (numberp article))
-           (let ((gnus-override-method
-                  (and (stringp article) gnus-refer-article-method))
-                 (buffer-read-only nil))
-             (erase-buffer)
-             (gnus-kill-all-overlays)
-             (if (gnus-request-article article group (current-buffer))
-                 (progn
-                   (and gnus-keep-backlog
-                        (gnus-backlog-enter-article
-                         group article (current-buffer)))
-                   'article))))
-          ;; It was a pseudo.
-          (t article)))
-      (unless sparse
-       (setq gnus-original-article (cons group article))
-       (unless (equal (buffer-name (current-buffer))
-                      (buffer-name (get-buffer gnus-original-article-buffer)))
-         (let (buffer-read-only)
+       (cond
+        ;; We first check `gnus-original-article-buffer'.
+        ((and (equal (car gnus-original-article) group)
+              (eq (cdr gnus-original-article) article))
+         ;; We don't have to do anything, since it's already where we
+         ;; want it.
+         'article)
+        ;; Check the backlog.
+        ((and gnus-keep-backlog
+              (gnus-backlog-request-article group article (current-buffer)))
+         'article)
+        ;; Check the cache.
+        ((and gnus-use-cache
+              (numberp article)
+              (gnus-cache-request-article article group))
+         'article)
+        ;; Get the article and put into the article buffer.
+        ((or (stringp article) (numberp article))
+         (let ((gnus-override-method
+                (and (stringp article) gnus-refer-article-method))
+               (buffer-read-only nil))
            (erase-buffer)
            (gnus-kill-all-overlays)
-           (insert-buffer-substring gnus-original-article-buffer)))))))
+           (if (gnus-request-article article group (current-buffer))
+               (progn
+                 (and gnus-keep-backlog
+                      (gnus-backlog-enter-article
+                       group article (current-buffer)))
+                 'article))))
+        ;; It was a pseudo.
+        (t article)))
+
+    ;; Take the article from the original article buffer
+    ;; and place it in the buffer it's supposed to be in.
+    (setq gnus-original-article (cons group article))
+    (unless (equal (buffer-name (current-buffer))
+                  (buffer-name (get-buffer gnus-original-article-buffer)))
+      (let (buffer-read-only)
+       (erase-buffer)
+       (gnus-kill-all-overlays)
+       (insert-buffer-substring gnus-original-article-buffer)))
+    
+    ;; Update sparse articles.
+    (when (memq article gnus-newsgroup-sparse)
+      (gnus-summary-update-article article))))
 
 (defun gnus-read-header (id)
   "Read the headers of article ID and enter them into the Gnus system."
@@ -14166,8 +14206,8 @@ If CONFIRM is non-nil, the user will be asked for an NNTP server."
        (gnus-open-server gnus-select-method)
        (gnus-y-or-n-p
        (format
-        "%s open error: '%s'.  Continue? "
-        (nth 1 gnus-select-method)
+        "%s (%s) open error: '%s'.     Continue? "
+        (car gnus-select-method) (cadr gnus-select-method)
         (gnus-status-message gnus-select-method)))
        (progn
         (gnus-message 1 "Couldn't open server on %s"
@@ -15181,14 +15221,15 @@ Returns whether the updating was successful."
 ;; Get the active file(s) from the backend(s).
 (defun gnus-read-active-file ()
   (gnus-group-set-mode-line)
-  (let ((methods (cons gnus-message-archive-method
-                      (if (gnus-check-server gnus-select-method)
-                          ;; The native server is available.
-                          (cons gnus-select-method 
-                                gnus-secondary-select-methods)
-                        ;; The native server is down, so we just do the
-                        ;; secondary ones.
-                        gnus-secondary-select-methods)))
+  (let ((methods (nconc (copy-sequence
+                        (if (gnus-check-server gnus-select-method)
+                            ;; The native server is available.
+                            (cons gnus-select-method 
+                                  gnus-secondary-select-methods)
+                          ;; The native server is down, so we just do the
+                          ;; secondary ones.
+                          gnus-secondary-select-methods))
+                       (list gnus-message-archive-method)))
        list-type)
     (setq gnus-have-read-active-file nil)
     (save-excursion
@@ -15236,9 +15277,10 @@ Returns whether the updating was successful."
             (t
              (if (not (gnus-request-list method))
                  (progn
-                   (gnus-message 1 "Cannot read active file from %s server."
-                                 (car method))
-                   (ding))
+                   (unless (equal method gnus-message-archive-method)
+                     (gnus-message 1 "Cannot read active file from %s server."
+                                   (car method))
+                     (ding)))
                (gnus-active-to-gnus-format method)
                ;; We mark this active file as read.
                (setq gnus-have-read-active-file
index ad52d6a..aea62c1 100644 (file)
              (nnbabyl-article-group-number)))))))
 
 (defun nnbabyl-request-group (group &optional server dont-check)
-  (let ((active (assoc group nnbabyl-group-alist)))
+  (let ((active (cadr (assoc group nnbabyl-group-alist))))
     (save-excursion
       (cond 
        ((null (nnbabyl-possibly-change-newsgroup group))
index b486ef4..eb720ad 100644 (file)
 
 (defvar nndoc-article-type 'guess
   "*Type of the file.
-One of `mbox', `babyl', `digest', `news', `rnews', `mmdf',
-`forward', `mime-digest', `standard-digest', `slack-digest', or
+One of `mbox', `babyl', `digest', `news', `rnews', `mmdf', `forward',
+`mime-digest', `standard-digest', `slack-digest', `clari-briefs' or
 `guess'.")
 
+(defvar nndoc-post-type 'mail
+  "*Whether the nndoc group is `mail' or `post'.")
+
 (defvar nndoc-type-alist 
   `((mmdf 
      (article-begin .  "^\^A\^A\^A\^A\n")
@@ -81,7 +84,7 @@ One of `mbox', `babyl', `digest', `news', `rnews', `mmdf',
      (article-begin . ,(concat "\n\n" (make-string 30 ?-) "\n\n"))
      (prepare-body . nndoc-prepare-digest-body)
      (body-end-function . nndoc-digest-body-end)
-     (file-end . "^End of .* Digest"))
+     (file-end . "^End of .*digest.*[0-9].*\n\\*\\*"))
     (guess 
      (guess . nndoc-guess-type))
     (digest
@@ -146,17 +149,17 @@ One of `mbox', `babyl', `digest', `news', `rnews', `mmdf',
        (if (stringp (car articles))
            'headers
          (while articles
-           (setq entry (cdr (assq (setq article (pop articles))
-                                  nndoc-dissection-alist)))
-           (insert (format "221 %d Article retrieved.\n" article))
-           (if nndoc-generate-head
-               (funcall nndoc-generate-head article)
-             (insert-buffer-substring
-              nndoc-current-buffer (car entry) (nth 1 entry)))
-           (goto-char (point-max))
-           (or (= (char-after (1- (point))) ?\n) (insert "\n"))
-           (insert (format "Lines: %d\n" (nth 4 entry)))
-           (insert ".\n"))
+           (when (setq entry (cdr (assq (setq article (pop articles))
+                                        nndoc-dissection-alist)))
+             (insert (format "221 %d Article retrieved.\n" article))
+             (if nndoc-generate-head
+                 (funcall nndoc-generate-head article)
+               (insert-buffer-substring
+                nndoc-current-buffer (car entry) (nth 1 entry)))
+             (goto-char (point-max))
+             (or (= (char-after (1- (point))) ?\n) (insert "\n"))
+             (insert (format "Lines: %d\n" (nth 4 entry)))
+             (insert ".\n")))
 
          (nnheader-fold-continuation-lines)
          'headers)))))
@@ -234,6 +237,11 @@ One of `mbox', `babyl', `digest', `news', `rnews', `mmdf',
          (insert (format "211 %d %d %d %s\n" number 1 number group))
          t))))))
 
+(defun nndoc-request-type (group &optional article)
+  (cond ((not article) 'unknown)
+        (nndoc-post-type nndoc-post-type)
+        (t 'unknown)))
+
 (defun nndoc-close-group (group &optional server)
   (nndoc-possibly-change-buffer group server)
   (and nndoc-current-buffer
@@ -399,25 +407,28 @@ One of `mbox', `babyl', `digest', `news', `rnews', `mmdf',
        (setq first nil)
        (when nndoc-head-begin
          (nndoc-search nndoc-head-begin))
-       (setq head-begin (point))
-       (nndoc-search (or nndoc-head-end "^$"))
-       (setq head-end (point))
-       (nndoc-search (or nndoc-body-begin "^\n"))
-       (setq body-begin (point))
-       (or (and nndoc-body-end-function
-                (funcall nndoc-body-end-function))
-           (and nndoc-body-end
-                (nndoc-search nndoc-body-end))
-           (nndoc-search nndoc-article-begin)
-           (progn
-             (goto-char (point-max))
-             (when nndoc-file-end
-               (and (re-search-backward nndoc-file-end nil t)
-                    (beginning-of-line)))))
-       (setq body-end (point))
-       (push (list (incf i) head-begin head-end body-begin body-end
-                   (count-lines body-begin body-end))
-             nndoc-dissection-alist)))))
+       (if (and nndoc-file-end
+                (looking-at nndoc-file-end))
+           (goto-char (point-max))
+         (setq head-begin (point))
+         (nndoc-search (or nndoc-head-end "^$"))
+         (setq head-end (point))
+         (nndoc-search (or nndoc-body-begin "^\n"))
+         (setq body-begin (point))
+         (or (and nndoc-body-end-function
+                  (funcall nndoc-body-end-function))
+             (and nndoc-body-end
+                  (nndoc-search nndoc-body-end))
+             (nndoc-search nndoc-article-begin)
+             (progn
+               (goto-char (point-max))
+               (when nndoc-file-end
+                 (and (re-search-backward nndoc-file-end nil t)
+                      (beginning-of-line)))))
+         (setq body-end (point))
+         (push (list (incf i) head-begin head-end body-begin body-end
+                     (count-lines body-begin body-end))
+               nndoc-dissection-alist))))))
 
 (defun nndoc-prepare-digest-body ()
   "Unquote quoted non-separators in digests."
index 2bde6c0..c3fefe6 100644 (file)
@@ -451,7 +451,7 @@ nn*-request-list should have been called before calling this function."
            ((string-match (concat "^" (expand-file-name
                                        (file-name-as-directory
                                         nnmail-procmail-directory))
-                                  "\\(.*\\)" nnmail-procmail-suffix "$")
+                                  "\\([^/]*\\)" nnmail-procmail-suffix "$")
                           (expand-file-name file))
             (substring (expand-file-name file)
                        (match-beginning 1) (match-end 1)))
@@ -760,7 +760,7 @@ Return the number of characters in the body."
       (goto-char (point-min))
       (when (search-forward "\n\n" nil t) 
        (setq chars (- (point-max) (point)))
-       (setq lines (- (count-lines (point) (point-max)) 1))
+       (setq lines (count-lines (point) (point-max)))
        (forward-char -1)
        (save-excursion
          (when (re-search-backward "^Lines: " nil t)
@@ -851,6 +851,8 @@ See the documentation for the variable `nnmail-split-fancy' for documentation."
            ;; If procmail is used to get incoming mail, the files
            ;; are stored in this directory.
            (and (file-exists-p nnmail-procmail-directory)
+                (or (eq nnmail-spool-file 'procmail)
+                    nnmail-use-procmail)
                 (directory-files 
                  nnmail-procmail-directory 
                  t (concat (if group group "")
@@ -869,7 +871,11 @@ See the documentation for the variable `nnmail-split-fancy' for documentation."
       ;; Return the list of spools.
       (append 
        crash
-       (cond ((listp nnmail-spool-file)
+       (cond ((and group
+                  (or (eq nnmail-spool-file 'procmail)
+                      nnmail-use-procmail))
+             procmails)
+            ((listp nnmail-spool-file)
              (append nnmail-spool-file procmails))
             ((stringp nnmail-spool-file)
              (cons nnmail-spool-file procmails))
index 6e2b771..66c1ce3 100644 (file)
              (nnmbox-article-group-number)))))))
 
 (defun nnmbox-request-group (group &optional server dont-check)
-  (let ((active (assoc group nnmbox-group-alist)))
+  (let ((active (cadr (assoc group nnmbox-group-alist))))
     (cond 
      ((null (nnmbox-possibly-change-newsgroup group))
       (nnheader-report 'nnmbox "No such group: %s" group))
       (let ((delim (concat "^" rmail-unix-mail-delimiter))
            start end)
        (set-buffer (setq nnmbox-mbox-buffer 
-                         (find-file-noselect nnmbox-mbox-file nil 'raw)))
+                         (nnheader-find-file-noselect
+                          nnmbox-mbox-file nil 'raw)))
        (buffer-disable-undo (current-buffer))
        (goto-char (point-min))
        (while (re-search-forward delim nil t)
index 0106854..667cfc3 100644 (file)
 
 (defun nnmh-deletable-article-p (group article)
   "Say whether ARTICLE in GROUP can be deleted."
-  (or (not nnmail-keep-last-article)
-      (not (eq (cdr (nth 1 (assoc group nnmh-group-alist))) article))))
+  (let ((path (concat nnmh-current-directory (int-to-string article))))
+    (and (file-writable-p path)
+        (or (not nnmail-keep-last-article)
+            (not (eq (cdr (nth 1 (assoc group nnmh-group-alist))) 
+                     article))))))
 
 (provide 'nnmh)
 
index b05a0aa..1ab50e5 100644 (file)
@@ -451,8 +451,13 @@ all. This may very well take some time.")
 
 (defun nnml-deletable-article-p (group article)
   "Say whether ARTICLE in GROUP can be deleted."
-  (or (not nnmail-keep-last-article)
-      (not (eq (cdr (nth 1 (assoc group nnml-group-alist))) article))))
+  (let (file path)
+    (when (setq file (cdr (assq article nnml-article-file-alist)))
+      (setq path (concat nnml-current-directory file))
+      (and (file-writable-p path)
+          (or (not nnmail-keep-last-article)
+              (not (eq (cdr (nth 1 (assoc group nnml-group-alist))) 
+                       article)))))))
 
 ;; Find an article number in the current group given the Message-ID. 
 (defun nnml-find-group-number (id)
index fef73b2..858c484 100644 (file)
@@ -34,6 +34,9 @@
 (defvar nnsoup-directory "~/SOUP/"
   "*SOUP packet directory.")
 
+(defvar nnsoup-tmp-directory "/tmp/"
+  "*Where nnsoup will store temporary files.")
+
 (defvar nnsoup-replies-directory (concat nnsoup-directory "replies/")
   "*Directory where outgoing packets will be composed.")
 
@@ -69,6 +72,7 @@ The SOUP packet file name will be inserted at the %s.")
 
 (defvar nnsoup-status-string "")
 (defvar nnsoup-group-alist nil)
+(defvar nnsoup-current-prefix 0)
 (defvar nnsoup-replies-list nil)
 (defvar nnsoup-buffers nil)
 (defvar nnsoup-current-group nil)
@@ -80,11 +84,11 @@ The SOUP packet file name will be inserted at the %s.")
 (defvar nnsoup-current-server nil)
 (defvar nnsoup-server-alist nil)
 (defvar nnsoup-server-variables 
-  (list 
-   (list 'nnsoup-directory nnsoup-directory)
-   (list 'nnsoup-active-file nnsoup-active-file)
-   '(nnsoup-status-string "")
-   '(nnsoup-group-alist nil)))
+  `((nnsoup-directory ,nnsoup-directory)
+    (nnsoup-active-file ,nnsoup-active-file)
+    (nnsoup-status-string "")
+    (nnsoup-current-prefix 0)
+    (nnsoup-group-alist nil)))
 
 \f
 
@@ -95,7 +99,7 @@ The SOUP packet file name will be inserted at the %s.")
   (save-excursion
     (set-buffer nntp-server-buffer)
     (erase-buffer)
-    (let ((areas (cdr (assoc nnsoup-current-group nnsoup-group-alist)))
+    (let ((areas (cddr (assoc nnsoup-current-group nnsoup-group-alist)))
          (articles sequence)
          (use-nov t)
          useful-areas this-area-seq)
@@ -239,19 +243,14 @@ The SOUP packet file name will be inserted at the %s.")
 (defun nnsoup-request-group (group &optional server dont-check)
   (nnsoup-possibly-change-group group)
   (if dont-check 
-      ()
-    (let ((area (cdr (assoc group nnsoup-group-alist)))
-         min max)
-      (save-excursion
-       (set-buffer nntp-server-buffer)
-       (erase-buffer)
-       (setq min (car (car (car area))))
-       (while (cdr area)
-         (setq area (cdr area)))
-       (setq max (cdr (car (car area))))
-       (insert (format "211 %d %d %d %s\n" 
-                       (max (1+ (- max min)) 0) min max group)))))
-  t)
+      t
+    (let ((active (cadr (assoc group nnsoup-group-alist))))
+      (if (not active)
+         (nnheader-report 'nnsoup "No such group: %s" group)
+       (nnheader-insert 
+        "211 %d %d %d %s\n" 
+        (max (1+ (- (cdr active) (car active))) 0) 
+        (car active) (cdr active) group)))))
 
 (defun nnsoup-request-type (group &optional article)
   (nnsoup-possibly-change-group group)
@@ -281,19 +280,13 @@ The SOUP packet file name will be inserted at the %s.")
     (set-buffer nntp-server-buffer)
     (erase-buffer)
     (let ((alist nnsoup-group-alist)
-         min)
-      (while alist
-       (setq min (car (car (nth 1 (car alist)))))
-       (insert (format "%s %d %d y\n" (car (car alist))
-                       (let ((areas (car alist)))
-                         (while (cdr areas)
-                           (setq areas (cdr areas)))
-                         (cdr (car (car areas)))) min))
-       (setq alist (cdr alist)))
+         entry)
+      (while (setq entry (pop alist))
+       (insert (format "%s %d %d y\n" (car entry)
+                       (cdadr entry) (caadr entry))))
       t)))
 
 (defun nnsoup-request-scan (group &optional server)
-  (or nnsoup-group-alist (nnsoup-read-areas))
   (nnsoup-unpack-packets))
 
 (defun nnsoup-request-newgroups (date &optional server)
@@ -313,7 +306,8 @@ The SOUP packet file name will be inserted at the %s.")
 (defun nnsoup-request-expire-articles (articles group &optional server force)
   (nnsoup-possibly-change-group group)
   (let* ((total-infolist (assoc group nnsoup-group-alist))
-        (infolist (cdr total-infolist))
+        (active (cadr total-infolist))
+        (infolist (cddr total-infolist))
         info range-list mod-time prefix)
     (while infolist
       (setq info (pop infolist)
@@ -331,18 +325,22 @@ The SOUP packet file name will be inserted at the %s.")
        (when (condition-case nil
                  (progn
                    (nnheader-message 
-                    5 "Deleting %s..." (nnsoup-file prefix t))
-                   (sit-for 1)
+                    5 "Deleting %s..." (nnsoup-file prefix))
                    (when (file-exists-p (nnsoup-file prefix))
                      (delete-file (nnsoup-file prefix)))
+                   (nnheader-message 
+                    5 "Deleting %s..." (nnsoup-file prefix t))
                    (when (file-exists-p (nnsoup-file prefix t))
                      (delete-file (nnsoup-file prefix t)))
                    t)
                (error nil))
-         (setcdr total-infolist (delq info (cdr total-infolist)))
+         (setcdr (cdr total-infolist) (delq info (cddr total-infolist)))
          (setq articles (gnus-sorted-complement articles range-list))))
       (when (not mod-time)
-       (setcdr total-infolist (delq info (cdr total-infolist)))))
+       (setcdr (cdr total-infolist) (delq info (cddr total-infolist)))))
+    (if (cddr total-infolist)
+       (setcar active (car (car (cdr (car (cdr (cdr total-infolist)))))))
+      (setcar active (1+ (cdr active))))
     (nnsoup-write-active-file)
     ;; Return the articles that weren't expired.
     articles))
@@ -356,10 +354,23 @@ The SOUP packet file name will be inserted at the %s.")
     t))
 
 (defun nnsoup-read-active-file ()
-  (if (file-exists-p nnsoup-active-file)
-      (condition-case ()
-         (load nnsoup-active-file)
-       (error nil))))
+  (setq nnsoup-group-alist)
+  (when (file-exists-p nnsoup-active-file)
+    (condition-case ()
+       (load nnsoup-active-file)
+      (error nil))
+    ;; Be backwards compatible.
+    (when (and nnsoup-group-alist
+              (not (atom (caadar nnsoup-group-alist))))
+      (let ((alist nnsoup-group-alist)
+           entry e min max)
+       (while (setq e (cdr (setq entry (pop alist))))
+         (setq min (caaar e))
+         (while (cdr e)
+           (setq e (cdr e)))
+         (setq max (cdaar e))
+         (setcdr entry (cons (cons min max) (cdr entry))))))
+    nnsoup-group-alist))
 
 (defun nnsoup-write-active-file ()
   (when nnsoup-group-alist
@@ -368,37 +379,60 @@ The SOUP packet file name will be inserted at the %s.")
       (buffer-disable-undo (current-buffer))
       (erase-buffer)
       (insert (format "(setq nnsoup-group-alist '%S)\n" nnsoup-group-alist))
+      (insert (format "(setq nnsoup-current-prefix %d)\n"
+                     nnsoup-current-prefix))
       (write-region (point-min) (point-max) nnsoup-active-file
                    nil 'silent)
       (kill-buffer (current-buffer)))))
 
+(defun nnsoup-next-prefix ()
+  "Return the next free prefix."
+  (let (prefix)
+    (while (or (file-exists-p 
+               (nnsoup-file (setq prefix (int-to-string
+                                          nnsoup-current-prefix))))
+              (file-exists-p (nnsoup-file prefix t)))
+      (incf nnsoup-current-prefix))
+    (incf nnsoup-current-prefix)
+    prefix))
+
 (defun nnsoup-read-areas ()
   (save-excursion
     (set-buffer nntp-server-buffer)
-    (let ((areas (gnus-soup-parse-areas (concat nnsoup-directory "AREAS")))
-         entry number area lnum)
+    (let ((areas (gnus-soup-parse-areas (concat nnsoup-tmp-directory "AREAS")))
+         entry number area lnum cur-prefix file)
       ;; Go through all areas in the new AREAS file.
-      (while areas
-       (setq area (car areas)
-             areas (cdr areas))
+      (while (setq area (pop areas))
+       ;; Change the name to the permanent name and move the files.
+       (setq cur-prefix (nnsoup-next-prefix))
+       (when (file-exists-p 
+              (setq file (concat nnsoup-tmp-directory
+                                 (gnus-soup-area-prefix area) ".IDX")))
+         (rename-file file (nnsoup-file cur-prefix)))
+       (when (file-exists-p 
+              (setq file (concat nnsoup-tmp-directory 
+                                 (gnus-soup-area-prefix area) ".MSG")))
+         (rename-file file (nnsoup-file cur-prefix t)))
+       (gnus-soup-set-area-prefix area cur-prefix)
        ;; Find the number of new articles in this area.
        (setq number (nnsoup-number-of-articles area))
        (if (not (setq entry (assoc (gnus-soup-area-name area)
                                    nnsoup-group-alist)))
            ;; If this is a new area (group), we just add this info to
            ;; the group alist. 
-           (setq nnsoup-group-alist
-                 (cons (list (gnus-soup-area-name area)
-                             (list (cons 1 number) area))
-                       nnsoup-group-alist))
+           (push (list (gnus-soup-area-name area)
+                       (cons 1 number)
+                       (list (cons 1 number) area))
+                 nnsoup-group-alist)
          ;; There are already articles in this group, so we add this
          ;; info to the end of the entry.
-         (let ((e (cdr entry)))
+         (let ((e (cddr entry)))
            (while (cdr e)
              (setq e (cdr e)))
            (setcdr e (list (list (cons (setq lnum (1+ (cdr (car (car e)))))
                                        (+ lnum number)) 
-                                 area)))))))
+                                 area))))
+         (setcdr (cadr entry) (+ lnum number)))))
     (nnsoup-write-active-file)))
 
 (defun nnsoup-number-of-articles (area)
@@ -442,16 +476,18 @@ The SOUP packet file name will be inserted at the %s.")
   (nnsoup-index-buffer prefix 'msg))
 
 (defun nnsoup-unpack-packets ()
+  "Unpack all packets in `nnsoup-packet-directory'."
   (let ((packets (directory-files
                  nnsoup-packet-directory t nnsoup-packet-regexp))
-       msg)
-    (while packets
-      (message (setq msg (format "nnsoup: unpacking %s..." (car packets))))
-      (gnus-soup-unpack-packet nnsoup-directory nnsoup-unpacker (car packets))
-      (delete-file (car packets))
-      (nnsoup-read-areas)
-      (message "%sdone" msg)
-      (setq packets (cdr packets)))))
+       packet msg)
+    (while (setq packet (pop packets))
+      (message (setq msg (format "nnsoup: unpacking %s..." packet)))
+      (if (not (gnus-soup-unpack-packet 
+               nnsoup-tmp-directory nnsoup-unpacker packet))
+         (message "Couldn't unpack %s" packet)
+       (delete-file packet)
+       (nnsoup-read-areas)
+       (message "%sdone" msg)))))
 
 (defun nnsoup-narrow-to-article (article &optional area head)
   (let* ((area (or area (nnsoup-article-to-area article nnsoup-current-group)))
@@ -539,7 +575,7 @@ The SOUP packet file name will be inserted at the %s.")
 
 (defun nnsoup-article-to-area (article group)
   "Return the area that ARTICLE in GROUP is located in."
-  (let ((areas (cdr (assoc group nnsoup-group-alist))))
+  (let ((areas (cddr (assoc group nnsoup-group-alist))))
     (while (and areas (< (cdr (car (car areas))) article))
       (setq areas (cdr areas)))
     (and areas (car areas))))
@@ -663,14 +699,17 @@ The SOUP packet file name will be inserted at the %s.")
                          (car files) (match-beginning 1)
                          (match-end 1))))
       (if (not (setq elem (assoc group active)))
-         (push (list group (list (cons 1 lines) 
-                                 (vector ident group "ncm" "" lines)))
+         (push (list group (cons 1 lines)
+                     (list (cons 1 lines) 
+                           (vector ident group "ncm" "" lines)))
                active)
-       (setcdr elem (cons (list (cons (setq min (1+ (cdr (car (car
-                                                               (cdr elem))))))
-                                      (+ min lines))
-                                (vector ident group "ncm" "" lines))
-                          (cdr elem))))
+       (nconc elem
+              (list
+               (list (cons (setq min (1+ (cdr (car (car
+                                                    (cdr elem))))))
+                           (+ min lines))
+                     (vector ident group "ncm" "" lines))))
+       (setcdr (cadr elem) (+ min lines)))
       (setq files (cdr files)))
     (message "")
     (setq nnsoup-group-alist active)
index f729d54..760d4b2 100644 (file)
@@ -1086,10 +1086,11 @@ If SERVICE, this this as the port number."
     (save-excursion
       (set-buffer nntp-server-buffer)
       (cond
-       ((setq proc
-             (condition-case nil
-                 (funcall nntp-open-server-function server)
-               (error nil)))
+       ((and (setq proc
+                  (condition-case nil
+                      (funcall nntp-open-server-function server)
+                    (error nil)))
+            (memq (process-status proc) '(open run)))
        (setq nntp-server-process proc)
        (setq nntp-address server)
        ;; Suggested by Hallvard B Furuseth <h.b.furuseth@usit.uio.no>.
index 6ac3a10..5032b4c 100644 (file)
@@ -1,3 +1,15 @@
+Tue Jan 23 00:59:48 1996  Lars Ingebrigtsen  <lars@eyesore.no>
+
+       * gnus.texi (Drafts): Addition.
+       (Group Buffer Format): Addition.
+       (nndoc): Addition.
+       (Score File Editing): Addition.
+       (Drafts): Addition.
+
+Mon Jan 22 01:17:42 1996  Lars Ingebrigtsen  <lars@eyesore.no>
+
+       * gnus.texi (Expiring Old Mail Articles): Addition.
+
 Sat Jan 20 01:44:32 1996  Lars Ingebrigtsen  <lars@eyesore.no>
 
        * gnus.texi (Article Hiding): Addition.
index d18700d..82b3387 100644 (file)
@@ -1250,6 +1250,9 @@ Select from where.
 A string that looks like @samp{<%s:%n>} if a foreign select method is
 used.
 
+@item P
+Indentation based on the level of the topic (@pxref{Group Topics}). 
+
 @item c
 @vindex gnus-group-uncollapsed-levels
 Short (collapsed) group name.  The @code{gnus-group-uncollapsed-levels}
@@ -1872,8 +1875,9 @@ Make a group based on some file or other
 (@code{gnus-group-make-doc-group}).  If you give a prefix to this
 command, you will be prompted for a file name and a file type.
 Currently supported types are @code{babyl}, @code{mbox}, @code{digest},
-@code{mmdf}, @code{news}, @code{rnews}, and @code{forward}.  If you run
-this command without a prefix, Gnus will guess at the file type.
+@code{mmdf}, @code{news}, @code{rnews}, @code{clari-briefs}, and
+@code{forward}.  If you run this command without a prefix, Gnus will
+guess at the file type.
 
 @item G DEL
 @kindex G DEL (Group)
@@ -2365,8 +2369,8 @@ The babyl (rmail) mail box.
 
 @item mbox
 The standard Unix mbox file.
-@cindex MMDF mail box
 
+@cindex MMDF mail box
 @item mmdf
 The MMDF mail box format.
 
@@ -2421,7 +2425,14 @@ Virtual server variables:
 @item nndoc-article-type
 @vindex nndoc-article-type
 This should be one of @code{mbox}, @code{babyl}, @code{digest},
-@code{mmdf}, @code{forward}, or @code{guess}.
+@code{mmdf}, @code{forward}, @code{news}, @code{rnews},
+@code{mime-difest}, @code{clari-briefs}, or @code{guess}.
+
+@item nndoc-post-type
+@vindex nndoc-post-type
+This variable says whether Gnus is to consider the group a news group or
+a mail group.  There are two legal values:  @code{mail} (the default)
+and @code{news}.
 @end table
 
 
@@ -3073,7 +3084,10 @@ names---no @samp{"nnml:"} prefixes and the like.
 The @code{nnmail-expiry-wait} variable and
 @code{nnmail-expiry-wait-function} function can be either a number (not
 necessarily an integer) or the symbols @code{immediate} or
-@code{never}. 
+@code{never}.  
+
+You can also use the @code{expiry-wait} group parameter to selectively
+change the expiry period (@pxref{Group Parameters}).
 
 @vindex nnmail-keep-last-article
 If @code{nnmail-keep-last-article} is non-@code{nil}, Gnus will never
@@ -3843,6 +3857,8 @@ Level.
 Number of groups in the topic.
 @item a
 Number of unread articles in the topic.
+@item A 
+Number of unread articles in the topic and all its subtopics. 
 @end table
 
 
@@ -3970,12 +3986,6 @@ This topology shows what topics are sub-topics of what topics (right),
 and which topics are visible.  Two settings are currently
 allowed---@code{visible} and @code{invisible}.
 
-@vindex gnus-topic-hide-subtopics
-If @code{gnus-topic-hide-subtopics} is non-@code{nil} (which it is by
-default), sub-topics will be folded along with any groups that belong to
-the topic.  If this variable is @code{nil}, all topics will always be
-visible, even though the parent topics are folded.
-
 
 @node Misc Group Stuff
 @section Misc Group Stuff
@@ -5534,17 +5544,36 @@ If you save the buffer the normal way (@kbd{C-x C-s}, for instance), the
 article will be saved there.  (Auto-save files also go to the draft
 group.) 
 
-The draft group is a special draft group (which is implemented as an
+The draft group is a special group (which is implemented as an
 @code{nndraft} group, if you absolutely have to know) called
 @samp{nndraft:drafts}.  The variable @code{gnus-draft-group-directory}
 controls both the name of the group and the location---the leaf element
 in the path will be used as the name of the group.  What makes this
 group special is that you can't tick any articles in it or mark any
-articles as read---all articles in the group are permanently unread.  
+articles as read---all articles in the group are permanently unread.
 
 If the group doesn't exist, it will be created and you'll be subscribed
 to it.
 
+@findex gnus-dissociate-buffer-from-draft
+@kindex C-c M-d (Mail)
+@kindex C-c M-d (Post)
+@findex gnus-associate-buffer-with-draft
+@kindex C-c C-d (Mail)
+@kindex C-c C-d (Post)
+If you're writing some super-secret message that you later want to
+encode with PGP before sending, you may wish to turn the auto-saving
+(and association with the draft group) off.  You never know who might be
+interested in reading all your extremely valuable and terribly horrible
+and interesting secrets.  The @kbd{C-c M-d}
+(@code{gnus-dissociate-buffer-from-draft}) command does that for you.
+If you change your mind and want to turn the auto-saving back on again,
+@kbd{C-c C-d} (@code{gnus-associate-buffer-with-draft} does that.
+
+@vindex gnus-use-draft
+To leave association with the draft group off by default, set
+@code{gnus-use-draft} to @code{nil}.  It is @code{t} by default. 
+
 @findex gnus-summary-send-draft
 @kindex S D c (Summary)
 When you want to continue editing the article, you simply enter the
@@ -6391,8 +6420,7 @@ summary buffer is otherwise unthreaded.
 @kindex T ^ (Summary)
 @findex gnus-summary-reparent-thread
 Make the current article the child of the marked (or previous) article
-(@code{gnus-summary-reparent-thread}.  The change will not be visible
-until the next group retrieval.
+(@code{gnus-summary-reparent-thread}.
 
 @end table
 
@@ -8009,18 +8037,22 @@ There are a few variables to customize the tree display, of course:
 
 @table @code
 @item gnus-tree-mode-hook
+@vindex gnus-tree-mode-hook
 A hook called in all tree mode buffers.
 
 @item gnus-tree-mode-line-format
+@vindex gnus-tree-mode-line-format
 A format string for the mode bar in the tree mode buffers.  The default
 is @samp{"Gnus: %%b [%A] %Z"}.  For a list of legal specs, @xref{Summary
 Buffer Mode Line}. 
 
 @item gnus-selected-tree-face
+@vindex gnus-selected-tree-face
 Face used for highlighting the selected article in the tree buffer.  The
 default is @code{modeline}.
 
 @item gnus-tree-line-format
+@vindex gnus-tree-line-format
 A format string for the tree nodes.  The name is a bit of a misnomer,
 though---it doesn't define a line, but just the node.  The default value
 is @samp{"%(%[%3,3n%]%)"}, which displays the first three characters of
@@ -8050,24 +8082,28 @@ Variables related to the display are:
 
 @table @code
 @item gnus-tree-brackets
+@vindex gnus-tree-brackets
 This is used for differentiating between "real" articles and "sparse"
 articles.  The format is @var{((real-open . real-close) (sparse-open
 . sparse-close) (dummy-open . dummy-close))}, and the default is
 @code{((?[ . ?]) (?( . ?)) (?@{ . ?@}))}.
 
 @item gnus-tree-parent-child-edges
+@vindex gnus-tree-parent-child-edges
 This is a list that contains the characters used for connecting parent
 nodes to their children.  The default is @code{(?- ?\\ ?|)}. 
 
 @end table
 
 @item gnus-tree-minimize-window
+@vindex gnus-tree-minimize-window
 If this variable is non-@code{nil}, Gnus will try to keep the tree
 buffer as small as possible to allow more room for the other Gnus
 windows.  If this variable is a number, the tree buffer will never be
 higher than that number.  The default is @code{t}.
 
 @item gnus-generate-tree-function
+@vindex gnus-generate-tree-function
 @findex gnus-generate-horizontal-tree
 @findex gnus-generate-vertical-tree
 The function that actually generates the thread tree.  Two predefined
@@ -9472,6 +9508,15 @@ Save the changes you have made and return to the summary buffer
 Insert the current date in numerical format
 (@code{gnus-score-edit-insert-date}).  This is really the day number, if
 you were wondering.
+
+@item C-c C-p
+@kindex C-c C-p (Score)
+@findex gnus-score-pretty-print
+The adaptive score files are saved in an unformatted fashion.  If you
+intend to read one of these files, you want to @dfn{pretty print} it
+first.  This command (@code{gnus-score-pretty-print}) does that for
+you. 
+
 @end table
 
 @node Adaptive Scoring