+Tue Mar 18 17:56:26 1997 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Gnus v5.4.29 is released.
+
+Tue Mar 18 14:29:49 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus-group.el (gnus-group-read-ephemeral-group): Would set virt
+ ser too much.
+ (gnus-group-read-group): Return right value.
+
+ * nnml.el (nnml-generate-nov-databases-1): Save active.
+
+ * gnus-msg.el (gnus-summary-supersede-article): Place point in the
+ with buffer.
+ (gnus-inews-add-to-address): Prompt before adding.
+
+ * gnus-art.el (article-strip-leading-space): Not a new command
+ and keystroke (HTDW Jaari fix).
+
+ * nnfolder.el (nnfolder-close-group): Don't push bogus entries
+ onto alist.
+
+Tue Mar 18 14:28:27 1997 Jan Vroonhof <vroonhof@math.ethz.ch>
+
+ * nnfolder.el (nnfolder-request-scan): Check whether buffer really
+ is live.
+
+Tue Mar 18 13:53:00 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus-group.el (gnus-group-read-group): Iterate instead of
+ recurse.
+
+ * nnfolder.el (nnfolder-request-accept-article): Don't insert into
+ Message-ID cache.
+ * nnbabyl.el (nnbabyl-request-accept-article): Ditto.
+ * nnmbox.el (nnmbox-request-accept-article): Ditto.
+ * nnml.el (nnml-request-accept-article): Ditto.
+ * nnmh.el (nnmh-request-accept-article): Ditto.
+
Tue Mar 18 00:35:06 1997 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
* gnus.el: Gnus v5.4.28 is released.
(while (re-search-forward "\n\n\n+" nil t)
(replace-match "\n\n" t t)))))
+(defun article-strip-leading-space ()
+ "Remove all white space from the beginning of the lines in the article."
+ (interactive)
+ (save-excursion
+ (let ((inhibit-point-motion-hooks t)
+ buffer-read-only)
+ (goto-char (point-min))
+ (search-forward "\n\n" nil t)
+ (while (re-search-forward "^[ \t]+" nil t)
+ (replace-match "" t t)))))
+
(defun article-strip-blank-lines ()
"Strip leading, trailing and multiple blank lines."
(interactive)
article-remove-trailing-blank-lines
article-strip-leading-blank-lines
article-strip-multiple-blank-lines
+ article-strip-leading-space
article-strip-blank-lines
article-date-local
article-date-original
;; Selecting groups.
+(defvar gnus-auto-select-next)
(defun gnus-group-read-group (&optional all no-article group)
"Read news in this newsgroup.
If the prefix argument ALL is non-nil, already read articles become
(interactive "P")
(let ((no-display (eq all 0))
(group (or group (gnus-group-group-name)))
- number active marked entry)
+ number active marked entry selected did-select)
(when (eq all 0)
(setq all nil))
(unless group
(error "No group on current line"))
- (setq marked (gnus-info-marks
- (nth 2 (setq entry (gnus-gethash
- group gnus-newsrc-hashtb)))))
- ;; This group might be a dead group. In that case we have to get
- ;; the number of unread articles from `gnus-active-hashtb'.
- (setq number
- (cond ((numberp all) all)
- (entry (car entry))
- ((setq active (gnus-active group))
- (- (1+ (cdr active)) (car active)))))
- (gnus-summary-read-group
- group (or all (and (numberp number)
- (zerop (+ number (gnus-range-length
- (cdr (assq 'tick marked)))
- (gnus-range-length
- (cdr (assq 'dormant marked)))))))
- no-article nil no-display)))
+ ;; We loop here in case all articles in the group we try to select
+ ;; is scored out and we want to go to the next group.
+ (while (not selected)
+ (setq marked (gnus-info-marks
+ (nth 2 (setq entry (gnus-gethash
+ group gnus-newsrc-hashtb)))))
+ ;; This group might be a dead group. In that case we have to get
+ ;; the number of unread articles from `gnus-active-hashtb'.
+ (setq number
+ (cond ((numberp all) all)
+ (entry (car entry))
+ ((setq active (gnus-active group))
+ (- (1+ (cdr active)) (car active)))))
+ (setq did-select
+ (let ((gnus-auto-select-next nil))
+ (gnus-summary-read-group
+ group
+ (or all (and (numberp number)
+ (zerop
+ (+ number
+ (gnus-range-length
+ (cdr (assq 'tick marked)))
+ (gnus-range-length
+ (cdr (assq 'dormant marked)))))))
+ no-article nil no-display)))
+ (if (and (not did-select)
+ (eq gnus-auto-select-next 'quietly))
+ (setq group (gnus-group-group-name))
+ (setq selected t)))
+ did-select))
(defun gnus-group-select-group (&optional all)
"Select this newsgroup.
(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)))))
+ (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
(gnus-summary-select-article t)
(set-buffer gnus-original-article-buffer)
(message-supersede)
- (push
- `((lambda ()
- (gnus-cache-possibly-remove-article ,article nil nil nil t)))
- message-send-actions)
(push
`((lambda ()
(when (buffer-name (get-buffer ,gnus-summary-buffer))
(save-excursion
(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))))
(gnus-alive-p))
;; This mail group doesn't have a `to-list', so we add one
;; here. Magic!
- (gnus-group-add-parameter group (cons 'to-list to-address)))))
+ (when (gnus-y-or-n-p
+ (format "Do you want to add this as `to-list': %s " to-address))
+ (gnus-group-add-parameter group (cons 'to-list to-address))))))
(defun gnus-put-message ()
"Put the current message in some group and return to Gnus."
"t" gnus-article-remove-trailing-blank-lines
"l" gnus-article-strip-leading-blank-lines
"m" gnus-article-strip-multiple-blank-lines
- "a" gnus-article-strip-blank-lines)
+ "a" gnus-article-strip-blank-lines
+ "s" gnus-article-strip-leading-space)
(gnus-define-keys (gnus-summary-help-map "H" gnus-summary-mode-map)
"v" gnus-version
["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 of the above" gnus-article-strip-blank-lines t]
+ ["Leading space" gnus-article-strip-leading-space t])
["Overstrike" gnus-article-treat-overstrike t]
["Emphasis" gnus-article-emphasize t]
["Word wrap" gnus-article-fill-cited-article t]
:link '(custom-manual "(gnus)Exiting Gnus")
:group 'gnus)
-(defconst gnus-version-number "5.4.28"
+(defconst gnus-version-number "5.4.29"
"Version number for this version of Gnus.")
(defconst gnus-version (format "Gnus v%s" gnus-version-number)
(save-excursion
(while (re-search-backward "^X-Gnus-Newsgroup: " beg t)
(delete-region (point) (progn (forward-line 1) (point)))))
- (nnmail-cache-insert (nnmail-fetch-field "message-id"))
(setq result (car (nnbabyl-save-mail
(if (stringp group)
(list (cons group (nnbabyl-active-number group)))
(goto-char (match-end 0))
(insert-buffer-substring buf)
(when last
- (nnmail-cache-insert (nnmail-fetch-field "message-id"))
(save-buffer)
(nnmail-save-active nnbabyl-group-alist nnbabyl-active-file))
result))))
(let ((bufs nnfolder-buffer-alist))
(save-excursion
(while bufs
- (if (not (buffer-name (nth 1 (car bufs))))
+ (if (not (buffer-live-p (nth 1 (car bufs))))
(setq nnfolder-buffer-alist
(delq (car bufs) nnfolder-buffer-alist))
(set-buffer (nth 1 (car bufs)))
(equal group nnfolder-current-group))
(let ((inf (assoc group nnfolder-buffer-alist)))
(when inf
- (when nnfolder-current-group
+ (when (and nnfolder-current-group
+ nnfolder-current-buffer)
(push (list nnfolder-current-group nnfolder-current-buffer)
nnfolder-buffer-alist))
(setq nnfolder-buffer-alist
(forward-line -1)
(while (re-search-backward (concat "^" nnfolder-article-marker) nil t)
(delete-region (point) (progn (forward-line 1) (point))))
- (nnmail-cache-insert (nnmail-fetch-field "message-id"))
(setq result
(car (nnfolder-save-mail
(if (stringp group)
(when last
(save-excursion
(nnfolder-possibly-change-folder (or (caar art-group) group))
- (nnfolder-save-buffer)
- (nnmail-cache-close))))
+ (nnfolder-save-buffer))))
(nnmail-save-active nnfolder-group-alist nnfolder-active-file)
(unless result
(nnheader-report 'nnfolder "Couldn't store article"))
(forward-line -1)
(while (re-search-backward "^X-Gnus-Newsgroup: " nil t)
(delete-region (point) (progn (forward-line 1) (point))))
- (nnmail-cache-insert (nnmail-fetch-field "message-id"))
(setq result (nnmbox-save-mail
(if (stringp group)
(list (cons group (nnmbox-active-number group)))
(goto-char (point-max))
(insert-buffer-substring buf)
(when last
- (nnmail-cache-close)
(nnmail-save-active nnmbox-group-alist nnmbox-active-file)
(save-buffer))))
(car result)))
(deffoo nnmh-request-accept-article (group &optional server last noinsert)
(nnmh-possibly-change-directory group server)
(nnmail-check-syntax)
- (nnmail-cache-insert (nnmail-fetch-field "message-id"))
- (prog1
- (if (stringp group)
- (and
- (nnmail-activate 'nnmh)
- (car (nnmh-save-mail
- (list (cons group (nnmh-active-number group)))
- noinsert)))
- (and
- (nnmail-activate 'nnmh)
- (car (nnmh-save-mail (nnmail-article-group 'nnmh-active-number)
- noinsert))))
- (when last
- (nnmail-cache-close))))
+ (if (stringp group)
+ (and
+ (nnmail-activate 'nnmh)
+ (car (nnmh-save-mail
+ (list (cons group (nnmh-active-number group)))
+ noinsert)))
+ (and
+ (nnmail-activate 'nnmh)
+ (car (nnmh-save-mail (nnmail-article-group 'nnmh-active-number)
+ noinsert)))))
(deffoo nnmh-request-replace-article (article group buffer)
(nnmh-possibly-change-directory group)
(nnml-possibly-change-directory group server)
(nnmail-check-syntax)
(let (result)
- (nnmail-cache-insert (nnmail-fetch-field "message-id"))
(if (stringp group)
(and
(nnmail-activate 'nnml)
(nnmail-article-group 'nnml-active-number))))
(when last
(nnmail-save-active nnml-group-alist nnml-active-file)
- (nnmail-cache-close)
(nnml-save-nov))))
result))
(nnml-open-server (or (nnoo-current-server 'nnml) ""))
(setq nnml-directory (expand-file-name nnml-directory))
;; Recurse down the directories.
- (nnml-generate-nov-databases-1 nnml-directory)
+ (nnml-generate-nov-databases-1 nnml-directory nil t)
;; Save the active file.
(nnmail-save-active nnml-group-alist nnml-active-file))
-(defun nnml-generate-nov-databases-1 (dir &optional seen)
+(defun nnml-generate-nov-databases-1 (dir &optional seen no-active)
"Regenerate the NOV database in DIR."
(interactive "DRegenerate NOV in: ")
(setq dir (file-name-as-directory dir))
(when files
(funcall nnml-generate-active-function dir)
;; Generate the nov file.
- (nnml-generate-nov-file dir files)))))
+ (nnml-generate-nov-file dir files)
+ (unless no-active
+ (nnmail-save-active nnml-group-alist nnml-active-file))))))
(defvar files)
(defun nnml-generate-active-info (dir)
+Tue Mar 18 14:43:32 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus.texi (Article Washing): Not addition.
+
Mon Mar 17 16:15:54 1997 Philippe Schnoebelen <Philippe.Schnoebelen@lsv.ens-cachan.fr>
* Makefile (install): Install properly.
\input texinfo @c -*-texinfo-*-
@setfilename gnus
-@settitle Gnus 5.4.28 Manual
+@settitle Gnus 5.4.29 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Gnus 5.4.28 Manual
+@title Gnus 5.4.29 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.28
+This manual corresponds to Gnus 5.4.29
@end ifinfo
Do all the three commands above
(@code{gnus-article-strip-blank-lines}).
+@item W E s
+@kindex W E s (Summary)
+@findex gnus-article-strip-leading-space
+Remove all white space from the beginning of all lines of the article
+body (@code{gnus-article-strip-leading-space}).
+
@end table
* point in the article buffer doesn't always go to the
beginning of the buffer when selecting new articles.
+
+* a command to process mark all unread articles.
+
+* `gnus-gather-threads-by-references-and-subject' -- first
+do gathering by references, and then go through the dummy roots and
+do more gathering by subject.
+
+* gnus-uu-mark-in-numerical-order -- process mark articles in
+article numerical order.