+Mon Mar 17 17:35:35 1997 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Gnus v5.4.27 is released.
+
+Mon Mar 17 15:59:11 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * nndoc.el (nndoc-x400-forward-type-p): New function.
+ (nndoc-x400-forward-body-end-function): Ditto.
+
+ * nnfolder.el (nnfolder-adjust-min-active): Be in the right
+ buffer.
+
+Sat Mar 15 16:09:44 1997 Steven L Baur <steve@altair.xemacs.org>
+
+ * message.el (message-post-method): Fix typo.
+
+ * gnus-load.el (message-sending): Fix typo.
+
+Mon Mar 17 15:47:59 1997 Gordon Matzigkeit <gord@m-tech.ab.ca>
+
+ * message.el (message-set-auto-save-file-name): Expand before
+ temping.
+
+Mon Mar 17 15:05:44 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus-sum.el (gnus-update-marks): Get rid of article entries of
+ articles with the default score.
+
+ * gnus-group.el (gnus-group-read-ephemeral-group): Be more careful
+ when uniquifying methods.
+
+ * gnus-sum.el (gnus-execute-command): Insert asynch into buffer.
+
+ * nnfolder.el (nnfolder-possibly-change-group): Didn't set the
+ current group.
+
+Mon Mar 17 15:03:02 1997 Paul Stodghill <stodghil@cs.cornell.edu>
+
+ * gnus-srvr.el (gnus-server-prepare): Would infloop.
+
+Mon Mar 17 06:37:07 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * nnmail.el (nnmail-crosspost-link-function): Change default on
+ NT.
+
+Fri Mar 14 12:07:12 1997 Steven L Baur <steve@altair.xemacs.org>
+
+ * gnus-msg.el (gnus-extended-version): Add XEmacs beta # to
+ default X-Mailer/X-Newsreader.
+
+Fri Mar 14 20:57:03 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * nnfolder.el (nnfolder-possibly-change-group): Check folder
+ buffer.
+
+ * nnheader.el (nnheader-parse-head): Understand Message-ID with
+ spaces.
+ * gnus-sum.el (gnus-get-newsgroup-headers): Ditto.
+ (gnus-group-make-articles-read): Doc fix.
+
+ * nnml.el (nnml-generate-nov-databases-1): Made interactive.
+
+ * gnus-msg.el (gnus-inews-narrow-to-headers): Removed.
+ (gnus-post-news): Add `to-list' to the right group.
+
Fri Mar 14 20:11:01 1997 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
* gnus.el: Gnus v5.4.26 is released.
;; Transform the select method into a unique server.
(let ((saddr (intern (format "%s-address" (car method)))))
(setq method (gnus-copy-sequence method))
- (unless (assq saddr method)
- (nconc method `((,saddr ,(cadr method)))))
- (setf (cadr method) (format "%s-%d" (cadr method)
- (incf gnus-ephemeral-group-server))))
+ (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
(put 'nnmail 'custom-loads '("nnmail"))
(put 'gnus-article-emphasis 'custom-loads '("gnus-art"))
(put 'gnus-article-headers 'custom-loads '("gnus-sum" "gnus-art"))
-(put 'gnus-newsrc 'custom-loads '("gnus-start"))
(put 'nnmail-procmail 'custom-loads '("nnmail"))
(put 'gnus-score-kill 'custom-loads '("gnus-kill"))
(put 'gnus-visual 'custom-loads '("smiley" "gnus" "gnus-picon" "gnus-art" "earcon"))
(put 'gnus-score-expire 'custom-loads '("gnus-score" "gnus-kill"))
-(put 'gnus-exit 'custom-loads '("gnus-group"))
(put 'gnus-summary-maneuvering 'custom-loads '("gnus-sum"))
(put 'gnus-start 'custom-loads '("gnus" "gnus-util" "gnus-start" "gnus-int" "gnus-group"))
(put 'gnus-extract-view 'custom-loads '("gnus-uu" "gnus-sum"))
(put 'gnus-summary-exit 'custom-loads '("gnus-sum"))
(put 'news 'custom-loads '("message" "gnus"))
(put 'gnus 'custom-loads '("nnmail" "gnus" "gnus-win" "gnus-uu" "gnus-eform" "gnus-dup" "gnus-demon" "gnus-cache" "gnus-async" "gnus-art"))
-(put 'gnus-server 'custom-loads '("gnus"))
(put 'gnus-summary-visual 'custom-loads '("gnus-sum"))
(put 'gnus-group-listing 'custom-loads '("gnus-group"))
(put 'gnus-score 'custom-loads '("gnus" "gnus-nocem"))
(put 'gnus-score-decay 'custom-loads '("gnus-score"))
(put 'help 'custom-loads '("cus-edit"))
(put 'gnus-nocem 'custom-loads '("gnus-nocem"))
-(put 'gnus-group-visual 'custom-loads '("gnus-group"))
(put 'gnus-cite 'custom-loads '("gnus-cite"))
(put 'gnus-demon 'custom-loads '("gnus-demon"))
(put 'gnus-message 'custom-loads '("message"))
(put 'external 'custom-loads '("cus-edit"))
(put 'message-headers 'custom-loads '("message"))
(put 'message-forwarding 'custom-loads '("message"))
+(put 'message-faces 'custom-loads '("message"))
(put 'environment 'custom-loads '("cus-edit"))
(put 'gnus-article-mime 'custom-loads '("gnus-sum" "gnus-art"))
(put 'gnus-duplicate 'custom-loads '("gnus-dup"))
(put 'widgets 'custom-loads '("wid-edit" "wid-browse"))
(put 'earcon 'custom-loads '("earcon"))
(put 'hypermedia 'custom-loads '("wid-edit"))
-(put 'gnus-group-levels 'custom-loads '("gnus-start" "gnus-group"))
+(put 'gnus-group-levels 'custom-loads '("gnus-group"))
(put 'gnus-summary-format 'custom-loads '("gnus-sum"))
(put 'gnus-files 'custom-loads '("nnmail" "gnus"))
(put 'gnus-windows 'custom-loads '("gnus-win"))
(put 'gnus-article-saving 'custom-loads '("gnus-art"))
(put 'nnmail-expire 'custom-loads '("nnmail"))
(put 'message-mail 'custom-loads '("message"))
-(put 'faces 'custom-loads '("wid-edit" "cus-edit" "gnus"))
+(put 'faces 'custom-loads '("wid-edit" "cus-edit" "message" "gnus"))
(put 'gnus-summary-various 'custom-loads '("gnus-sum"))
(put 'applications 'custom-loads '("cus-edit"))
-(put 'gnus-start-server 'custom-loads '("gnus-start"))
(put 'gnus-extract-archive 'custom-loads '("gnus-uu"))
(put 'message 'custom-loads '("message"))
(put 'message-sending 'custom-loads '("message"))
(put 'gnus-extract-post 'custom-loads '("gnus-uu"))
(put 'mail 'custom-loads '("message" "gnus"))
(put 'gnus-summary-sort 'custom-loads '("gnus-sum"))
-(put 'gnus-group-new 'custom-loads '("gnus-start"))
(put 'customize 'custom-loads '("wid-edit" "custom" "cus-face" "cus-edit"))
(put 'nnmail-split 'custom-loads '("nnmail"))
(put 'gnus-asynchronous 'custom-loads '("gnus-async"))
-(put 'gnus-dribble-file 'custom-loads '("gnus-start"))
(put 'gnus-article-highlight 'custom-loads '("gnus-art"))
(put 'gnus-extract 'custom-loads '("gnus-uu"))
(put 'gnus-article 'custom-loads '("gnus-cite" "gnus-art"))
(put 'gnus-group-foreign 'custom-loads '("gnus-group"))
(put 'programming 'custom-loads '("cus-edit"))
-(put 'mesage-sending 'custom-loads '("message"))
(put 'nnmail-prepare 'custom-loads '("nnmail"))
(put 'picons 'custom-loads '("gnus-picon"))
(put 'gnus-article-signature 'custom-loads '("gnus-art"))
(message-mail (or to-address to-list))
;; Arrange for mail groups that have no `to-address' to
;; get that when the user sends off the mail.
- (push (list 'gnus-inews-add-to-address group)
+ (push (list 'gnus-inews-add-to-address pgroup)
message-send-actions))
(set-buffer gnus-article-copy)
(message-wide-reply to-address)))
;; Use the normal select method.
(t gnus-select-method))))
-(defun gnus-inews-narrow-to-headers ()
- (widen)
- (narrow-to-region
- (goto-char (point-min))
- (or (and (re-search-forward
- (concat "^" (regexp-quote mail-header-separator) "$") nil t)
- (match-beginning 0))
- (point-max)))
- (goto-char (point-min)))
-
;;;
;;; Check whether the message has been sent already.
;;;
(defun gnus-inews-reject-message ()
"Check whether this message has already been sent."
(when gnus-sent-message-ids-file
- (let ((message-id (save-restriction (gnus-inews-narrow-to-headers)
+ (let ((message-id (save-restriction (message-narrow-to-headers)
(mail-fetch-field "message-id")))
end)
(when message-id
(concat "Emacs " (substring emacs-version
(match-beginning 1)
(match-end 1))))
- ((string-match "\\([A-Z]*[Mm][Aa][Cc][Ss]\\)" emacs-version)
+ ((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)))
+ (format " %d.%d" emacs-major-version emacs-minor-version)
+ (if (match-beginning 3)
+ (substring emacs-version
+ (match-beginning 3)
+ (match-end 3))
+ "")))
(t emacs-version))))
;; Written by "Mr. Per Persson" <pp@gnu.ai.mit.edu>.
(save-excursion
(save-restriction
(widen)
- (gnus-inews-narrow-to-headers)
+ (message-narrow-to-headers)
(let (gnus-deletable-headers)
(if (message-news-p)
(message-generate-headers message-required-news-headers)
"Insert Gcc headers based on `gnus-outgoing-message-group'."
(save-excursion
(save-restriction
- (gnus-inews-narrow-to-headers)
+ (message-narrow-to-headers)
(let* ((group gnus-outgoing-message-group)
(gcc (cond
((gnus-functionp group)
(setq groups (list groups)))
(save-excursion
(save-restriction
- (gnus-inews-narrow-to-headers)
+ (message-narrow-to-headers)
(goto-char (point-max))
(insert "Gcc: ")
(if (and gnus-newsgroup-name
(push (cdar alist) done)
(cdr (setq server (pop alist)))
(when (and server (car server) (cdr server))
- (gnus-server-insert-server-line (car server) (cdr server)))))
+ (gnus-server-insert-server-line (car server) (cdr server))))
+ (when (member (cdar alist) done)
+ (pop alist)))
;; Then we insert the list of servers that have been opened in
;; this session.
(while opened
(const more)
(sexp :menu-tag "all" t)))
-(defcustom gnus-summary-thread-gathering-function 'gnus-gather-threads-by-subject
+(defcustom gnus-summary-thread-gathering-function
+ 'gnus-gather-threads-by-subject
"Function used for gathering loose threads.
There are two pre-defined functions: `gnus-gather-threads-by-subject',
which only takes Subjects into consideration; and
type list newmarked symbol)
(when info
;; Add all marks lists that are non-nil to the list of marks lists.
- (while types
- (setq type (pop types))
+ (while (setq type (pop types))
(when (setq list (symbol-value
(setq symbol
(intern (format "gnus-newsgroup-%s"
(car type))))))
+
+ ;; Get rid of the entries of the articles that have the
+ ;; default score.
+ (when (and (eq (cdr type) 'score)
+ gnus-save-score
+ articles)
+ (let* ((arts articles)
+ (prev (cons nil articles))
+ (all prev))
+ (while arts
+ (if (or (not (consp (car arts)))
+ (= (cdar arts) gnus-summary-default-score))
+ (setcdr prev (cdr arts))
+ (setq prev arts))
+ (setq arts (cdr arts)))
+ (setq articles (cdr all))))
+
(push (cons (cdr type)
(if (memq (cdr type) uncompressed) list
(gnus-compress-sequence
xref-hashtb)))))
(defun gnus-group-make-articles-read (group articles)
- "Update the info of GROUP to say that only ARTICLES are unread."
+ "Update the info of GROUP to say that ARTICLES are read."
(let* ((num 0)
(entry (gnus-gethash group gnus-newsrc-hashtb))
(info (nth 2 entry))
;; Message-ID.
(progn
(goto-char p)
- (setq id (if (search-forward "\nmessage-id: " nil t)
- (nnheader-header-value)
+ (setq id (if (search-forward "\nmessage-id:" nil t)
+ (buffer-substring
+ (1- (or (search-forward "<" nil t) (point)))
+ (or (search-forward ">" nil t) (point)))
;; If there was no message-id, we just fake one
;; to make subsequent routines simpler.
(nnheader-generate-fake-message-id))))
(gnus-article-setup-buffer)
(set-buffer gnus-article-buffer)
(setq buffer-read-only nil)
- (let ((command (if automatic command (read-string "Command: " command)))
- ;; Just binding this here doesn't help, because there might
- ;; be output from the process after exiting the scope of
- ;; this `let'.
- ;; (buffer-read-only nil)
- )
+ (let ((command (if automatic command (read-string "Command: " command))))
(erase-buffer)
(insert "$ " command "\n\n")
(if gnus-view-pseudo-asynchronously
- (start-process "gnus-execute" nil shell-file-name
+ (start-process "gnus-execute" (current-buffer) shell-file-name
shell-command-switch command)
(call-process shell-file-name nil t nil
shell-command-switch command)))))
:link '(custom-manual "(gnus)Exiting Gnus")
:group 'gnus)
-(defconst gnus-version-number "5.4.26"
+(defconst gnus-version-number "5.4.27"
"Version number for this version of Gnus.")
(defconst gnus-version (format "Gnus v%s" gnus-version-number)
(t '(nnspool "")))
"Method used to post news."
:group 'message-news
- :group 'mesage-sending
+ :group 'message-sending
;; This should be the `gnus-select-method' widget, but that might
;; create a dependence to `gnus.el'.
:type 'sexp)
(unless (file-exists-p message-autosave-directory)
(make-directory message-autosave-directory t))
(let ((name (make-temp-name
- (concat (file-name-as-directory message-autosave-directory)
- "msg."))))
+ (expand-file-name
+ (concat (file-name-as-directory message-autosave-directory)
+ "msg.")))))
(setq buffer-auto-save-file-name
(save-excursion
(prog1
(prepare-body-function . nndoc-unquote-dashes)
(subtype digest guess))
(lanl-gov-announce
- (article-begin . "^\\\\\\\\\n")
- (head-begin . "^Paper.*:")
- (head-end . "\\(^\\\\\\\\.*\n\\|-----------------\\)")
- (body-begin . "")
- (body-end . "-------------------------------------------------")
- (file-end . "^Title: Recent Seminal")
- (generate-head-function . nndoc-generate-lanl-gov-head)
- (article-transform-function . nndoc-transform-lanl-gov-announce)
- (subtype preprints guess))
+ (article-begin . "^\\\\\\\\\n")
+ (head-begin . "^Paper.*:")
+ (head-end . "\\(^\\\\\\\\.*\n\\|-----------------\\)")
+ (body-begin . "")
+ (body-end . "-------------------------------------------------")
+ (file-end . "^Title: Recent Seminal")
+ (generate-head-function . nndoc-generate-lanl-gov-head)
+ (article-transform-function . nndoc-transform-lanl-gov-announce)
+ (subtype preprints guess))
+ (x400-forward
+ (article-begin . "^\n")
+ (body-end-function . nndoc-x400-forward-body-end-function))
(guess
(guess . t)
(subtype nil))
(subtype nil))
(preprints
(guess . t)
- (subtype nil))
- ))
+ (subtype nil))))
\f
(not (re-search-forward "^From:" nil t 2)))
t))
+(defun nndoc-x400-forward-type-p ()
+ (save-restriction
+ (message-narrow-to-head)
+ (when (re-search-forward "^Content-Type: *message/rfc822" nil t)
+ t)))
+
+(defun nndoc-x400-forward-body-end-function ()
+ (goto-char (point-max)))
+
(defun nndoc-clari-briefs-type-p ()
(when (let ((case-fold-search nil))
(re-search-forward "^\t[^a-z]+ ([^a-z]+) --" nil t))
;;; Commentary:
-;; Based on nnspool.el by Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>.
-;; For an overview of what the interface functions do, please see the
-;; Gnus sources.
-
;;; Code:
(require 'nnheader)
(nnoo-declare nneething)
(defvoo nneething-map-file-directory "~/.nneething/"
- "*Where nneething stores the map files.")
+ "Where nneething stores the map files.")
(defvoo nneething-map-file ".nneething"
- "*Name of the map files.")
+ "Name of the map files.")
(defvoo nneething-exclude-files nil
- "*Regexp saying what files to exclude from the group.
+ "Regexp saying what files to exclude from the group.
If this variable is nil, no files will be excluded.")
\f
(defvoo nneething-message-id-number 0)
(defvoo nneething-work-buffer " *nneething work*")
-(defvoo nneething-directory nil)
(defvoo nneething-group nil)
(defvoo nneething-map nil)
(defvoo nneething-read-only nil)
(insert "\n"))
t))))
-(deffoo nneething-request-group (group &optional dir dont-check)
- (nneething-possibly-change-directory group dir)
+(deffoo nneething-request-group (group &optional server dont-check)
+ (nneething-possibly-change-directory group server)
(unless dont-check
(nneething-create-mapping)
(if (> (car nneething-active) (cdr nneething-active))
(nnfolder-delete-mail))
(when last
(nnfolder-save-buffer)
- (nnfolder-adjust-min-active group))))
+ (nnfolder-adjust-min-active group)
+ (nnmail-save-active nnfolder-group-alist nnfolder-active-file))))
result))
(deffoo nnfolder-request-accept-article (group &optional server last)
(marker (concat "\n" nnfolder-article-marker))
(number "[0-9]+")
(activemin (cdr active)))
- (goto-char (point-min))
- (while (and (search-forward marker nil t)
- (re-search-forward number nil t))
- (setq activemin (min activemin
- (string-to-number (buffer-substring
- (match-beginning 0)
- (match-end 0))))))
- (setcar active activemin)))
+ (save-excursion
+ (set-buffer nnfolder-current-buffer)
+ (goto-char (point-min))
+ (while (and (search-forward marker nil t)
+ (re-search-forward number nil t))
+ (setq activemin (min activemin
+ (string-to-number (buffer-substring
+ (match-beginning 0)
+ (match-end 0))))))
+ (setcar active activemin))))
(defun nnfolder-article-string (article)
(if (numberp article)
(when (and server
(not (nnfolder-server-opened server)))
(nnfolder-open-server server))
+ (unless (gnus-buffer-live-p nnfolder-current-buffer)
+ (setq nnfolder-current-buffer nil
+ nnfolder-current-group nil))
;; Change group.
(when (and group
(not (equal group nnfolder-current-group)))
(push (list group (cons 1 0)) nnfolder-group-alist)
(nnmail-save-active nnfolder-group-alist nnfolder-active-file))
- (unless dont-check
+ (if dont-check
+ (setq nnfolder-current-group group)
(let (inf file)
;; If we have to change groups, see if we don't already have the
;; folder in memory. If we do, verify the modtime and destroy
;; a case (which basically was the old function) is actually
;; about twice as fast, even though it looks messier. You
;; can't have everything, I guess. Speed and elegance
- ;; doesn't always go hand in hand.
+ ;; don't always go hand in hand.
(vector
;; Number.
(if naked
;; Message-ID.
(progn
(goto-char p)
- (if (search-forward "\nmessage-id: " nil t)
- (nnheader-header-value)
+ (if (search-forward "\nmessage-id:" nil t)
+ (buffer-substring
+ (1- (or (search-forward "<" nil t) (point)))
+ (or (search-forward ">" nil t) (point)))
;; If there was no message-id, we just fake one to make
;; subsequent routines simpler.
(nnheader-generate-fake-message-id)))
:group 'nnmail-files
:type 'function)
-(defcustom nnmail-crosspost-link-function 'add-name-to-file
+(defcustom nnmail-crosspost-link-function
+ (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.
This is `add-name-to-file' by default, which means that crossposts
will use hard links. If your file system doesn't allow hard
;;;###autoload
(defun nnml-generate-nov-databases ()
- "Generate nov databases in all nnml directories."
+ "Generate NOV databases in all nnml directories."
(interactive)
;; Read the active file to make sure we don't re-use articles
;; numbers in empty groups.
(nnmail-save-active nnml-group-alist nnml-active-file))
(defun nnml-generate-nov-databases-1 (dir &optional seen)
+ "Regenerate the NOV database in DIR."
+ (interactive "DRegenerate NOV in: ")
(setq dir (file-name-as-directory dir))
;; Only scan this sub-tree if we haven't been here yet.
(unless (member (file-truename dir) seen)
+Mon Mar 17 16:15:54 1997 Philippe Schnoebelen <Philippe.Schnoebelen@lsv.ens-cachan.fr>
+
+ * Makefile (install): Install properly.
+
+Fri Mar 14 21:00:33 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus.texi (Group Parameters): Addition.
+ (Expiring Mail): Addition.
+
Wed Mar 12 06:57:14 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* gnus.texi (Various Various): Addition.
install:
cp gnus gnus-[0-9] gnus-[0-9][0-9] $(INFODIR)
- cp message message-[0-9] $(INFODIR)
- cp widget widget-[0-9] $(INFODIR)
- cp custom custom-[0-9] $(INFODIR)
+ cp message $(INFODIR)
+ cp widget $(INFODIR)
+ cp custom $(INFODIR)
\input texinfo @c -*-texinfo-*-
@setfilename gnus
-@settitle Gnus 5.4 Manual
+@settitle Gnus 5.4.27 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Gnus 5.4 Manual
+@title Gnus 5.4.27 Manual
@author by Lars Magne Ingebrigtsen
@page
spool or your mbox file. All at the same time, if you want to push your
luck.
-This manual corresponds to Gnus 5.4.
+This manual corresponds to Gnus 5.4.27
@end ifinfo
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 don't have a
+@code{to-list} group parameter, one will be added automatically upon
+sending the message.
+
@item broken-reply-to
@cindex broken-reply-to
Elements like @code{(broken-reply-to . t)} signals that @code{Reply-To}
@c default for reasons of security.
@c Since Red Gnus is an alpha release, it is to be expected to lose mail.
-(No Gnus release since (ding) Gnus 0.10 (or something like that) have
+(No Gnus release since (ding) Gnus 5.4.27 (or something like that) have
lost mail, I think, but that's not the point. (Except certain versions
of Red Gnus.)) By not deleting the Incoming* files, one can be sure to
not lose mail -- if Gnus totally whacks out, one can always recover what
@vindex nnmail-expiry-wait
The @code{nnmail-expiry-wait} variable supplies the default time an
-expirable article has to live. The default is seven days.
+expirable article has to live. Gnus starts counting days from when the
+message @emph{arrived}, not from when it was sent. The default is seven
+days.
Gnus also supplies a function that lets you fine-tune how long articles
are to live, based on what group they are in. Let's say you want to
renamed it back again to ``Gnus''. But in mixed case. ``Gnus'' vs.
``@sc{gnus}''. New vs. old.
-The first ``proper'' release of Gnus 5 was done in November 1995 when it
+The first ``proper'' release of Gnus 5.4.27 was done in November 1995 when it
was included in the Emacs 19.30 distribution (132 (ding) Gnus releases
-plus 15 Gnus 5.0 releases).
+plus 15 Gnus 5.4.27 releases).
In May 1996 the next Gnus generation (aka. ``September Gnus'' (after 99
-releases)) was released under the name ``Gnus 5.2'' (40 releases).
+releases)) was released under the name ``Gnus 5.4.27'' (40 releases).
On July 28th 1996 work on Red Gnus was begun, and it was released on
-January 25th 1997 (after 84 releases) as ``Gnus 5.4''.
+January 25th 1997 (after 84 releases) as ``Gnus 5.4.27''.
If you happen upon a version of Gnus that has a name that is prefixed --
``(ding) Gnus'', ``September Gnus'', ``Red Gnus'', ``Quassia Gnus'' --
Adrian Aichner,
Peter Arius,
+Matt Armstrong,
Marc Auslander,
Chris Bone,
Mark Borges,
Shlomo Mahlab,
Nat Makarevitch,
David Martin,
+Gordon Matzigkeit,
Timo Metzemakers,
Richard Mlynarik,
Lantz Moore,
Loren Schall,
Dan Schmidt,
Ralph Schleicher,
+Philippe Schnoebelen,
Randal L. Schwartz,
Danny Siu,
Paul D. Smith,
@cindex new features
@menu
-* 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.
+* ding Gnus:: New things in Gnus 5.4.27/5.1, the first new Gnus.
+* September Gnus:: The Thing Formally Known As Gnus 5.4.27/5.3.
+* Red Gnus:: Third time best---Gnus 5.4.27/5.5.
@end menu
These lists are, of course, just @emph{short} overviews of the
@node ding Gnus
@subsubsection (ding) Gnus
-New features in Gnus 5.0/5.1:
+New features in Gnus 5.4.27/5.1:
@itemize @bullet
@node September Gnus
@subsubsection September Gnus
-New features in Gnus 5.2/5.3:
+New features in Gnus 5.4.27/5.3:
@itemize @bullet
@node Red Gnus
@subsubsection Red Gnus
-New features in Gnus 5.4/5.5:
+New features in Gnus 5.4.27/5.5:
@itemize @bullet