This commit was manufactured by cvs2svn to create tag 'gnus-5_6_4'. gnus-5_6_4
authortomo <tomo>
Wed, 3 Jun 1998 13:28:52 +0000 (13:28 +0000)
committertomo <tomo>
Wed, 3 Jun 1998 13:28:52 +0000 (13:28 +0000)
72 files changed:
Makefile.in
lisp/ChangeLog
lisp/dgnushack.el
lisp/gnus-agent.el
lisp/gnus-art.el
lisp/gnus-async.el
lisp/gnus-bcklg.el
lisp/gnus-cache.el
lisp/gnus-cite.el
lisp/gnus-demon.el
lisp/gnus-draft.el
lisp/gnus-dup.el
lisp/gnus-eform.el
lisp/gnus-ems.el
lisp/gnus-gl.el
lisp/gnus-group.el
lisp/gnus-int.el
lisp/gnus-kill.el
lisp/gnus-logic.el
lisp/gnus-mh.el
lisp/gnus-move.el
lisp/gnus-msg.el
lisp/gnus-nocem.el
lisp/gnus-picon.el
lisp/gnus-range.el
lisp/gnus-salt.el
lisp/gnus-score.el
lisp/gnus-soup.el
lisp/gnus-spec.el
lisp/gnus-srvr.el
lisp/gnus-start.el
lisp/gnus-sum.el
lisp/gnus-topic.el
lisp/gnus-undo.el
lisp/gnus-util.el
lisp/gnus-uu.el
lisp/gnus-win.el
lisp/gnus-xmas.el
lisp/gnus.el
lisp/lpath.el
lisp/message.el
lisp/messagexmas.el
lisp/messcompat.el
lisp/nnagent.el
lisp/nnbabyl.el
lisp/nndb.el
lisp/nndir.el
lisp/nndoc.el
lisp/nndraft.el
lisp/nneething.el
lisp/nnfolder.el
lisp/nngateway.el
lisp/nnheader.el
lisp/nnheaderxm.el
lisp/nnkiboze.el
lisp/nnlistserv.el
lisp/nnmail.el
lisp/nnmbox.el
lisp/nnmh.el
lisp/nnml.el
lisp/nnoo.el
lisp/nnsoup.el
lisp/nnspool.el
lisp/nntp.el
lisp/nnvirtual.el
lisp/nnweb.el
lisp/score-mode.el
lisp/smiley.el
texi/ChangeLog
texi/Makefile.in
texi/gnus.texi
texi/message.texi

index c6205a8..5b6b592 100644 (file)
@@ -1,17 +1,16 @@
-lispdir = @lispdir@
 srcdir = @srcdir@
 
 @SET_MAKE@
-EMACS = @EMACS@
+EMACS = emacs
 XEMACS = xemacs
 
 all: lick info
 
 lick:
-       cd lisp && $(MAKE) EMACS=$(EMACS) lispdir=$(lispdir) all
+       cd lisp && $(MAKE) EMACS=$(EMACS) all
 
 install:
-       cd lisp && $(MAKE) EMACS=$(EMACS) lispdir=$(lispdir) install
+       cd lisp && $(MAKE) EMACS=$(EMACS) install
        cd texi && $(MAKE) EMACS=$(EMACS) install
 
 # Rule for Lars and nobody else.
index 7054db5..97b7710 100644 (file)
@@ -1,425 +1,3 @@
-Wed Jun  3 04:03:37 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.6.11 is released.
-
-Wed Jun  3 03:33:50 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Checked doc string syntax throughout.
-
-       * message.el (message-subject-re-regexp): Renamed.
-
-Wed Jun  3 03:33:05 1998  Simon Josefsson  <jas@pdc.kth.se>
-
-       * message.el (message-ignored-subject-re): New variable.
-
-Wed Jun  3 03:25:13 1998  Sam Steingold  <sds@usa.net>
-
-       * gnus-msg.el (gnus-bug-create-help-buffer): New variable.
-       (gnus-bug): Use it.
-
-1998-05-07  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * nnmail.el: (nnmail-get-split-group): Use `regexp-quote'
-       when file name is a part of pattern.
-
-       * nnmail.el (nnmail-crosspost-link-function): Ditto.
-
-       * gnus-ems.el: Use `symbol-name' instead of `(format "%s" ...)'.
-
-       * gnus-score.el (gnus-score-load-file): Use `regexp-quote'
-       when file name is a part of pattern.
-
-1998-05-06  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * gnus-cache.el (gnus-cache-generate-active): Use `regexp-quote'
-       when file name is a part of pattern.
-
-Wed Jun  3 03:13:34 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnfolder.el (nnfolder-delete-mail): Changed parameters.
-       (nnfolder-request-replace-article): Rename X-From-Line.
-
-Wed Jun  3 03:10:04 1998  Dan Christensen  <jdc@chow.mat.jhu.edu>
-
-       * nnfolder.el (nnfolder-adjust-min-active): Work.
-
-Mon Jun  1 05:27:28 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-limit-to-age): Reversed time and
-       almost collapsed space!
-
-       * nnmail.el (nnmail-days-to-time): Computed wrong time.
-
-Mon Jun  1 05:19:46 1998  Kim-Minh Kaplan  <KimMinh.Kaplan@utopia.eunet.fr>
-
-       * gnus-sum.el (gnus-dependencies-add-header): Break loops.
-
-Mon Jun  1 05:13:34 1998  Fabrice POPINEAU  <popineau@esemetz.ese-metz.fr>
-
-       * gnus-cache.el (gnus-cache-generate-active): Regexp-quote.
-
-Mon Jun  1 04:31:23 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.6.10 is released.
-
-Mon Jun  1 03:25:33 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-button-alist): Recognize bare mailto buttons
-       for Gnus.
-
-       * nntp.el: Replaced all `message' calls.
-
-Mon Jun  1 03:13:46 1998  Wolfgang Rupprecht  <wolfgang@dailyplanet.wsrcc.com>
-
-       * nntp.el (nntp-encode-text): Removed spurious forward-line.
-
-Sat May 23 19:44:43 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-agent.el (gnus-agent-fetch-session): Would infloop if
-       opening failed.
-
-Tue May 19 04:11:33 1998  Yoshiki Hayashi  <g740685@komaba.ecc.u-tokyo.ac.jp>
-
-       * nnheader.el (nnheader-translate-file-chars): Don't change
-       string. 
-
-Tue May 19 03:07:45 1998  P. E. Jareth Hein  <jareth@camelot-soft.com>
-
-       * gnus-util.el (gnus-dd-mmm): New version.
-
-Tue May 19 03:00:39 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Changed address.
-
-Tue May 12 06:12:42 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-agent.el (gnus-agent-expire): Delete more.
-
-Sun May 10 19:08:28 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-group.el (gnus-group-read-ephemeral-group): Don't add
-       `address'. 
-
-Sun May  3 18:01:01 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmail.el (nnmail-within-headers-p): Renamed.
-
-       * message.el (message-cancel-news): If a Sender header doesn't
-       exist, compare From against `message-make-from'.
-
-Sun May  3 15:07:25 1998  Lars Balker Rasmussen  <lbr@image.dk>
-
-       * gnus-agent.el (gnus-agent-save-group-info): Fix
-       re-search-forward params.
-
-Sun May  3 15:04:02 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-agent.el (gnus-agent-expire): Check for the size.
-
-Sat May  2 01:50:20 1998  Dan Christensen  <jdc@chow.mat.jhu.edu>
-
-       * nnfolder.el (nnfolder-goto-article): New version.
-       (nnfolder-read-folder): Fix.
-
-       * nnmail.el (nnmail-within-headers): New function.
-
-Sat May  2 01:36:37 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnfolder.el (nnfolder-goto-article): Thinkotypo search arguments.
-
-       * nnheader.el (nnheader-find-file-noselect): Also bind
-       `find-file-hooks' to nil.
-
-       * nnmail.el (nnmail-process-unix-mail-format): Don't use
-       `find-file-noselect'. 
-
-       * gnus-group.el (gnus-group-make-menu-bar): Typo.
-
-Fri May  1 21:59:35 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.6.9 is released.
-
-Fri May  1 21:54:30 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnfolder.el (nnfolder-goto-article): Would infloop.
-
-Fri May  1 19:45:50 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.6.8 is released.
-
-Fri May  1 18:51:21 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nntp.el (nntp-request-newgroups): Use format-time-string.
-
-       * message.el (message-fetch-field): Inhibit point-motion hooks.
-
-Fri May  1 18:33:06 1998  Wes Hardaker  <wjhardaker@ucdavis.edu>
-
-       * gnus-score.el (gnus-adaptive-word-no-group-words): New variable.
-
-Fri May  1 16:56:32 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-agent.el (gnus-agent-expire): Put point at the start of the
-       buffer.
-
-       * gnus-soup.el (gnus-soup-parse-areas): Check whether the file
-       exists. 
-
-       * gnus-draft.el (gnus-draft-send): Use meta-information.
-
-       * nnagent.el (nnagent-request-post): Store meta-information.
-
-       * gnus-agent.el (gnus-agent-meta-information-header): New variable.
-       (gnus-agent-insert-meta-information): New function.
-
-Fri May  1 16:43:35 1998  Paul Franklin  <paul@cs.washington.edu>
-
-       * message.el (message-generate-headers): Insert Sender when
-       required. 
-
-Fri May  1 15:28:55 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-util.el (gnus-dd-mmm): Accept "" dates.
-
-       * gnus-cite.el (gnus-article-hide-citation): Don't remove button
-       when hiding.
-
-       * gnus-msg.el (gnus-post-method): Allow ARG to override
-       `current'. 
-
-       * gnus-sum.el (gnus-remove-thread): Remove the dummy root
-       properly. 
-
-       * nnfolder.el (nnfolder-goto-article): New function.
-       (nnfolder-retrieve-headers): Use it.
-       (nnfolder-request-article): Ditto.
-
-Wed Apr 29 22:48:33 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.6.7 is released.
-
-Wed Apr 29 20:54:35 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-update-info): Bind
-       gnuis-newsgroup-scored later.
-       (gnus-summary-prepare-threads): Check some more before inserting
-       dummy roots.
-
-       * gnus-cache.el (gnus-cache-enter-article): Update marks
-       properly. 
-
-       * gnus-xmas.el (gnus-xmas-draft-menu-add): New function.
-
-       * nntp.el (nntp-connection-timeout): Removed.
-
-       * gnus-move.el (gnus-move-group-to-server): Delete nils.
-
-       * nntp.el (nntp-close-server): Close more connections.
-
-       * gnus-art.el (gnus-button-alist): Accept white space after colons
-       in <URL:news:> things.
-
-Wed Apr 29 20:18:45 1998  Kurt Swanson  <kurt@dna.lth.se>
-
-       * gnus-art.el (article-update-date-lapsed): Bind
-       `deactivate-mark'. 
-
-       * gnus-salt.el (gnus-pick-mode-map): Moved keys around to avoid
-       shadowing. 
-
-       * gnus-art.el (gnus-article-read-summary-keys): New version.
-
-       * gnus-sum.el (gnus-summary-make-menu-bar): New for article mode. 
-
-       * gnus-msg.el (gnus-post-method): `current' custom.
-
-Wed Apr 29 19:04:27 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-set-local-parameters): Ignore
-       quit-config. 
-       (gnus-select-newsgroup): Use the value of gnus-fetch-old-headers. 
-
-       * message.el (message-post-method): Doc fix.
-
-       * gnus.el (gnus-directory): dox fix.
-
-Tue Apr 28 03:32:17 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-group.el (gnus-group-timestamp): Really get timestamp.
-
-       * gnus.el (gnus-group-parameter-value): Use explicit iteration.
-
-Tue Apr 28 03:15:50 1998  Hallvard B. Furuseth  <h.b.furuseth@usit.uio.no>
-
-       * gnus-util.el (gnus-alive-p): Check for binding.
-
-Tue Apr 28 03:00:16 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-parent-headers): Don't infloop on nil
-       References. 
-
-       * gnus-art.el (gnus-article-mode): Don't kill local vars.
-
-       * score-mode.el (score-mode-syntax-table): Change syntax.
-
-Mon Apr 27 00:26:01 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.6.6 is released.
-
-Mon Apr 27 00:07:11 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-request-article-this-buffer): Viewing pseudos
-       in nneething groups bugged.
-
-       * gnus-sum.el (gnus-summary-prepare-threads): Dummy roots and
-       dormants and stuff.
-
-Sun Apr 26 23:34:40 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-cache.el (gnus-cache-file-name): Use FULL.
-
-       * nnheader.el (nnheader-translate-file-chars): Allow FULL
-       parameter.
-
-       * gnus-cache.el (gnus-cache-file-name): Translate all colons.
-
-Sun Apr 26 19:27:56 1998  Justin Sheehy  <justin@linus.mitre.org>
-
-       * nntp.el (nntp-rlogin-parameters): Doc fix.
-
-Sun Apr 26 19:21:12 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-art.el (gnus-summary-save-in-mail): Not a command.
-
-Sun Apr 26 19:16:03 1998  James Troup  <J.J.Troup@scm.brad.ac.uk>
-
-       * gnus-sum.el (gnus-summary-expire-articles-now): Work.
-
-Sun Apr 26 14:34:06 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-build-sparse-threads): Break loops.
-       (gnus-summary-print-article): Save excursion to try to preserve
-       local/bound variable messup.
-
-       * gnus-salt.el (gnus-tree-read-summary-keys): Put point in article
-       buffer.
-
-       * gnus-undo.el (gnus-undo): New group.
-       (gnus-undo-limit): New variable.
-       (gnus-undo-register-1): Use it.
-
-       * gnus-sum.el (gnus-summary-update-info): Don't nix out scores.
-
-       * gnus-start.el (gnus-active-to-gnus-format): Removed "." from
-       quoting. 
-
-       * gnus.el (gnus-cache-directory): Moved here. 
-       (gnus-predefined-server-alist): Use.
-
-       * message.el (message-autosave-directory): Put back in.
-       (message-set-auto-save-file-name): Use if Gnus isn't running.
-
-       * gnus-util.el (gnus-alive-p): Moved here.
-
-       * message.el (message-autosave-directory): Removed.
-       (message-set-auto-save-file-name): Don't use it.
-
-       * gnus.el: Use gnus-buffer-exists-p throughout.
-
-       * gnus-uu.el (gnus-uu-save-article): Use gnus-kill-buffer.
-
-       * message.el (message-make-in-reply-to): Check more for strange
-       From lines.
-
-       * gnus-art.el (gnus-article-mode): Don't nix out vars.
-
-Sun Apr 26 14:05:40 1998  Frank Bennett  <bennett@rumple.soas.ac.uk>
-
-       * nnmail.el (nnmail-move-inbox): Push error'ed mailboxes onto the
-       list. 
-
-Sun Apr 26 13:01:53 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-score.el (gnus-score-save): Use it.
-
-       * score-mode.el (score-mode-syntax-table): New table.
-
-       * nnmbox.el: Commentary fix.
-
-Sun Apr 26 12:59:00 1998  Richard Stallman  <rms@santafe.edu>
-
-       * message.el (message-mode): New adaptive fill defaults.
-
-Sun Apr 26 12:50:38 1998  Jim Radford  <radford@robby.caltech.edu>
-
-       * gnus-start.el (gnus-active-to-gnus-format): Groups that start
-       with dots.
-
-1998-04-11  Richard Stallman  <rms@sucrose.gnu.org>
-
-       * gnus/gnus-art.el (gnus-emphasis-alist): Use nth, not caddr.
-
-Sat Apr 25 15:33:57 1998  Kim-Minh Kaplan  <KimMinh.Kaplan@utopia.eunet.fr>
-
-       * gnus-sum.el (gnus-build-sparse-threads): Handle loops.
-
-Sat Apr 25 15:09:54 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el (gnus-valid-select-methods): nngateway is post-mail.
-
-Fri Apr 24 21:32:14 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.6.5 is released.
-
-Fri Apr 24 21:19:21 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-msg.el (gnus-post-method): Doc fix.
-       (gnus-post-method): Reversed semantics.
-
-1998-04-01  Jan Vroonhof  <vroonhof@math.ethz.ch>
-
-       * gnus-msg.el (gnus-post-method): Customized. Added 'native
-       option. In the function, added support for new value.
-
-Fri Apr 24 20:04:15 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnmbox.el (nnmbox-request-create-group): New function.
-
-Sun Apr 12 07:55:16 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-agent.el (gnus-agent-save-group-info): Only do those that
-       are covered.
-
-Tue Apr  7 11:26:31 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nntp.el (nntp-authinfo-file): Doc fix.
-
-1998-03-31  Ken Raeburn  <raeburn@cygnus.com>
-
-       * nnml.el (nnml-request-expire-articles): Sort active-articles,
-       then only expire the intersection of that set with the requested
-       articles.
-
-Wed Apr  1 16:01:44 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.el (message-supersede): Check Sender.
-       (message-cancel-news): Fix Sender check.
-
-Sun Mar 29 11:54:33 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnkiboze.el (nnkiboze-generate-group): Would mess up newsrs
-       hashtb. 
-       (nnkiboze-enter-nov): Created bogus Xrefs headers.
-
-       * gnus-agent.el (gnus-agent-save-group-info): New function.
-
-       * gnus-start.el (gnus-get-unread-articles): Use it.
-
-       * message.el (message-expand-group): Allow completion from in the
-       middle of strings.
-       (message-font-lock-keywords): Work when mail-header-separator is
-       "". 
-
 Sun Mar 29 09:56:00 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * gnus.el: Gnus v5.6.4 is released.
index 37bdb98..264ac6b 100644 (file)
@@ -1,7 +1,7 @@
 ;;; dgnushack.el --- a hack to set the load path for byte-compiling
 ;; Copyright (C) 1994,95,96,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Version: 4.19
 ;; Keywords: news, path
 
index 7d40b82..21f1226 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-agent.el --- unplugged support for Semi-gnus
 ;; Copyright (C) 1997,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; This file is part of GNU Emacs.
 
 ;; GNU Emacs is free software; you can redistribute it and/or modify
@@ -77,8 +77,6 @@ If nil, only read articles will be expired."
 
 ;;; Internal variables
 
-(defvar gnus-agent-meta-information-header "X-Gnus-Agent-Meta-Information")
-
 (defvar gnus-agent-history-buffers nil)
 (defvar gnus-agent-buffer-alist nil)
 (defvar gnus-agent-article-alist nil)
@@ -332,34 +330,19 @@ agent minor mode in all Gnus buffers."
     (re-search-forward
      (concat "^" (regexp-quote mail-header-separator) "\n"))
     (replace-match "\n")
-    (gnus-agent-insert-meta-information 'mail)
     (gnus-request-accept-article "nndraft:queue")))
 
-(defun gnus-agent-insert-meta-information (type &optional method)
-  "Insert meta-information into the message that says how it's to be posted.
-TYPE can be either `mail' or `news'.  If the latter METHOD can
-be a select method."
-  (save-excursion
-    (message-remove-header gnus-agent-meta-information-header)
-    (goto-char (point-min))
-    (insert gnus-agent-meta-information-header ": "
-           (symbol-name type) " " (format "%S" method)
-           "\n")
-    (forward-char -1)
-    (while (search-backward "\n" nil t)
-      (replace-match "\\n" t t))))
-
 ;;;
 ;;; Group mode commands
 ;;;
 
 (defun gnus-agent-fetch-groups (n)
-  "Put all new articles in the current groups into the Agent."
+  "Put all new articles in the current groups into the agent."
   (interactive "P")
   (gnus-group-iterate n 'gnus-agent-fetch-group))
 
 (defun gnus-agent-fetch-group (group)
-  "Put all new articles in GROUP into the Agent."
+  "Put all new articles in GROUP into the agent."
   (interactive (list (gnus-group-group-name)))
   (unless group
     (error "No group on the current line"))
@@ -403,7 +386,7 @@ be a select method."
       (error "Server already in the agent program"))
     (push method gnus-agent-covered-methods)
     (gnus-agent-write-servers)
-    (message "Entered %s into the Agent" server)))
+    (message "Entered %s into the agent" server)))
 
 (defun gnus-agent-remove-server (server)
   "Remove SERVER from the agent program."
@@ -529,19 +512,6 @@ the actual number of articles toggled is returned."
     (when (file-exists-p (gnus-agent-lib-file "active"))
       (delete-file (gnus-agent-lib-file "active"))))
 
-(defun gnus-agent-save-group-info (method group active)
-  (when (gnus-agent-method-p method)
-    (let* ((gnus-command-method method)
-          (file (gnus-agent-lib-file "active")))
-      (gnus-make-directory (file-name-directory file))
-      (nnheader-temp-write file
-       (insert-file-contents file)
-       (goto-char (point-min))
-       (when (re-search-forward (concat "^" (regexp-quote group) " ") nil t)
-         (gnus-delete-line))
-       (insert group " " (number-to-string (cdr active)) " "
-               (number-to-string (car active)) "\n")))))
-
 (defun gnus-agent-group-path (group)
   "Translate GROUP into a path."
   (if nnmail-use-long-file-names
@@ -629,7 +599,7 @@ the actual number of articles toggled is returned."
 ;;;
 
 (defun gnus-agent-fetch-articles (group articles)
-  "Fetch ARTICLES from GROUP and put them into the Agent."
+  "Fetch ARTICLES from GROUP and put them into the agent."
   (when articles
     ;; Prune off articles that we have already fetched.
     (while (and articles
@@ -662,7 +632,7 @@ the actual number of articles toggled is returned."
                  (insert-buffer-substring nntp-server-buffer)))
              (copy-to-buffer nntp-server-buffer (point-min) (point-max))
              (setq pos (nreverse pos)))))
-       ;; Then save these articles into the Agent.
+       ;; Then save these articles into the agent.
        (save-excursion
          (set-buffer nntp-server-buffer)
          (while pos
@@ -877,12 +847,11 @@ the actual number of articles toggled is returned."
        (setq gnus-command-method (car methods))
        (when (or (gnus-server-opened gnus-command-method)
                  (gnus-open-server gnus-command-method))
-         (setq groups (gnus-groups-from-server (car methods)))
+         (setq groups (gnus-groups-from-server (pop methods)))
          (gnus-agent-with-fetch
            (while (setq group (pop groups))
              (when (<= (gnus-group-level group) gnus-agent-handle-level)
-               (gnus-agent-fetch-group-1 group gnus-command-method)))))
-       (pop methods))
+               (gnus-agent-fetch-group-1 group gnus-command-method))))))
       (gnus-message 6 "Finished fetching articles into the Gnus agent"))))
 
 (defun gnus-agent-fetch-group-1 (group method)
@@ -893,8 +862,7 @@ the actual number of articles toggled is returned."
        gnus-use-cache articles score arts
        category predicate info marks score-param)
     ;; Fetch headers.
-    (when (and (or (gnus-active group) (gnus-activate-group group))
-              (setq articles (gnus-list-of-unread-articles group))
+    (when (and (setq articles (gnus-list-of-unread-articles group))
               (gnus-agent-fetch-headers group articles))
       ;; Parse them and see which articles we want to fetch.
       (setq gnus-newsgroup-dependencies
@@ -1276,8 +1244,7 @@ The following commands are available:
        (set-buffer
         (setq gnus-agent-current-history
               (setq history (gnus-agent-history-buffer))))
-       (goto-char (point-min))
-       (when (> (buffer-size) 1)
+       (unless (zerop (buffer-size))
          (goto-char (point-min))
          (while (not (eobp))
            (skip-chars-forward "^\t")
@@ -1308,14 +1275,12 @@ The following commands are available:
                                  (cdr (assq 'dormant
                                             (gnus-info-marks info)))))
                   nov-file (gnus-agent-article-name ".overview" group))
-            (gnus-agent-load-alist group)
             (gnus-message 5 "Expiring articles in %s" group)
             (set-buffer overview)
             (erase-buffer)
             (when (file-exists-p nov-file)
-              (nnheader-insert-file-contents nov-file))
+              (insert-file-contents nov-file))
             (goto-char (point-min))
-            (setq article 0)
             (while (setq elem (pop articles))
               (setq article (car elem))
               (when (or (null low)
@@ -1325,15 +1290,8 @@ The following commands are available:
                              (not (memq article marked))))
                 ;; Find and nuke the NOV line.
                 (while (and (not (eobp))
-                            (or (not (numberp
-                                      (setq art (read (current-buffer)))))
-                                (< art article)))
-                  (if (file-exists-p
-                       (gnus-agent-article-name
-                        (number-to-string article) group))
-                      (forward-line 1)
-                    ;; Remove old NOV lines that have no articles.
-                    (gnus-delete-line)))
+                            (< (setq art (read (current-buffer))) article))
+                  (forward-line 1))
                 (if (or (eobp)
                         (/= art article))
                     (beginning-of-line)
@@ -1345,26 +1303,7 @@ The following commands are available:
                   (delete-file file))
                 ;; Schedule the history line for nuking.
                 (push (cdr elem) histories)))
-            (write-region (point-min) (point-max) nov-file nil 'silent)
-            ;; Delete the unwanted entries in the alist.
-            (setq gnus-agent-article-alist
-                  (sort gnus-agent-article-alist 'car-less-than-car))
-            (let* ((alist gnus-agent-article-alist)
-                   (prev (cons nil alist))
-                   (first prev))
-              (while (and alist
-                          (<= (caar alist) article))
-                (if (or (not (cdar alist))
-                        (not (file-exists-p
-                              (gnus-agent-article-name
-                               (number-to-string
-                                (caar alist))
-                               group))))
-                    (setcdr prev (setq alist (cdr alist)))
-                  (setq prev alist
-                        alist (cdr alist))))
-              (setq gnus-agent-article-alist (cdr first)))
-            (gnus-agent-save-alist group))
+            (write-region (point-min) (point-max) nov-file nil 'silent))
           expiry-hashtb)
          (set-buffer history)
          (setq histories (nreverse (sort histories '<)))
index d2c3e0d..1e8c8a0 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-art.el --- article mode commands for Semi-gnus
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;;         MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Keywords: mail, news, MIME
 
@@ -199,7 +199,7 @@ asynchronously.      The compressed face will be piped to this command."
         (lambda (spec)
           (list
            (format format (car spec) (cadr spec))
-           2 3 (intern (format "gnus-emphasis-%s" (nth 2 spec)))))
+           2 3 (intern (format "gnus-emphasis-%s" (caddr spec)))))
         types)))
   "*Alist that says how to fontify certain phrases.
 Each item looks like this:
