+Mon Jul 27 03:26:00 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Gnus v5.6.27 is released.
+
+1998-07-27 02:27:11 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-topic.el (gnus-topic-update-unreads): New function.
+
+ * gnus-sum.el (gnus-summary-limit): Update mode line.
+
+ * gnus-soup.el (gnus-soup-add-article): Update mode line.
+
+ * gnus-group.el (gnus-group-make-menu-bar): Bug.
+
+ * gnus-art.el (gnus-article-make-menu-bar): Menu.
+
+ * gnus-sum.el (gnus-summary-make-menu-bar): Bug reports.
+
+ * gnus-topic.el (gnus-topic-mode-map): h -> H.
+
+1998-07-19 16:59 Simon Josefsson <jas@pdc.kth.se>
+
+ * gnus-util.el (gnus-netrc-syntax-table): @ is whitespace
+
+1998-07-17 Gordon Matzigkeit <gord@fig.org>
+
+ * gnus-uu.el (gnus-uu-reginize-string): Simplify by looking
+ from back to front for part numbers, rather than skipping
+ leading ``version numbers.''
+
+ (gnus-uu-part-number): Make consistent with
+ gnus-uu-reginize-string.
+
+1998-07-26 19:01:58 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-art.el (gnus-request-article-this-buffer): Pass along
+ header.
+
+ * gnus-sum.el (gnus-summary-update-article): Don't pass along
+ iheader to regeneration routine.
+
+1998-07-26 17:33:03 KOSEKI Yoshinori <kose@yk.NetLaputa.ne.jp>
+
+ * nnmail.el (nnmail-move-inbox): Nix out password on errors.
+
Sat Jul 25 19:31:36 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
* gnus.el: Gnus v5.6.26 is released.
["Scroll backwards" gnus-article-goto-prev-page t]
["Show summary" gnus-article-show-summary t]
["Fetch Message-ID at point" gnus-article-refer-article t]
- ["Mail to address at point" gnus-article-mail t]))
+ ["Mail to address at point" gnus-article-mail t]
+ ["Send a bug report" gnus-bug t]))
(easy-menu-define
gnus-article-treatment-menu gnus-article-mode-map ""
(defun gnus-request-article-this-buffer (article group)
"Get an article and insert it into this buffer."
- (let (do-update-line)
+ (let (do-update-line sparse-header)
(prog1
(save-excursion
(erase-buffer)
(setq do-update-line article)
(setq article (mail-header-id header))
(let ((gnus-override-method gnus-refer-article-method))
- (gnus-read-header article))
+ (setq sparse-header (gnus-read-header article)))
(setq gnus-newsgroup-sparse
(delq article gnus-newsgroup-sparse)))
((vectorp header)
(stringp article)))
(let ((buf (current-buffer)))
(set-buffer gnus-summary-buffer)
- (gnus-summary-update-article do-update-line)
+ (gnus-summary-update-article do-update-line sparse-header)
(gnus-summary-goto-subject do-update-line nil t)
(set-window-point (get-buffer-window (current-buffer) t)
(point))
["Read manual" gnus-info-find-node t]
["Flush score cache" gnus-score-flush-cache t]
["Toggle topics" gnus-topic-mode t]
+ ["Send a bug report" gnus-bug t]
["Exit from Gnus" gnus-group-exit t]
["Exit without saving" gnus-group-quit t]))
(gnus-summary-mark-as-read (car articles) gnus-souped-mark)
(setq articles (cdr articles)))
(kill-buffer tmp-buf))
- (gnus-soup-save-areas)))
+ (gnus-soup-save-areas)
+ (gnus-set-mode-line 'summary)))
(defun gnus-soup-pack-packet ()
"Make a SOUP packet from the SOUP areas."
["Edit local kill file" gnus-summary-edit-local-kill t]
["Edit main kill file" gnus-summary-edit-global-kill t]
["Edit group parameters" gnus-summary-edit-parameters t]
+ ["Send a bug report" gnus-bug t]
("Exit"
["Catchup and exit" gnus-summary-catchup-and-exit t]
["Catchup all and exit" gnus-summary-catchup-and-exit t]
(defun gnus-data-update-list (data offset)
"Add OFFSET to the POS of all data entries in DATA."
+ (setq gnus-newsgroup-data-reverse nil)
(while data
(setcar (nthcdr 2 (car data)) (+ offset (nth 2 (car data))))
(setq data (cdr data))))
(defun gnus-data-compute-positions ()
"Compute the positions of all articles."
+ (setq gnus-newsgroup-data-reverse nil)
(let ((data gnus-newsgroup-data)
pos)
(while data
(defun gnus-summary-update-article (article &optional iheader)
"Update ARTICLE in the summary buffer."
(set-buffer gnus-summary-buffer)
- (let* ((header (or iheader (gnus-summary-article-header article)))
+ (let* ((header (gnus-summary-article-header article))
(id (mail-header-id header))
(data (gnus-data-find article))
(thread (gnus-id-to-thread id))
(number (mail-header-number header))
pos)
(when thread
- ;; !!! Should this be in or not?
(unless iheader
- (setcar thread nil))
- (when parent
- (delq thread parent))
- (if (gnus-summary-insert-subject id header iheader)
+ (setcar thread nil)
+ (when parent
+ (delq thread parent)))
+ (if (gnus-summary-insert-subject id header)
;; Set the (possibly) new article number in the data structure.
(gnus-data-set-number data (gnus-id-to-article id))
(setcar thread old)
;; after the current one.
(goto-char (point-max))
(gnus-summary-find-prev))
+ (gnus-set-mode-line 'summary)
;; We return how many articles were removed from the summary
;; buffer as a result of the new limit.
(- total (length gnus-newsgroup-data))))
(defvar gnus-topic-active-topology nil)
(defvar gnus-topic-active-alist nil)
+(defvar gnus-topic-unreads nil)
(defvar gnus-topology-checked-p nil
"Whether the topology has been checked in this session.")
(defun gnus-topic-unread (topic)
"Return the number of unread articles in TOPIC."
- (or (save-excursion
- (and (gnus-topic-goto-topic topic)
- (gnus-group-topic-unread)))
+ (or (cdr (assoc topic gnus-topic-unreads))
0))
(defun gnus-group-topic-p ()
(car type) visiblep
(not (eq (nth 2 type) 'hidden))
level all-entries unread))
+ (gnus-topic-update-unreads (car type) unread)
(goto-char end)
unread))
(number-of-groups (length entries))
(active-topic (eq gnus-topic-alist gnus-topic-active-alist))
gnus-tmp-header)
+ (gnus-topic-update-unreads name unread)
(beginning-of-line)
;; Insert the text.
(gnus-add-text-properties
'gnus-active active-topic
'gnus-topic-visible visiblep))))
+(defun gnus-topic-update-unreads (topic unreads)
+ (setq gnus-topic-unreads (delq (assoc topic gnus-topic-unreads)
+ gnus-topic-unreads))
+ (push (cons topic unreads) gnus-topic-unreads))
+
(defun gnus-topic-update-topics-containing-group (group)
"Update all topics that have GROUP as a member."
(when (and (eq major-mode 'gnus-group-mode)
"r" gnus-topic-rename
"\177" gnus-topic-delete
[delete] gnus-topic-delete
- "h" gnus-topic-toggle-display-empty-topics)
+ "H" gnus-topic-toggle-display-empty-topics)
(gnus-define-keys (gnus-topic-sort-map "S" gnus-group-topic-map)
"s" gnus-topic-sort-groups
(defvar gnus-netrc-syntax-table
(let ((table (copy-syntax-table text-mode-syntax-table)))
+ (modify-syntax-entry ?@ "w" table)
(modify-syntax-entry ?- "w" table)
(modify-syntax-entry ?_ "w" table)
(modify-syntax-entry ?! "w" table)
(defun gnus-uu-reginize-string (string)
;; Takes a string and puts a \ in front of every special character;
- ;; ignores any leading "version numbers" thingies that they use in
- ;; the comp.binaries groups, and either replaces anything that looks
- ;; like "2/3" with "[0-9]+/[0-9]+" or, if it can't find something
- ;; like that, replaces the last two numbers with "[0-9]+". This, in
- ;; my experience, should get most postings of a series.
- (let ((count 2)
- (vernum "v[0-9]+[a-z][0-9]+:")
- beg)
+ ;; replaces the last thing that looks like "2/3" with "[0-9]+/[0-9]+"
+ ;; or, if it can't find something like that, tries "2 of 3", then
+ ;; finally just replaces the last two numbers with "[0-9]+".
+ (let ((count 2))
(save-excursion
(set-buffer (get-buffer-create gnus-uu-output-buffer-name))
(buffer-disable-undo (current-buffer))
(erase-buffer)
(insert (regexp-quote string))
- (setq beg 1)
(setq case-fold-search nil)
- (goto-char (point-min))
- (when (looking-at vernum)
- (replace-match vernum t t)
- (setq beg (length vernum)))
- (goto-char beg)
- (if (re-search-forward "[ \t]*[0-9]+/[0-9]+" nil t)
- (replace-match " [0-9]+/[0-9]+")
+ (end-of-line)
+ (if (re-search-backward "\\([^0-9]\\)[0-9]+/[0-9]+" nil t)
+ (replace-match "\\1[0-9]+/[0-9]+")
- (goto-char beg)
- (if (re-search-forward "[0-9]+[ \t]*of[ \t]*[0-9]+" nil t)
- (replace-match "[0-9]+ of [0-9]+")
+ (end-of-line)
+ (if (re-search-backward "\\([^0-9]\\)[0-9]+[ \t]*of[ \t]*[0-9]+" nil t)
+ (replace-match "\\1[0-9]+ of [0-9]+")
(end-of-line)
(if (re-search-backward "\\([^0-9]\\)[0-9]+\\([^0-9]+\\)[0-9]+"
nil t)
(replace-match "\\1[0-9]+\\2[0-9]+" t nil nil nil))))
- (goto-char beg)
+ (goto-char 1)
(while (re-search-forward "[ \t]+" nil t)
- (replace-match "[ \t]*" t t))
+ (replace-match "[ \t]+" t t))
(buffer-substring 1 (point-max)))))
(defun gnus-uu-part-number (article)
(let* ((header (gnus-summary-article-header article))
- (subject (and header (mail-header-subject header))))
- (if (and subject
- (string-match "[0-9]+ */[0-9]+\\|[0-9]+ * of *[0-9]+" subject))
- (match-string 0 subject)
- "")))
+ (subject (and header (mail-header-subject header)))
+ (part nil))
+ (if subject
+ (while (string-match "[0-9]+/[0-9]+\\|[0-9]+[ \t]+of[ \t]+[0-9]+"
+ subject)
+ (setq part (match-string 0 subject))
+ (setq subject (substring subject (match-end 0)))))
+ (or part
+ (while (string-match "\\([0-9]+\\)[^0-9]+\\([0-9]+\\)" subject)
+ (setq part (match-string 0 subject))
+ (setq subject (substring subject (match-end 0)))))
+ (or part "")))
(defun gnus-uu-uudecode-sentinel (process event)
(delete-process (get-process process)))
:link '(custom-manual "(gnus)Exiting Gnus")
:group 'gnus)
-(defconst gnus-version-number "6.8.3"
+(defconst gnus-version-number "6.8.4"
"Version number for this version of gnus.")
(defconst gnus-version
- (format "Semi-gnus %s (based on Gnus 5.6.24; for SEMI 1.8, FLIM 1.8/1.9)"
+ (format "Semi-gnus %s (based on Gnus 5.6.27; for SEMI 1.8, FLIM 1.8/1.9)"
gnus-version-number)
"Version string for this version of gnus.")
(set-file-modes
tofile nnmail-default-file-modes))))
;; Probably a real error.
+ ;; We nix out the password in case the error
+ ;; was because of a wrong password being given.
+ (setq nnmail-internal-password nil)
(subst-char-in-region (point-min) (point-max) ?\n ?\ )
(goto-char (point-max))
(skip-chars-backward " \t")
+1998-07-21 17:51 Simon Josefsson <jas@pdc.kth.se>
+
+ * gnus.texi (Splitting Mail): junk is fancy splitting only
+
+ * gnus.texi (Fancy Mail Splitting): warn about junk
+
+1998-07-27 02:28:33 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Topic Commands): Fix.
+
+1998-07-27 02:23:17 Robert Bihlmeyer <robbe@orcus.priv.at>
+
+ * gnus.texi (Score Decays): Fix.
+
Sun Jul 12 04:03:27 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* gnus.texi (Home Score File): Addition.
\input texinfo @c -*-texinfo-*-
@setfilename gnus
-@settitle Semi-gnus 6.8.3 Manual
+@settitle Semi-gnus 6.8.4 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Semi-gnus 6.8.3 Manual
+@title Semi-gnus 6.8.4 Manual
@author by Lars Magne Ingebrigtsen
@page
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.8.1.
+This manual corresponds to Semi-gnus 6.8.4.
@end ifinfo
Copy all groups that match some regular expression to a topic
(@code{gnus-topic-copy-matching}).
-@item T h
-@kindex T h (Topic)
+@item T H
+@kindex T H (Topic)
@findex gnus-topic-toggle-display-empty-topics
Toggle hiding empty topics
(@code{gnus-topic-toggle-display-empty-topics}).
("list.\\1" "From:.*\\(.*\\)-list@@majordomo.com")
@end lisp
-If the first element is the special symbol @code{junk}, then messages
-that match the regexp will disappear into the aether. Use with
-extreme caution.
-
The second element can also be a function. In that case, it will be
called narrowed to the headers with the first element of the rule as the
argument. It should return a non-@code{nil} value if it thinks that the
@item
@code{junk}: If the split is the symbol @code{junk}, then don't save
-this message.
+this message. Use with extreme caution.
@item
@var{(: function arg1 arg2 ...)}: If the split is a list, and the first
@vindex gnus-decay-scores
@findex gnus-decay-score
-@vindex gnus-score-decay-function
+@vindex gnus-decay-score-function
Gnus provides a mechanism for decaying scores to help with this problem.
When score files are loaded and @code{gnus-decay-scores} is
non-@code{nil}, Gnus will run the score files through the decaying
mechanism thereby lowering the scores of all non-permanent score rules.
-The decay itself if performed by the @code{gnus-score-decay-function}
+The decay itself if performed by the @code{gnus-decay-score-function}
function, which is @code{gnus-decay-score} by default. Here's the
definition of that function:
January 25th 1997 (after 84 releases) as ``Gnus 5.4'' (67 releases).
On September 13th 1997, Quassia Gnus was started and lasted 37
-releases. If was released as ``Gnus 5.6.26' on March 8th 1998.
+releases. If was released as ``Gnus 5.6.27' on March 8th 1998.
If you happen upon a version of Gnus that has a prefixed name --
``(ding) Gnus'', ``September Gnus'', ``Red Gnus'', ``Quassia Gnus'' --
* ding Gnus:: New things in Gnus 5.0/5.1, the first new Gnus.
* September Gnus:: The Thing Formally Known As Gnus 5.3/5.3.
* Red Gnus:: Third time best---Gnus 5.4/5.5.
-* Quassia Gnus:: Two times two is four, or Gnus 5.6.26.
+* Quassia Gnus:: Two times two is four, or Gnus 5.6.27.
@end menu
These lists are, of course, just @emph{short} overviews of the
@node Quassia Gnus
@subsubsection Quassia Gnus
-New features in Gnus 5.6.26:
+New features in Gnus 5.6.27:
@itemize @bullet
\input texinfo @c -*-texinfo-*-
@setfilename message
-@settitle Message 5.6.26 Manual
+@settitle Message 5.6.27 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Message 5.6.26 Manual
+@title Message 5.6.27 Manual
@author by Lars Magne Ingebrigtsen
@page
* Key Index:: List of Message mode keys.
@end menu
-This manual corresponds to Message 5.6.26. Message is distributed with
+This manual corresponds to Message 5.6.27. Message is distributed with
the Gnus distribution bearing the same version number as this manual
has.