@@ -1383,14 +1383,13 @@ function and want to see what the date was before converting."
 
 (defun article-update-date-lapsed ()
   "Function to be run from a timer to update the lapsed time line."
-  (let (deactivate-mark)
-    (save-excursion
-      (ignore-errors
-        (when (gnus-buffer-live-p gnus-article-buffer)
-          (set-buffer gnus-article-buffer)
-          (goto-char (point-min))
-          (when (re-search-forward "^X-Sent:" nil t)
-            (article-date-lapsed t)))))))
+  (save-excursion
+    (ignore-errors
+      (when (gnus-buffer-live-p gnus-article-buffer)
+       (set-buffer gnus-article-buffer)
+       (goto-char (point-min))
+       (when (re-search-forward "^X-Sent:" nil t)
+         (article-date-lapsed t))))))
 
 (defun gnus-start-date-timer (&optional n)
   "Start a timer to update the X-Sent header in the article buffers.
@@ -1585,6 +1584,7 @@ This format is defined by the `gnus-article-time-format' variable."
   "Append this article to Rmail file.
 Optional argument FILENAME specifies file name.
 Directory to save to is default to `gnus-article-save-directory'."
+  (interactive)
   (setq filename (gnus-read-save-file-name
                  "Save %s in rmail file:" filename
                  gnus-rmail-save-name gnus-newsgroup-name
@@ -1600,6 +1600,7 @@ Directory to save to is default to `gnus-article-save-directory'."
   "Append this article to Unix mail file.
 Optional argument FILENAME specifies file name.
 Directory to save to is default to `gnus-article-save-directory'."
+  (interactive)
   (setq filename (gnus-read-save-file-name
                  "Save %s in Unix mail file:" filename
                  gnus-mail-save-name gnus-newsgroup-name
@@ -1618,6 +1619,7 @@ Directory to save to is default to `gnus-article-save-directory'."
   "Append this article to file.
 Optional argument FILENAME specifies file name.
 Directory to save to is default to `gnus-article-save-directory'."
+  (interactive)
   (setq filename (gnus-read-save-file-name
                  "Save %s in file:" filename
                  gnus-file-save-name gnus-newsgroup-name
@@ -1636,12 +1638,14 @@ Directory to save to is default to `gnus-article-save-directory'."
   "Write this article to a file.
 Optional argument FILENAME specifies file name.
 The directory to save in defaults to `gnus-article-save-directory'."
+  (interactive)
   (gnus-summary-save-in-file nil t))
 
 (defun gnus-summary-save-body-in-file (&optional filename)
   "Append this article body to a file.
 Optional argument FILENAME specifies file name.
 The directory to save in defaults to `gnus-article-save-directory'."
+  (interactive)
   (setq filename (gnus-read-save-file-name
                  "Save %s body in file:" filename
                  gnus-file-save-name gnus-newsgroup-name
@@ -1658,6 +1662,7 @@ The directory to save in defaults to `gnus-article-save-directory'."
 
 (defun gnus-summary-save-in-pipe (&optional command)
   "Pipe this article to subprocess."
+  (interactive)
   (setq command
        (cond ((eq command 'default)
               gnus-last-shell-command)
@@ -1848,7 +1853,10 @@ If variable `gnus-use-long-file-name' is non-nil, it is
        ["Remove carriage return" gnus-article-remove-cr t]
        ))
 
-    ;; Note "Commands" menu is defined in gnus-sum.el for consistency
+    (when nil
+      (when (boundp 'gnus-summary-article-menu)
+       (define-key gnus-article-mode-map [menu-bar commands]
+         (cons "Commands" gnus-summary-article-menu))))
 
     (when (boundp 'gnus-summary-post-menu)
       (define-key gnus-article-mode-map [menu-bar post]
@@ -1874,6 +1882,7 @@ commands:
   (interactive)
   (when (gnus-visual-p 'article-menu 'menu)
     (gnus-article-make-menu-bar))
+  (kill-all-local-variables)
   (gnus-simplify-mode-line)
   (setq mode-name "Article")
   (setq major-mode 'gnus-article-mode)
@@ -1883,9 +1892,9 @@ commands:
   (use-local-map gnus-article-mode-map)
   (gnus-update-format-specifications nil 'article-mode)
   (set (make-local-variable 'page-delimiter) gnus-page-delimiter)
-  (make-local-variable 'gnus-page-broken) 
-  (make-local-variable 'gnus-button-marker-list) 
-  (make-local-variable 'gnus-article-current-summary) 
+  (set (make-local-variable 'gnus-page-broken) nil)
+  (set (make-local-variable 'gnus-button-marker-list) nil)
+  (set (make-local-variable 'gnus-article-current-summary) nil)
   (gnus-set-default-directory)
   (buffer-disable-undo (current-buffer))
   (setq buffer-read-only t)
@@ -2293,68 +2302,67 @@ Argument LINES specifies lines to be scrolled down."
   "Read a summary buffer key sequence and execute it from the article buffer."
   (interactive "P")
   (let ((nosaves
-         '("q" "Q"  "c" "r" "R" "\C-c\C-f" "m"  "a" "f" "F"
-           "Zc" "ZC" "ZE" "ZQ" "ZZ" "Zn" "ZR" "ZG" "ZN" "ZP"
-           "=" "^" "\M-^" "|"))
-        (nosave-but-article
-         '("A\r"))
-        (nosave-in-article
-         '("\C-d"))
+        '("q" "Q"  "c" "r" "R" "\C-c\C-f" "m"  "a" "f" "F"
+          "Zc" "ZC" "ZE" "ZQ" "ZZ" "Zn" "ZR" "ZG" "ZN" "ZP"
+          "=" "^" "\M-^" "|"))
+       (nosave-but-article
+        '("A\r"))
+       (nosave-in-article
+        '("\C-d"))
         (up-to-top
          '("n" "Gn" "p" "Gp"))
-        keys new-sum-point)
+       keys new-sum-point)
     (save-excursion
       (set-buffer gnus-article-current-summary)
       (let (gnus-pick-mode)
-        (push (or key last-command-event) unread-command-events)
-        (setq keys (read-key-sequence nil))))
+       (push (or key last-command-event) unread-command-events)
+       (setq keys (read-key-sequence nil))))
     (message "")
 
     (if (or (member keys nosaves)
-            (member keys nosave-but-article)
-            (member keys nosave-in-article))
-        (let (func)
-          (save-window-excursion
-            (pop-to-buffer gnus-article-current-summary 'norecord)
-            ;; We disable the pick minor mode commands.
-            (let (gnus-pick-mode)
-              (setq func (lookup-key (current-local-map) keys))))
-          (if (not func)
-              (ding)
-            (unless (member keys nosave-in-article)
-              (set-buffer gnus-article-current-summary))
-            (call-interactively func)
-            (setq new-sum-point (point)))
-          (when (member keys nosave-but-article)
-            (pop-to-buffer gnus-article-buffer 'norecord)))
+           (member keys nosave-but-article)
+           (member keys nosave-in-article))
+       (let (func)
+         (save-window-excursion
+           (pop-to-buffer gnus-article-current-summary 'norecord)
+           ;; We disable the pick minor mode commands.
+           (let (gnus-pick-mode)
+             (setq func (lookup-key (current-local-map) keys))))
+         (if (not func)
+             (ding)
+           (unless (member keys nosave-in-article)
+             (set-buffer gnus-article-current-summary))
+           (call-interactively func)
+           (setq new-sum-point (point)))
+         (when (member keys nosave-but-article)
+           (pop-to-buffer gnus-article-buffer 'norecord)))
       ;; These commands should restore window configuration.
       (let ((obuf (current-buffer))
-            (owin (current-window-configuration))
-            (opoint (point))
-            (summary gnus-article-current-summary)
-            func in-buffer selected)
-        (if not-restore-window
-            (pop-to-buffer summary 'norecord)
-          (switch-to-buffer summary 'norecord))
-        (setq in-buffer (current-buffer))
-        ;; We disable the pick minor mode commands.
-        (if (setq func (let (gnus-pick-mode)
-                         (lookup-key (current-local-map) keys)))
-            (progn
-              (call-interactively func)
-              (setq new-sum-point (point)))
-          (ding))
-        (when (eq in-buffer (current-buffer))
-          (setq selected (gnus-summary-select-article))
-          (set-buffer obuf)
-          (unless not-restore-window
-            (set-window-configuration owin))
-          (unless (or (not (eq selected 'old)) (member keys up-to-top))
+           (owin (current-window-configuration))
+           (opoint (point))
+           (summary gnus-article-current-summary)
+           func in-buffer)
+       (if not-restore-window
+           (pop-to-buffer summary 'norecord)
+         (switch-to-buffer summary 'norecord))
+       (setq in-buffer (current-buffer))
+       ;; We disable the pick minor mode commands.
+       (if (setq func (let (gnus-pick-mode)
+                        (lookup-key (current-local-map) keys)))
+           (progn
+             (call-interactively func)
+             (setq new-sum-point (point)))
+         (ding))
+       (when (eq in-buffer (current-buffer))
+         (set-buffer obuf)
+         (unless not-restore-window
+           (set-window-configuration owin))
+          (unless (member keys up-to-top)
             (set-window-point (get-buffer-window (current-buffer))
                               opoint))
-          (let ((win (get-buffer-window gnus-article-current-summary)))
-            (when win
-              (set-window-point win new-sum-point))))))))
+         (let ((win (get-buffer-window gnus-article-current-summary)))
+           (when win
+             (set-window-point win new-sum-point))))))))
 
 (defun gnus-article-hide (&optional arg force)
   "Hide all the gruft in the current article.
@@ -2400,7 +2408,7 @@ If given a prefix, show the hidden text instead."
          (when (and (numberp article)
                     gnus-summary-buffer
                     (get-buffer gnus-summary-buffer)
-                    (gnus-buffer-exists-p gnus-summary-buffer))
+                    (buffer-name (get-buffer gnus-summary-buffer)))
            (save-excursion
              (set-buffer gnus-summary-buffer)
              (let ((header (gnus-summary-article-header article)))
@@ -2424,8 +2432,8 @@ If given a prefix, show the hidden text instead."
 
                (let ((method (gnus-find-method-for-group
                               gnus-newsgroup-name)))
-                 (when (and (eq (car method) 'nneething)
-                            (vectorp header))
+                 (if (not (eq (car method) 'nneething))
+                     ()
                    (let ((dir (concat (file-name-as-directory (nth 1 method))
                                       (mail-header-subject header))))
                      (when (file-directory-p dir)
@@ -2437,7 +2445,7 @@ If given a prefix, show the hidden text instead."
           ((and (numberp article)
                 gnus-summary-buffer
                 (get-buffer gnus-summary-buffer)
-                (gnus-buffer-exists-p gnus-summary-buffer)
+                (buffer-name (get-buffer gnus-summary-buffer))
                 (eq (cdr (save-excursion
                            (set-buffer gnus-summary-buffer)
                            (assq article gnus-newsgroup-reads)))
@@ -2494,7 +2502,7 @@ If given a prefix, show the hidden text instead."
                        (buffer-name (get-buffer gnus-article-buffer))))
        (save-excursion
          (if (get-buffer gnus-original-article-buffer)
-             (set-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)
@@ -2547,6 +2555,7 @@ This is an extended text-mode.
 
 \\{gnus-article-edit-mode-map}"
   (interactive)
+  (kill-all-local-variables)
   (setq major-mode 'gnus-article-edit-mode)
   (setq mode-name "Article Edit")
   (use-local-map gnus-article-edit-mode-map)
@@ -2676,17 +2685,15 @@ groups."
   :type 'regexp)
 
 (defcustom gnus-button-alist
-  `(("<\\(url:[>\n\t ]*?\\)?news:[>\n\t ]*\\([^>\n\t ]*@[^>\n\t ]*\\)>" 0 t
+  `(("<\\(url: ?\\)?news:\\([^>\n\t ]*@[^>\n\t ]*\\)>" 0 t
      gnus-button-message-id 2)
     ("\\bnews:\\([^>\n\t ]*@[^>\n\t ]*\\)" 0 t gnus-button-message-id 1)
-    ("\\(\\b<\\(url:[>\n\t ]*\\)?news:[>\n\t ]*\\(//\\)?\\([^>\n\t ]*\\)>\\)"
-     1 t
+    ("\\(\\b<\\(url: ?\\)?news:\\(//\\)?\\([^>\n\t ]*\\)>\\)" 1 t
      gnus-button-fetch-group 4)
     ("\\bnews:\\(//\\)?\\([^'\">\n\t ]+\\)" 0 t gnus-button-fetch-group 2)
     ("\\bin\\( +article\\| +message\\)? +\\(<\\([^\n @<>]+@[^\n @<>]+\\)>\\)" 2
      t gnus-button-message-id 3)
     ("\\(<URL: *\\)mailto: *\\([^> \n\t]+\\)>" 0 t gnus-url-mailto 2)
-    ("mailto:\\([a-zA-Z.-@_+0-9%]+\\)" 0 t gnus-url-mailto 2)
     ("\\bmailto:\\([^ \n\t]+\\)" 0 t gnus-url-mailto 1)
     ;; This is how URLs _should_ be embedded in text...
     ("<URL: *\\([^>]*\\)>" 0 t gnus-button-embedded-url 1)
@@ -3274,18 +3281,6 @@ It is registered to variable `mime-view-content-header-filter-alist'."
           'gnus-original-article-mode
           #'mime-preview-quitting-method-for-gnus)
 
-(defun gnus-following-method (buf)
-  (set-buffer buf)
-  (message-followup)
-  (message-yank-original)
-  (kill-buffer buf)
-  (goto-char (point-min))
-  )
-
-(set-alist 'mime-view-following-method-alist
-          'gnus-original-article-mode
-          #'gnus-following-method)
-
 
 ;;; @ end
 ;;;
index 8da43cc..c703caa 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-async.el --- asynchronous support for Gnus
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
index d9934e5..457770f 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-bcklg.el --- backlog functions for Gnus
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
index 04a3ad7..00d1f4a 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-cache.el --- cache interface for Gnus
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
 (eval-when-compile
   (require 'gnus-sum))
 
+(defgroup gnus-cache nil
+  "Cache interface."
+  :group 'gnus)
+
+(defcustom gnus-cache-directory
+  (nnheader-concat gnus-directory "cache/")
+  "*The directory where cached articles will be stored."
+  :group 'gnus-cache
+  :type 'directory)
+
 (defcustom gnus-cache-active-file
   (concat (file-name-as-directory gnus-cache-directory) "active")
   "*The cache active file."
@@ -309,7 +319,6 @@ Returns the list of articles entered."
   (let ((articles (gnus-summary-work-articles n))
        article out)
     (while (setq article (pop articles))
-      (gnus-summary-remove-process-mark article)
       (if (natnump article)
          (when (gnus-cache-possibly-enter-article
                 gnus-newsgroup-name article
@@ -317,6 +326,7 @@ Returns the list of articles entered."
                 nil nil nil t)
            (push article out))
        (gnus-message 2 "Can't cache article %d" article))
+      (gnus-summary-remove-process-mark article)
       (gnus-summary-update-secondary-mark article))
     (gnus-summary-next-subject 1)
     (gnus-summary-position-point)
@@ -332,9 +342,9 @@ Returns the list of articles removed."
        article out)
     (while articles
       (setq article (pop articles))
-      (gnus-summary-remove-process-mark article)
       (when (gnus-cache-possibly-remove-article article nil nil nil t)
        (push article out))
+      (gnus-summary-remove-process-mark article)
       (gnus-summary-update-secondary-mark article))
     (gnus-summary-next-subject 1)
     (gnus-summary-position-point)
@@ -399,8 +409,7 @@ Returns the list of articles removed."
                ;; Translate the first colon into a slash.
                (when (string-match ":" group)
                  (aset group (match-beginning 0) ?/))
-               (nnheader-replace-chars-in-string group ?. ?/)))
-           t))
+               (nnheader-replace-chars-in-string group ?. ?/)))))
          (if (stringp article) article (int-to-string article))))
 
 (defun gnus-cache-update-article (group article)
@@ -607,9 +616,8 @@ If LOW, update the lower bound instead."
          (if top
              ""
            (string-match
-            (concat "^" (regexp-quote
-                         (file-name-as-directory
-                          (expand-file-name gnus-cache-directory))))
+            (concat "^" (file-name-as-directory
+                         (expand-file-name gnus-cache-directory)))
             (directory-file-name directory))
            (nnheader-replace-chars-in-string
             (substring (directory-file-name directory) (match-end 0))
index 5dd0f89..4230388 100644 (file)
@@ -485,10 +485,6 @@ always hide."
                (setq beg nil)
              (setq beg (point-marker))))
          (when (and beg end)
-           ;; We use markers for the end-points to facilitate later
-           ;; wrapping and mangling of text.
-           (setq beg (set-marker (make-marker) beg)
-                 end (set-marker (make-marker) end))
            (gnus-add-text-properties beg end props)
            (goto-char beg)
            (unless (save-excursion (search-backward "\n\n" nil t))
@@ -500,7 +496,10 @@ always hide."
                (point)
                (progn (eval gnus-cited-text-button-line-format-spec) (point))
                `gnus-article-toggle-cited-text
-               (cons beg end))
+               ;; We use markers for the end-points to facilitate later
+               ;; wrapping and mangling of text.
+               (cons (set-marker (make-marker) beg)
+                     (set-marker (make-marker) end)))
               (point))
             'article-type 'annotation)
            (set-marker beg (point)))))))))
index 594bc9f..f3968ea 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-demon.el --- daemonic Gnus behaviour
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
index fce8744..9f86512 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-draft.el --- draft message support for Semi-gnus
 ;; Copyright (C) 1997,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;;         MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Keywords: mail, news, MIME, offline
 
@@ -31,7 +31,6 @@
 (require 'message)
 (require 'gnus-msg)
 (require 'nndraft)
-(require 'gnus-agent)
 (eval-when-compile (require 'cl))
 
 ;;; Draft minor mode
@@ -98,9 +97,9 @@
     (gnus-draft-setup article gnus-newsgroup-name)
     (push
      `((lambda ()
-        (when (gnus-buffer-exists-p ,gnus-summary-buffer)
+        (when (buffer-name (get-buffer ,gnus-summary-buffer))
           (save-excursion
-            (set-buffer ,gnus-summary-buffer)
+            (set-buffer (get-buffer ,gnus-summary-buffer))
             (gnus-cache-possibly-remove-article ,article nil nil nil t)))))
      message-send-actions)))
 
   "Send message ARTICLE."
   (gnus-draft-setup article (or group "nndraft:queue"))
   (let ((message-syntax-checks 'dont-check-for-anything-just-trust-me)
-       message-send-hook type method)
-    ;; We read the meta-information that says how and where
-    ;; this message is to be sent.
-    (save-restriction
-      (message-narrow-to-head)
-      (when (re-search-forward
-            (concat "^" (regexp-quote gnus-agent-meta-information-header) ":")
-            nil t)
-       (setq type (ignore-errors (read (current-buffer)))
-             method (ignore-errors (read (current-buffer))))
-       (message-remove-header gnus-agent-meta-information-header)))
-    ;; Then we send it.  If we have no meta-information, we just send
-    ;; it and let Message figure out how.
-    (if type
-       (let ((message-this-is-news (eq type 'news))
-             (message-this-is-mail (eq type 'mail))
-             (gnus-post-method method)
-             (message-post-method method))
-         (message-send-and-exit))
-      (message-send-and-exit))))
+       message-send-hook)
+    (message-send-and-exit)))
 
 (defun gnus-draft-send-all-messages ()
   "Send all the sendable drafts."
index 6958f02..3fd5795 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-dup.el --- suppression of duplicate articles in Gnus
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
index ff35a42..b0ff413 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-eform.el --- a mode for editing forms for Gnus
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
index 2c002f2..734723a 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-ems.el --- functions for making Semi-gnus work under different Emacsen
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;;         Tatsuya Ichikawa <t-ichi@niagara.shiojiri.ne.jp>
 ;; Keywords: news
 
 (eval-and-compile
   (let ((case-fold-search t))
     (cond
-     ((string-match "windows-nt\\|os/2\\|emx" (symbol-name system-type))
+     ((string-match "windows-nt\\|os/2\\|emx" (format "%s" system-type))
       (setq nnheader-file-name-translation-alist
            (append nnheader-file-name-translation-alist
                    '((?: . ?_)
index c4fd928..7d1b7de 100644 (file)
@@ -299,7 +299,7 @@ If this times out we give up and assume that something has died..." )
 ;;;;       Login Functions
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 (defun bbb-login ()
-  "return the token number if login is successful, otherwise return nil."
+  "return the token number if login is successful, otherwise return nil"
   (interactive)
   (setq grouplens-bbb-token nil)
   (if (not (equal grouplens-pseudonym ""))
@@ -324,7 +324,7 @@ If this times out we give up and assume that something has died..." )
 (gnus-add-shutdown 'bbb-logout 'gnus)
 
 (defun bbb-logout ()
-  "logout of bbb session."
+  "logout of bbb session"
   (when grouplens-bbb-token
     (let ((bbb-process
           (bbb-connect-to-bbbd grouplens-bbb-host grouplens-bbb-port)))
@@ -339,8 +339,9 @@ If this times out we give up and assume that something has died..." )
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (defun bbb-build-mid-scores-alist (groupname)
-  "this function can be called as part of the function to return the list of score files to use.
-See the gnus variable gnus-score-find-score-files-function.
+  "this function can be called as part of the function to return the
+list of score files to use.  See the gnus variable
+gnus-score-find-score-files-function.
 
 *Note:*  If you want to use grouplens scores along with calculated scores,
 you should see the offset and scale variables.  At this point, I don't
@@ -668,8 +669,9 @@ recommend using both scores and grouplens predictions together."
   (gnus-summary-best-unread-article))
 
 (defun grouplens-summary-catchup-and-exit (rating)
-  "Mark all articles not marked as unread in this newsgroup as read, then exit.
-If prefix argument ALL is non-nil, all articles are marked as read."
+  "Mark all articles not marked as unread in this newsgroup as read,
+    then exit.   If prefix argument ALL is non-nil, all articles are
+    marked as read."
   (interactive "P")
   (when rating
     (bbb-summary-rate-article rating))
@@ -746,7 +748,7 @@ If prefix argument ALL is non-nil, all articles are marked as read."
 (defconst gnus-gl-version "gnus-gl.el 2.50")
 (defconst gnus-gl-maintainer-address "grouplens-bug@cs.umn.edu")
 (defun gnus-gl-submit-bug-report ()
-  "Submit via mail a bug report on gnus-gl."
+  "Submit via mail a bug report on gnus-gl"
   (interactive)
   (require 'reporter)
   (reporter-submit-bug-report gnus-gl-maintainer-address
@@ -763,7 +765,7 @@ If prefix argument ALL is non-nil, all articles are marked as read."
                              'gnus-gl-get-trace))
 
 (defun gnus-gl-get-trace ()
-  "Insert the contents of the BBBD trace buffer."
+  "Insert the contents of the BBBD trace buffer"
   (when grouplens-bbb-buffer
     (insert-buffer grouplens-bbb-buffer)))
 
index d4bfd54..902955c 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-group.el --- group mode commands for Gnus
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
@@ -711,7 +711,7 @@ ticked: The number of ticked articles."
         (fboundp 'gnus-soup-pack-packet)]
        ["Pack packet" gnus-soup-pack-packet (fboundp 'gnus-soup-pack-packet)]
        ["Save areas" gnus-soup-save-areas (fboundp 'gnus-soup-pack-packet)]
-       ["Brew SOUP" gnus-group-brew-soup (fboundp 'gnus-soup-pack-packet)])
+       ["Brew SOUP" gnus-soup-brew-soup (fboundp 'gnus-soup-pack-packet)])
        ["Send a bug report" gnus-bug t]
        ["Send a mail" gnus-group-mail t]
        ["Post an article..." gnus-group-post-news t]
@@ -1234,8 +1234,7 @@ already."
 (defun gnus-group-group-name ()
   "Get the name of the newsgroup on the current line."
   (let ((group (get-text-property (gnus-point-at-bol) 'gnus-group)))
-    (when group
-      (symbol-name group))))
+    (and group (symbol-name group))))
 
 (defun gnus-group-group-level ()
   "Get the level of the newsgroup on the current line."
@@ -1585,14 +1584,14 @@ Return the name of the group is selection was successful."
   ;; Transform the select method into a unique server.
   (when (stringp method)
     (setq method (gnus-server-to-method method)))
-;;;  (let ((saddr (intern (format "%s-address" (car method)))))
-;;;    (setq method (gnus-copy-sequence method))
-;;;    (require (car method))
-;;;    (when (boundp saddr)
-;;;      (unless (assq saddr method)
-;;;    (nconc method `((,saddr ,(cadr method))))
-;;;    (setf (cadr method) (format "%s-%d" (cadr method)
-;;;                                (incf gnus-ephemeral-group-server))))))
+  (let ((saddr (intern (format "%s-address" (car method)))))
+    (setq method (gnus-copy-sequence method))
+    (require (car method))
+    (when (boundp saddr)
+      (unless (assq saddr method)
+       (nconc method `((,saddr ,(cadr method))))
+       (setf (cadr method) (format "%s-%d" (cadr method)
+                                   (incf gnus-ephemeral-group-server))))))
   (let ((group (if (gnus-group-foreign-p group) group
                 (gnus-group-prefixed-name group method))))
     (gnus-sethash
@@ -2736,10 +2735,11 @@ of groups killed."
     (if (< (length out) 2) (car out) (nreverse out))))
 
 (defun gnus-group-yank-group (&optional arg)
-  "Yank the last newsgroups killed with \\[gnus-group-kill-group], inserting it before the current newsgroup.
-The numeric ARG specifies how many newsgroups are to be yanked.  The
-name of the newsgroup yanked is returned, or (if several groups are
-yanked) a list of yanked groups is returned."
+  "Yank the last newsgroups killed with \\[gnus-group-kill-group],
+inserting it before the current newsgroup.  The numeric ARG specifies
+how many newsgroups are to be yanked.  The name of the newsgroup yanked
+is returned, or (if several groups are yanked) a list of yanked groups
+is returned."
   (interactive "p")
   (setq arg (or arg 1))
   (let (info group prev out)
@@ -3354,7 +3354,7 @@ or `gnus-group-catchup-group-hook'."
 
 (defsubst gnus-group-timestamp (group)
   "Return the timestamp for GROUP."
-  (gnus-group-get-parameter group 'timestamp t))
+  (gnus-group-get-parameter group 'timestamp))
 
 (defun gnus-group-timestamp-delta (group)
   "Return the offset in seconds from the timestamp for GROUP to the current time, as a floating point number."
index 3246bb4..f8acea9 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-int.el --- backend interface functions for Gnus
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
index 40d94d4..9773710 100644 (file)
@@ -2,7 +2,7 @@
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
-;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
+;;     Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
index f2913f1..8405e19 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-logic.el --- advanced scoring code for Gnus
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
index 3960408..84487f9 100644 (file)
@@ -2,7 +2,7 @@
 ;; Copyright (C) 1994,95,96,97,98 Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
-;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
+;;     Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
index f676783..ef39c59 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-move.el --- commands for moving Gnus from one server to another
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
@@ -130,10 +130,7 @@ Update the .newsrc.eld file to reflect the change of nntp server."
          ;; into the Gnus info format.
          (setq to-reads
                (gnus-range-add
-                (gnus-compress-sequence
-                 (and (setq to-reads (delq nil to-reads))
-                      (sort to-reads '<))
-                 t)
+                (gnus-compress-sequence (and to-reads (sort to-reads '<)) t)
                 (cons 1 (1- (car to-active)))))
          (gnus-info-set-read info to-reads)
          ;; Do the marks.  I'm sure y'all understand what's
index 955dbfa..95aa5f7 100644 (file)
@@ -2,7 +2,7 @@
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
-;;        Lars Magne Ingebrigtsen <larsi@gnus.org>
+;;         Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;;         MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Keywords: mail, news, MIME
 
 (require 'message)
 (require 'gnus-art)
 
-(defcustom gnus-post-method nil
+;; Added by Sudish Joseph <joseph@cis.ohio-state.edu>.
+(defvar gnus-post-method nil
   "*Preferred method for posting USENET news.
+If this variable is nil, Gnus will use the current method to decide
+which method to use when posting.  If it is non-nil, it will override
+the current method.  This method will not be used in mail groups and
+the like, only in \"real\" newsgroups.
 
-If this variable is `current', Gnus will use the \"current\" select
-method when posting.  If it is nil (which is the default), Gnus will
-use the native posting method of the server.
-
-This method will not be used in mail groups and the like, only in
-\"real\" newsgroups.
-
-If not nil nor `native', the value must be a valid method as discussed
-in the documentation of `gnus-select-method'. It can also be a list of
-methods. If that is the case, the user will be queried for what select
-method to use when posting."
-  :group 'gnus-group-foreign
-  :type `(choice (const nil)
-                 (const current)
-                (const native)
-                (sexp :tag "Methods" ,gnus-select-method)))
+The value must be a valid method as discussed in the documentation of
+`gnus-select-method'.  It can also be a list of methods.  If that is
+the case, the user will be queried for what select method to use when
+posting.")
 
 (defvar gnus-outgoing-message-group nil
   "*All outgoing messages will be put in this group.
@@ -95,9 +88,6 @@ the second with the current group name.")
 (defvar gnus-message-setup-hook nil
   "Hook run after setting up a message buffer.")
 
-(defvar gnus-bug-create-help-buffer t
-  "*Should we create the *Gnus Help Bug* buffer?")
-
 ;;; Internal variables.
 
 (defvar gnus-message-buffer "*Mail Gnus*")
@@ -200,9 +190,9 @@ Thank you for your help in stamping out bugs.
   (message-add-action
    `(set-window-configuration ,winconf) 'exit 'postpone 'kill)
   (message-add-action
-   `(when (gnus-buffer-exists-p ,buffer)
+   `(when (buffer-name (get-buffer ,buffer))
       (save-excursion
-       (set-buffer ,buffer)
+       (set-buffer (get-buffer ,buffer))
        ,(when article
           `(gnus-summary-mark-article-as-replied ,article))))
    'send))
@@ -324,9 +314,9 @@ header line with the old Message-ID."
       (message-supersede)
       (push
        `((lambda ()
-          (when (gnus-buffer-exists-p ,gnus-summary-buffer)
+          (when (buffer-name (get-buffer ,gnus-summary-buffer))
             (save-excursion
-              (set-buffer ,gnus-summary-buffer)
+              (set-buffer (get-buffer ,gnus-summary-buffer))
               (gnus-cache-possibly-remove-article ,article nil nil nil t)
               (gnus-summary-mark-as-read ,article gnus-canceled-mark)))))
        message-send-actions))))
@@ -345,7 +335,7 @@ header line with the old Message-ID."
   (let ((article-buffer (or article-buffer gnus-article-buffer))
        end beg contents)
     (if (not (and (get-buffer article-buffer)
-                 (gnus-buffer-exists-p article-buffer)))
+                 (buffer-name (get-buffer article-buffer))))
        (error "Can't find any article buffer")
       (save-excursion
        (set-buffer article-buffer)
@@ -441,23 +431,18 @@ If SILENT, don't prompt the user."
      ;; If the group-method is nil (which shouldn't happen) we use
      ;; the default method.
      ((null group-method)
-      (or (and (null (eq gnus-post-method 'active)) gnus-post-method)
-              gnus-select-method message-post-method))
-     ;; We want the inverse of the default
+      (or gnus-post-method gnus-select-method message-post-method))
+     ;; We want this group's method.
      ((and arg (not (eq arg 0)))
-      (if (eq gnus-post-method 'active)
-         gnus-select-method
-       group-method))
+      group-method)
      ;; We query the user for a post method.
      ((or arg
          (and gnus-post-method
-              (not (eq gnus-post-method 'current))
               (listp (car gnus-post-method))))
       (let* ((methods
              ;; Collect all methods we know about.
              (append
-              (when (and gnus-post-method
-                         (not (eq gnus-post-method 'current)))
+              (when gnus-post-method
                 (if (listp (car gnus-post-method))
                     gnus-post-method
                   (list gnus-post-method)))
@@ -490,9 +475,6 @@ If SILENT, don't prompt the user."
                   (cons (or gnus-last-posting-server "") 0))))
          method-alist))))
      ;; Override normal method.
-     ((and (eq gnus-post-method 'current)
-          (not arg))
-      group-method) 
      (gnus-post-method
       gnus-post-method)
      ;; Use the normal select method.
@@ -508,60 +490,9 @@ If SILENT, don't prompt the user."
 ;;; as well include the Emacs version as well.
 ;;; The following function works with later GNU Emacs, and XEmacs.
 (defun gnus-extended-version ()
-  "Stringified Gnus version and Emacs version."
+  "Stringified Gnus version"
   (interactive)
-  (concat
-   gnus-version
-   "/"
-   (cond
-    ((string-match "^\\([0-9]+\\.[0-9]+\\)\\.[.0-9]+$" emacs-version)
-     (concat "Emacs " (substring emacs-version
-                                (match-beginning 1)
-                                (match-end 1))))
-    ((string-match "\\([A-Z]*[Mm][Aa][Cc][Ss]\\)[^(]*\\(\\((beta.*)\\|'\\)\\)?"
-                  emacs-version)
-     (concat (substring emacs-version
-                       (match-beginning 1)
-                       (match-end 1))
-            (format " %d.%d" emacs-major-version emacs-minor-version)
-            (if (match-beginning 3)
-                (substring emacs-version
-                           (match-beginning 3)
-                           (match-end 3))
-              "")
-            (if (boundp 'xemacs-codename)
-                (concat " - \"" xemacs-codename "\""))))
-    (t emacs-version))))
-
-;; Written by "Mr. Per Persson" <pp@gnu.ai.mit.edu>.
-(defun gnus-inews-insert-mime-headers ()
-  "Insert MIME headers.
-Assumes ISO-Latin-1 is used iff 8-bit characters are present."
-  (goto-char (point-min))
-  (let ((mail-header-separator
-        (progn
-          (goto-char (point-min))
-          (if (and (search-forward (concat "\n" mail-header-separator "\n")
-                                   nil t)
-                   (not (search-backward "\n\n" nil t)))
-              mail-header-separator
-            ""))))
-    (or (mail-position-on-field "Mime-Version")
-       (insert "1.0")
-       (cond ((save-restriction
-                (widen)
-                (goto-char (point-min))
-                (re-search-forward "[^\000-\177]" nil t))
-              (or (mail-position-on-field "Content-Type")
-                  (insert "text/plain; charset=ISO-8859-1"))
-              (or (mail-position-on-field "Content-Transfer-Encoding")
-                  (insert "8bit")))
-             (t (or (mail-position-on-field "Content-Type")
-                    (insert "text/plain; charset=US-ASCII"))
-                (or (mail-position-on-field "Content-Transfer-Encoding")
-                    (insert "7bit")))))))
-
-(custom-add-option 'message-header-hook 'gnus-inews-insert-mime-headers)
+  gnus-version)
 
 \f
 ;;;
@@ -616,11 +547,7 @@ If FULL-HEADERS (the prefix), include full headers when forwarding."
   (interactive "P")
   (gnus-setup-message 'forward
     (gnus-summary-select-article)
-    (let ((charset default-mime-charset))
-      (set-buffer gnus-original-article-buffer)
-      (make-local-variable 'default-mime-charset)
-      (setq default-mime-charset charset)
-      )
+    (set-buffer gnus-original-article-buffer)
     (let ((message-included-forward-headers
           (if full-headers "" message-included-forward-headers)))
       (message-forward post))))
@@ -794,20 +721,18 @@ If YANK is non-nil, include the original article."
     (error "Gnus has been shut down"))
   (gnus-setup-message 'bug
     (delete-other-windows)
-    (when gnus-bug-create-help-buffer
-      (switch-to-buffer "*Gnus Help Bug*")
-      (erase-buffer)
-      (insert gnus-bug-message)
-      (goto-char (point-min)))
+    (switch-to-buffer (get-buffer-create "*Gnus Help Bug*"))
+    (erase-buffer)
+    (insert gnus-bug-message)
+    (goto-char (point-min))
     (message-pop-to-buffer "*Gnus Bug*")
     (message-setup `((To . ,gnus-maintainer) (Subject . "")))
-    (when gnus-bug-create-help-buffer
-      (push `(gnus-bug-kill-buffer) message-send-actions))
+    (push `(gnus-bug-kill-buffer) message-send-actions)
     (goto-char (point-min))
     (re-search-forward (concat "^" (regexp-quote mail-header-separator) "$"))
     (forward-line 1)
-    (insert (gnus-version) "\n"
-           (emacs-version) "\n")
+    (insert (gnus-version) "\n")
+    (insert (emacs-version) "\n")
     (when (and (boundp 'nntp-server-type)
               (stringp nntp-server-type))
       (insert nntp-server-type))
index d678531..4b761bc 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-nocem.el --- NoCeM pseudo-cancellation treatment
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
@@ -108,7 +108,8 @@ matches an previously scanned and verified nocem message."
   "Real-name mappings of subscribed groups.")
 
 (defun gnus-fill-real-hashtb ()
-  "Fill up a hash table with the real-name mappings from the user's active file."
+  "Fill up a hash table with the real-name mappings from the user's
+active file."
   (setq gnus-nocem-real-group-hashtb (gnus-make-hashtable
                                      (length gnus-newsrc-alist)))
   (mapcar (lambda (group)
index 7579b0c..1efc228 100644 (file)
@@ -184,10 +184,8 @@ arguments necessary for the job.")
 
 (defun gnus-get-buffer-name (variable)
   "Returns the buffer name associated with the contents of a variable."
-  (let ((buf (get-buffer (gnus-window-to-buffer-helper
+  (buffer-name (get-buffer (gnus-window-to-buffer-helper
                            (cdr (assq variable gnus-window-to-buffer))))))
-    (and buf
-        (buffer-name buf))))
 
 (defun gnus-picons-buffer-name ()
   (cond ((or (stringp gnus-picons-display-where)
@@ -466,7 +464,7 @@ none, and whose CDR is the corresponding element of DOMAINS."
                                            'text nil nil nil rightp))))))
 
 (defun gnus-picons-action-toggle (data)
-  "Toggle annotation."
+  "Toggle annotation"
   (interactive "e")
   (let* ((annot (car data))
         (glyph (annotation-glyph annot)))
@@ -474,7 +472,7 @@ none, and whose CDR is the corresponding element of DOMAINS."
     (set-annotation-data annot (cons annot glyph))))
 
 (defun gnus-picons-clear-cache ()
-  "Clear the picons cache."
+  "Clear the picons cache"
   (interactive)
   (setq gnus-picons-glyph-alist nil
        gnus-picons-url-alist nil))
@@ -730,7 +728,7 @@ none, and whose CDR is the corresponding element of DOMAINS."
                     (error "Unknown picon job tag %s" tag)))))))
 
 (defun gnus-picons-next-job ()
-  "Start processing the job queue if it is not in progress."
+  "Start processing the job queue if it is not in progress"
   (unless gnus-picons-job-already-running
     (gnus-picons-next-job-internal)))
 
index 799e883..efebc35 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-range.el --- range and sequence functions for Gnus
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
index 1efaa60..bbd3cf5 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-salt.el --- alternate summary mode interfaces for Gnus
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
@@ -72,24 +72,23 @@ It accepts the same format specs that `gnus-summary-line-format' does."
   (setq gnus-pick-mode-map (make-sparse-keymap))
 
   (gnus-define-keys gnus-pick-mode-map
+    "t" gnus-uu-mark-thread
+    "T" gnus-uu-unmark-thread
     " " gnus-pick-next-page
     "u" gnus-summary-unmark-as-processable
+    "U" gnus-summary-unmark-all-processable
+    "v" gnus-uu-mark-over
+    "r" gnus-uu-mark-region
+    "R" gnus-uu-unmark-region
+    "e" gnus-uu-mark-by-regexp
+    "E" gnus-uu-mark-by-regexp
+    "b" gnus-uu-mark-buffer
+    "B" gnus-uu-unmark-buffer
     "." gnus-pick-article
     gnus-down-mouse-2 gnus-pick-mouse-pick-region
-    "\r" gnus-pick-start-reading
-    ;; "t" gnus-uu-mark-thread
-    ;; "T" gnus-uu-unmark-thread
-    ;; "U" gnus-summary-unmark-all-processable
-    ;; "v" gnus-uu-mark-over
-    ;; "r" gnus-uu-mark-region
-    ;; "R" gnus-uu-unmark-region
-    ;; "e" gnus-uu-mark-by-regexp
-    ;; "E" gnus-uu-mark-by-regexp
-    ;; "b" gnus-uu-mark-buffer
-    ;; "B" gnus-uu-unmark-buffer
     ;;gnus-mouse-2 gnus-pick-mouse-pick
-    ;; "X" gnus-pick-start-reading
-    ))
+    "X" gnus-pick-start-reading
+    "\r" gnus-pick-start-reading))
 
 (defun gnus-pick-make-menu-bar ()
   (unless (boundp 'gnus-pick-menu)
@@ -100,14 +99,14 @@ It accepts the same format specs that `gnus-summary-line-format' does."
        ["Article" gnus-summary-mark-as-processable t]
        ["Thread" gnus-uu-mark-thread t]
        ["Region" gnus-uu-mark-region t]
-       ["Regexp" gnus-uu-mark-by-regexp t]
+       ["Regexp" gnus-uu-mark-regexp t]
        ["Buffer" gnus-uu-mark-buffer t])
        ("Unpick"
        ["Article" gnus-summary-unmark-as-processable t]
        ["Thread" gnus-uu-unmark-thread t]
        ["Region" gnus-uu-unmark-region t]
-       ["Regexp" gnus-uu-unmark-by-regexp t]
-       ["Buffer" gnus-summary-unmark-all-processable t])
+       ["Regexp" gnus-uu-unmark-regexp t]
+       ["Buffer" gnus-uu-unmark-buffer t])
        ["Start reading" gnus-pick-start-reading t]
        ["Switch pick mode off" gnus-pick-mode gnus-pick-mode]))))
 
@@ -469,7 +468,6 @@ Two predefined functions are available:
   (interactive "P")
   (let ((buf (current-buffer))
        win)
-    (set-buffer gnus-article-buffer)      
     (gnus-article-read-summary-keys arg nil t)
     (when (setq win (get-buffer-window buf))
       (select-window win)
index f324be2..435b288 100644 (file)
@@ -2,7 +2,7 @@
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
 ;; Author: Per Abrahamsen <amanda@iesd.auc.dk>
-;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
+;;     Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
@@ -32,7 +32,6 @@
 (require 'gnus-sum)
 (require 'gnus-range)
 (require 'message)
-(require 'score-mode)
 
 (defcustom gnus-global-score-files nil
   "List of global score files and directories.
@@ -269,11 +268,6 @@ This variable allows the same syntax as `gnus-home-score-file'."
   :group 'gnus-score-adapt
   :type '(choice (const nil) integer))
 
-(defcustom gnus-adaptive-word-no-group-words nil
-  "If t, don't adaptively score words included in the group name."
-  :group 'gnus-score-adapt
-  :type 'boolean)
-
 (defcustom gnus-score-mimic-keymap nil
   "*Have the score entry functions pretend that they are a keymap."
   :group 'gnus-score-default
@@ -1075,9 +1069,8 @@ SCORE is the score to add."
   ;; Load score file FILE.  Returns a list a retrieved score-alists.
   (let* ((file (expand-file-name
                (or (and (string-match
-                         (concat "^" (regexp-quote
-                                      (expand-file-name
-                                       gnus-kill-files-directory)))
+                         (concat "^" (expand-file-name
+                                      gnus-kill-files-directory))
                          (expand-file-name file))
                         file)
                    (concat (file-name-as-directory gnus-kill-files-directory)
@@ -1334,8 +1327,7 @@ SCORE is the score to add."
                (gnus-prin1 score)
              ;; This is a normal score file, so we print it very
              ;; prettily.
-             (let ((lisp-mode-syntax-table score-mode-syntax-table))
-               (pp score (current-buffer)))))
+             (pp score (current-buffer))))
          (gnus-make-directory (file-name-directory file))
          ;; If the score file is empty, we delete it.
          (if (zerop (buffer-size))
@@ -2095,10 +2087,6 @@ SCORE is the score to add."
       (set-syntax-table syntab))
     ;; Make all the ignorable words ignored.
     (let ((ignored (append gnus-ignored-adaptive-words
-                          (if gnus-adaptive-word-no-group-words
-                              (message-tokenize-header
-                               (gnus-group-real-name gnus-newsgroup-name)
-                               "."))
                           gnus-default-ignored-adaptive-words)))
       (while ignored
        (gnus-sethash (pop ignored) nil hashtb)))))
@@ -2227,11 +2215,6 @@ SCORE is the score to add."
            (set-syntax-table syntab))
          ;; Make all the ignorable words ignored.
          (let ((ignored (append gnus-ignored-adaptive-words
-                                (if gnus-adaptive-word-no-group-words
-                                    (message-tokenize-header
-                                     (gnus-group-real-name 
-                                      gnus-newsgroup-name)
-                                     "."))
                                 gnus-default-ignored-adaptive-words)))
            (while ignored
              (gnus-sethash (pop ignored) nil hashtb)))
@@ -2740,7 +2723,6 @@ The list is determined from the variable gnus-score-file-alist."
   (interactive (list gnus-global-score-files))
   (let (out)
     (while files
-      ;; #### /$ Unix-specific?
       (if (string-match "/$" (car files))
          (setq out (nconc (directory-files
                            (car files) t
index 8e92821..3b593ca 100644 (file)
@@ -2,7 +2,7 @@
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
 ;; Author: Per Abrahamsen <abraham@iesd.auc.dk>
-;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
+;;     Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news, mail
 
 ;; This file is part of GNU Emacs.
@@ -366,23 +366,22 @@ The vector contain five strings,
   [prefix name encoding description number]
 though the two last may be nil if they are missing."
   (let (areas)
-    (when (file-exists-p file)
-      (save-excursion
-       (set-buffer (nnheader-find-file-noselect file 'force))
-       (buffer-disable-undo (current-buffer))
-       (goto-char (point-min))
-       (while (not (eobp))
-         (push (vector (gnus-soup-field)
-                       (gnus-soup-field)
-                       (gnus-soup-field)
-                       (and (eq (preceding-char) ?\t)
-                            (gnus-soup-field))
-                       (and (eq (preceding-char) ?\t)
-                            (string-to-int (gnus-soup-field))))
-               areas)
-         (when (eq (preceding-char) ?\t)
-           (beginning-of-line 2)))
-       (kill-buffer (current-buffer))))
+    (save-excursion
+      (set-buffer (nnheader-find-file-noselect file 'force))
+      (buffer-disable-undo (current-buffer))
+      (goto-char (point-min))
+      (while (not (eobp))
+       (push (vector (gnus-soup-field)
+                     (gnus-soup-field)
+                     (gnus-soup-field)
+                     (and (eq (preceding-char) ?\t)
+                          (gnus-soup-field))
+                     (and (eq (preceding-char) ?\t)
+                          (string-to-int (gnus-soup-field))))
+             areas)
+       (when (eq (preceding-char) ?\t)
+         (beginning-of-line 2)))
+      (kill-buffer (current-buffer)))
     areas))
 
 (defun gnus-soup-parse-replies (file)
@@ -518,6 +517,7 @@ Return whether the unpacking was successful."
            t)
           (t
            (buffer-disable-undo msg-buf)
+           (buffer-disable-undo tmp-buf)
            (set-buffer msg-buf)
            (goto-char (point-min))
            (while (not (eobp))
index 138dff8..60be10f 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-spec.el --- format spec functions for Gnus
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
              val)
          (when (and (boundp buffer)
                     (setq val (symbol-value buffer))
-                    (gnus-buffer-exists-p val))
-           (set-buffer val))
+                    (get-buffer val)
+                    (buffer-name (get-buffer val)))
+           (set-buffer (get-buffer val)))
          (setq new-format (symbol-value
                            (intern (format "gnus-%s-line-format" type)))))
        (setq entry (cdr (assq type gnus-format-specs)))
index 24e9bfd..22089c1 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-srvr.el --- virtual server support for Gnus
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
index d83f15f..974936e 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-start.el --- startup functions for Gnus
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
@@ -1371,7 +1371,6 @@ newsgroup."
                info (inline (gnus-find-method-for-group
                              (gnus-info-group info)))))
       (gnus-activate-group (gnus-info-group info) nil t))
-
     (let* ((range (gnus-info-read info))
           (num 0))
       ;; If a cache is present, we may have to alter the active info.
@@ -1483,10 +1482,6 @@ newsgroup."
          ;; These groups are foreign.  Check the level.
          (when (<= (gnus-info-level info) foreign-level)
            (setq active (gnus-activate-group group 'scan))
-           ;; Let the Gnus agent save the active file.
-           (when (and gnus-agent gnus-plugged)
-             (gnus-agent-save-group-info
-              method (gnus-group-real-name group) active))
            (unless (inline (gnus-virtual-group-p group))
              (inline (gnus-close-group group)))
            (when (fboundp (intern (concat (symbol-name (car method))
@@ -1687,10 +1682,11 @@ newsgroup."
 
 
 (defun gnus-ignored-newsgroups-has-to-p ()
-  "Non-nil iff gnus-ignored-newsgroups includes \"^to\\\\.\" as an element."
+  "T only when gnus-ignored-newsgroups includes \"^to\\\\.\" as an element."
   ;; note this regexp is the same as:
   ;; (concat (regexp-quote "^to\\.") "\\($\\|" (regexp-quote "\\|") "\\)")
-  (string-match "\\^to\\\\\\.\\($\\|\\\\|\\)" gnus-ignored-newsgroups))
+  (string-match "\\^to\\\\\\.\\($\\|\\\\|\\)"
+               gnus-ignored-newsgroups))
 
 ;; Read an active file and place the results in `gnus-active-hashtb'.
 (defun gnus-active-to-gnus-format (&optional method hashtb ignore-errors
@@ -1975,8 +1971,7 @@ If FORCE is non-nil, the .newsrc file is read."
     (if (or (file-exists-p real-file)
            (file-exists-p (concat real-file ".el"))
            (file-exists-p (concat real-file ".eld")))
-       real-file
-      file)))
+       real-file file)))
 
 (defun gnus-newsrc-to-gnus-format ()
   (setq gnus-newsrc-options "")
index cf6bb24..b87d3a2 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-sum.el --- summary mode commands for Semi-gnus
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;;         MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Keywords: mail, news, MIME
 
@@ -37,6 +37,9 @@
 (require 'std11)
 (require 'mime-view)
 
+(or (get-unified-alist mime-acting-condition '((type . text)))
+    (error "Please install latest SEMI."))
+
 (autoload 'gnus-summary-limit-include-cached "gnus-cache" nil t)
 (autoload 'gnus-set-summary-default-charset "gnus-i18n" nil t)
 
@@ -1482,110 +1485,211 @@ increase the score of each group you read."
         ["Increase score..." gnus-summary-increase-score t]
         ["Lower score..." gnus-summary-lower-score t]))))
 
-    ;; Define both the Article menu in the summary buffer and the equivalent
-    ;; Commands menu in the article buffer here for consistency.
-    (let ((innards
-           '(("Hide"
-              ["All" gnus-article-hide t]
-              ["Headers" gnus-article-hide-headers t]
-              ["Signature" gnus-article-hide-signature t]
-              ["Citation" gnus-article-hide-citation t]
-              ["PGP" gnus-article-hide-pgp t]
-              ["Boring headers" gnus-article-hide-boring-headers t])
-             ("Highlight"
-              ["All" gnus-article-highlight t]
-              ["Headers" gnus-article-highlight-headers t]
-              ["Signature" gnus-article-highlight-signature t]
-              ["Citation" gnus-article-highlight-citation t])
-             ("Date"
-              ["Local" gnus-article-date-local t]
-              ["ISO8601" gnus-article-date-iso8601 t]
-              ["UT" gnus-article-date-ut t]
-              ["Original" gnus-article-date-original t]
-              ["Lapsed" gnus-article-date-lapsed t]
-              ["User-defined" gnus-article-date-user t])
-             ("Washing"
-              ("Remove Blanks"
-               ["Leading" gnus-article-strip-leading-blank-lines t]
-               ["Multiple" gnus-article-strip-multiple-blank-lines t]
-               ["Trailing" gnus-article-remove-trailing-blank-lines t]
-               ["All of the above" gnus-article-strip-blank-lines t]
-               ["All" gnus-article-strip-all-blank-lines t]
-               ["Leading space" gnus-article-strip-leading-space t])
-              ["Overstrike" gnus-article-treat-overstrike t]
-              ["Dumb quotes" gnus-article-treat-dumbquotes t]
-              ["Emphasis" gnus-article-emphasize t]
-              ["Word wrap" gnus-article-fill-cited-article t]
-              ["CR" gnus-article-remove-cr t]
-              ["Show X-Face" gnus-article-display-x-face t]
-              ["UnHTMLize" gnus-article-treat-html t]
-              ["Rot 13" gnus-summary-caesar-message t]
-              ["Unix pipe" gnus-summary-pipe-message t]
-              ["Add buttons" gnus-article-add-buttons t]
-              ["Add buttons to head" gnus-article-add-buttons-to-head t]
-              ["Stop page breaking" gnus-summary-stop-page-breaking t]
-              ["Toggle MIME" gnus-summary-toggle-mime t]
-              ["Verbose header" gnus-summary-verbose-headers t]
-              ["Toggle header" gnus-summary-toggle-header t])
-             ("Output"
-              ["Save in default format" gnus-summary-save-article t]
-              ["Save in file" gnus-summary-save-article-file t]
-              ["Save in Unix mail format" gnus-summary-save-article-mail t]
-              ["Save in MH folder" gnus-summary-save-article-folder t]
-              ["Save in VM folder" gnus-summary-save-article-vm t]
-              ["Save in RMAIL mbox" gnus-summary-save-article-rmail t]
-              ["Save body in file" gnus-summary-save-article-body-file t]
-              ["Pipe through a filter" gnus-summary-pipe-output t]
-              ["Add to SOUP packet" gnus-soup-add-article t]
-              ["Print" gnus-summary-print-article t])
-             ("Backend"
-              ["Respool article..." gnus-summary-respool-article t]
-              ["Move article..." gnus-summary-move-article
-               (gnus-check-backend-function
-                'request-move-article gnus-newsgroup-name)]
-              ["Copy article..." gnus-summary-copy-article t]
-              ["Crosspost article..." gnus-summary-crosspost-article
-               (gnus-check-backend-function
-                'request-replace-article gnus-newsgroup-name)]
-              ["Import file..." gnus-summary-import-article t]
-              ["Check if posted" gnus-summary-article-posted-p t]
-              ["Edit article" gnus-summary-edit-article
-               (not (gnus-group-read-only-p))]
-              ["Delete article" gnus-summary-delete-article
-               (gnus-check-backend-function
-                'request-expire-articles gnus-newsgroup-name)]
-              ["Query respool" gnus-summary-respool-query t]
-              ["Delete expirable articles" gnus-summary-expire-articles-now
-               (gnus-check-backend-function
-                'request-expire-articles gnus-newsgroup-name)])
-             ("Extract"
-              ["Uudecode" gnus-uu-decode-uu t]
-              ["Uudecode and save" gnus-uu-decode-uu-and-save t]
-              ["Unshar" gnus-uu-decode-unshar t]
-              ["Unshar and save" gnus-uu-decode-unshar-and-save t]
-              ["Save" gnus-uu-decode-save t]
-              ["Binhex" gnus-uu-decode-binhex t]
-              ["Postscript" gnus-uu-decode-postscript t])
-             ("Cache"
-              ["Enter article" gnus-cache-enter-article t]
-              ["Remove article" gnus-cache-remove-article t])
-             ["Select article buffer" gnus-summary-select-article-buffer t]
-             ["Enter digest buffer" gnus-summary-enter-digest-group t]
-             ["Isearch article..." gnus-summary-isearch-article t]
-             ["Beginning of the article" gnus-summary-beginning-of-article t]
-             ["End of the article" gnus-summary-end-of-article t]
-             ["Fetch parent of article" gnus-summary-refer-parent-article t]
-             ["Fetch referenced articles" gnus-summary-refer-references t]
-             ["Fetch current thread" gnus-summary-refer-thread t]
-             ["Fetch article with id..." gnus-summary-refer-article t]
-             ["Redisplay" gnus-summary-show-article t])))
-      (easy-menu-define
-       gnus-summary-article-menu gnus-summary-mode-map ""
-       (cons "Article" innards))
-
-      (easy-menu-define
-       gnus-article-commands-menu gnus-article-mode-map ""
-       (cons "Commands" innards)))
+    '(("Default header"
+       ["Ask" (gnus-score-set-default 'gnus-score-default-header nil)
+       :style radio
+       :selected (null gnus-score-default-header)]
+       ["From" (gnus-score-set-default 'gnus-score-default-header 'a)
+       :style radio
+       :selected (eq gnus-score-default-header 'a)]
+       ["Subject" (gnus-score-set-default 'gnus-score-default-header 's)
+       :style radio
+       :selected (eq gnus-score-default-header 's)]
+       ["Article body"
+       (gnus-score-set-default 'gnus-score-default-header 'b)
+       :style radio
+       :selected (eq gnus-score-default-header 'b )]
+       ["All headers"
+       (gnus-score-set-default 'gnus-score-default-header 'h)
+       :style radio
+       :selected (eq gnus-score-default-header 'h )]
+       ["Message-ID" (gnus-score-set-default 'gnus-score-default-header 'i)
+       :style radio
+       :selected (eq gnus-score-default-header 'i )]
+       ["Thread" (gnus-score-set-default 'gnus-score-default-header 't)
+       :style radio
+       :selected (eq gnus-score-default-header 't )]
+       ["Crossposting"
+       (gnus-score-set-default 'gnus-score-default-header 'x)
+       :style radio
+       :selected (eq gnus-score-default-header 'x )]
+       ["Lines" (gnus-score-set-default 'gnus-score-default-header 'l)
+       :style radio
+       :selected (eq gnus-score-default-header 'l )]
+       ["Date" (gnus-score-set-default 'gnus-score-default-header 'd)
+       :style radio
+       :selected (eq gnus-score-default-header 'd )]
+       ["Followups to author"
+       (gnus-score-set-default 'gnus-score-default-header 'f)
+       :style radio
+       :selected (eq gnus-score-default-header 'f )])
+      ("Default type"
+       ["Ask" (gnus-score-set-default 'gnus-score-default-type nil)
+       :style radio
+       :selected (null gnus-score-default-type)]
+       ;; The `:active' key is commented out in the following,
+       ;; because the GNU Emacs hack to support radio buttons use
+       ;; active to indicate which button is selected.
+       ["Substring" (gnus-score-set-default 'gnus-score-default-type 's)
+       :style radio
+       ;; :active (not (memq gnus-score-default-header '(l d)))
+       :selected (eq gnus-score-default-type 's)]
+       ["Regexp" (gnus-score-set-default 'gnus-score-default-type 'r)
+       :style radio
+       ;; :active (not (memq gnus-score-default-header '(l d)))
+       :selected (eq gnus-score-default-type 'r)]
+       ["Exact" (gnus-score-set-default 'gnus-score-default-type 'e)
+       :style radio
+       ;; :active (not (memq gnus-score-default-header '(l d)))
+       :selected (eq gnus-score-default-type 'e)]
+       ["Fuzzy" (gnus-score-set-default 'gnus-score-default-type 'f)
+       :style radio
+       ;; :active (not (memq gnus-score-default-header '(l d)))
+       :selected (eq gnus-score-default-type 'f)]
+       ["Before date" (gnus-score-set-default 'gnus-score-default-type 'b)
+       :style radio
+       ;; :active (eq (gnus-score-default-header 'd))
+       :selected (eq gnus-score-default-type 'b)]
+       ["At date" (gnus-score-set-default 'gnus-score-default-type 'n)
+       :style radio
+       ;; :active (eq (gnus-score-default-header 'd))
+       :selected (eq gnus-score-default-type 'n)]
+       ["After date" (gnus-score-set-default 'gnus-score-default-type 'a)
+       :style radio
+       ;; :active (eq (gnus-score-default-header 'd))
+       :selected (eq gnus-score-default-type 'a)]
+       ["Less than number"
+       (gnus-score-set-default 'gnus-score-default-type '<)
+       :style radio
+       ;; :active (eq (gnus-score-default-header 'l))
+       :selected (eq gnus-score-default-type '<)]
+       ["Equal to number"
+       (gnus-score-set-default 'gnus-score-default-type '=)
+       :style radio
+       ;; :active (eq (gnus-score-default-header 'l))
+       :selected (eq gnus-score-default-type '=)]
+       ["Greater than number"
+       (gnus-score-set-default 'gnus-score-default-type '>)
+       :style radio
+       ;; :active (eq (gnus-score-default-header 'l))
+       :selected (eq gnus-score-default-type '>)])
+      ["Default fold" gnus-score-default-fold-toggle
+       :style toggle
+       :selected gnus-score-default-fold]
+      ("Default duration"
+       ["Ask" (gnus-score-set-default 'gnus-score-default-duration nil)
+       :style radio
+       :selected (null gnus-score-default-duration)]
+       ["Permanent"
+       (gnus-score-set-default 'gnus-score-default-duration 'p)
+       :style radio
+       :selected (eq gnus-score-default-duration 'p)]
+       ["Temporary"
+       (gnus-score-set-default 'gnus-score-default-duration 't)
+       :style radio
+       :selected (eq gnus-score-default-duration 't)]
+       ["Immediate"
+       (gnus-score-set-default 'gnus-score-default-duration 'i)
+       :style radio
+       :selected (eq gnus-score-default-duration 'i)]))
+
+    (easy-menu-define
+     gnus-summary-article-menu gnus-summary-mode-map ""
+     '("Article"
+       ("Hide"
+       ["All" gnus-article-hide t]
+       ["Headers" gnus-article-hide-headers t]
+       ["Signature" gnus-article-hide-signature t]
+       ["Citation" gnus-article-hide-citation t]
+       ["PGP" gnus-article-hide-pgp t]
+       ["Boring headers" gnus-article-hide-boring-headers t])
+       ("Highlight"
+       ["All" gnus-article-highlight t]
+       ["Headers" gnus-article-highlight-headers t]
+       ["Signature" gnus-article-highlight-signature t]
+       ["Citation" gnus-article-highlight-citation t])
+       ("Date"
+       ["Local" gnus-article-date-local t]
+       ["ISO8601" gnus-article-date-iso8601 t]
+       ["UT" gnus-article-date-ut t]
+       ["Original" gnus-article-date-original t]
+       ["Lapsed" gnus-article-date-lapsed t]
+       ["User-defined" gnus-article-date-user t])
+       ("Washing"
+       ("Remove Blanks"
+        ["Leading" gnus-article-strip-leading-blank-lines t]
+        ["Multiple" gnus-article-strip-multiple-blank-lines t]
+        ["Trailing" gnus-article-remove-trailing-blank-lines t]
+        ["All of the above" gnus-article-strip-blank-lines t]
+        ["All" gnus-article-strip-all-blank-lines t]
+        ["Leading space" gnus-article-strip-leading-space t])
+       ["Overstrike" gnus-article-treat-overstrike t]
+       ["Dumb quotes" gnus-article-treat-dumbquotes t]
+       ["Emphasis" gnus-article-emphasize t]
+       ["Word wrap" gnus-article-fill-cited-article t]
+       ["CR" gnus-article-remove-cr t]
+       ["Show X-Face" gnus-article-display-x-face t]
+       ["UnHTMLize" gnus-article-treat-html t]
+       ["Rot 13" gnus-summary-caesar-message t]
+       ["Unix pipe" gnus-summary-pipe-message t]
+       ["Add buttons" gnus-article-add-buttons t]
+       ["Add buttons to head" gnus-article-add-buttons-to-head t]
+       ["Stop page breaking" gnus-summary-stop-page-breaking t]
+       ["Toggle MIME" gnus-summary-toggle-mime t]
+       ["Verbose header" gnus-summary-verbose-headers t]
+       ["Toggle header" gnus-summary-toggle-header t])
+       ("Output"
+       ["Save in default format" gnus-summary-save-article t]
+       ["Save in file" gnus-summary-save-article-file t]
+       ["Save in Unix mail format" gnus-summary-save-article-mail t]
+       ["Save in MH folder" gnus-summary-save-article-folder t]
+       ["Save in VM folder" gnus-summary-save-article-vm t]
+       ["Save in RMAIL mbox" gnus-summary-save-article-rmail t]
+       ["Save body in file" gnus-summary-save-article-body-file t]
+       ["Pipe through a filter" gnus-summary-pipe-output t]
+       ["Add to SOUP packet" gnus-soup-add-article t]
+       ["Print" gnus-summary-print-article t])
+       ("Backend"
+       ["Respool article..." gnus-summary-respool-article t]
+       ["Move article..." gnus-summary-move-article
+        (gnus-check-backend-function
+         'request-move-article gnus-newsgroup-name)]
+       ["Copy article..." gnus-summary-copy-article t]
+       ["Crosspost article..." gnus-summary-crosspost-article
+        (gnus-check-backend-function
+         'request-replace-article gnus-newsgroup-name)]
+       ["Import file..." gnus-summary-import-article t]
+       ["Check if posted" gnus-summary-article-posted-p t]
+       ["Edit article" gnus-summary-edit-article
+        (not (gnus-group-read-only-p))]
+       ["Delete article" gnus-summary-delete-article
+        (gnus-check-backend-function
+         'request-expire-articles gnus-newsgroup-name)]
+       ["Query respool" gnus-summary-respool-query t]
+       ["Delete expirable articles" gnus-summary-expire-articles-now
+        (gnus-check-backend-function
+         'request-expire-articles gnus-newsgroup-name)])
+       ("Extract"
+       ["Uudecode" gnus-uu-decode-uu t]
+       ["Uudecode and save" gnus-uu-decode-uu-and-save t]
+       ["Unshar" gnus-uu-decode-unshar t]
+       ["Unshar and save" gnus-uu-decode-unshar-and-save t]
+       ["Save" gnus-uu-decode-save t]
+       ["Binhex" gnus-uu-decode-binhex t]
+       ["Postscript" gnus-uu-decode-postscript t])
+       ("Cache"
+       ["Enter article" gnus-cache-enter-article t]
+       ["Remove article" gnus-cache-remove-article t])
+       ["Select article buffer" gnus-summary-select-article-buffer t]
+       ["Enter digest buffer" gnus-summary-enter-digest-group t]
+       ["Isearch article..." gnus-summary-isearch-article t]
+       ["Beginning of the article" gnus-summary-beginning-of-article t]
+       ["End of the article" gnus-summary-end-of-article t]
+       ["Fetch parent of article" gnus-summary-refer-parent-article t]
+       ["Fetch referenced articles" gnus-summary-refer-references t]
+       ["Fetch current thread" gnus-summary-refer-thread t]
+       ["Fetch article with id..." gnus-summary-refer-article t]
+       ["Redisplay" gnus-summary-show-article t]))
 
     (easy-menu-define
      gnus-summary-thread-menu gnus-summary-mode-map ""
@@ -1676,9 +1780,7 @@ increase the score of each group you read."
        ["Mark above" gnus-uu-mark-over t]
        ["Mark series" gnus-uu-mark-series t]
        ["Mark region" gnus-uu-mark-region t]
-       ["Unmark region" gnus-uu-unmark-region t]
        ["Mark by regexp..." gnus-uu-mark-by-regexp t]
-        ["Unmark by regexp..." gnus-uu-unmark-by-regexp t]
        ["Mark all" gnus-uu-mark-all t]
        ["Mark buffer" gnus-uu-mark-buffer t]
        ["Mark sparse" gnus-uu-mark-sparse t]
@@ -2341,7 +2443,9 @@ marks of articles."
 (defun gnus-update-summary-mark-positions ()
   "Compute where the summary marks are to go."
   (save-excursion
-    (when (gnus-buffer-exists-p gnus-summary-buffer)
+    (when (and gnus-summary-buffer
+              (get-buffer gnus-summary-buffer)
+              (buffer-name (get-buffer gnus-summary-buffer)))
       (set-buffer gnus-summary-buffer))
     (let ((gnus-replied-mark 129)
          (gnus-score-below-mark 130)
@@ -2504,7 +2608,6 @@ the thread are to be displayed."
       (and (consp elem)                        ; Has to be a cons.
           (consp (cdr elem))           ; The cdr has to be a list.
           (symbolp (car elem))         ; Has to be a symbol in there.
-          (not (memq (car elem) '(quit-config))) ; Ignore quit-config.
           (ignore-errors               ; So we set it.
             (make-local-variable (car elem))
             (set (car elem) (eval (nth 1 elem))))))))
@@ -2867,88 +2970,9 @@ If NO-DISPLAY, don't generate a summary buffer."
              gnus-newsgroup-dependencies)))
     threads))
 
-;; Build the thread tree.
-(defun gnus-dependencies-add-header (header dependencies force-new)
-  "Enter HEADER into the DEPENDENCIES table if it is not already there.
-
-If FORCE-NEW is not NIL, enter HEADER into the DEPENDENCIES table even
-if it was already present.
-
-If `gnus-summary-ignore-duplicates' is NIL then duplicate Message-IDs
-will not be entered in the DEPENDENCIES table.  Otherwise duplicate
-Message-IDs will be renamed be renamed to a unique Message-ID before
-being entered.
-
-Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
-
-  (let* ((id (mail-header-id header))
-        (id-dep (and id (intern id dependencies)))
-        ref ref-dep ref-header)
-    ;; Enter this `header' in the `dependencies' table
-    (cond
-     ((not id-dep)
-      (setq header nil))
-     ;; The first two cases do the normal part : enter a new `header'
-     ;; in the `dependencies' table,
-     ((not (boundp id-dep))
-      (set id-dep (list header)))
-     ((null (car (symbol-value id-dep)))
-      (setcar (symbol-value id-dep) header))
-
-     ;; From here the `header' was already present in the
-     ;; `dependencies' table.
-
-     (force-new
-      ;; Overrides an existing entry,
-      ;; Just set the header part of the entry.
-      (setcar (symbol-value id-dep) header))
-
-     ;; Renames the existing `header' to a unique Message-ID.
-     ((not gnus-summary-ignore-duplicates)
-      ;; An article with this Message-ID has already been seen.
-      ;; We rename the Message-ID.
-      (set (setq id-dep (intern (setq id (nnmail-message-id)) dependencies))
-          (list header))
-      (mail-header-set-id header id))
-
-     ;;   - The last case ignores an existing entry, except it adds
-     ;;     any additional Xrefs (in case the two articles came from
-     ;;     different servers.
-     ;;     Also sets `header' to `nil' meaning that the
-     ;;     `dependencies' table was *not* modified.
-     (t
-      (mail-header-set-xref
-       (car (symbol-value id-dep))
-       (concat (or (mail-header-xref (car (symbol-value id-dep)))
-                  "")
-              (or (mail-header-xref header) "")))
-      (setq header nil)))
-
-    (when header
-      ;; First check if that we are not creating a References loop.
-      (setq ref (gnus-parent-id (mail-header-references header)))
-      (while (and ref
-                 (setq ref-dep (intern-soft ref dependencies))
-                 (boundp ref-dep)
-                 (setq ref-header (car (symbol-value ref-dep))))
-       (if (string= id ref)
-           ;; Yuk !  This is a reference loop.  Make the article be a
-           ;; root article.
-           (progn
-             (mail-header-set-references (car (symbol-value id-dep)) "none")
-             (setq ref nil))
-         (setq ref (gnus-parent-id (mail-header-references ref-header)))))
-      (setq ref (gnus-parent-id (mail-header-references header)))
-      (setq ref-dep (intern (or ref "none") dependencies))
-      (if (boundp ref-dep)
-         (setcdr (symbol-value ref-dep)
-                 (nconc (cdr (symbol-value ref-dep))
-                        (list (symbol-value id-dep))))
-       (set ref-dep (list nil (symbol-value id-dep)))))
-    header))
-
 (defun gnus-build-sparse-threads ()
   (let ((headers gnus-newsgroup-headers)
+       (deps gnus-newsgroup-dependencies)
        header references generation relations
        cthread subject child end pthread relation new-child)
     ;; First we create an alist of generations/relations, where
@@ -2966,28 +2990,43 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
          (setq generation 0)
          (while (search-backward ">" nil t)
            (setq end (1+ (point)))
-           (if (search-backward "<" nil t)
+           (when (search-backward "<" nil t)
+             (unless (string= (setq new-child (buffer-substring (point) end))
+                              child)
                (push (list (incf generation)
                            child (setq child new-child)
                            subject)
-                     relations)))
+                     relations))))
          (push (list (1+ generation) child nil subject) relations)
          (erase-buffer)))
       (kill-buffer (current-buffer)))
     ;; Sort over trustworthiness.
-    (mapc #'(lambda (relation)
-             (when (gnus-dependencies-add-header
-                    (make-full-mail-header gnus-reffed-article-number
-                                           (cadddr relation)
-                                           "" "" (cadr relation)
-                                           (or (caddr relation) "") 0 0 "")
-                    gnus-newsgroup-dependencies nil)
-               (push gnus-reffed-article-number gnus-newsgroup-limit)
-               (push gnus-reffed-article-number gnus-newsgroup-sparse)
-               (push (cons gnus-reffed-article-number gnus-sparse-mark)
-                     gnus-newsgroup-reads)
-               (decf gnus-reffed-article-number)))
-         (sort relations 'car-less-than-car))
+    (setq relations (sort relations 'car-less-than-car))
+    (while (setq relation (pop relations))
+      (when (if (boundp (setq cthread (intern (cadr relation) deps)))
+               (unless (car (symbol-value cthread))
+                 ;; Make this article the parent of these threads.
+                 (setcar (symbol-value cthread)
+                         (vector gnus-reffed-article-number
+                                 (cadddr relation)
+                                 "" ""
+                                 (cadr relation)
+                                 (or (caddr relation) "") 0 0 "")))
+             (set cthread (list (vector gnus-reffed-article-number
+                                        (cadddr relation)
+                                        "" "" (cadr relation)
+                                        (or (caddr relation) "") 0 0 ""))))
+       (push gnus-reffed-article-number gnus-newsgroup-limit)
+       (push gnus-reffed-article-number gnus-newsgroup-sparse)
+       (push (cons gnus-reffed-article-number gnus-sparse-mark)
+             gnus-newsgroup-reads)
+       (decf gnus-reffed-article-number)
+       ;; Make this new thread the child of its parent.
+       (if (boundp (setq pthread (intern (or (caddr relation) "none") deps)))
+           (setcdr (symbol-value pthread)
+                   (nconc (cdr (symbol-value pthread))
+                          (list (symbol-value cthread))))
+         (set pthread (list nil (symbol-value cthread))))))
     (gnus-message 7 "Making sparse threads...done")))
 
 (defun gnus-build-old-threads ()
@@ -3006,7 +3045,8 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
               (setq heads (cdr heads))
             (setq id (symbol-name refs))
             (while (and (setq id (gnus-build-get-header id))
-                        (not (car (gnus-id-to-thread id)))))
+                        (not (car (gnus-gethash
+                                   id gnus-newsgroup-dependencies)))))
             (setq heads nil)))))
      gnus-newsgroup-dependencies)))
 
@@ -3014,7 +3054,8 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
   ;; Look through the buffer of NOV lines and find the header to
   ;; ID.  Enter this line into the dependencies hash table, and return
   ;; the id of the parent article (if any).
-  (let (found header)
+  (let ((deps gnus-newsgroup-dependencies)
+       found header)
     (prog1
        (save-excursion
          (set-buffer nntp-server-buffer)
@@ -3030,8 +3071,8 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
            (when found
              (beginning-of-line)
              (and
-              (setq header (gnus-nov-parse-line (read (current-buffer))
-                                                gnus-newsgroup-dependencies))
+              (setq header (gnus-nov-parse-line
+                            (read (current-buffer)) deps))
               (gnus-parent-id (mail-header-references header))))))
       (when header
        (let ((number (mail-header-number header)))
@@ -3046,7 +3087,8 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
 
 (defun gnus-build-all-threads ()
   "Read all the headers."
-  (let ((gnus-summary-ignore-duplicates t)
+  (let ((deps gnus-newsgroup-dependencies)
+       (gnus-summary-ignore-duplicates t)
        found header article)
     (save-excursion
       (set-buffer nntp-server-buffer)
@@ -3055,8 +3097,7 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
        (while (not (eobp))
          (ignore-errors
            (setq article (read (current-buffer)))
-           (setq header (gnus-nov-parse-line article
-                                             gnus-newsgroup-dependencies)))
+           (setq header (gnus-nov-parse-line article deps)))
          (when header
            (push header gnus-newsgroup-headers)
            (if (memq (setq article (mail-header-number header))
@@ -3191,23 +3232,19 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
     (when headers
       (car headers))))
 
-(defun gnus-parent-headers (in-headers &optional generation)
+(defun gnus-parent-headers (headers &optional generation)
   "Return the headers of the GENERATIONeth parent of HEADERS."
   (unless generation
     (setq generation 1))
   (let ((parent t)
-       (headers in-headers)
        references)
-    (while (and parent
-               headers
-               (not (zerop generation))
-               (setq references (mail-header-references headers)))
+    (while (and parent headers (not (zerop generation)))
+      (setq references (mail-header-references headers))
       (when (and references
                 (setq parent (gnus-parent-id references))
                 (setq headers (car (gnus-id-to-thread parent))))
        (decf generation)))
-    (and (not (eq headers in-headers))
-        headers)))
+    headers))
 
 (defun gnus-id-to-thread (id)
   "Return the (sub-)thread where ID appears."
@@ -3242,7 +3279,8 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
 (defun gnus-root-id (id)
   "Return the id of the root of the thread where ID appears."
   (let (last-id prev)
-    (while (and id (setq prev (car (gnus-id-to-thread id))))
+    (while (and id (setq prev (car (gnus-gethash
+                                   id gnus-newsgroup-dependencies))))
       (setq last-id id
            id (gnus-parent-id (mail-header-references prev))))
     last-id))
@@ -3254,7 +3292,8 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
 
 (defun gnus-remove-thread (id &optional dont-remove)
   "Remove the thread that has ID in it."
-  (let (headers thread last-id)
+  (let ((dep gnus-newsgroup-dependencies)
+       headers thread last-id)
     ;; First go up in this thread until we find the root.
     (setq last-id (gnus-root-id id))
     (setq headers (list (car (gnus-id-to-thread last-id))
@@ -3287,7 +3326,7 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
       (if thread
          (unless dont-remove
            (setq gnus-newsgroup-threads (delq thread gnus-newsgroup-threads)))
-       (setq thread (gnus-id-to-thread last-id)))
+       (setq thread (gnus-gethash last-id dep)))
       (when thread
        (prog1
            thread                      ; We return this thread.
@@ -3297,11 +3336,6 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
                  ;; If we use dummy roots, then we have to remove the
                  ;; dummy root as well.
                  (when (eq gnus-summary-make-false-root 'dummy)
-                   ;; We go to the dummy root by going to
-                   ;; the first sub-"thread", and then one line up.
-                   (gnus-summary-goto-article
-                    (mail-header-number (caadr thread)))
-                   (forward-line -1)
                    (gnus-delete-line)
                    (gnus-data-compute-positions))
                  (setq thread (cdr thread))
@@ -3452,7 +3486,8 @@ Unscored articles will be counted as having a score of zero."
   (apply gnus-thread-score-function
         (or (append
              (mapcar 'gnus-thread-total-score
-                     (cdr (gnus-id-to-thread (mail-header-id root))))
+                     (cdr (gnus-gethash (mail-header-id root)
+                                        gnus-newsgroup-dependencies)))
              (when (> (mail-header-number root) 0)
                (list (or (cdr (assq (mail-header-number root)
                                     gnus-newsgroup-scored))
@@ -3499,6 +3534,7 @@ or a straight list of headers."
       (while (or threads stack gnus-tmp-new-adopts new-roots)
 
        (if (and (= gnus-tmp-level 0)
+                (not (setq gnus-tmp-dummy-line nil))
                 (or (not stack)
                     (= (caar stack) 0))
                 (not gnus-tmp-false-parent)
@@ -3613,10 +3649,7 @@ or a straight list of headers."
          (when gnus-tmp-header
            ;; We may have an old dummy line to output before this
            ;; article.
-           (when (and gnus-tmp-dummy-line
-                      (gnus-subject-equal
-                       gnus-tmp-dummy-line
-                       (mail-header-subject gnus-tmp-header)))
+           (when gnus-tmp-dummy-line
              (gnus-summary-insert-dummy-line
               gnus-tmp-dummy-line (mail-header-number gnus-tmp-header))
              (setq gnus-tmp-dummy-line nil))
@@ -3821,11 +3854,11 @@ If READ-ALL is non-nil, all articles in the group are selected."
                           articles gnus-newsgroup-name
                           ;; We might want to fetch old headers, but
                           ;; not if there is only 1 article.
-                          (and (or (and
+                          (and gnus-fetch-old-headers
+                               (or (and
                                     (not (eq gnus-fetch-old-headers 'some))
                                     (not (numberp gnus-fetch-old-headers)))
-                                   (> (length articles) 1))
-                               gnus-fetch-old-headers))))
+                                   (> (length articles) 1))))))
                (gnus-get-newsgroup-headers-xover
                 articles nil nil gnus-newsgroup-name t)
              (gnus-get-newsgroup-headers)))
@@ -4401,11 +4434,43 @@ The resulting hash table is returned, or nil if no Xrefs were found."
            (funcall gnus-alter-header-function header)
            (setq id (mail-header-id header)
                  ref (gnus-parent-id (mail-header-references header))))
-
-         (setq header
-               (gnus-dependencies-add-header header dependencies force-new))
-         (if header
-             (push header headers))
+    
+         ;; We do the threading while we read the headers.  The
+         ;; message-id and the last reference are both entered into
+         ;; the same hash table.  Some tippy-toeing around has to be
+         ;; done in case an article has arrived before the article
+         ;; which it refers to.
+         (if (boundp (setq id-dep (intern id dependencies)))
+             (if (and (car (symbol-value id-dep))
+                      (not force-new))
+                 ;; An article with this Message-ID has already been seen.
+                 (if gnus-summary-ignore-duplicates
+                     ;; We ignore this one, except we add
+                     ;; any additional Xrefs (in case the two articles
+                     ;; came from different servers).
+                     (progn
+                       (mail-header-set-xref
+                        (car (symbol-value id-dep))
+                        (concat (or (mail-header-xref
+                                     (car (symbol-value id-dep)))
+                                    "")
+                                (or (mail-header-xref header) "")))
+                       (setq header nil))
+                   ;; We rename the Message-ID.
+                   (set
+                    (setq id-dep (intern (setq id (nnmail-message-id))
+                                         dependencies))
+                    (list header))
+                   (mail-header-set-id header id))
+               (setcar (symbol-value id-dep) header))
+           (set id-dep (list header)))
+         (when header
+           (if (boundp (setq ref-dep (intern (or ref "none") dependencies)))
+               (setcdr (symbol-value ref-dep)
+                       (nconc (cdr (symbol-value ref-dep))
+                              (list (symbol-value id-dep))))
+             (set ref-dep (list nil (symbol-value id-dep))))
+           (push header headers))
          (goto-char (point-max))
          (widen))
        (nreverse headers)))))
@@ -4445,31 +4510,73 @@ The resulting hash table is returned, or nil if no Xrefs were found."
            (forward-char))
 
          (setq header
-               (make-full-mail-header
+               (vector
                 number                 ; number
                 (funcall
                  gnus-unstructured-field-decoder (gnus-nov-field)) ; subject
                 (funcall
                  gnus-structured-field-decoder (gnus-nov-field)) ; from
                 (gnus-nov-field)       ; date
-                (or (gnus-nov-field)
-                    (nnheader-generate-fake-message-id)) ; id
-                (gnus-nov-field)       ; refs
+                (setq id (or (gnus-nov-field)
+                             (nnheader-generate-fake-message-id))) ; id
+                (progn
+                  (let ((beg (point)))
+                    (search-forward "\t" eol)
+                    (if (search-backward ">" beg t)
+                        (setq ref
+                              (buffer-substring
+                               (1+ (point))
+                               (or (search-backward "<" beg t) beg)))
+                      (setq ref nil))
+                    (goto-char beg))
+                  (gnus-nov-field))    ; refs
                 (gnus-nov-read-integer) ; chars
                 (gnus-nov-read-integer) ; lines
-                (unless (= (following-char) ?\n)
+                (if (= (following-char) ?\n)
+                    nil
                   (gnus-nov-field))))) ; misc
 
       (widen))
 
     (when gnus-alter-header-function
-      (funcall gnus-alter-header-function header))
-
-    (setq id (mail-header-id header)
-         ref (gnus-parent-id (mail-header-references header)))
-
-    (gnus-dependencies-add-header header dependencies force-new)
-
+      (funcall gnus-alter-header-function header)
+      (setq id (mail-header-id header)
+           ref (gnus-parent-id (mail-header-references header))))
+    
+    ;; We build the thread tree.
+    (when (equal id ref)
+      ;; This article refers back to itself.  Naughty, naughty.
+      (setq ref nil))
+    (if (boundp (setq id-dep (intern id dependencies)))
+       (if (and (car (symbol-value id-dep))
+                (not force-new))
+           ;; An article with this Message-ID has already been seen.
+           (if gnus-summary-ignore-duplicates
+               ;; We ignore this one, except we add any additional
+               ;; Xrefs (in case the two articles came from different
+               ;; servers.
+               (progn
+                 (mail-header-set-xref
+                  (car (symbol-value id-dep))
+                  (concat (or (mail-header-xref
+                               (car (symbol-value id-dep)))
+                              "")
+                          (or (mail-header-xref header) "")))
+                 (setq header nil))
+             ;; We rename the Message-ID.
+             (set
+              (setq id-dep (intern (setq id (nnmail-message-id))
+                                   dependencies))
+              (list header))
+             (mail-header-set-id header id))
+         (setcar (symbol-value id-dep) header))
+      (set id-dep (list header)))
+    (when header
+      (if (boundp (setq ref-dep (intern (or ref "none") dependencies)))
+         (setcdr (symbol-value ref-dep)
+                 (nconc (cdr (symbol-value ref-dep))
+                        (list (symbol-value id-dep))))
+       (set ref-dep (list nil (symbol-value id-dep)))))
     header))
 
 ;; Goes through the xover lines and returns a list of vectors
@@ -4599,9 +4706,9 @@ This is meant to be called in `gnus-article-internal-prepare-hook'."
 ;;; Process/prefix in the summary buffer
 
 (defun gnus-summary-work-articles (n)
-  "Return a list of articles to be worked upon.
-The prefix argument, the list of process marked articles, and the
-current article will be taken into consideration."
+  "Return a list of articles to be worked upon.         The prefix argument,
+the list of process marked articles, and the current article will be
+taken into consideration."
   (save-excursion
     (set-buffer gnus-summary-buffer)
     (cond
@@ -4688,7 +4795,7 @@ If EXCLUDE-GROUP, do not go to this group."
     (save-excursion
       (gnus-group-best-unread-group exclude-group))))
 
-(defun gnus-summary-find-next (&optional unread article backward undownloaded)
+(defun gnus-summary-find-next (&optional unread article backward)
   (if backward (gnus-summary-find-prev)
     (let* ((dummy (gnus-summary-article-intangible-p))
           (article (or article (gnus-summary-article-number)))
@@ -4703,10 +4810,7 @@ If EXCLUDE-GROUP, do not go to this group."
                  (if unread
                      (progn
                        (while arts
-                         (when (or (and undownloaded
-                                        (eq gnus-undownloaded-mark
-                                            (gnus-data-mark (car arts))))
-                                   (gnus-data-unread-p (car arts)))
+                         (when (gnus-data-unread-p (car arts))
                            (setq result (car arts)
                                  arts nil))
                          (setq arts (cdr arts)))
@@ -4961,6 +5065,9 @@ The prefix argument ALL means to select all articles."
        (unless (listp (cdr gnus-newsgroup-killed))
          (setq gnus-newsgroup-killed (list gnus-newsgroup-killed)))
        (let ((headers gnus-newsgroup-headers))
+         (when (and (not gnus-save-score)
+                    (not non-destructive))
+           (setq gnus-newsgroup-scored nil))
          ;; Set the new ranges of read articles.
          (save-excursion
            (set-buffer gnus-group-buffer)
@@ -4968,13 +5075,7 @@ The prefix argument ALL means to select all articles."
          (gnus-update-read-articles
           group (append gnus-newsgroup-unreads gnus-newsgroup-unselected))
          ;; Set the current article marks.
-         (let ((gnus-newsgroup-scored 
-                (if (and (not gnus-save-score)
-                         (not non-destructive))
-                    nil
-                  gnus-newsgroup-scored)))
-           (save-excursion
-             (gnus-update-marks)))
+         (gnus-update-marks)
          ;; Do the cross-ref thing.
          (when gnus-use-cross-reference
            (gnus-mark-xrefs-as-read group headers gnus-newsgroup-unreads))
@@ -5117,8 +5218,8 @@ gnus-exit-group-hook is called with no arguments if that value is non-nil."
         (gnus-handle-ephemeral-exit quit-config)))))
 
 (defun gnus-handle-ephemeral-exit (quit-config)
-  "Handle movement when leaving an ephemeral group.
-The state which existed when entering the ephemeral is reset."
+  "Handle movement when leaving an ephemeral group.  The state
+which existed when entering the ephemeral is reset."
   (if (not (buffer-name (car quit-config)))
       (gnus-configure-windows 'group 'force)
     (set-buffer (car quit-config))
@@ -5229,12 +5330,14 @@ The state which existed when entering the ephemeral is reset."
        (gnus-kill-buffer gnus-original-article-buffer)))
     (cond (gnus-kill-summary-on-exit
           (when (and gnus-use-trees
-                     (gnus-buffer-exists-p buffer))
+                     (and (get-buffer buffer)
+                          (buffer-name (get-buffer buffer))))
             (save-excursion
-              (set-buffer buffer)
+              (set-buffer (get-buffer buffer))
               (gnus-tree-close gnus-newsgroup-name)))
           (gnus-kill-buffer buffer))
-         ((gnus-buffer-exists-p buffer)
+         ((and (get-buffer buffer)
+               (buffer-name (get-buffer buffer)))
           (save-excursion
             (set-buffer buffer)
             (gnus-deaden-summary))))))
@@ -5338,7 +5441,7 @@ If prefix argument NO-ARTICLE is non-nil, no article is selected initially."
 
 ;; Walking around summary lines.
 
-(defun gnus-summary-first-subject (&optional unread undownloaded)
+(defun gnus-summary-first-subject (&optional unread)
   "Go to the first unread subject.
 If UNREAD is non-nil, go to the first unread article.
 Returns the article selected or nil if there are no unread articles."
@@ -5361,10 +5464,7 @@ Returns the article selected or nil if there are no unread articles."
        (t
        (let ((data gnus-newsgroup-data))
          (while (and data
-                     (and (not (and undownloaded
-                                    (eq gnus-undownloaded-mark
-                                        (gnus-data-mark (car data)))))
-                          (not (gnus-data-unread-p (car data)))))
+                     (not (gnus-data-unread-p (car data))))
            (setq data (cdr data)))
          (when data
            (goto-char (gnus-data-pos (car data)))
@@ -5651,9 +5751,6 @@ article."
   (let ((article (gnus-summary-article-number))
        (article-window (get-buffer-window gnus-article-buffer t))
        endp)
-    ;; If the buffer is empty, we have no article.
-    (unless article
-      (error "No article to select"))
     (gnus-configure-windows 'article)
     (if (eq (cdr (assq article gnus-newsgroup-reads)) gnus-canceled-mark)
        (if (and (eq gnus-summary-goto-unread 'never)
@@ -5905,9 +6002,7 @@ articles that are younger than AGE days."
            (setq is-younger (nnmail-time-less
                              (nnmail-time-since (nnmail-date-to-time date))
                              cutoff))
-           (when (if younger-p
-                     (not is-younger)
-                   is-younger)
+           (when (if younger-p is-younger (not is-younger))
              (push (gnus-data-number d) articles))))
        (gnus-summary-limit (nreverse articles)))
     (gnus-summary-position-point)))
@@ -6721,8 +6816,7 @@ to save in."
                      (concat "("
                              (mail-header-date gnus-current-headers) ")"))))
                (gnus-run-hooks 'gnus-ps-print-hook)
-               (save-excursion
-                 (ps-print-buffer-with-faces filename))))
+               (ps-print-buffer-with-faces filename)))
          (kill-buffer buffer))))))
 
 (defun gnus-summary-show-article (&optional arg)
@@ -7110,7 +7204,7 @@ latter case, they will be copied into the relevant groups."
     (gnus-summary-copy-article n nil method)))
 
 (defun gnus-summary-import-article (file)
-  "Import an arbitrary file into a mail newsgroup."
+  "Import a random file into a mail newsgroup."
   (interactive "fImport file: ")
   (let ((group gnus-newsgroup-name)
        (now (current-time))
@@ -7210,10 +7304,10 @@ This will be the case if the article has both been mailed and posted."
 This means that *all* articles that are marked as expirable will be
 deleted forever, right now."
   (interactive)
-  (or gnus-expert-user
-      (gnus-yes-or-no-p
-       "Are you really, really, really sure you want to delete all these messages? ")
-      (error "Phew!"))
+  (unless gnus-expert-user
+    (gnus-yes-or-no-p
+     "Are you really, really, really sure you want to delete all these messages? ")
+    (error "Phew!"))
   (gnus-summary-expire-articles t))
 
 ;; Suggested by Jack Vinson <vinson@unagi.cis.upenn.edu>.
@@ -7977,11 +8071,11 @@ The number of articles marked as read is returned."
            ;; We actually mark all articles as canceled, which we
            ;; have to do when using auto-expiry or adaptive scoring.
            (gnus-summary-show-all-threads)
-           (when (gnus-summary-first-subject (not all) t)
+           (when (gnus-summary-first-subject (not all))
              (while (and
                      (if to-here (< (point) to-here) t)
                      (gnus-summary-mark-article-as-read gnus-catchup-mark)
-                     (gnus-summary-find-next (not all) nil nil t))))
+                     (gnus-summary-find-next (not all)))))
            (gnus-set-mode-line 'summary))
          t))
     (gnus-summary-position-point)))
@@ -8726,7 +8820,9 @@ save those articles instead."
       (when (and header
                 (gnus-summary-article-sparse-p (mail-header-number header)))
        (let* ((parent (gnus-parent-id (mail-header-references header)))
-              (thread (and parent (gnus-id-to-thread parent))))
+              (thread
+               (and parent
+                    (gnus-gethash parent gnus-newsgroup-dependencies))))
          (when thread
            (delq (assq header thread) thread))))
       ;; We have to really fetch the header to this article.
@@ -8931,12 +9027,12 @@ save those articles instead."
   "mime-partial"
   "Internal method to combine message/partial messages automatically.")
 
-(mime-add-condition
- 'action '((type . message)(subtype . partial)
-          (method . mime-method-to-combine-message/partial-pieces)
-          (major-mode . gnus-original-article-mode)
-          (summary-buffer-exp . gnus-summary-buffer)
-          ))
+(set-atype 'mime-acting-condition
+          '((type . message)(subtype . partial)
+            (method . mime-method-to-combine-message/partial-pieces)
+            (major-mode . gnus-original-article-mode)
+            (summary-buffer-exp . gnus-summary-buffer)
+            ))
 
 (set-alist 'mime-view-partial-message-method-alist
           'gnus-original-article-mode
index 249367d..178bcb9 100644 (file)
@@ -2,7 +2,7 @@
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
 ;; Author: Ilja Weis <kult@uni-paderborn.de>
-;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
+;;     Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
@@ -355,8 +355,8 @@ with some simple extensions.
 ;;; Generating group buffers
 
 (defun gnus-group-prepare-topics (level &optional all lowest regexp list-topic topic-level)
-  "List all newsgroups with unread articles of level LEVEL or lower.
-Use the `gnus-group-topics' to sort the groups.
+  "List all newsgroups with unread articles of level LEVEL or lower, and
+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)
index 90cf174..5321f3a 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-undo.el --- minor mode for undoing in Gnus
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
@@ -25,7 +25,7 @@
 
 ;; This package allows arbitrary undoing in Gnus buffers.  As all the
 ;; Gnus buffers aren't very text-oriented (what is in the buffers is
-;; just some arbitrary representation of the actual data), normal Emacs
+;; just some random representation of the actual data), normal Emacs
 ;; undoing doesn't work at all for Gnus.
 ;;
 ;; This package works by letting Gnus register functions for reversing
 
 (require 'gnus-util)
 (require 'gnus)
-(require 'custom)
 
-(defgroup gnus-undo nil
-  "Undoing in Gnus buffers."
-  :group 'gnus)
+(defvar gnus-undo-mode nil
+  "Minor mode for undoing in Gnus buffers.")
 
-(defcustom gnus-undo-limit 2000
-  "The number of undoable actions recorded."
-  :type 'integer
-  :group 'gnus-undo)
-
-(defcustom gnus-undo-mode nil
-  "Minor mode for undoing in Gnus buffers."
-  :type 'boolean
-  :group 'gnus-undo)
-
-(defcustom gnus-undo-mode-hook nil
-  "Hook called in all `gnus-undo-mode' buffers."
-  :type 'hook
-  :group 'gnus-undo)
+(defvar gnus-undo-mode-hook nil
+  "Hook called in all `gnus-undo-mode' buffers.")
 
 ;;; Internal variables.
 
@@ -162,11 +148,6 @@ FORMS may use backtick quote syntax."
      ;; Initialize list.
      (t
       (setq gnus-undo-actions (list (list function)))))
-    ;; Limit the length of the undo list.
-    (let ((next (nthcdr gnus-undo-limit gnus-undo-actions)))
-      (when next
-       (setcdr next nil)))
-    ;; We are not at a boundary...
     (setq gnus-undo-boundary-inhibit t)))
 
 (defun gnus-undo (n)
index 1665191..a98f9e5 100644 (file)
@@ -1,8 +1,8 @@
-;;; gnus-util.el --- utility functions for Semi-gnus
+;;; gnus-util.el --- utility functions for Gnus
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
-;; Keywords: mail, news, MIME
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+;; Keywords: news
 
 ;; This file is part of GNU Emacs.
 
       (yes-or-no-p prompt)
     (message "")))
 
+;; I suspect there's a better way, but I haven't taken the time to do
+;; it yet.  -erik selberg@cs.washington.edu
 (defun gnus-dd-mmm (messy-date)
-  "Return a string like DD-MMM from a big messy string."
+  "Return a string like DD-MMM from a big messy string"
   (let ((datevec (ignore-errors (timezone-parse-date messy-date))))
-    (if (or (not datevec)
-           (string-equal "0" (aref datevec 1)))
+    (if (not datevec)
        "??-???"
       (format "%2s-%s"
              (condition-case ()
@@ -376,7 +377,7 @@ Cache the result as a text property stored in DATE."
   (format-time-string "%Y%m%dT%H%M%S" time))
 
 (defun gnus-date-iso8601 (date)
-  "Convert the DATE to YYMMDDTHHMMSS."
+  "Convert the DATE to YYMMDDTHHMMSS"
   (condition-case ()
       (gnus-time-iso8601 (gnus-date-get-time date))
     (error "")))
@@ -718,8 +719,7 @@ with potentially long computations."
   (setq filename (expand-file-name filename))
   (setq rmail-default-rmail-file filename)
   (let ((artbuf (current-buffer))
-       (tmpbuf (get-buffer-create " *Gnus-output*"))
-       (coding-system-for-write 'binary))
+       (tmpbuf (get-buffer-create " *Gnus-output*")))
     (save-excursion
       (or (get-file-buffer filename)
          (file-exists-p filename)
@@ -778,8 +778,7 @@ with potentially long computations."
            (let ((file-buffer (create-file-buffer filename)))
              (save-excursion
                (set-buffer file-buffer)
-               (let ((require-final-newline nil)
-                     (coding-system-for-write 'binary))
+               (let ((require-final-newline nil))
                  (gnus-write-buffer filename)))
              (kill-buffer file-buffer))
          (error "Output file does not exist")))
@@ -797,8 +796,7 @@ with potentially long computations."
       ;; Decide whether to append to a file or to an Emacs buffer.
       (let ((outbuf (get-file-buffer filename)))
        (if (not outbuf)
-           (let ((buffer-read-only nil)
-                 (coding-system-for-write 'binary))
+           (let ((buffer-read-only nil))
              (save-excursion
                (goto-char (point-max))
                (forward-char -2)
@@ -923,17 +921,6 @@ ARG is passed to the first function."
   "Return the value of token TYPE from ALIST."
   (cdr (assoc type alist)))
 
-;;; Various
-
-(defun gnus-alive-p ()
-  "Say whether Gnus is running or not."
-  (and (boundp 'gnus-group-buffer)
-       (get-buffer gnus-group-buffer)
-       (save-excursion
-        (set-buffer gnus-group-buffer)
-        (eq major-mode 'gnus-group-mode))))
-
-
 (provide 'gnus-util)
 
 ;;; gnus-util.el ends here
index 7b28e53..a688e7a 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-uu.el --- extract (uu)encoded files in Gnus
 ;; Copyright (C) 1985,86,87,93,94,95,96,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Created: 2 Oct 1993
 ;; Keyword: news
 
@@ -353,9 +353,7 @@ didn't work, and overwrite existing files.  Otherwise, ask each time."
   "v" gnus-uu-mark-over
   "s" gnus-uu-mark-series
   "r" gnus-uu-mark-region
-  "g" gnus-uu-unmark-region
   "R" gnus-uu-mark-by-regexp
-  "G" gnus-uu-unmark-by-regexp
   "t" gnus-uu-mark-thread
   "T" gnus-uu-unmark-thread
   "a" gnus-uu-mark-all
@@ -648,7 +646,7 @@ didn't work, and overwrite existing files.  Otherwise, ask each time."
   (gnus-summary-position-point))
 
 (defun gnus-uu-mark-over (&optional score)
-  "Mark all articles with a score over SCORE (the prefix)."
+  "Mark all articles with a score over SCORE (the prefix.)"
   (interactive "P")
   (let ((score (gnus-score-default score))
        (data gnus-newsgroup-data))
@@ -845,7 +843,7 @@ didn't work, and overwrite existing files.  Otherwise, ask each time."
        (when (not (eq in-state 'end))
          (setq state (list 'middle))))
       (save-excursion
-       (set-buffer "*gnus-uu-body*")
+       (set-buffer (get-buffer "*gnus-uu-body*"))
        (goto-char (setq beg (point-max)))
        (save-excursion
          (save-restriction
@@ -887,16 +885,16 @@ didn't work, and overwrite existing files.  Otherwise, ask each time."
        (when (re-search-forward "^Subject: \\(.*\\)$" nil t)
          (setq subj (buffer-substring (match-beginning 1) (match-end 1)))
          (save-excursion
-           (set-buffer "*gnus-uu-pre*")
+           (set-buffer (get-buffer "*gnus-uu-pre*"))
            (insert (format "   %s\n" subj)))))
       (when (or (eq in-state 'last)
                (eq in-state 'first-and-last))
        (save-excursion
-         (set-buffer "*gnus-uu-pre*")
+         (set-buffer (get-buffer "*gnus-uu-pre*"))
          (insert (format "\n\n%s\n\n" (make-string 70 ?-)))
          (gnus-write-buffer gnus-uu-saved-article-name))
        (save-excursion
-         (set-buffer "*gnus-uu-body*")
+         (set-buffer (get-buffer "*gnus-uu-body*"))
          (goto-char (point-max))
          (insert
           (concat (setq end-string (format "End of %s Digest" name))
@@ -904,8 +902,8 @@ didn't work, and overwrite existing files.  Otherwise, ask each time."
          (insert (concat (make-string (length end-string) ?*) "\n"))
          (write-region
           (point-min) (point-max) gnus-uu-saved-article-name t))
-       (gnus-kill-buffer "*gnus-uu-pre*")
-       (gnus-kill-buffer "*gnus-uu-body*")
+       (kill-buffer (get-buffer "*gnus-uu-pre*"))
+       (kill-buffer (get-buffer "*gnus-uu-body*"))
        (push 'end state))
       (if (memq 'begin state)
          (cons gnus-uu-saved-article-name state)
@@ -1901,10 +1899,8 @@ If no file has been included, the user will be asked for a file."
     (goto-char (point-max))
     (insert (format "\n%s\n" gnus-uu-post-binary-separator))
 
-    ;; #### Unix-specific?
     (when (string-match "^~/" file-path)
       (setq file-path (concat "$HOME" (substring file-path 1))))
-    ;; #### Unix-specific?
     (if (string-match "/[^/]*$" file-path)
        (setq file-name (substring file-path (1+ (match-beginning 0))))
       (setq file-name file-path))
index 5c4eb52..f395d5a 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-win.el --- window configuration functions for Gnus
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
index 9d3d239..b32c64f 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-xmas.el --- Gnus functions for XEmacs
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
@@ -366,10 +366,6 @@ call it with the value of the `gnus-data' text property."
   (gnus-xmas-menu-add tree
     gnus-tree-menu))
 
-(defun gnus-xmas-draft-menu-add ()
-  (gnus-xmas-menu-add draft
-    gnus-draft-menu))
-
 (defun gnus-xmas-server-menu-add ()
   (gnus-xmas-menu-add menu
     gnus-server-server-menu gnus-server-connections-menu))
@@ -521,8 +517,7 @@ call it with the value of the `gnus-data' text property."
   (add-hook 'gnus-agent-summary-mode-hook 'gnus-xmas-agent-summary-menu-add)
   (add-hook 'gnus-agent-group-mode-hook 'gnus-xmas-agent-group-menu-add)
   (add-hook 'gnus-agent-server-mode-hook 'gnus-xmas-agent-server-menu-add)
-
-  (add-hook 'gnus-draft-mode-hook 'gnus-xmas-draft-menu-add)
+  
   (add-hook 'gnus-summary-mode-hook
            'gnus-xmas-switch-horizontal-scrollbar-off)
   (add-hook 'gnus-tree-mode-hook 'gnus-xmas-switch-horizontal-scrollbar-off))
index ae5931c..b9c6740 100644 (file)
@@ -2,7 +2,7 @@
 ;; Copyright (C) 1987,88,89,90,93,94,95,96,97,98 Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
-;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
+;;     Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news, mail
 
 ;; This file is part of GNU Emacs.
   :group 'news
   :group 'mail)
 
-(defgroup gnus-cache nil
-  "Cache interface."
-  :group 'gnus)
-
 (defgroup gnus-start nil
   "Starting your favorite newsreader."
   :group 'gnus)
@@ -250,11 +246,11 @@ is restarted, and sometimes reloaded."
   :link '(custom-manual "(gnus)Exiting Gnus")
   :group 'gnus)
 
-(defconst gnus-version-number "6.3.3"
+(defconst gnus-version-number "6.1.2"
   "Version number for this version of gnus.")
 
 (defconst gnus-version
-  (format "Semi-gnus %s (based on Gnus 5.6.10; for SEMI 1.4)"
+  (format "Semi-gnus %s (based on Gnus 5.6.4; for SEMI 1.1/1.2)"
           gnus-version-number)
   "Version string for this version of gnus.")
 
@@ -708,12 +704,7 @@ All other Gnus path variables are initialized from this variable."
 
 (defcustom gnus-directory (or (getenv "SAVEDIR")
                              (nnheader-concat gnus-home-directory "News/"))
-  "*Directory variable from which all other Gnus file variables are derived.
-
-Note that Gnus is mostly loaded when the `.gnus.el' file is read.
-This means that other directory variables that are initialized from
-this variable won't be set properly if you set this variable in `.gnus.el'.
-Set this variable in `.emacs' instead."
+  "*Directory variable from which all other Gnus file variables are derived."
   :group 'gnus-files
   :type 'directory)
 
@@ -1136,7 +1127,7 @@ slower."
     ("nnsoup" post-mail address)
     ("nndraft" post-mail)
     ("nnfolder" mail respool address)
-    ("nngateway" post-mail address prompt-address physical-address)
+    ("nngateway" none address prompt-address physical-address)
     ("nnweb" none)
     ("nnlistserv" none)
     ("nnagent" post-mail))
@@ -1412,19 +1403,12 @@ want."
 (defvar gnus-server-alist nil
   "List of available servers.")
 
-(defcustom gnus-cache-directory
-  (nnheader-concat gnus-directory "cache/")
-  "*The directory where cached articles will be stored."
-  :group 'gnus-cache
-  :type 'directory)
-
 (defvar gnus-predefined-server-alist
   `(("cache"
      (nnspool "cache"
-             (nnspool-spool-directory gnus-cache-directory)
-             (nnspool-nov-directory gnus-cache-directory)
-             (nnspool-active-file
-              (nnheader-concat gnus-cache-directory "active")))))
+             (nnspool-spool-directory "~/News/cache/")
+             (nnspool-nov-directory "~/News/cache/")
+             (nnspool-active-file "~/News/cache/active"))))
   "List of predefined (convenience) servers.")
 
 (defvar gnus-topic-indentation "") ;; Obsolete variable.
@@ -1693,7 +1677,7 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.")
      ("gnus-agent" gnus-open-agent gnus-agent-get-function
       gnus-agent-save-groups gnus-agent-save-active gnus-agent-method-p
       gnus-agent-get-undownloaded-list gnus-agent-fetch-session
-      gnus-summary-set-agent-mark gnus-agent-save-group-info)
+      gnus-summary-set-agent-mark)
      ("gnus-agent" :interactive t
       gnus-unplugged gnus-agentize gnus-agent-batch)
      ("gnus-vm" :interactive t gnus-summary-save-in-vm
@@ -1826,6 +1810,14 @@ This restriction may disappear in later versions of Gnus."
   "Set GROUP's active info."
   `(gnus-sethash ,group ,active gnus-active-hashtb))
 
+(defun gnus-alive-p ()
+  "Say whether Gnus is running or not."
+  (and gnus-group-buffer
+       (get-buffer gnus-group-buffer)
+       (save-excursion
+        (set-buffer gnus-group-buffer)
+        (eq major-mode 'gnus-group-mode))))
+
 ;; Info access macros.
 
 (defmacro gnus-info-group (info)
@@ -2204,11 +2196,11 @@ that that variable is buffer-local to the summary buffers."
 
 (defun gnus-ephemeral-group-p (group)
   "Say whether GROUP is ephemeral or not."
-  (gnus-group-get-parameter group 'quit-config t))
+  (gnus-group-get-parameter group 'quit-config))
 
 (defun gnus-group-quit-config (group)
   "Return the quit-config of GROUP."
-  (gnus-group-get-parameter group 'quit-config t))
+  (gnus-group-get-parameter group 'quit-config))
 
 (defun gnus-kill-ephemeral-group (group)
   "Remove ephemeral GROUP from relevant structures."
@@ -2394,41 +2386,30 @@ You should probably use `gnus-find-method-for-group' instead."
   "Say whether the group is secondary or not."
   (gnus-secondary-method-p (gnus-find-method-for-group group)))
 
-(defun gnus-group-find-parameter (group &optional symbol allow-list)
+(defun gnus-group-find-parameter (group &optional symbol)
   "Return the group parameters for GROUP.
 If SYMBOL, return the value of that symbol in the group parameters."
   (save-excursion
     (set-buffer gnus-group-buffer)
     (let ((parameters (funcall gnus-group-get-parameter-function group)))
       (if symbol
-         (gnus-group-parameter-value parameters symbol allow-list)
+         (gnus-group-parameter-value parameters symbol)
        parameters))))
 
-(defun gnus-group-get-parameter (group &optional symbol allow-list)
+(defun gnus-group-get-parameter (group &optional symbol)
   "Return the group parameters for GROUP.
 If SYMBOL, return the value of that symbol in the group parameters.
 Most functions should use `gnus-group-find-parameter', which
 also examines the topic parameters."
   (let ((params (gnus-info-params (gnus-get-info group))))
     (if symbol
-       (gnus-group-parameter-value params symbol allow-list)
+       (gnus-group-parameter-value params symbol)
       params)))
 
-(defun gnus-group-parameter-value (params symbol &optional allow-list)
+(defun gnus-group-parameter-value (params symbol)
   "Return the value of SYMBOL in group PARAMS."
-  ;; We only wish to return group parameters (dotted lists) and
-  ;; not local variables, which may have the same names.
-  ;; But first we handle single elements...
-  (or (car (memq symbol params))
-      ;; Handle alist.
-      (let (elem)
-       (catch 'found
-         (while (setq elem (pop params))
-           (when (and (consp elem)
-                      (eq (car elem) symbol)
-                      (or allow-list
-                          (atom (cdr elem))))
-             (throw 'found (cdr elem))))))))
+  (or (car (memq symbol params))       ; It's either a simple symbol
+      (cdr (assq symbol params))))     ; or a cons.
 
 (defun gnus-group-add-parameter (group param)
   "Add parameter PARAM to GROUP."
@@ -2696,7 +2677,7 @@ Allow completion over sensible values."
 
 ;;;###autoload
 (defun gnus-slave-no-server (&optional arg)
-  "Read network news as a slave, without connecting to local server."
+  "Read network news as a slave, without connecting to local server"
   (interactive "P")
   (gnus-no-server arg t))
 
index b4b458c..7d92912 100644 (file)
@@ -5,7 +5,7 @@
 (or (featurep 'path-util)
     (load "apel/path-util"))
 (add-path "apel")
-(add-path "flim")
+(add-path "mel")
 (add-path "semi")
 
 (defun maybe-fbind (args)
                    mouse-selection-click-count-buffer buffer-display-table
                    font-lock-defaults user-full-name user-login-name
                    gnus-newsgroup-name gnus-article-x-face-too-ugly
-                   mail-mode-hook enable-multibyte-characters
-                   adaptive-fill-first-line-regexp adaptive-fill-regexp)))
+                   mail-mode-hook enable-multibyte-characters)))
   (maybe-bind '(mail-mode-hook
-               enable-multibyte-characters browse-url-browser-function
-               adaptive-fill-first-line-regexp adaptive-fill-regexp))
+               enable-multibyte-characters browse-url-browser-function))
   (maybe-fbind '(color-instance-rgb-components
                 make-color-instance color-instance-name specifier-instance
                 device-type device-class get-popup-menu-response event-object
index 08fac7d..63cdc3e 100644 (file)
@@ -1,7 +1,7 @@
 ;;; message.el --- composing mail and news messages
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;;         MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Keywords: mail, news, MIME
 
@@ -227,11 +227,6 @@ any confusion."
   :group 'message-interface
   :type 'regexp)
 
-(defcustom message-subject-re-regexp "^[ \t]*\\([Rr][Ee]:[ \t]*\\)*[ \t]*"
-  "*Regexp matching \"Re: \" in the subject line."
-  :group 'message-various
-  :type 'regexp)
-
 ;;;###autoload
 (defcustom message-signature-separator "^-- *$"
   "Regexp matching the signature separator."
@@ -284,6 +279,13 @@ If t, use `message-user-organization-file'."
   :type 'file
   :group 'message-headers)
 
+(defcustom message-autosave-directory
+  (nnheader-concat message-directory "drafts/")
+  "*Directory where Message autosaves buffers.
+If nil, Message won't autosave."
+  :group 'message-buffers
+  :type 'directory)
+
 (defcustom message-forward-start-separator
   (concat (mime-make-tag "message" "rfc822") "\n")
   "*Delimiter inserted before forwarded messages."
@@ -413,9 +415,7 @@ might set this variable to '(\"-f\" \"you@some.where\")."
        ((boundp 'gnus-select-method)
         gnus-select-method)
        (t '(nnspool "")))
-  "*Method used to post news.
-Note that when posting from inside Gnus, for instance, this
-variable isn't used."
+  "*Method used to post news."
   :group 'message-news
   :group 'message-sending
   ;; This should be the `gnus-select-method' widget, but that might
@@ -638,13 +638,6 @@ the prefix.")
 The default is `abbrev', which uses mailabbrev.  nil switches
 mail aliases off.")
 
-(defcustom message-autosave-directory
-  (nnheader-concat message-directory "drafts/")
-  "*Directory where Message autosaves buffers if Gnus isn't running.
-If nil, Message won't autosave."
-  :group 'message-buffers
-  :type 'directory)
-
 ;;; Internal variables.
 ;;; Well, not really internal.
 
@@ -792,11 +785,8 @@ Defaults to `text-mode-abbrev-table'.")
       (,(concat "^\\(X-[A-Za-z0-9-]+\\|In-Reply-To\\):" content)
        (1 'message-header-name-face)
        (2 'message-header-name-face))
-      ,@(if (and mail-header-separator
-                (not (equal mail-header-separator "")))
-           `((,(concat "^\\(" (regexp-quote mail-header-separator) "\\)$")
-              1 'message-separator-face))
-         nil)
+      (,(concat "^\\(" (regexp-quote mail-header-separator) "\\)$")
+       1 'message-separator-face)
       (,(concat "^[ \t]*"
                "\\([" cite-prefix "]+[" cite-suffix "]*\\)?"
                "[:>|}].*")
@@ -945,7 +935,6 @@ The cdr of ech entry is a function for applying the face to a region.")
   (autoload 'nndraft-request-expire-articles "nndraft")
   (autoload 'gnus-open-server "gnus-int")
   (autoload 'gnus-request-post "gnus-int")
-  (autoload 'gnus-alive-p "gnus-util")
   (autoload 'rmail-output "rmail"))
 
 \f
@@ -1009,8 +998,7 @@ The cdr of ech entry is a function for applying the face to a region.")
 
 (defun message-fetch-field (header &optional not-all)
   "The same as `mail-fetch-field', only remove all newlines."
-  (let* ((inhibit-point-motion-hooks t)
-        (value (mail-fetch-field header nil (not not-all))))
+  (let ((value (mail-fetch-field header nil (not not-all))))
     (when value
       (nnheader-replace-chars-in-string value ?\n ? ))))
 
@@ -1052,7 +1040,7 @@ The cdr of ech entry is a function for applying the face to a region.")
 
 (defun message-strip-subject-re (subject)
   "Remove \"Re:\" from subject lines."
-  (if (string-match message-subject-re-regexp subject)
+  (if (string-match "^[Rr][Ee]: *" subject)
       (substring subject (match-end 0))
     subject))
 
@@ -1113,24 +1101,22 @@ Return the number of headers removed."
 
 (defun message-news-p ()
   "Say whether the current buffer contains a news message."
-  (and (not message-this-is-mail)
-       (or message-this-is-news
-          (save-excursion
-            (save-restriction
-              (message-narrow-to-headers)
-              (and (message-fetch-field "newsgroups")
-                   (not (message-fetch-field "posted-to"))))))))
+  (or message-this-is-news
+      (save-excursion
+       (save-restriction
+         (message-narrow-to-headers)
+         (and (message-fetch-field "newsgroups")
+              (not (message-fetch-field "posted-to")))))))
 
 (defun message-mail-p ()
   "Say whether the current buffer contains a mail message."
-  (and (not message-this-is-news)
-       (or message-this-is-mail
-          (save-excursion
-            (save-restriction
-              (message-narrow-to-headers)
-              (or (message-fetch-field "to")
-                  (message-fetch-field "cc")
-                  (message-fetch-field "bcc")))))))
+  (or message-this-is-mail
+      (save-excursion
+       (save-restriction
+         (message-narrow-to-headers)
+         (or (message-fetch-field "to")
+             (message-fetch-field "cc")
+             (message-fetch-field "bcc"))))))
 
 (defun message-next-header ()
   "Go to the beginning of the next header."
@@ -1318,7 +1304,7 @@ C-c C-r  message-caesar-buffer-body (rot13 the message body)."
        (concat (regexp-quote mail-header-separator)
                "$\\|[ \t]*[-_][-_][-_]+$\\|"
                "-- $\\|"
-               ;;!!! Uhm... shurely this can't be right?
+               ;;!!! Uhm... shurely this can't be right.
                "[> " (regexp-quote message-yank-prefix) "]+$\\|"
                paragraph-start))
   (setq paragraph-separate
@@ -1351,15 +1337,6 @@ C-c C-r  message-caesar-buffer-body (rot13 the message body)."
   (unless (string-match "XEmacs" emacs-version)
     (set (make-local-variable 'font-lock-defaults)
         '(message-font-lock-keywords t)))
-  (make-local-variable 'adaptive-fill-regexp)
-  (setq adaptive-fill-regexp
-       (concat "[ \t]*[-a-z0-9A-Z]*>+[ \t]*\\|" adaptive-fill-regexp))
-  (unless (boundp 'adaptive-fill-first-line-regexp)
-    (setq adaptive-fill-first-line-regexp nil))
-  (make-local-variable 'adaptive-fill-first-line-regexp)
-  (setq adaptive-fill-first-line-regexp
-       (concat "[ \t]*[-a-z0-9A-Z]*>+[ \t]*\\|"
-               adaptive-fill-first-line-regexp))
   (run-hooks 'text-mode-hook 'message-mode-hook))
 
 \f
@@ -1652,7 +1629,11 @@ name, rather than giving an automatic name."
             (name-default (concat "*message* " mail-trimmed-to))
             (name (if enter-string
                       (read-string "New buffer name: " name-default)
-                    name-default)))
+                    name-default))
+            (default-directory
+              (if message-autosave-directory
+                  (file-name-as-directory message-autosave-directory)
+                default-directory)))
        (rename-buffer name t)))))
 
 (defun message-fill-yanked-message (&optional justifyp)
@@ -1932,7 +1913,7 @@ the user from the mailer."
        t))))
 
 (defun message-send-via-mail (arg)
-  "Send the current message via mail."
+  "Send the current message via mail."  
   (message-send-mail arg))
 
 (defun message-send-via-news (arg)
@@ -2832,9 +2813,7 @@ to find out how to use this."
       (when from
        (let ((stop-pos
               (string-match "  *at \\|  *@ \\| *(\\| *<" from)))
-         (concat (if (and stop-pos
-                          (not (zerop stop-pos)))
-                     (substring from 0 stop-pos) from)
+         (concat (if stop-pos (substring from 0 stop-pos) from)
                  "'s message of \""
                  (if (or (not date) (string= date ""))
                      "(unknown date)" date)
@@ -3101,7 +3080,7 @@ Headers already prepared in the buffer are not modified."
            (insert "Original-")
            (beginning-of-line))
          (when (or (message-news-p)
-                   (string-match "@.+\\.." secure-sender))
+                   (string-match "^[^@]+@.+\\..+" secure-sender))
            (insert "Sender: " secure-sender "\n")))))))
 
 (defun message-insert-courtesy-copy ()
@@ -3327,12 +3306,7 @@ Headers already prepared in the buffer are not modified."
 (defun message-set-auto-save-file-name ()
   "Associate the message buffer with a file in the drafts directory."
   (when message-autosave-directory
-    (if (gnus-alive-p)
-       (setq message-draft-article
-             (nndraft-request-associate-buffer "drafts"))
-      (setq buffer-file-name (expand-file-name "*message*"
-                                              message-autosave-directory))
-      (setq buffer-auto-save-file-name (make-auto-save-file-name)))
+    (setq message-draft-article (nndraft-request-associate-buffer "drafts"))
     (clear-visited-file-modtime)))
 
 (defun message-disassociate-draft ()
@@ -3402,7 +3376,7 @@ Headers already prepared in the buffer are not modified."
            message-id (message-fetch-field "message-id" t))
       ;; Remove any (buggy) Re:'s that are present and make a
       ;; proper one.
-      (when (string-match message-subject-re-regexp subject)
+      (when (string-match "^[ \t]*[Rr][Ee]:[ \t]*" subject)
        (setq subject (substring subject (match-end 0))))
       (setq subject (concat "Re: " subject))
 
@@ -3523,7 +3497,7 @@ If TO-NEWSGROUPS, use that as the new Newsgroups line."
        (setq distribution nil))
       ;; Remove any (buggy) Re:'s that are present and make a
       ;; proper one.
-      (when (string-match message-subject-re-regexp subject)
+      (when (string-match "^[ \t]*[Rr][Ee]:[ \t]*" subject)
        (setq subject (substring subject (match-end 0))))
       (setq subject (concat "Re: " subject))
       (widen))
@@ -3611,14 +3585,10 @@ responses here are directed to other newsgroups."))
                message-id (message-fetch-field "message-id" t)
                distribution (message-fetch-field "distribution")))
        ;; Make sure that this article was written by the user.
-       (unless (or (and sender
-                        (string-equal
-                         (downcase sender)
-                         (downcase (message-make-sender))))
-                   (string-equal
-                    (downcase (cadr (mail-extract-address-components from)))
-                    (downcase (cadr (mail-extract-address-components
-                                     (message-make-from))))))
+       (unless (string-equal
+                (downcase
+                 (or sender (cadr (std11-extract-address-components from))))
+                (downcase (message-make-address)))
          (error "This article is not yours"))
        ;; Make control message.
        (setq buf (set-buffer (get-buffer-create " *message cancel*")))
@@ -3651,10 +3621,9 @@ header line with the old Message-ID."
   (let ((cur (current-buffer)))
     ;; Check whether the user owns the article that is to be superseded.
     (unless (string-equal
-            (downcase (or (message-fetch-field "sender")
-                          (cadr (mail-extract-address-components
-                                 (message-fetch-field "from")))))
-            (downcase (message-make-sender)))
+            (downcase (cadr (mail-extract-address-components
+                             (message-fetch-field "from"))))
+            (downcase (message-make-address)))
       (error "This article is not yours"))
     ;; Get a normal message buffer.
     (message-pop-to-buffer (message-buffer-name "supersede"))
@@ -3701,8 +3670,7 @@ header line with the old Message-ID."
       (concat "[" (or (message-fetch-field
                       (if (message-news-p) "newsgroups" "from"))
                      "(nowhere)")
-             "] " (or (eword-decode-unstructured-field-body
-                       (message-fetch-field "Subject") ""))))))
+             "] " (or (message-fetch-field "Subject") "")))))
 
 ;;;###autoload
 (defun message-forward (&optional news)
@@ -3955,8 +3923,7 @@ Do a `tab-to-tab-stop' if not in those headers."
                 (point))
                (skip-chars-backward "^, \t\n") (point))))
         (completion-ignore-case t)
-        (string (buffer-substring b (progn (skip-chars-forward "^,\t\n ")
-                                           (point))))
+        (string (buffer-substring b (point)))
         (hashtb (and (boundp 'gnus-active-hashtb) gnus-active-hashtb))
         (completions (all-completions string hashtb))
         (cur (current-buffer))
index 7e3edd3..73f4cd4 100644 (file)
@@ -1,7 +1,7 @@
 ;;; messagexmas.el --- XEmacs extensions to message
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: mail, news
 
 ;; This file is part of GNU Emacs.
index 337ab6f..d363700 100644 (file)
@@ -1,7 +1,7 @@
 ;;; messcompat.el --- making message mode compatible with mail mode
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: mail, news
 
 ;; This file is part of GNU Emacs.
index 90667cb..76d4390 100644 (file)
@@ -1,7 +1,7 @@
 ;;; nnagent.el --- offline backend for Gnus
 ;; Copyright (C) 1997,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news, mail
 
 ;; This file is part of GNU Emacs.
   nil)
 
 (deffoo nnagent-request-post (&optional server)
-  (gnus-agent-insert-meta-information 'news gnus-command-method)
   (gnus-request-accept-article "nndraft:queue"))
 
 ;; Use nnml functions for just about everything.
index def1e0c..f5e8468 100644 (file)
@@ -1,7 +1,7 @@
 ;;; nnbabyl.el --- rmail mbox access for Gnus
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;;     Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
 ;; Keywords: news, mail
 
@@ -32,7 +32,7 @@
 (require 'nnheader)
 (condition-case nil
     (require 'rmail)
-  (t (nnheader-message 5 "Ignore rmail errors from this file, you don't have rmail")))
+  (t (message "Ignore rmail errors from this file, you don't have rmail")))
 (require 'nnmail)
 (require 'nnoo)
 (eval-when-compile (require 'cl))
   (nnmail-activate 'nnbabyl)
   (unless (assoc group nnbabyl-group-alist)
     (push (list group (cons 1 0))
-         nnbabyl-group-alist)
+                                   nnbabyl-group-alist)
     (nnmail-save-active nnbabyl-group-alist nnbabyl-active-file))
   t)
 
       (when (buffer-modified-p (current-buffer))
        (save-buffer))
       (nnmail-save-active nnbabyl-group-alist nnbabyl-active-file)
-      (nnheader-message 5 ""))))
+      (message ""))))
 
 (provide 'nnbabyl)
 
index 0a0f3ef..032d7c0 100644 (file)
@@ -195,7 +195,7 @@ article was posted to nndb")
          (nntp-send-command "^[23].*\n" "X-DELETE" delete-list))
       )
        
-    (nnheader-message 5 "")
+    (message "")
     (nconc rest articles)))
 
 (defun nndb-get-remote-expire-response ()
@@ -297,7 +297,7 @@ Optional LAST is ignored."
     (or (string-match "^\\([0-9]+\\)" msg)
        (error "nndb: %s" msg))
     (setq art (substring msg (match-beginning 1) (match-end 1)))
-    (nnheader-message 5 "nndb: accepted %s" art)
+    (message "nndb: accepted %s" art)
     (list art)))
 
 (deffoo nndb-request-replace-article (article group buffer)
index d9e5c56..968637d 100644 (file)
@@ -1,7 +1,7 @@
 ;;; nndir.el --- single directory newsgroup access for Gnus
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
index 96b45d5..6440eb2 100644 (file)
@@ -1,7 +1,7 @@
 ;;; nndoc.el --- single file access for Gnus
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;;     Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
 ;; Keywords: news
 
index f7182a5..e410ef5 100644 (file)
@@ -1,7 +1,7 @@
 ;;; nndraft.el --- draft article access for Gnus
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
index 97f5d2f..4584560 100644 (file)
@@ -1,7 +1,7 @@
-;;; nneething.el --- arbitrary file access for Gnus
+;;; nneething.el --- random file access for Gnus
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;;     Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
 ;; Keywords: news, mail
 
@@ -103,11 +103,11 @@ If this variable is nil, no files will be excluded.")
 
          (and large
               (zerop (% count 20))
-              (nnheader-message 5 "nneething: Receiving headers... %d%%"
+              (message "nneething: Receiving headers... %d%%"
                        (/ (* count 100) number))))
 
        (when large
-         (nnheader-message 5 "nneething: Receiving headers...done"))
+         (message "nneething: Receiving headers...done"))
 
        (nnheader-fold-continuation-lines)
        'headers))))
index 334b2b6..56ca0d6 100644 (file)
@@ -2,7 +2,7 @@
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
 ;; Author: Scott Byer <byer@mv.us.adobe.com>
-;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
+;;     Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;;     Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
 ;; Keywords: mail
 
@@ -101,16 +101,24 @@ time saver for large mailboxes.")
   (save-excursion
     (set-buffer nntp-server-buffer)
     (erase-buffer)
-    (let (article start stop)
+    (let (article art-string start stop)
       (nnfolder-possibly-change-group group server)
       (when nnfolder-current-buffer
        (set-buffer nnfolder-current-buffer)
        (goto-char (point-min))
        (if (stringp (car articles))
            'headers
-         (while (setq article (pop articles))
+         (while articles
+           (setq article (car articles))
+           (setq art-string (nnfolder-article-string article))
            (set-buffer nnfolder-current-buffer)
-           (when (nnfolder-goto-article article)
+           (when (or (search-forward art-string nil t)
+                     ;; Don't search the whole file twice!  Also, articles
+                     ;; probably have some locality by number, so searching
+                     ;; backwards will be faster.  Especially if we're at the
+                     ;; beginning of the buffer :-). -SLB
+                     (search-backward art-string nil t))
+             (nnmail-search-unix-mail-delim-backward)
              (setq start (point))
              (search-forward "\n\n" nil t)
              (setq stop (1- (point)))
@@ -118,7 +126,8 @@ time saver for large mailboxes.")
              (insert (format "221 %d Article retrieved.\n" article))
              (insert-buffer-substring nnfolder-current-buffer start stop)
              (goto-char (point-max))
-             (insert ".\n")))
+             (insert ".\n"))
+           (setq articles (cdr articles)))
 
          (set-buffer nntp-server-buffer)
          (nnheader-fold-continuation-lines)
@@ -156,8 +165,9 @@ time saver for large mailboxes.")
   (save-excursion
     (set-buffer nnfolder-current-buffer)
     (goto-char (point-min))
-    (when (nnfolder-goto-article article)
+    (when (search-forward (nnfolder-article-string article) nil t)
       (let (start stop)
+       (nnmail-search-unix-mail-delim-backward)
        (setq start (point))
        (forward-line 1)
        (unless (and (nnmail-search-unix-mail-delim)
@@ -299,7 +309,7 @@ time saver for large mailboxes.")
       (set-buffer nnfolder-current-buffer)
       (while (and articles is-old)
        (goto-char (point-min))
-       (when (nnfolder-goto-article (car articles))
+       (when (search-forward (nnfolder-article-string (car articles)) nil t)
          (if (setq is-old
                    (nnmail-expired-article-p
                     newsgroup
@@ -344,7 +354,7 @@ time saver for large mailboxes.")
         (nnfolder-possibly-change-group group server)
         (set-buffer nnfolder-current-buffer)
         (goto-char (point-min))
-        (when (nnfolder-goto-article article)
+        (when (search-forward (nnfolder-article-string article) nil t)
           (nnfolder-delete-mail))
         (when last
           (nnfolder-save-buffer)
@@ -396,15 +406,12 @@ time saver for large mailboxes.")
   (nnfolder-possibly-change-group group)
   (save-excursion
     (set-buffer buffer)
-    (goto-char (point-min))
-    (when (looking-at "X-From-Line: ")
-      (replace-match "From "))
     (nnfolder-normalize-buffer)
     (set-buffer nnfolder-current-buffer)
     (goto-char (point-min))
-    (if (not (nnfolder-goto-article article))
+    (if (not (search-forward (nnfolder-article-string article) nil t))
        nil
-      (nnfolder-delete-mail t)
+      (nnfolder-delete-mail t t)
       (insert-buffer-substring buffer)
       (nnfolder-save-buffer)
       t)))
@@ -466,9 +473,10 @@ time saver for large mailboxes.")
       (goto-char (point-min))
       (while (and (search-forward marker nil t)
                  (re-search-forward number nil t))
-       (let ((newnum (string-to-number (match-string 0))))
-         (if (nnmail-within-headers-p)
-             (setq activemin (min activemin newnum)))))
+       (setq activemin (min activemin
+                            (string-to-number (buffer-substring
+                                               (match-beginning 0)
+                                               (match-end 0))))))
       (setcar active activemin))))
 
 (defun nnfolder-article-string (article)
@@ -476,45 +484,19 @@ time saver for large mailboxes.")
       (concat "\n" nnfolder-article-marker (int-to-string article) " ")
     (concat "\nMessage-ID: " article)))
 
-(defun nnfolder-goto-article (article)
-  "Place point at the start of the headers of ARTICLE.
-ARTICLE can be an article number or a Message-ID.
-Returns t if successful, nil otherwise."
-  (let ((art-string (nnfolder-article-string article))
-       start found)
-    ;; It is likely that we are at or before the delimiter line.
-    ;; We therefore go to the end of the previous line, and start
-    ;; searching from there.
-    (beginning-of-line)
-    (unless (bobp)
-      (forward-char -1))
-    (setq start (point))
-    ;; First search forward.
-    (while (and (setq found (search-forward art-string nil t))
-               (not (nnmail-within-headers-p))))
-    ;; If unsuccessful, search backward from where we started,
-    (unless found
-      (goto-char start)
-      (while (and (setq found (search-backward art-string nil t))
-                 (not (nnmail-within-headers-p)))))
-    (when found
-      (nnmail-search-unix-mail-delim-backward))))
-
-(defun nnfolder-delete-mail (&optional leave-delim)
-  "Delete the message that point is in.
-If optional argument LEAVE-DELIM is t, then mailbox delimiter is not
-deleted.  Point is left where the deleted region was."
-  (delete-region
-   (save-excursion
-     (forward-line 1) ; in case point is at beginning of message already
-     (nnmail-search-unix-mail-delim-backward)
-     (if leave-delim (progn (forward-line 1) (point))
-       (point)))
-   (progn
-     (forward-line 1)
-     (if (nnmail-search-unix-mail-delim)
-        (point)
-       (point-max)))))
+(defun nnfolder-delete-mail (&optional force leave-delim)
+  "Delete the message that point is in."
+  (save-excursion
+    (delete-region
+     (save-excursion
+       (nnmail-search-unix-mail-delim-backward)
+       (if leave-delim (progn (forward-line 1) (point))
+        (point)))
+     (progn
+       (forward-line 1)
+       (if (nnmail-search-unix-mail-delim)
+          (point)
+        (point-max))))))
 
 (defun nnfolder-possibly-change-group (group &optional server dont-check)
   ;; Change servers.
@@ -710,9 +692,8 @@ deleted.  Point is left where the deleted region was."
            (while (and (search-forward marker nil t)
                        (re-search-forward number nil t))
              (let ((newnum (string-to-number (match-string 0))))
-               (if (nnmail-within-headers-p)
-                   (setq maxid (max maxid newnum)
-                         minid (min minid newnum)))))
+               (setq maxid (max maxid newnum))
+               (setq minid (min minid newnum))))
            (setcar active (max 1 (min minid maxid)))
            (setcdr active (max maxid (cdr active)))
            (goto-char (point-min)))
@@ -786,7 +767,7 @@ deleted.  Point is left where the deleted region was."
           (nnfolder-possibly-change-folder file)
           (nnfolder-possibly-change-group file)
           (nnfolder-close-group file))))
-    (nnheader-message 5 "")))
+    (message "")))
 
 (defun nnfolder-group-pathname (group)
   "Make pathname for GROUP."
index 909e4f8..6dd6361 100644 (file)
@@ -1,7 +1,7 @@
 ;;; nngateway.el --- posting news via mail gateways
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news, mail
 
 ;; This file is part of GNU Emacs.
index cffbedb..b37b539 100644 (file)
@@ -2,7 +2,7 @@
 ;; Copyright (C) 1987,88,89,90,93,94,95,96,97,98 Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
-;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
+;;     Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
@@ -595,27 +595,21 @@ If FILE is t, return the buffer contents as a string."
   "Fold continuation lines in the current buffer."
   (nnheader-replace-regexp "\\(\r?\n[ \t]+\\)+" " "))
 
-(defun nnheader-translate-file-chars (file &optional full)
-  "Translate FILE into something that can be a file name.
-If FULL, translate everything."
+(defun nnheader-translate-file-chars (file)
   (if (null nnheader-file-name-translation-alist)
       ;; No translation is necessary.
       file
+    ;; We translate -- but only the file name.  We leave the directory
+    ;; alone.
     (let* ((i 0)
           trans leaf path len)
-      (if full
-         ;; Do complete translation.
-         (setq leaf (copy-sequence file)
-               path "")
-       ;; We translate -- but only the file name.  We leave the directory
-       ;; alone.
-       (if (string-match "/[^/]+\\'" file)
-           ;; This is needed on NT's and stuff.
-           (setq leaf (substring file (1+ (match-beginning 0)))
-                 path (substring file 0 (1+ (match-beginning 0))))
-         ;; Fall back on this.
-         (setq leaf (file-name-nondirectory file)
-               path (file-name-directory file))))
+      (if (string-match "/[^/]+\\'" file)
+         ;; This is needed on NT's and stuff.
+         (setq leaf (substring file (1+ (match-beginning 0)))
+               path (substring file 0 (1+ (match-beginning 0))))
+       ;; Fall back on this.
+       (setq leaf (file-name-nondirectory file)
+             path (file-name-directory file)))
       (setq len (length leaf))
       (while (< i len)
        (when (setq trans (cdr (assq (aref leaf i)
@@ -636,9 +630,9 @@ The first string in ARGS can be a format string."
 (defun nnheader-get-report (backend)
   "Get the most recent report from BACKEND."
   (condition-case ()
-      (nnheader-message 5 "%s" (symbol-value (intern (format "%s-status-string"
+      (message "%s" (symbol-value (intern (format "%s-status-string"
                                                  backend))))
-    (error (nnheader-message 5 ""))))
+    (error (message ""))))
 
 (defun nnheader-insert (format &rest args)
   "Clear the communication buffer and insert FORMAT and ARGS into the buffer.
@@ -783,7 +777,6 @@ find-file-hooks, etc.
        (default-major-mode 'fundamental-mode)
        (enable-local-variables nil)
         (after-insert-file-functions nil)
-       (find-file-hooks nil)
        (coding-system-for-read nnheader-file-coding-system))
     (apply 'find-file-noselect args)))
 
index f788042..869ed69 100644 (file)
@@ -1,7 +1,7 @@
 ;;; nnheaderxm.el --- making Gnus backends work under XEmacs
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
index 0df788d..77fabca 100644 (file)
@@ -1,7 +1,7 @@
 ;;; nnkiboze.el --- select virtual news access for Gnus
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
       (save-excursion
        (set-buffer nntp-server-buffer)
        (erase-buffer)
-       (unless (file-exists-p nov-file)
-         (nnkiboze-request-scan group))
        (if (not (file-exists-p nov-file))
            (nnheader-report 'nnkiboze "Can't select group %s" group)
          (nnheader-insert-file-contents nov-file)
 
 ;;;###autoload
 (defun nnkiboze-generate-groups ()
-  "\"Usage: emacs -batch -l nnkiboze -f nnkiboze-generate-groups\".
+  "Usage: emacs -batch -l nnkiboze -f nnkiboze-generate-groups
 Finds out what articles are to be part of the nnkiboze groups."
   (interactive)
   (let ((nnmail-spool-file nil)
@@ -226,7 +224,7 @@ Finds out what articles are to be part of the nnkiboze groups."
         (gnus-verbose (min gnus-verbose 3))
         gnus-select-group-hook gnus-summary-prepare-hook
         gnus-thread-sort-functions gnus-show-threads
-        gnus-visual gnus-suppress-duplicates num-unread)
+        gnus-visual gnus-suppress-duplicates)
     (unless info
       (error "No such group: %s" group))
     ;; Load the kiboze newsrc file for this group.
@@ -269,9 +267,7 @@ Finds out what articles are to be part of the nnkiboze groups."
          (gnus-group-jump-to-group (caar newsrc))
          (gnus-message 3 "nnkiboze: Checking %s..." (caar newsrc))
          (setq ginfo (gnus-get-info (gnus-group-group-name))
-               orig-info (gnus-copy-sequence ginfo)
-               num-unread (car (gnus-gethash (caar newsrc)
-                                             gnus-newsrc-hashtb)))
+               orig-info (gnus-copy-sequence ginfo))
          (unwind-protect
              (progn
                ;; We set all list of article marks to nil.  Since we operate
@@ -309,13 +305,10 @@ Finds out what articles are to be part of the nnkiboze groups."
                       gnus-newsgroup-name))
                    (setq gnus-newsgroup-scored (cdr gnus-newsgroup-scored)))
                  ;; That's it.  We exit this group.
-                 (when (eq major-mode 'gnus-summary-mode)
-                   (kill-buffer (current-buffer)))))
+                 (gnus-summary-exit-no-update)))
            ;; Restore the proper info.
            (when ginfo
-             (setcdr ginfo (cdr orig-info)))
-           (setcar (gnus-gethash (caar newsrc) gnus-newsrc-hashtb)
-                   num-unread)))
+             (setcdr ginfo (cdr orig-info)))))
        (setcdr (car newsrc) (car active))
        (gnus-message 3 "nnkiboze: Checking %s...done" (caar newsrc))
        (setq newsrc (cdr newsrc))))
@@ -323,11 +316,8 @@ Finds out what articles are to be part of the nnkiboze groups."
     (nnheader-temp-write newsrc-file
       (insert "(setq nnkiboze-newsrc '")
       (gnus-prin1 nnkiboze-newsrc)
-      (insert ")\n")))
-  (save-excursion
-    (set-buffer gnus-group-buffer)
-    (gnus-group-list-groups))
-  t)
+      (insert ")\n"))
+    t))
 
 (defun nnkiboze-enter-nov (buffer header group)
   (save-excursion
@@ -352,7 +342,7 @@ Finds out what articles are to be part of the nnkiboze groups."
       ;; The first Xref has to be the group this article
       ;; really came for - this is the article nnkiboze
       ;; will request when it is asked for the article.
-      (insert " " group ":"
+      (insert group ":"
              (int-to-string (mail-header-number header)) " ")
       (while (re-search-forward " [^ ]+:[0-9]+" nil t)
        (goto-char (1+ (match-beginning 0)))
index bb2b4a9..684595c 100644 (file)
@@ -1,7 +1,7 @@
 ;;; nnlistserv.el --- retrieving articles via web mailing list archives
 ;; Copyright (C) 1997,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news, mail
 
 ;; This file is part of GNU Emacs.
                 nil 0 0 url))
               map)
              (nnweb-set-hashtb (cadar map) (car map))
-             (nnheader-message 5 "%s %s %s" (cdr active) (point) pages)
+             (message "%s %s %s" (cdr active) (point) pages)
              ))))
       ;; Return the articles in the right order.
       (setq nnweb-articles
index 516e8b1..2b5fbbc 100644 (file)
@@ -1,7 +1,7 @@
 ;;; nnmail.el --- mail support functions for the Gnus mail backends
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news, mail
 
 ;; This file is part of GNU Emacs.
@@ -218,7 +218,7 @@ several files - eg. \".spool[0-9]*\"."
   :type 'function)
 
 (defcustom nnmail-crosspost-link-function
-  (if (string-match "windows-nt\\|emx" (symbol-name system-type))
+  (if (string-match "windows-nt\\|emx" (format "%s" system-type))
       'copy-file
     'add-name-to-file)
   "*Function called to create a copy of a file.
@@ -343,7 +343,7 @@ messages will be shown to indicate the current status."
   "Incoming mail can be split according to this fancy variable.
 To enable this, set `nnmail-split-methods' to `nnmail-split-fancy'.
 
-The format of this variable is SPLIT, where SPLIT can be one of
+The format is this variable is SPLIT, where SPLIT can be one of
 the following:
 
 GROUP: Mail will be stored in GROUP (a string).
@@ -541,7 +541,7 @@ parameter.  It should return nil, `warn' or `delete'."
   "Convert DAYS into time."
   (let* ((seconds (* 1.0 days 60 60 24))
         (rest (expt 2 16))
-        (ms (condition-case nil (floor (/ seconds rest))
+        (ms (condition-case nil (round (/ seconds rest))
               (range-error (expt 2 16)))))
     (list ms (condition-case nil (round (- seconds (* ms rest)))
               (range-error (expt 2 16))))))
@@ -591,12 +591,12 @@ parameter.  It should return nil, `warn' or `delete'."
                      (nnmail-read-passwd
                       (format "Password for %s: "
                               (substring inbox (+ popmail 3))))))
-             (nnheader-message 5 "Getting mail from the post office..."))
+             (message "Getting mail from the post office..."))
          (when (or (and (file-exists-p tofile)
                         (/= 0 (nnheader-file-size tofile)))
                    (and (file-exists-p inbox)
                         (/= 0 (nnheader-file-size inbox))))
-           (nnheader-message 5 "Getting mail from %s..." inbox)))
+           (message "Getting mail from %s..." inbox)))
        ;; Set TOFILE if have not already done so, and
        ;; rename or copy the file INBOX to TOFILE if and as appropriate.
        (cond
@@ -636,14 +636,14 @@ parameter.  It should return nil, `warn' or `delete'."
                             nil errors nil inbox tofile)
                            (when nnmail-internal-password
                              (list nnmail-internal-password)))))))
-               (push inbox nnmail-moved-inboxes)
                (if (and (not (buffer-modified-p errors))
                         (zerop result))
                    ;; No output => movemail won
                    (progn
                      (unless popmail
                        (when (file-exists-p tofile)
-                         (set-file-modes tofile nnmail-default-file-modes))))
+                         (set-file-modes tofile nnmail-default-file-modes)))
+                     (push inbox nnmail-moved-inboxes))
                  (set-buffer errors)
                  ;; There may be a warning about older revisions.  We
                  ;; ignore those.
@@ -652,8 +652,8 @@ parameter.  It should return nil, `warn' or `delete'."
                      (progn
                        (unless popmail
                          (when (file-exists-p tofile)
-                           (set-file-modes
-                            tofile nnmail-default-file-modes))))
+                           (set-file-modes tofile nnmail-default-file-modes)))
+                       (push inbox nnmail-moved-inboxes))
                    ;; Probably a real error.
                    (subst-char-in-region (point-min) (point-max) ?\n ?\  )
                    (goto-char (point-max))
@@ -667,7 +667,7 @@ parameter.  It should return nil, `warn' or `delete'."
                                     (buffer-string) result))
                      (error "%s" (buffer-string)))
                    (setq tofile nil)))))))
-       (nnheader-message 5 "Getting mail from %s...done" inbox)
+       (message "Getting mail from %s...done" inbox)
        (and errors
             (buffer-name errors)
             (kill-buffer errors))
@@ -717,12 +717,10 @@ return nil if FILE is a spool file or the procmail group for which it
 is a spool.  If not using procmail, return GROUP."
   (if (or (eq nnmail-spool-file 'procmail)
          nnmail-use-procmail)
-      (if (string-match (concat "^" (regexp-quote
-                                    (expand-file-name
-                                     (file-name-as-directory
-                                      nnmail-procmail-directory)))
-                               "\\([^/]*\\)"
-                               (regexp-quote nnmail-procmail-suffix) "$")
+      (if (string-match (concat "^" (expand-file-name
+                                    (file-name-as-directory
+                                     nnmail-procmail-directory))
+                               "\\([^/]*\\)" nnmail-procmail-suffix "$")
                        (expand-file-name file))
          (let ((procmail-group (substring (expand-file-name file)
                                           (match-beginning 1)
@@ -877,7 +875,7 @@ is a spool.  If not using procmail, return GROUP."
                  (goto-char (match-beginning 0))))
        ;; Possibly wrong format?
        (progn
-         (pop-to-buffer (nnheader-find-file-noselect nnmail-current-spool))
+         (pop-to-buffer (find-file-noselect nnmail-current-spool))
          (error "Error, unknown mail format! (Possibly corrupted.)"))
       ;; Carry on until the bitter end.
       (while (not (eobp))
@@ -964,7 +962,7 @@ is a spool.  If not using procmail, return GROUP."
                  (forward-line 1)))
        ;; Possibly wrong format?
        (progn
-         (pop-to-buffer (nnheader-find-file-noselect nnmail-current-spool))
+         (pop-to-buffer (find-file-noselect nnmail-current-spool))
          (error "Error, unknown mail format! (Possibly corrupted.)"))
       ;; Carry on until the bitter end.
       (while (not (eobp))
@@ -1081,7 +1079,7 @@ FUNC will be called with the group name to determine the article number."
                       (or (funcall nnmail-split-methods)
                           '("bogus"))
                     (error
-                     (nnheader-message 5
+                     (message
                       "Error in `nnmail-split-methods'; using `bogus' mail group")
                      (sit-for 1)
                      '("bogus")))))
@@ -1771,14 +1769,6 @@ If ARGS, PROMPT is used as an argument to `format'."
          (substring inbox (match-end (string-match "^po:" inbox)))))
     (pop3-movemail crashbox)))
 
-(defun nnmail-within-headers-p ()
-  "Check to see if point is within the headers of a unix mail message.
-Doesn't change point."
-  (let ((pos (point)))
-    (save-excursion
-      (and (nnmail-search-unix-mail-delim-backward)
-          (not (search-forward "\n\n" pos t))))))
-
 (run-hooks 'nnmail-load-hook)
 
 (provide 'nnmail)
index 1f05d1d..ee703ff 100644 (file)
@@ -1,7 +1,7 @@
 ;;; nnmbox.el --- mail mbox access for Gnus
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;;     Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
 ;; Keywords: news, mail
 
 ;; the Free Software Foundation; either version 2, or (at your option)
 ;; any later version.
 
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
 ;; You should have received a copy of the GNU General Public License
 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 (deffoo nnmbox-close-group (group &optional server)
   t)
 
-(deffoo nnmbox-request-create-group (group &optional server args)
-  (nnmail-activate 'nnmbox)
-  (unless (assoc group nnmbox-group-alist)
-    (push (list group (cons 1 0))
-         nnmbox-group-alist)
-    (nnmail-save-active nnmbox-group-alist nnmbox-active-file))
-  t)
-
 (deffoo nnmbox-request-list (&optional server)
   (save-excursion
     (nnmail-find-file nnmbox-active-file)
index c359e95..ab9716c 100644 (file)
@@ -1,7 +1,7 @@
 ;;; nnmh.el --- mhspool access for Gnus
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;;     Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
 ;; Keywords: news, mail
 
 
          (and large
               (zerop (% count 20))
-              (nnheader-message 5 "nnmh: Receiving headers... %d%%"
+              (message "nnmh: Receiving headers... %d%%"
                        (/ (* count 100) number))))
 
        (when large
-         (nnheader-message 5 "nnmh: Receiving headers...done"))
+         (message "nnmh: Receiving headers...done"))
 
        (nnheader-fold-continuation-lines)
        'headers))))
                 (push (car articles) rest))))
          (push (car articles) rest)))
       (setq articles (cdr articles)))
-    (nnheader-message 5 "")
+    (message "")
     (nconc rest articles)))
 
 (deffoo nnmh-close-group (group &optional server)
index e7a1df9..c037c73 100644 (file)
@@ -1,7 +1,7 @@
 ;;; nnml.el --- mail spool access for Gnus
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;;     Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
 ;; Keywords: news, mail
 
@@ -271,11 +271,6 @@ all.  This may very well take some time.")
        article rest mod-time number)
     (nnmail-activate 'nnml)
 
-    (setq active-articles (sort active-articles '<))
-    ;; Articles not listed in active-articles are already gone,
-    ;; so don't try to expire them.
-    (setq articles (gnus-sorted-intersection articles active-articles))
-
     (while (and articles is-old)
       (when (setq article (nnml-article-to-file (setq number (pop articles))))
        (when (setq mod-time (nth 5 (file-attributes article)))
index 9c27786..37ac4bb 100644 (file)
@@ -1,7 +1,7 @@
 ;;; nnoo.el --- OO Gnus Backends
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
index e764150..6eb1a02 100644 (file)
@@ -1,7 +1,7 @@
 ;;; nnsoup.el --- SOUP access for Gnus
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;;     Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
 ;; Keywords: news, mail
 
@@ -417,7 +417,7 @@ backend for the messages.")
          (while (setq area (pop areas))
            ;; Change the name to the permanent name and move the files.
            (setq cur-prefix (nnsoup-next-prefix))
-           (nnheader-message 5 "Incorporating file %s..." cur-prefix)
+           (message "Incorporating file %s..." cur-prefix)
            (when (file-exists-p
                   (setq file (concat nnsoup-tmp-directory
                                      (gnus-soup-area-prefix area) ".IDX")))
@@ -548,13 +548,13 @@ backend for the messages.")
                  nnsoup-packet-directory t nnsoup-packet-regexp))
        packet)
     (while (setq packet (pop packets))
-      (nnheader-message 5 "nnsoup: unpacking %s..." packet)
+      (message "nnsoup: unpacking %s..." packet)
       (if (not (gnus-soup-unpack-packet
                nnsoup-tmp-directory nnsoup-unpacker packet))
-         (nnheader-message 5 "Couldn't unpack %s" packet)
+         (message "Couldn't unpack %s" packet)
        (delete-file packet)
        (nnsoup-read-areas)
-       (nnheader-message 5 "Unpacking...done")))))
+       (message "Unpacking...done")))))
 
 (defun nnsoup-narrow-to-article (article &optional area head)
   (let* ((area (or area (nnsoup-article-to-area article nnsoup-current-group)))
@@ -618,7 +618,7 @@ backend for the messages.")
   "Make an outbound package of SOUP replies."
   (interactive)
   (unless (file-exists-p nnsoup-replies-directory)
-    (nnheader-message 5 "No such directory: %s" nnsoup-replies-directory))
+    (message "No such directory: %s" nnsoup-replies-directory))
   ;; Write all data buffers.
   (gnus-soup-save-areas)
   ;; Write the active file.
@@ -716,7 +716,7 @@ backend for the messages.")
                    (incf num))
                  (when nnsoup-always-save
                    (save-buffer)))
-               (nnheader-message 5 "Stored %d messages" num)))
+               (message "Stored %d messages" num)))
            (nnsoup-write-replies)
            (kill-buffer tembuf))))))
 
@@ -754,7 +754,7 @@ backend for the messages.")
     (set-buffer (get-buffer-create " *nnsoup work*"))
     (buffer-disable-undo (current-buffer))
     (while files
-      (nnheader-message 5 "Doing %s..." (car files))
+      (message "Doing %s..." (car files))
       (erase-buffer)
       (nnheader-insert-file-contents (car files))
       (goto-char (point-min))
@@ -779,7 +779,7 @@ backend for the messages.")
                      (vector ident group "ncm" "" lines))))
        (setcdr (cadr elem) (+ min lines)))
       (setq files (cdr files)))
-    (nnheader-message 5 "")
+    (message "")
     (setq nnsoup-group-alist active)
     (nnsoup-write-active-file t)))
 
index 6914f78..50fc4b6 100644 (file)
@@ -2,7 +2,7 @@
 ;; Copyright (C) 1988,89,90,93,94,95,96,97,98 Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
-;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
+;;     Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
@@ -144,11 +144,11 @@ there.")
 
            (and do-message
                 (zerop (% (incf count) 20))
-                (nnheader-message 5 "nnspool: Receiving headers... %d%%"
+                (message "nnspool: Receiving headers... %d%%"
                          (/ (* count 100) number))))
 
          (when do-message
-           (nnheader-message 5 "nnspool: Receiving headers...done"))
+           (message "nnspool: Receiving headers...done"))
 
          ;; Fold continuation lines.
          (nnheader-fold-continuation-lines)
@@ -343,7 +343,7 @@ there.")
       (while (re-search-forward "[ \t\n]+" nil t)
        (replace-match " " t t))
       (nnheader-report 'nnspool "%s" (buffer-string))
-      (nnheader-message 5 "nnspool: %s" nnspool-status-string)
+      (message "nnspool: %s" nnspool-status-string)
       (ding)
       (run-hooks 'nnspool-rejected-article-hook))))
 
index 1d8cfd1..78ccb16 100644 (file)
@@ -1,7 +1,7 @@
 ;;; nntp.el --- nntp access for Gnus
 ;;; Copyright (C) 1987-90,92-97 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
@@ -84,7 +84,7 @@ the same.")
 The default is \"rsh\", but \"ssh\" is a popular alternative.")
 
 (defvoo nntp-rlogin-parameters '("telnet" "-8" "${NNTPSERVER:=news}" "nntp")
-  "*Parameters to `nntp-open-rlogin'.
+  "*Parameters to `nntp-open-login'.
 That function may be used as `nntp-open-connection-function'.  In that
 case, this list will be used as the parameter list given to rsh.")
 
@@ -144,6 +144,10 @@ by one.")
 If the gap between two consecutive articles is bigger than this
 variable, split the XOVER request into two requests.")
 
+(defvoo nntp-connection-timeout nil
+  "*Number of seconds to wait before an nntp connection times out.
+If this variable is nil, which is the default, no timers are set.")
+
 (defvoo nntp-prepare-server-hook nil
   "*Hook run before a server is opened.
 If can be used to set up a server remotely, for instance.  Say you
@@ -163,7 +167,7 @@ server there that you can connect to.  See also
   "*Coding system to write to NNTP.")
 
 (defcustom nntp-authinfo-file "~/.authinfo"
-  ".netrc-like file that holds nntp authinfo passwords."
+  "Docstring."
   :type
   '(choice file
           (repeat :tag "Entries"
@@ -274,7 +278,7 @@ server there that you can connect to.  See also
              ;; Nix out "nntp reading...." message.
              (when nntp-have-messaged
                (setq nntp-have-messaged nil)
-               (nnheader-message 5 ""))
+               (message ""))
              t))))
       (unless discard
        (erase-buffer)))))
@@ -672,16 +676,15 @@ server there that you can connect to.  See also
 
 (deffoo nntp-close-server (&optional server)
   (nntp-possibly-change-group nil server t)
-  (let ((process (nntp-find-connection nntp-server-buffer)))
-    (while process
+  (let (process)
+    (while (setq process (car (pop nntp-connection-alist)))
       (when (memq (process-status process) '(open run))
        (ignore-errors
          (nntp-send-string process "QUIT")
          (unless (eq nntp-open-connection-function 'nntp-open-network-stream)
            (sleep-for 1))))
       (when (buffer-name (process-buffer process))
-       (kill-buffer (process-buffer process)))
-      (setq process (car (pop nntp-connection-alist))))
+       (kill-buffer (process-buffer process))))
     (nnoo-close-server 'nntp)))
 
 (deffoo nntp-request-close ()
@@ -711,11 +714,16 @@ server there that you can connect to.  See also
   (nntp-possibly-change-group nil server)
   (save-excursion
     (set-buffer nntp-server-buffer)
-    (prog1
-       (nntp-send-command
-        "^\\.\r?\n" "NEWGROUPS"
-        (format-time-string "%y%m%d %H%M%S" (nnmail-date-to-time date)))
-      (nntp-decode-text))))
+    (let* ((date (timezone-parse-date date))
+          (time-string
+           (format "%s%02d%02d %s%s%s"
+                   (substring (aref date 0) 2) (string-to-int (aref date 1))
+                   (string-to-int (aref date 2)) (substring (aref date 3) 0 2)
+                   (substring
+                    (aref date 3) 3 5) (substring (aref date 3) 6 8))))
+      (prog1
+         (nntp-send-command "^\\.\r?\n" "NEWGROUPS" time-string)
+       (nntp-decode-text)))))
 
 (deffoo nntp-request-post (&optional server)
   (nntp-possibly-change-group nil server)
@@ -803,7 +811,7 @@ password contained in '~/.nntp-authinfo'."
      (generate-new-buffer
       (format " *server %s %s %s*"
              nntp-address nntp-port-number
-             (gnus-buffer-exists-p buffer))))
+             (buffer-name (get-buffer buffer)))))
     (buffer-disable-undo (current-buffer))
     (set (make-local-variable 'after-change-functions) nil)
     (set (make-local-variable 'nntp-process-wait-for) nil)
@@ -877,11 +885,11 @@ password contained in '~/.nntp-authinfo'."
        (when (and (> (point) nntp-process-start-point)
                   (re-search-backward nntp-process-wait-for
                                       nntp-process-start-point t))
-         (when (gnus-buffer-exists-p nntp-process-to-buffer)
+         (when (buffer-name (get-buffer nntp-process-to-buffer))
            (let ((cur (current-buffer))
                  (start nntp-process-start-point))
              (save-excursion
-               (set-buffer nntp-process-to-buffer)
+               (set-buffer (get-buffer nntp-process-to-buffer))
                (goto-char (point-max))
                (let ((b (point)))
                  (insert-buffer-substring cur start)
@@ -977,7 +985,8 @@ password contained in '~/.nntp-authinfo'."
     (while (not (eobp))
       (end-of-line)
       (delete-char 1)
-      (insert nntp-end-of-line))
+      (insert nntp-end-of-line)
+      (forward-line 1))
     (forward-char -1)
     (unless (eq (char-after (1- (point))) ?\r)
       (insert "\r"))))
index df61450..67fa669 100644 (file)
@@ -2,7 +2,7 @@
 ;; Copyright (C) 1994,95,96,97,98 Free Software Foundation, Inc.
 
 ;; Author: David Moore <dmoore@ucsd.edu>
-;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
+;;     Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;;     Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
 ;; Keywords: news
 
index 9c4251d..cbb04ed 100644 (file)
@@ -1,7 +1,7 @@
 ;;; nnweb.el --- retrieving articles via web search engines
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
index 24c31f6..fdb8d71 100644 (file)
@@ -1,7 +1,7 @@
 ;;; score-mode.el --- mode for editing Gnus score files
 ;; Copyright (C) 1996 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news, mail
 
 ;; This file is part of GNU Emacs.
   (define-key gnus-score-mode-map "\C-c\C-d" 'gnus-score-edit-insert-date)
   (define-key gnus-score-mode-map "\C-c\C-p" 'gnus-score-pretty-print))
 
-(defvar score-mode-syntax-table
-  (let ((table (copy-syntax-table lisp-mode-syntax-table)))
-    (modify-syntax-entry ?| "w" table)
-    table)
-  "Syntax table used in score-mode buffers.")
-
 ;;;###autoload
 (defun gnus-score-mode ()
   "Mode for editing Gnus score files.
@@ -61,7 +55,7 @@ This mode is an extended emacs-lisp mode.
   (kill-all-local-variables)
   (use-local-map gnus-score-mode-map)
   (gnus-score-make-menu-bar)
-  (set-syntax-table score-mode-syntax-table)
+  (set-syntax-table emacs-lisp-mode-syntax-table)
   (setq major-mode 'gnus-score-mode)
   (setq mode-name "Score")
   (lisp-mode-variables nil)
@@ -89,8 +83,7 @@ This mode is an extended emacs-lisp mode.
   (goto-char (point-min))
   (let ((form (read (current-buffer))))
     (erase-buffer)
-    (let ((emacs-lisp-mode-syntax-table score-mode-syntax-table))
-      (pp form (current-buffer))))
+    (pp form (current-buffer)))
   (goto-char (point-min)))
 
 (defun gnus-score-edit-exit ()
index e6c13f7..f82ac2d 100644 (file)
@@ -192,7 +192,7 @@ above them."
   (smiley-buffer (current-buffer) beg end))
 
 (defun smiley-toggle-extent (event)
-  "Toggle smiley at given point."
+  "Toggle smiley at given point"
   (interactive "e")
   (let* ((ant (event-glyph-extent event))
         (pt (event-closest-point event))
@@ -303,7 +303,7 @@ Mouse button3 - menu"))
 (defvar gnus-article-buffer)
 ;;;###autoload
 (defun gnus-smiley-display ()
-  "Display \"smileys\" as small graphical icons."
+  "Display \"smileys\" as small graphical icons." 
   (interactive)
   (save-excursion
     (set-buffer gnus-article-buffer)
index 1e7d48d..4eb4dd4 100644 (file)
@@ -1,31 +1,3 @@
-Wed Jun  3 03:30:47 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.texi (Message Headers): Addition.
-
-       * gnus.texi (Compatibility): Addition.
-
-Tue May 19 02:44:31 1998  Mike Pullen  <mpullen@midwest.net>
-
-       * gnus.texi.orig: Typo fixes.
-
-Wed Apr 29 21:52:28 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.texi (Key Index): Untabified.
-       (Group Parameters): Fix.
-
-Sun Apr 26 15:32:45 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.texi (Summary Post Commands): Ref to Message.
-
-       * message.texi (Various Message Variables): Deletia.
-
-Fri Apr 24 16:00:40 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.texi (Unread Articles): Typo.
-       (Summary Buffer Lines): Fix.
-       (Foreign Groups): Addition.
-       (Posting Server): Addition.
-
 Sat Mar 28 08:57:46 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus.texi (Example Methods): Addition.
index c205abe..be10a0d 100644 (file)
@@ -30,7 +30,7 @@ most: texi2latex.elc latex latexps
          makeinfo -o $* $<; \
        fi
 
-dvi: gnus.dvi message.dvi refcard.dvi
+dvi: gnus.dvi message.dvi
 
 .texi.dvi :
        $(PERL) -n -e 'print unless (/\@iflatex/ .. /\@end iflatex/)' $< > gnustmp.texi
@@ -115,9 +115,9 @@ distclean:
 install:
        $(SHELL) $(top_srcdir)/mkinstalldirs $(infodir)
        @for file in gnus message; do \
-         for ifile in `echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
+         for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
            if test -f $$ifile; then \
-             echo " $(INSTALL_DATA) $$ifile $(infodir)/$$ifile"; \
+             echo " $(INSTALL_DATA) $$d/$$ifile $(infodir)/$$ifile"; \
              $(INSTALL_DATA) $$ifile $(infodir)/$$ifile; \
            else : ; fi; \
          done; \
index a226077..4069212 100644 (file)
@@ -1,12 +1,12 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename gnus
-@settitle Semi-gnus 6.3.3 Manual
+@settitle Gnus 5.6.4 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
 @c @direntry
-@c * Gnus: (gnus).         The news reader gnus.
+@c * Gnus: (gnus).         The news reader Gnus.
 @c @end direntry
 @iftex
 @finalout
@@ -289,7 +289,7 @@ into another language, under the above conditions for modified versions.
 
 @ifinfo
 
-This file documents gnus, the GNU Emacs newsreader.
+This file documents Gnus, the GNU Emacs newsreader.
 
 Copyright (C) 1995,96 Free Software Foundation, Inc.
 
@@ -316,7 +316,7 @@ into another language, under the above conditions for modified versions.
 @tex
 
 @titlepage
-@title Semi-gnus 6.3.3 Manual
+@title Gnus 5.6.4 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
@@ -343,23 +343,16 @@ into another language, under the above conditions for modified versions.
 
 
 @node Top
-@top The gnus Newsreader
+@top The Gnus Newsreader
 
 @ifinfo
 
-You can read news (and mail) from within Emacs by using gnus.  The news
+You can read news (and mail) from within Emacs by using Gnus.  The news
 can be gotten by any nefarious means you can think of---@sc{nntp}, local
 spool or your mbox file.  All at the same time, if you want to push your
 luck.
 
-Semi-gnus provides MIME features based on SEMI API.  So Semi-gnus
-supports your right to read strange messages including big images or
-other various kinds of formats.  Semi-gnus also supports
-internationalization/localization and multiscript features based on MULE
-API.  So Semi-gnus does not discriminate various language communities.
-Oh, if you are a Klingon, please wait Unicode Next Generation.
-
-This manual corresponds to Semi-gnus 6.3.3.
+This manual corresponds to Gnus 5.6.4.
 
 @end ifinfo
 
@@ -383,7 +376,7 @@ even read news with it!
 
 Gnus tries to empower people who read news the same way Emacs empowers
 people who edit text.  Gnus sets no limits to what the user should be
-allowed to do.  Users are encouraged to extend gnus to make it behave
+allowed to do.  Users are encouraged to extend Gnus to make it behave
 like they want it to behave.  A program should not control people;
 people should be empowered to do what they want by using (or abusing)
 the program.
@@ -407,18 +400,18 @@ the program.
 @end menu
 
 @node Starting Up
-@chapter Starting gnus
+@chapter Starting Gnus
 @cindex starting up
 
 @kindex M-x gnus
 @findex gnus
-If your system administrator has set things up properly, starting gnus
+If your system administrator has set things up properly, starting Gnus
 and reading news is extremely easy---you just type @kbd{M-x gnus} in
 your Emacs.
 
 @findex gnus-other-frame
 @kindex M-x gnus-other-frame
-If you want to start gnus in a different frame, you can use the command
+If you want to start Gnus in a different frame, you can use the command
 @kbd{M-x gnus-other-frame} instead.
 
 If things do not go smoothly at startup, you have to twiddle some
@@ -430,11 +423,11 @@ terminology section (@pxref{Terminology}).
 
 @menu
 * Finding the News::    Choosing a method for getting news.
-* The First Time::      What does gnus do the first time you start it?
+* The First Time::      What does Gnus do the first time you start it?
 * The Server is Down::  How can I read my mail then?
-* Slave Gnusae::        You can have more than one gnus active at a time.
-* Fetching a Group::    Starting gnus just to read a group.
-* New Groups::          What is gnus supposed to do with new groups?
+* Slave Gnusae::        You can have more than one Gnus active at a time.
+* Fetching a Group::    Starting Gnus just to read a group.
+* New Groups::          What is Gnus supposed to do with new groups?
 * Startup Files::       Those pesky startup files---@file{.newsrc}.
 * Auto Save::           Recovering from a crash.
 * The Active File::     Reading the active file over a slow line Takes Time.
@@ -449,11 +442,11 @@ terminology section (@pxref{Terminology}).
 
 @vindex gnus-select-method
 @c @head
-The @code{gnus-select-method} variable says where gnus should look for
+The @code{gnus-select-method} variable says where Gnus should look for
 news.  This variable should be a list where the first element says
 @dfn{how} and the second element says @dfn{where}.  This method is your
-native method.  All groups not fetched with this method are foreign
-groups.
+native method.  All groups not fetched with this method are
+foreign groups.
 
 For instance, if the @samp{news.somewhere.edu} @sc{nntp} server is where
 you want to get your daily dosage of news from, you'd say:
@@ -474,12 +467,11 @@ certainly be much faster.
 @vindex gnus-nntpserver-file
 @cindex NNTPSERVER
 @cindex @sc{nntp} server
-If this variable is not set, gnus will take a look at the
+If this variable is not set, Gnus will take a look at the
 @code{NNTPSERVER} environment variable.  If that variable isn't set,
-gnus will see whether @code{gnus-nntpserver-file}
+Gnus will see whether @code{gnus-nntpserver-file}
 (@file{/etc/nntpserver} by default) has any opinions on the matter.  If
-that fails as well, gnus will try to use the machine running Emacs as an
-@sc{nntp} server.  That's a long shot, though.
+that fails as well, Gnus will try to use the machine running Emacs as an @sc{nntp} server.  That's a long shot, though.
 
 @vindex gnus-nntp-server
 If @code{gnus-nntp-server} is set, this variable will override
@@ -487,9 +479,9 @@ If @code{gnus-nntp-server} is set, this variable will override
 @code{gnus-nntp-server} to @code{nil}, which is what it is by default.
 
 @vindex gnus-secondary-servers
-You can also make gnus prompt you interactively for the name of an
+You can also make Gnus prompt you interactively for the name of an
 @sc{nntp} server.  If you give a non-numerical prefix to @code{gnus}
-(i.e., @kbd{C-u M-x gnus}), gnus will let you choose between the servers
+(i.e., @kbd{C-u M-x gnus}), Gnus will let you choose between the servers
 in the @code{gnus-secondary-servers} list (if any).  You can also just
 type in the name of any server you feel like visiting.
 
@@ -524,23 +516,23 @@ would typically set this variable to
 @section The First Time
 @cindex first time usage
 
-If no startup files exist, gnus will try to determine what groups should
+If no startup files exist, Gnus will try to determine what groups should
 be subscribed by default.
 
 @vindex gnus-default-subscribed-newsgroups
-If the variable @code{gnus-default-subscribed-newsgroups} is set, gnus
+If the variable @code{gnus-default-subscribed-newsgroups} is set, Gnus
 will subscribe you to just those groups in that list, leaving the rest
 killed.  Your system administrator should have set this variable to
 something useful.
 
-Since she hasn't, gnus will just subscribe you to a few arbitrarily
+Since she hasn't, Gnus will just subscribe you to a few arbitrarily
 picked groups (i.e., @samp{*.newusers}).  (@dfn{Arbitrary} is defined
 here as @dfn{whatever Lars thinks you should read}.)
 
-You'll also be subscribed to the gnus documentation group, which should
+You'll also be subscribed to the Gnus documentation group, which should
 help you with most common problems.
 
-If @code{gnus-default-subscribed-newsgroups} is @code{t}, gnus will just
+If @code{gnus-default-subscribed-newsgroups} is @code{t}, Gnus will just
 use the normal functions for handling new groups, and not do anything
 special.
 
@@ -549,9 +541,9 @@ special.
 @section The Server is Down
 @cindex server errors
 
-If the default server is down, gnus will understandably have some
+If the default server is down, Gnus will understandably have some
 problems starting.  However, if you have some mail groups in addition to
-the news groups, you may want to start gnus anyway.
+the news groups, you may want to start Gnus anyway.
 
 Gnus, being the trusting sort of program, will ask whether to proceed
 without a native select method if that server can't be contacted.  This
@@ -566,7 +558,7 @@ buffer.  But, hey, that's your problem.  Blllrph!
 @c @head
 If you know that the server is definitely down, or you just want to read
 your mail without bothering with the server at all, you can use the
-@code{gnus-no-server} command to start gnus.  That might come in handy
+@code{gnus-no-server} command to start Gnus.  That might come in handy
 if you're in a hurry as well.  This command will not attempt to contact
 your primary server---instead, it will just activate all groups on level
 1 and 2.  (You should preferably keep no native groups on those two
@@ -577,27 +569,27 @@ levels.)
 @section Slave Gnusae
 @cindex slave
 
-You might want to run more than one Emacs with more than one gnus at the
-same time.  If you are using different @file{.newsrc} files (e.g., if
-you are using the two different gnusae to read from two different
-servers), that is no problem whatsoever.  You just do it.
+You might want to run more than one Emacs with more than one Gnus at the
+same time.  If you are using different @file{.newsrc} files (e.g., if you
+are using the two different Gnusae to read from two different servers),
+that is no problem whatsoever.  You just do it.
 
 The problem appears when you want to run two Gnusae that use the same
 @code{.newsrc} file.
 
-To work around that problem some, we here at the Think-Tank at the gnus
-Towers have come up with a new concept: @dfn{Masters} and @dfn{slaves}.
-(We have applied for a patent on this concept, and have taken out a
-copyright on those words.  If you wish to use those words in conjunction
-with each other, you have to send $1 per usage instance to me.  Usage of
-the patent (@dfn{Master/Slave Relationships In Computer Applications})
-will be much more expensive, of course.)
+To work around that problem some, we here at the Think-Tank at the Gnus
+Towers have come up with a new concept: @dfn{Masters} and
+@dfn{slaves}.  (We have applied for a patent on this concept, and have
+taken out a copyright on those words.  If you wish to use those words in
+conjunction with each other, you have to send $1 per usage instance to
+me.  Usage of the patent (@dfn{Master/Slave Relationships In Computer
+Applications}) will be much more expensive, of course.)
 
-Anyways, you start one gnus up the normal way with @kbd{M-x gnus} (or
-however you do it).  Each subsequent slave gnusae should be started with
+Anyways, you start one Gnus up the normal way with @kbd{M-x gnus} (or
+however you do it).  Each subsequent slave Gnusae should be started with
 @kbd{M-x gnus-slave}.  These slaves won't save normal @file{.newsrc}
 files, but instead save @dfn{slave files} that contain information only
-on what groups have been read in the slave session.  When a master gnus
+on what groups have been read in the slave session.  When a master Gnus
 starts, it will read (and delete) these slave files, incorporating all
 information from them.  (The slave files will be read in the sequence
 they were created, so the latest changes will have precedence.)
@@ -612,7 +604,7 @@ information in the normal (i.e., master) @code{.newsrc} file.
 
 @findex gnus-fetch-group
 It is sometimes convenient to be able to just say ``I want to read this
-group and I don't care whether gnus has been started or not''.  This is
+group and I don't care whether Gnus has been started or not''.  This is
 perhaps more useful for people who write code than for users, but the
 command @code{gnus-fetch-group} provides this functionality in any case.
 It takes the group name as a parameter.
@@ -630,13 +622,13 @@ also save you some time at startup.  Even if this variable is
 @code{nil}, you can always subscribe to the new groups just by pressing
 @kbd{U} in the group buffer (@pxref{Group Maintenance}).  This variable
 is @code{ask-server} by default.  If you set this variable to
-@code{always}, then gnus will query the backends for new groups even
+@code{always}, then Gnus will query the backends for new groups even
 when you do the @kbd{g} command (@pxref{Scanning New Messages}).
 
 @menu
 * Checking New Groups::      Determining what groups are new.
-* Subscription Methods::     What gnus should do with new groups.
-* Filtering New Groups::     Making gnus ignore certain new groups.
+* Subscription Methods::     What Gnus should do with new groups.
+* Filtering New Groups::     Making Gnus ignore certain new groups.
 @end menu
 
 
@@ -646,7 +638,7 @@ when you do the @kbd{g} command (@pxref{Scanning New Messages}).
 Gnus normally determines whether a group is new or not by comparing the
 list of groups from the active file(s) with the lists of subscribed and
 dead groups.  This isn't a particularly fast method.  If
-@code{gnus-check-new-newsgroups} is @code{ask-server}, gnus will ask the
+@code{gnus-check-new-newsgroups} is @code{ask-server}, Gnus will ask the
 server for new groups since the last time.  This is both faster and
 cheaper.  This also means that you can get rid of the list of killed
 groups altogether, so you may set @code{gnus-save-killed-list} to
@@ -658,15 +650,15 @@ I bet I know what you're thinking now: How do I find out whether my
 server supports @code{ask-server}?  No?  Good, because I don't have a
 fail-safe answer.  I would suggest just setting this variable to
 @code{ask-server} and see whether any new groups appear within the next
-few days.  If any do, then it works.  If none do, then it doesn't work.
-I could write a function to make gnus guess whether the server supports
-@code{ask-server}, but it would just be a guess.  So I won't.  You could
-@code{telnet} to the server and say @code{HELP} and see whether it lists
-@samp{NEWGROUPS} among the commands it understands.  If it does, then it
-might work.  (But there are servers that lists @samp{NEWGROUPS} without
-supporting the function properly.)
-
-This variable can also be a list of select methods.  If so, gnus will
+few days.  If any do, then it works.  If none do, then it doesn't
+work.  I could write a function to make Gnus guess whether the server
+supports @code{ask-server}, but it would just be a guess.  So I won't.
+You could @code{telnet} to the server and say @code{HELP} and see
+whether it lists @samp{NEWGROUPS} among the commands it understands.  If
+it does, then it might work.  (But there are servers that lists
+@samp{NEWGROUPS} without supporting the function properly.)
+
+This variable can also be a list of select methods.  If so, Gnus will
 issue an @code{ask-server} command to each of the select methods, and
 subscribe them (or not) using the normal methods.  This might be handy
 if you are monitoring a few servers for new groups.  A side effect is
@@ -678,7 +670,7 @@ Use the mantra ``dingnusdingnusdingnus'' to achieve permanent bliss.
 @subsection Subscription Methods
 
 @vindex gnus-subscribe-newsgroup-method
-What gnus does when it encounters a new group is determined by the
+What Gnus does when it encounters a new group is determined by the
 @code{gnus-subscribe-newsgroup-method} variable.
 
 This variable should contain a function.  This function will be called
@@ -715,9 +707,9 @@ up.  Or something like that.
 
 @item gnus-subscribe-interactively
 @vindex gnus-subscribe-interactively
-Subscribe new groups interactively.  This means that gnus will ask you
-about @strong{all} new groups.  The groups you choose to subscribe to
-will be subscribed hierarchically.
+Subscribe new groups interactively.  This means that Gnus will ask
+you about @strong{all} new groups.  The groups you choose to subscribe
+to will be subscribed hierarchically.
 
 @item gnus-subscribe-killed
 @vindex gnus-subscribe-killed
@@ -728,7 +720,7 @@ Kill all new groups.
 @vindex gnus-subscribe-hierarchical-interactive
 A closely related variable is
 @code{gnus-subscribe-hierarchical-interactive}.  (That's quite a
-mouthful.)  If this variable is non-@code{nil}, gnus will ask you in a
+mouthful.)  If this variable is non-@code{nil}, Gnus will ask you in a
 hierarchical fashion whether to subscribe to new groups or not.  Gnus
 will ask you for each sub-hierarchy whether you want to descend the
 hierarchy or not.
@@ -840,11 +832,11 @@ that you have on your native groups.  Use with caution.
 Now, you all know about the @file{.newsrc} file.  All subscription
 information is traditionally stored in this file.
 
-Things got a bit more complicated with @sc{GNUS}.  In addition to
+Things got a bit more complicated with @sc{gnus}.  In addition to
 keeping the @file{.newsrc} file updated, it also used a file called
 @file{.newsrc.el} for storing all the information that didn't fit into
 the @file{.newsrc} file.  (Actually, it also duplicated everything in
-the @file{.newsrc} file.)  @sc{GNUS} would read whichever one of these
+the @file{.newsrc} file.)  @sc{gnus} would read whichever one of these
 files was the most recently saved, which enabled people to swap between
 @sc{gnus} and other newsreaders.
 
@@ -858,9 +850,9 @@ not stored in the @file{.newsrc} file.
 @vindex gnus-save-newsrc-file
 You can turn off writing the @file{.newsrc} file by setting
 @code{gnus-save-newsrc-file} to @code{nil}, which means you can delete
-the file and save some space, as well as exiting from Gnus faster.
+the file and save some space, as well as making exit from Gnus faster.
 However, this will make it impossible to use other newsreaders than
-gnus.  But hey, who would want to, right?
+Gnus.  But hey, who would want to, right?
 
 @vindex gnus-save-killed-list
 If @code{gnus-save-killed-list} (default @code{t}) is @code{nil}, Gnus
@@ -900,11 +892,11 @@ startup files.  If you want to turn backup creation off, say something like:
 @end lisp
 
 @vindex gnus-init-file
-When gnus starts, it will read the @code{gnus-site-init-file}
+When Gnus starts, it will read the @code{gnus-site-init-file}
 (@file{.../site-lisp/gnus} by default) and @code{gnus-init-file}
 (@file{~/.gnus} by default) files.  These are normal Emacs Lisp files
 and can be used to avoid cluttering your @file{~/.emacs} and
-@file{site-init} files with gnus stuff.  Gnus will also check for files
+@file{site-init} files with Gnus stuff.  Gnus will also check for files
 with the same names as these, but with @file{.elc} and @file{.el}
 suffixes.  In other words, if you have set @code{gnus-init-file} to
 @file{~/.gnus}, it will look for @file{~/.gnus.elc}, @file{~/.gnus.el},
@@ -917,24 +909,24 @@ and finally @file{~/.gnus} (in this order).
 @cindex dribble file
 @cindex auto-save
 
-Whenever you do something that changes the gnus data (reading articles,
+Whenever you do something that changes the Gnus data (reading articles,
 catching up, killing/subscribing groups), the change is added to a
 special @dfn{dribble buffer}.  This buffer is auto-saved the normal
 Emacs way.  If your Emacs should crash before you have saved the
 @file{.newsrc} files, all changes you have made can be recovered from
 this file.
 
-If gnus detects this file at startup, it will ask the user whether to
-read it.  The auto save file is deleted whenever the real startup file
-is saved.
+If Gnus detects this file at startup, it will ask the user whether to
+read it.  The auto save file is deleted whenever the real startup file is
+saved.
 
 @vindex gnus-use-dribble-file
-If @code{gnus-use-dribble-file} is @code{nil}, gnus won't create and
+If @code{gnus-use-dribble-file} is @code{nil}, Gnus won't create and
 maintain a dribble buffer.  The default is @code{t}.
 
 @vindex gnus-dribble-directory
 Gnus will put the dribble file(s) in @code{gnus-dribble-directory}.  If
-this variable is @code{nil}, which it is by default, gnus will dribble
+this variable is @code{nil}, which it is by default, Gnus will dribble
 into the directory where the @file{.newsrc} file is located.  (This is
 normally the user's home directory.)  The dribble file will get the same
 file permissions as the @code{.newsrc} file.
@@ -945,14 +937,14 @@ file permissions as the @code{.newsrc} file.
 @cindex active file
 @cindex ignored groups
 
-When gnus starts, or indeed whenever it tries to determine whether new
+When Gnus starts, or indeed whenever it tries to determine whether new
 articles have arrived, it reads the active file.  This is a very large
 file that lists all the active groups and articles on the server.
 
 @vindex gnus-ignored-newsgroups
-Before examining the active file, gnus deletes all lines that match the
+Before examining the active file, Gnus deletes all lines that match the
 regexp @code{gnus-ignored-newsgroups}.  This is done primarily to reject
-any groups with bogus names, but you can use this variable to make gnus
+any groups with bogus names, but you can use this variable to make Gnus
 ignore hierarchies you aren't ever interested in.  However, this is not
 recommended.  In fact, it's highly discouraged.  Instead, @pxref{New
 Groups} for an overview of other variables that can be used instead.
@@ -964,15 +956,15 @@ Groups} for an overview of other variables that can be used instead.
 @vindex gnus-read-active-file
 @c @head
 The active file can be rather Huge, so if you have a slow network, you
-can set @code{gnus-read-active-file} to @code{nil} to prevent gnus from
+can set @code{gnus-read-active-file} to @code{nil} to prevent Gnus from
 reading the active file.  This variable is @code{some} by default.
 
 Gnus will try to make do by getting information just on the groups that
 you actually subscribe to.
 
 Note that if you subscribe to lots and lots of groups, setting this
-variable to @code{nil} will probably make gnus slower, not faster.  At
-present, having this variable @code{nil} will slow gnus down
+variable to @code{nil} will probably make Gnus slower, not faster.  At
+present, having this variable @code{nil} will slow Gnus down
 considerably, unless you read news over a 2400 baud modem.
 
 This variable can also have the value @code{some}.  Gnus will then
@@ -982,9 +974,9 @@ support the @code{LIST ACTIVE group} command), on others this isn't fast
 at all.  In any case, @code{some} should be faster than @code{nil}, and
 is certainly faster than @code{t} over slow lines.
 
-If this variable is @code{nil}, gnus will ask for group info in total
+If this variable is @code{nil}, Gnus will ask for group info in total
 lock-step, which isn't very fast.  If it is @code{some} and you use an
-@sc{nntp} server, gnus will pump out commands as fast as it can, and
+@sc{nntp} server, Gnus will pump out commands as fast as it can, and
 read all the replies in one swoop.  This will normally result in better
 performance, but if the server does not support the aforementioned
 @code{LIST ACTIVE group} command, this isn't very nice to the server.
@@ -1003,21 +995,21 @@ secondary select methods.
 
 @item gnus-load-hook
 @vindex gnus-load-hook
-A hook run while gnus is being loaded.  Note that this hook will
+A hook run while Gnus is being loaded.  Note that this hook will
 normally be run just once in each Emacs session, no matter how many
-times you start gnus.
+times you start Gnus.
 
 @item gnus-before-startup-hook
 @vindex gnus-before-startup-hook
-A hook run after starting up gnus successfully.
+A hook run after starting up Gnus successfully.
 
 @item gnus-startup-hook
 @vindex gnus-startup-hook
-A hook run as the very last thing after starting up gnus
+A hook run as the very last thing after starting up Gnus
 
 @item gnus-started-hook
 @vindex gnus-started-hook
-A hook that is run as the very last thing after starting up gnus
+A hook that is run as the very last thing after starting up Gnus
 successfully.
 
 @item gnus-started-hook
@@ -1027,7 +1019,7 @@ generating the group buffer.
 
 @item gnus-check-bogus-newsgroups
 @vindex gnus-check-bogus-newsgroups
-If non-@code{nil}, gnus will check for and delete all bogus groups at
+If non-@code{nil}, Gnus will check for and delete all bogus groups at
 startup.  A @dfn{bogus group} is a group that you have in your
 @file{.newsrc} file, but doesn't exist on the news server.  Checking for
 bogus groups can take quite a while, so to save time and resources it's
@@ -1043,11 +1035,11 @@ of doing your job.  Note that this variable is used before
 
 @item gnus-no-groups-message
 @vindex gnus-no-groups-message
-Message displayed by gnus when no groups are available.
+Message displayed by Gnus when no groups are available.
 
 @item gnus-play-startup-jingle
 @vindex gnus-play-startup-jingle
-If non-@code{nil}, play the gnus jingle at startup.
+If non-@code{nil}, play the Gnus jingle at startup.
 
 @item gnus-startup-jingle
 @vindex gnus-startup-jingle
@@ -1286,10 +1278,10 @@ background is dark:
 
 (setq gnus-group-highlight
       '(((> unread 200) . my-group-face-1)
-        ((and (< level 3) (zerop unread)) . my-group-face-2)
-        ((< level 3) . my-group-face-3)
-        ((zerop unread) . my-group-face-4)
-        (t . my-group-face-5)))
+       ((and (< level 3) (zerop unread)) . my-group-face-2)
+       ((< level 3) . my-group-face-3)
+       ((zerop unread) . my-group-face-4)
+       (t . my-group-face-5)))
 @end lisp
 
 Also @pxref{Faces and Fonts}.
@@ -1364,14 +1356,14 @@ Go to the next group (@code{gnus-group-next-group}).
 @findex gnus-group-prev-group
 Go to the previous group (@code{gnus-group-prev-group}).
 
-@item M-n
-@kindex M-n (Group)
+@item M-p
+@kindex M-p (Group)
 @findex gnus-group-next-unread-group-same-level
 Go to the next unread group on the same (or lower) level
 (@code{gnus-group-next-unread-group-same-level}).
 
-@item M-p
-@kindex M-p (Group)
+@item M-n
+@kindex M-n (Group)
 @findex gnus-group-prev-unread-group-same-level
 Go to the previous unread group on the same (or lower) level
 (@code{gnus-group-prev-unread-group-same-level}).
@@ -1490,7 +1482,7 @@ full summary buffer.
 Select the first unread article when entering the group.
 
 @item best
-Select the highest scored article in the group when entering the
+Select the most high-scored article in the group when entering the
 group.
 @end table
 
@@ -1912,10 +1904,6 @@ search engine type and the search string.  Valid search engine types
 include @code{dejanews}, @code{altavista} and @code{reference}.
 @xref{Web Searches}.
 
-If you use the @code{dejanews} search engine, you can limit the search
-to a particular group by using a match string like
-@samp{~g alt.sysadmin.recovery shaving}.
-
 @item G DEL
 @kindex G DEL (Group)
 @findex gnus-group-delete-group
@@ -2003,7 +1991,7 @@ when doing a followup---except that if it is present in a news group,
 you'll get mail group semantics when doing @kbd{f}.
 
 If you do an @kbd{a} command in a mail group and you have neither a
-@code{to-list} group parameter nor a @code{to-address} group parameter,
+@code{to-list} group parameter nor a @code{to-address} group paramater,
 then a @code{to-list} group parameter will be added automatically upon
 sending the message if @code{gnus-add-to-list} is set to @code{t}.
 @vindex gnus-add-to-list
@@ -2074,8 +2062,8 @@ the symbols @code{never} or @code{immediate}.
 @item score-file
 @cindex score file group parameter
 Elements that look like @code{(score-file . "file")} will make
-@file{file} into the current score file for the group in question.  All
-interactive score entries will be put into this file.
+@file{file} into the current adaptive score file for the group in
+question.  All adaptive score entries will be put into this file.
 
 @item adapt-file
 @cindex adapt file group parameter
@@ -3269,12 +3257,8 @@ One space for each thread level.
 Twenty minus thread level spaces.
 @item U
 Unread.
-
 @item R
-This misleadingly named specifier is the @dfn{secondary mark}.  This
-mark will say whether the article has been replied to, has been cached,
-or has been saved.  
-
+Replied.
 @item i
 Score as a number (@pxref{Scoring}).
 @item z
@@ -3828,7 +3812,7 @@ Send a complaint about excessive crossposting to the author of the
 current article (@code{gnus-summary-mail-crosspost-complaint}).
 
 @findex gnus-crosspost-complaint
-This command is provided as a way to fight back against the current
+This command is provided as a way to fight back agains the current
 crossposting pandemic that's sweeping Usenet.  It will compose a reply
 using the @code{gnus-crosspost-complaint} variable as a preamble.  This
 command understands the process/prefix convention
@@ -3836,8 +3820,6 @@ command understands the process/prefix convention
 
 @end table
 
-Also @pxref{(message)Header Commands} for more information.
-
 
 @node Summary Post Commands
 @subsection Summary Post Commands
@@ -3880,9 +3862,9 @@ process/prefix convention.
 Post a followup to the current article via news, even if you got the
 message through mail (@code{gnus-summary-followup-to-mail}).
 
-@item S N
-@kindex S N (Summary)
-@findex gnus-summary-followup-to-mail-with-original
+@item S n
+@kindex S n (Summary)
+@findex gnus-summary-followup-to-mail
 Post a followup to the current article via news, even if you got the
 message through mail and include the original message
 (@code{gnus-summary-followup-to-mail-with-original}).  This command uses
@@ -3912,8 +3894,6 @@ Uuencode a file, split it into parts, and post it as a series
 (@code{gnus-uu-post-news}). (@pxref{Uuencoding and Posting}).
 @end table
 
-Also @pxref{(message)Header Commands} for more information.
-
 
 @node Canceling and Superseding
 @section Canceling Articles
@@ -3938,7 +3918,7 @@ Be aware, however, that not all sites honor cancels, so your article may
 live on here and there, while most sites will delete the article in
 question.
 
-Gnus will use the ``current'' select method when canceling.  If you
+Gnus will use the ``current'' select method when cancelling.  If you
 want to use the standard posting method, use the @samp{a} symbolic
 prefix (@pxref{Symbolic Prefixes}).
 
@@ -4029,7 +4009,7 @@ followups, you can use the @kbd{/ D} command (@pxref{Limiting}).
 
 @item SPACE
 @vindex gnus-unread-mark
-Marked as unread (@code{gnus-unread-mark}).
+Markes as unread (@code{gnus-unread-mark}).
 
 @dfn{Unread articles} are articles that haven't been read at all yet.
 @end table
@@ -4352,8 +4332,7 @@ Invert the list of process marked articles
 @item M P R
 @kindex M P R (Summary)
 @findex gnus-uu-mark-by-regexp
-Mark articles that have a @code{Subject} header that matches a regular
-expression (@code{gnus-uu-mark-by-regexp}).
+Mark articles by a regular expression (@code{gnus-uu-mark-by-regexp}).
 
 @item M P r
 @kindex M P r (Summary)
@@ -4462,7 +4441,7 @@ dormant articles will also be excluded.
 @item / m
 @kindex / m (Summary)
 @findex gnus-summary-limit-to-marks
-Ask for a mark and then limit to all articles that have been marked
+Ask for a mark and then limit to all articles that have not been marked
 with that mark (@code{gnus-summary-limit-to-marks}).
 
 @item / t
@@ -4497,36 +4476,33 @@ score (@code{gnus-summary-limit-to-score}).
 @kindex M S (Summary)
 @kindex / E (Summary)
 @findex gnus-summary-limit-include-expunged
-Include all expunged articles in the limit
+Display all expunged articles
 (@code{gnus-summary-limit-include-expunged}).
 
 @item / D
 @kindex / D (Summary)
 @findex gnus-summary-limit-include-dormant
-Include all dormant articles in the limit
-(@code{gnus-summary-limit-include-dormant}).
+Display all dormant articles (@code{gnus-summary-limit-include-dormant}).
 
 @item / *
 @kindex / * (Summary)
 @findex gnus-summary-limit-include-cached
-Include all cached articles in the limit
-(@code{gnus-summary-limit-include-cached}).
+Display all cached articles (@code{gnus-summary-limit-include-cached}).
 
 @item / d
 @kindex / d (Summary)
 @findex gnus-summary-limit-exclude-dormant
-Exclude all dormant articles from the limit
-(@code{gnus-summary-limit-exclude-dormant}).
+Hide all dormant articles (@code{gnus-summary-limit-exclude-dormant}).
 
 @item / T
 @kindex / T (Summary)
 @findex gnus-summary-limit-include-thread
-Include all the articles in the current thread in the limit.
+Include all the articles in the current thread.
 
 @item / c
 @kindex / c (Summary)
 @findex gnus-summary-limit-exclude-childless-dormant
-Exclude all dormant articles that have no children from the limit
+Hide all dormant articles that have no children
 (@code{gnus-summary-limit-exclude-childless-dormant}).
 
 @item / C
@@ -4551,7 +4527,7 @@ hierarchical fashion.
 Threading is done by looking at the @code{References} headers of the
 articles.  In a perfect world, this would be enough to build pretty
 trees, but unfortunately, the @code{References} header is often broken
-or simply missing.  Weird news propagation excarcerbates the problem,
+or simply missing.  Weird news propagration excarcerbates the problem,
 so one has to employ other heuristics to get pleasing results.  A
 plethora of approaches exists, as detailed in horrible detail in
 @pxref{Customizing Threading}.
@@ -4571,7 +4547,7 @@ A small(er) section of this tree-like structure.
 @item loose threads
 Threads often lose their roots due to article expiry, or due to the root
 already having been read in a previous session, and not displayed in the
-summary buffer.  We then typically have many sub-threads that really
+summary buffer.  We then typicall have many sub-threads that really
 belong to one thread, but are without connecting roots.  These are
 called loose threads.
 
@@ -5589,7 +5565,7 @@ Finally, you have the @code{gnus-use-long-file-name} variable.  If it is
 @code{nil}, all the preceding functions will replace all periods
 (@samp{.}) in the group names with slashes (@samp{/})---which means that
 the functions will generate hierarchies of directories instead of having
-all the files in the top level directory
+all the files in the toplevel directory
 (@file{~/News/alt/andrea-dworkin} instead of
 @file{~/News/alt.andrea-dworkin}.)  This variable is @code{t} by default
 on most systems.  However, for historical reasons, this is @code{nil} on
@@ -5612,7 +5588,7 @@ a spool, you could
 
 Then just save with @kbd{o}.  You'd then read this hierarchy with
 ephemeral @code{nneething} groups---@kbd{G D} in the group buffer, and
-the top level directory as the argument (@file{~/News/}).  Then just walk
+the toplevel directory as the argument (@file{~/News/}).  Then just walk
 around to the groups/directories with @code{nneething}.
 
 
@@ -6034,7 +6010,7 @@ these articles easier.
 
 @menu
 * Article Highlighting::    You want to make the article look like fruit salad.
-* Article Fontisizing::     Making emphasized text look nice.
+* Article Fontisizing::     Making emphasized text look niced.
 * Article Hiding::          You also want to make certain info go away.
 * Article Washing::         Lots of way-neat functions to make life better.
 * Article Buttons::         Click on URLs, Message-IDs, addresses and the like.
@@ -6330,7 +6306,7 @@ Unreadable articles that tell you to read them with Caesar rotate or rot13.
 It's commonly called ``rot13'' because each letter is rotated 13
 positions in the alphabet, e. g. @samp{B} (letter #2) -> @samp{O} (letter
 #15).  It is sometimes referred to as ``Caesar rotate'' because Caesar
-is rumored to have employed this form of, uh, somewhat weak encryption.
+is rumoured to have employed this form of, uh, somewhat weak encryption.
 
 @item W t
 @kindex W t (Summary)
@@ -8117,11 +8093,6 @@ You can also set @code{gnus-post-method} to a list of select methods.
 If that's the case, Gnus will always prompt you for what method to use
 for posting.
 
-Finally, if you want to always post using the same select method as
-you're reading from (which might be convenient if you're reading lots of
-groups from different private servers), you can set this variable to
-@code{current}. 
-
 
 @node Mail and Post
 @section Mail and Post
@@ -8996,17 +8967,17 @@ waiting for reply, and then reads all the replies.  This is controlled
 by the @code{nntp-maximum-request} variable, and is 400 by default.  If
 your network is buggy, you should set this to 1.
 
-@c @item nntp-connection-timeout
-@c @vindex nntp-connection-timeout
-@c If you have lots of foreign @code{nntp} groups that you connect to
-@c regularly, you're sure to have problems with @sc{nntp} servers not
-@c responding properly, or being too loaded to reply within reasonable
-@c time.  This is can lead to awkward problems, which can be helped
-@c somewhat by setting @code{nntp-connection-timeout}.  This is an integer
-@c that says how many seconds the @code{nntp} backend should wait for a
-@c connection before giving up.  If it is @code{nil}, which is the default,
-@c no timeouts are done.
-@c 
+@item nntp-connection-timeout
+@vindex nntp-connection-timeout
+If you have lots of foreign @code{nntp} groups that you connect to
+regularly, you're sure to have problems with @sc{nntp} servers not
+responding properly, or being too loaded to reply within reasonable
+time.  This is can lead to awkward problems, which can be helped
+somewhat by setting @code{nntp-connection-timeout}.  This is an integer
+that says how many seconds the @code{nntp} backend should wait for a
+connection before giving up.  If it is @code{nil}, which is the default,
+no timeouts are done.
+
 @c @item nntp-command-timeout
 @c @vindex nntp-command-timeout
 @c @cindex PPP connections
@@ -9638,7 +9609,7 @@ when all this splitting is performed.
 
 If you want to have Gnus create groups dynamically based on some
 information in the headers (i.e., do @code{replace-match}-like
-substitutions in the group names), you can say things like:
+substitions in the group names), you can say things like:
 
 @example
 (any "debian-\\(\\w*\\)@@lists.debian.org" "mail.debian.\\1")
@@ -11235,7 +11206,7 @@ When the connection to the net is up again (and Gnus knows this), the
 Agent is @dfn{plugged}.
 
 The @dfn{local} machine is the one you're running on, and which isn't
-connected to the net continuously.
+connected to the net continously.
 
 @dfn{Downloading} means fetching things from the net to your local
 machine.  @dfn{Uploading} is doing the opposite.
@@ -12717,9 +12688,9 @@ their own home score files:
 @lisp
 (setq gnus-home-score-file
       ;; All groups that match the regexp "\\.emacs"
-      '(("\\.emacs" "emacs.SCORE")
-        ;; All the comp groups in one score file
-        ("^comp" "comp.SCORE")))
+      '("\\.emacs" "emacs.SCORE")
+      ;; All the comp groups in one score file
+       ("^comp" "comp.SCORE"))
 @end lisp
 
 @vindex gnus-home-adapt-file
@@ -13482,7 +13453,7 @@ four days, Gnus will decay the scores four times, for instance.
 * Moderation::                 What to do if you're a moderator.
 * XEmacs Enhancements::        There are more pictures and stuff under XEmacs.
 * Fuzzy Matching::             What's the big fuzz?
-* Thwarting Email Spam::       A how-to on avoiding unsolicited commercial email.
+* Thwarting Email Spam::       A how-to on avoiding unsolited commercial email.
 * Various Various::            Things that are really various.
 @end menu
 
@@ -13570,7 +13541,7 @@ default.
 @cindex symbolic prefixes
 
 Quite a lot of Emacs commands react to the (numeric) prefix.  For
-instance, @kbd{C-u 4 C-f} moves point four characters forward, and
+instance, @kbd{C-u 4 C-f} moves point four charaters forward, and
 @kbd{C-u 9 0 0 I s s p} adds a permanent @code{Subject} substring score
 rule of 900 to the current article.
 
@@ -14332,7 +14303,7 @@ If you add handlers to @code{gnus-demon-handlers} directly, you should
 run @code{gnus-demon-init} to make the changes take hold.  To cancel all
 daemons, you can use the @code{gnus-demon-cancel} function.
 
-Note that adding daemons can be pretty naughty if you over do it.  Adding
+Note that adding daemons can be pretty naughty if you overdo it.  Adding
 functions that scan all news and mail from all servers every two seconds
 is a sure-fire way of getting booted off any respectable system.  So
 behave.
@@ -15021,7 +14992,7 @@ The biggest problem I have with email spam is that it comes in under
 false pretenses.  I press @kbd{g} and Gnus merrily informs me that I
 have 10 new emails.  I say ``Golly gee!  Happy is me!'' and select the
 mail group, only to find two pyramid schemes, seven advertisements
-(``New!  Miracle tonic for growing full, lustrous hair on your toes!'')
+(``New!  Miracle tonic for growing full, lustrouos hair on your toes!'')
 and one mail asking me to repent and find some god.
 
 This is annoying.
@@ -15063,7 +15034,7 @@ header, it's probably ok.  All the rest goes to the @samp{spam} group.
 In addition, many mail spammers talk directly to your @code{smtp} server
 and do not include your email address explicitly in the @code{To}
 header.  Why they do this is unknown---perhaps it's to thwart this
-thwarting scheme?  In any case, this is trivial to deal with---you just
+twarting scheme?  In any case, this is trivial to deal with---you just
 put anything not addressed to you in the @samp{spam} group by ending
 your fancy split rule in this way:
 
@@ -15081,7 +15052,7 @@ citizen, you can even send off complaints to the proper authorities on
 each unsolicited commercial email---at your leisure.
 
 If you are also a lazy net citizen, you will probably prefer complaining
-automatically with the @file{gnus-junk.el} package, available FOR FREE
+automatically with the @file{gnus-junk.el} package, availiable FOR FREE
 at @file{<URL:http://stud2.tuwien.ac.at/~e9426626/gnus-junk.html>}.
 Since most e-mail spam is sent automatically, this may reconcile the
 cosmic balance somewhat.
@@ -15089,7 +15060,7 @@ cosmic balance somewhat.
 This works for me.  It allows people an easy way to contact me (they can
 just press @kbd{r} in the usual way), and I'm not bothered at all with
 spam.  It's a win-win situation.  Forging @code{From} headers to point
-to non-existent domains is yucky, in my opinion.
+to non-existant domains is yucky, in my opinion.
 
 
 @node Various Various
@@ -15109,11 +15080,6 @@ Most Gnus storage path variables will be initialized from this variable,
 which defaults to the @samp{SAVEDIR} environment variable, or
 @file{~/News/} if that variable isn't set.
 
-Note that gnus is mostly loaded when the @file{.gnus.el} file is read.
-This means that other directory variables that are initialized from this
-variable won't be set properly if you set this variable in
-@file{.gnus.el}.  Set this variable in @file{.emacs} instead.
-
 @item gnus-default-directory
 @vindex gnus-default-directory
 Not related to the above variable at all---this variable says what the
@@ -15379,12 +15345,6 @@ Overall, a casual user who hasn't written much code that depends on
 @sc{gnus} internals should suffer no problems.  If problems occur,
 please let me know by issuing that magic command @kbd{M-x gnus-bug}.
 
-@vindex gnus-bug-create-help-buffer
-If you are in the habit of sending bug reports @emph{very} often, you
-may find the helpful help buffer annoying after a while.  If so, set
-@code{gnus-bug-create-help-buffer} to @code{nil} to avoid having it pop
-up at you.
-
 
 @node Conformity
 @subsection Conformity
@@ -15516,7 +15476,7 @@ Steven L. Baur---lots and lots and lots of bugs detections and fixes.
 Vladimir Alexiev---the refcard and reference booklets.
 
 @item
-Felix Lee & Jamie Zawinski---I stole some pieces from the XGnus
+Felix Lee & Jamie Zawinsky---I stole some pieces from the XGnus
 distribution by Felix Lee and JWZ.
 
 @item
@@ -15571,7 +15531,6 @@ Russ Allbery,
 Peter Arius,
 Matt Armstrong,
 Marc Auslander,
-Frank Bennett,
 Robert Bihlmeyer,
 Chris Bone,
 Mark Borges,
@@ -15579,7 +15538,6 @@ Mark Boyns,
 Lance A. Brown,
 Kees de Bruin,
 Martin Buchholz,
-Joe Buehler,
 Kevin Buhr,
 Alastair Burt,
 Joao Cachopo,
@@ -15614,8 +15572,6 @@ D. Hall,
 Magnus Hammerin,
 Kenichi Handa, @c Handa
 Raja R. Harinath,
-Yoshiki Hayashi, @c ?
-P. E. Jareth Hein,
 Hisashige Kenji, @c Hisashige
 Marc Horowitz,
 Gunnar Horrigmo,
@@ -15642,13 +15598,12 @@ James LewisMoss,
 Christian Limpach,
 Markus Linnala,
 Dave Love,
-Mike McEwan,
 Tonny Madsen,
 Shlomo Mahlab,
 Nat Makarevitch,
 Istvan Marko,
 David Martin,
-Jason R. Mastaler,
+Jason R Mastaler,
 Gordon Matzigkeit,
 Timo Metzemakers,
 Richard Mlynarik,
@@ -15668,8 +15623,6 @@ Stephen Peters,
 Jens-Ulrik Holger Petersen,
 Ulrich Pfeifer,
 John McClary Prevost,
-Mike Pullen,
-Jim Radford,
 Colin Rafferty,
 Lasse Rasinen,
 Lars Balker Rasmussen,
@@ -15679,7 +15632,6 @@ Roland B. Roberts,
 Bart Robinson,
 Christian von Roques,
 Jason Rumney,
-Wolfgang Rupprecht,
 Jay Sachs,
 Dewey M. Sasser,
 Loren Schall,
@@ -15736,7 +15688,7 @@ actually are people who are using Gnus.  Who'd'a thunk it!
 * ding Gnus::          New things in Gnus 5.0/5.1, the first new Gnus.
 * September Gnus::     The Thing Formally Known As Gnus 5.3/5.3.
 * Red Gnus::           Third time best---Gnus 5.4/5.5.
-* Quassia Gnus::       Two times two is four, or Gnus 5.6.11.
+* Quassia Gnus::       Two times two is four, or Gnus 5.6.4.
 @end menu
 
 These lists are, of course, just @emph{short} overviews of the
@@ -16271,7 +16223,7 @@ Emphasized text can be properly fontisized:
 @node Quassia Gnus
 @subsubsection Quassia Gnus
 
-New features in Gnus 5.6.11:
+New features in Gnus 5.6.4:
 
 @itemize @bullet
 
@@ -16341,7 +16293,7 @@ If you used this function in your initialization files, you must
 rewrite them to use @code{face-spec-set} instead.
 
 @item
- Canceling now uses the current select method.  Symbolic prefix
+ Cancelling now uses the current select method.  Symbolic prefix
 @kbd{a} forces normal posting method.
 
 @item
@@ -16478,14 +16430,14 @@ the crash-box is only appropriate to one specific group.
  nnmh-be-safe means that crossposted articles will
 be marked as unread.
 @item
- Orphan score entries don't show on "V t" score trace
+ Orphan score entries dont show on "V t" score trace
 @item
  when clearing out data, the cache data should also be reset.
 @item
  rewrite gnus-summary-limit-children to be non-recursive
 to avoid exceeding lisp nesting on huge groups.
 @item
- expunged articles are counted when computing scores.
+ expinged articles are counted when computing scores.
 @item
  implement gnus-batch-brew-soup
 @item
@@ -16561,7 +16513,7 @@ bar and the Gnus bar.
 the server?
 @item
  sort after gathering threads -- make false roots have the
-headers of the oldest orphan with a 0 article number?
+headers of the oldest orhpan with a 0 article number?
 @item
  nndoc groups should inherit the score files of their parents?  Also
 inherit copy prompts and save files.
@@ -16602,7 +16554,7 @@ has been changed before using it.
 on.  Eg. -- `(("nnml:" . 1))'.
 @item
  easier interface to nnkiboze to create ephemeral groups that
-contain groups that match a regexp.
+contaion groups that match a regexp.
 @item
  allow newlines in <URL:> urls, but remove them before using
 the URL.
@@ -16748,7 +16700,7 @@ groups it has been mailed to.
 @item
  hide-pgp should also hide PGP public key blocks.
 @item
- Command in the group buffer to respool process-marked groups.
+ Command in the group buffer to respoll process-marked groups.
 @item
  `gnus-summary-find-matching' should accept
 pseudo-"headers" like "body", "head" and "all"
@@ -16801,7 +16753,7 @@ even unread articles.
 @item
  checking for bogus groups should clean topic alists as well.
 @item
- canceling articles in foreign groups.
+ cancelling articles in foreign groups.
 @item
  article number in folded topics isn't properly updated by
 Xref handling.
@@ -16847,7 +16799,7 @@ the entire folder to disk when accepting new messages.
  server mode command for clearing read marks from all groups
 from a server.
 @item
- when following up multiple articles, include all To, Cc, etc headers
+ when following up mulitple articles, include all To, Cc, etc headers
 from all articles.
 @item
  a command for deciding what the total score of the current
@@ -17001,7 +16953,7 @@ on article marks.
  a way to visually distinguish slave Gnusae from masters.  (Whip instead
 of normal logo?)
 @item
- Use DJ Bernstein "From " quoting/dequoting, where applicable.
+ Use DJ Bernstein "From " quoting/dequoting, where appliccable.
 @item
  Why is hide-citation-maybe and hide-citation different?  Also
 clear up info.
@@ -17062,13 +17014,13 @@ They could be used like this:
 
 <expr> would be a boolean expression on the labels, e.g.
 
-`/ l bug & !fixed RET'
+       `/ l bug & !fixed RET'
 @end example
 
 would show all the messages which are labeled `bug' but not labeled
 `fixed'.
 
-One could also imagine the labels being used for highlighting, or
+One could also immagine the labels being used for highliting, or
 affect the summary line format.
 
 
@@ -17081,7 +17033,7 @@ would recognize things that looks like messages or folders:
 - If it is a directory containing numbered files, create an nndir
 summary buffer.
 
-- For other directories, create a nneething summary buffer.
+- For other directories, create a nneething summaru buffer.
 
 - For files matching "\\`From ", create a nndoc/mbox summary.
 
@@ -17108,7 +17060,7 @@ decend into sci.something ?
 decend into ucd?
 
 The problem above is that since there is really only one subsection of
-science, shouldn't it prompt you for only descending sci.something?  If
+science, shouldn't it prompt you for only decending sci.something?  If
 there was a sci.somethingelse group or section, then it should prompt
 for sci? first the sci.something? then sci.somethingelse?...
 
@@ -17124,14 +17076,14 @@ as a single spoiler warning and hide it all, replacing it with a "Next Page"
 button:
 
 
-^L's
+       ^L's
 
-more than n blank lines
+       more than n blank lines
 
-more than m identical lines
-(which should be replaced with button to show them)
+       more than m identical lines
+       (which should be replaced with button to show them)
 
-any whitespace surrounding any of the above
+       any whitespace surrounding any of the above
 
 
 @item
@@ -17161,30 +17113,30 @@ Yes. I think the algorithm is as follows:
 Group-mode
 
    show-list-of-articles-in-group
-        if (key-pressed == SPACE)
-                if (no-more-articles-in-group-to-select)
-                        if (articles-selected)
-                                start-reading-selected-articles;
-                        junk-unread-articles;
-                        next-group;
-                 else
-                        show-next-page;
-
-         else if (key-pressed = '.')
-                if (consolidated-menus)         # same as hide-thread in Gnus
-                        select-thread-under-cursor;
-                else
-                        select-article-under-cursor;
+       if (key-pressed == SPACE)
+               if (no-more-articles-in-group-to-select)
+                       if (articles-selected)
+                               start-reading-selected-articles;
+                       junk-unread-articles;
+                       next-group;
+                else
+                       show-next-page;
+
+        else if (key-pressed = '.')
+               if (consolidated-menus)         # same as hide-thread in Gnus
+                       select-thread-under-cursor;
+               else
+                       select-article-under-cursor;
 
 
 Article-mode
-        if (key-pressed == SPACE)
-                if (more-pages-in-article)
-                        next-page;
-                else if (more-selected-articles-to-read)
-                        next-article;
-                else
-                        next-group;
+       if (key-pressed == SPACE)
+               if (more-pages-in-article)
+                       next-page;
+               else if (more-selected-articles-to-read)
+                       next-article;
+               else
+                       next-group;
 @end example
 
 @item
@@ -17201,7 +17153,7 @@ the wildcard expression).
 @item
 It would be nice if it also handled
 
-        <URL:news://sunsite.auc.dk/>
+       <URL:news://sunsite.auc.dk/>
 
 which should correspond to `B nntp RET sunsite.auc.dk' in *Group*.
 
@@ -17364,7 +17316,7 @@ to be able to post in them (using the current select method).
  `x' should retain any sortings that have been performed.
 
 @item
- allow the user to specify the precedence of the secondary marks.  Also
+ allow the user to specify the presedence of the secondary marks.  Also
 allow them to be displayed separately.
 
 @item
@@ -17395,16 +17347,16 @@ Mac, MS (etc) characters into ISO 8859-1.
     (let ((buffer-read-only nil))
       (goto-char (point-min))
       (while (search-forward "\221" nil t)
-        (replace-match "`" t t))
+       (replace-match "`" t t))
       (goto-char (point-min))
       (while (search-forward "\222" nil t)
-        (replace-match "'" t t))
+       (replace-match "'" t t))
       (goto-char (point-min))
       (while (search-forward "\223" nil t)
-        (replace-match "\"" t t))
+       (replace-match "\"" t t))
       (goto-char (point-min))
       (while (search-forward "\224" nil t)
-        (replace-match "\"" t t)))))
+       (replace-match "\"" t t)))))
 @end example
 
 @item
@@ -17412,7 +17364,7 @@ Mac, MS (etc) characters into ISO 8859-1.
  (add-hook 'gnus-exit-query-functions
 '(lambda ()
    (if (and (file-exists-p nnmail-spool-file)
-            (> (nnheader-file-size nnmail-spool-file) 0))
+           (> (nnheader-file-size nnmail-spool-file) 0))
        (yes-or-no-p "New mail has arrived.  Quit Gnus anyways? ")
        (y-or-n-p "Are you sure you want to quit Gnus? "))))
 @end example
@@ -17561,12 +17513,6 @@ A Date scoring type that will match if the article
 is less than a certain number of days old.
 
 @item
-New spec: %~(tab 56) to put point on column 56
-
-@item
-Allow Gnus Agent scoring to use normal score files.
-
-@item
 Solve the halting problem.
 
 @c TODO
@@ -18935,7 +18881,7 @@ this:
 @node Score File Syntax
 @subsection Score File Syntax
 
-Score files are meant to be easily parseable, but yet extremely
+Score files are meant to be easily parsable, but yet extremely
 mallable.   It was decided that something that had the same read syntax
 as an Emacs Lisp list would fit that spec.
 
index cdb63f4..8b5b43e 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename message
-@settitle Message 5.6.11 Manual
+@settitle Message 5.6.4 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
@@ -42,7 +42,7 @@ into another language, under the above conditions for modified versions.
 @tex
 
 @titlepage
-@title Message 5.6.11 Manual
+@title Message 5.6.4 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
@@ -83,7 +83,7 @@ Message mode buffers.
 * Key Index::         List of Message mode keys.
 @end menu
 
-This manual corresponds to Message 5.6.11.  Message is distributed with
+This manual corresponds to Message 5.6.4.  Message is distributed with
 the Gnus distribution bearing the same version number as this manual
 has. 
 
@@ -717,18 +717,6 @@ Allegedly.
 This string is inserted at the end of the headers in all message
 buffers.
 
-@item message-subject-re-regexp
-@vindex message-subject-re-regexp
-Responses to messages have subjects that start with @samp{Re: }.  This
-is @emph{not} an abbreviation of the English word ``response'', but in
-Latin, and means ``in response to''.  Some illiterate nincompoops have
-failed to grasp this fact, and have ``internationalized'' their software
-to use abonimations like @samp{Aw: } (``antwort'') or @samp{Sv: }
-(``svar'') instead, which is meaningless and evil.  However, you may
-have to deal with users that use these evil tools, in which case you may
-set this variable to a regexp that matches these prefixes.  Myself, I
-just throw away non-compliant mail.
-
 @end table
 
 
@@ -991,6 +979,10 @@ follows this line--} by default.
 @vindex message-directory
 Directory used by many mailey things.  The default is @file{~/Mail/}. 
 
+@item message-autosave-directory
+@vindex message-autosave-directory
+Directory where message buffers will be autosaved to.
+
 @item message-signature-setup-hook
 @vindex message-signature-setup-hook
 Hook run when initializing the message buffer.  It is run after the