+Sat Feb 24 01:08:55 1996 Lars Magne Ingebrigtsen <larsi@trym.ifi.uio.no>
+
+ * nnml.el (nnml-find-id): Make sure the .overview file exists
+ before reading it.
+
+ * gnus.el (gnus-article-children): New function.
+ (gnus-summary-limit-exclude-childless-dormant): Use it to exclude
+ all childless dormants.
+
+ * gnus-nocem.el (gnus-nocem-check-article): Would narrow to wrong
+ region.
+
+ * nndraft.el (nndraft-execute-nnmh-command): Make sure
+ `nnmail-keep-last-article' is nil.
+
+Sat Feb 24 00:27:34 1996 Lars Magne Ingebrigtsen <larsi@eistla.ifi.uio.no>
+
+ * gnus.el (gnus-summary-set-local-parameters): Don't set
+ `to-address' local parameters etc.
+ (gnus-summary-exit): Would insert dummy lines in the group
+ buffer.
+ (gnus-summary-enter-digest-group): Would wipe out the quirt-config.
+
+ * nndoc.el (nndoc-server-variables): Didn't save all variables.
+
Fri Feb 23 00:24:55 1996 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+ * gnus.el: 0.41 is released.
+
* gnus.el (gnus-read-active-file): Would put wrong method on
`gnus-have-read-active-file'.
"Check whether the current article is an NCM article and that we want it."
(nnheader-temp-write nil
;; Get the article.
+ (gnus-message 7 "Check in article %d in %s for NoCeM..."
+ number group)
(gnus-request-article-this-buffer number group)
(nnheader-narrow-to-headers)
(let ((date (mail-fetch-field "date"))
- issuer b)
+ issuer b e)
(widen)
;; The article has to have proper NoCeM headers.
(when (and (setq b (search-forward "\n@@BEGIN NCM HEADERS\n" nil t))
- (search-forward "\n@@BEGIN NCM BODY\n" nil t)
+ (setq e (search-forward "\n@@BEGIN NCM BODY\n" nil t))
(or (not date)
(nnmail-time-less
(nnmail-time-since (nnmail-date-to-time date))
(nnmail-days-to-time gnus-nocem-expiry-wait))))
;; We get the name of the issuer.
- (narrow-to-region b (match-beginning 0))
+ (narrow-to-region b e)
(setq issuer (mail-fetch-field "issuer"))
(and (member issuer gnus-nocem-issuers) ; We like her...
(gnus-nocem-verify-issuer issuer) ; She is who she says she is...
"gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
"The mail address of the Gnus maintainers.")
-(defconst gnus-version "September Gnus v0.41"
+(defconst gnus-version "September Gnus v0.42"
"Version number for this version of Gnus.")
(defvar gnus-info-nodes
(defun gnus-article-parent-p (number)
"Say whether this article is a parent or not."
- (let* ((data (gnus-data-find-list number)))
+ (let ((data (gnus-data-find-list number)))
(and (cdr data) ; There has to be an article after...
(< (gnus-data-level (car data)) ; And it has to have a higher level.
(gnus-data-level (nth 1 data))))))
+(defun gnus-article-children (number)
+ "Return a list of all children to NUMBER."
+ (let* ((data (gnus-data-find-list number))
+ (level (gnus-data-level (car data)))
+ children)
+ (setq data (cdr data))
+ (while (and data
+ (= (gnus-data-level (car data)) (1+ level)))
+ (push (gnus-data-number (car data)) children)
+ (setq data (cdr data)))
+ children))
+
(defmacro gnus-summary-skip-intangible ()
"If the current article is intangible, then jump to a different article."
'(let ((to (get-text-property (point) 'gnus-intangible)))
(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 to-address to-list to-group)))
(progn ; So we set it.
(make-local-variable (car elem))
(set (car elem) (eval (nth 1 elem))))))))
(when gnus-use-trees
(gnus-tree-close group))
;; Make all changes in this group permanent.
- (gnus-summary-update-info)
+ (unless quit-config
+ (gnus-summary-update-info))
;; Make sure where I was, and go to next newsgroup.
(set-buffer gnus-group-buffer)
(unless quit-config
"Hide all dormant articles that have no children."
(interactive)
(gnus-set-global-variables)
- (let ((data gnus-newsgroup-data)
- articles)
+ (let ((data (gnus-data-list t))
+ articles d children)
;; Find all articles that are either not dormant or have
;; children.
- (while data
- (and (or (not (= (gnus-data-mark (car data)) gnus-dormant-mark))
- (gnus-article-parent-p (gnus-data-number (car data))))
- (setq articles (cons (gnus-data-number (car data))
- articles)))
- (setq data (cdr data)))
+ (while (setq d (pop data))
+ (when (or (not (= (gnus-data-mark d) gnus-dormant-mark))
+ (and (setq children
+ (gnus-article-children (gnus-data-number d)))
+ (let (found)
+ (while children
+ (when (memq (car children) articles)
+ (setq children nil
+ found t))
+ (pop children))
+ found)))
+ (push (gnus-data-number d) articles)))
;; Do the limiting.
(prog1
(gnus-summary-limit articles)
,(get-buffer dig))
(nndoc-article-type ,(if force 'digest 'guess))) t)
;; Make all postings to this group go to the parent group.
- (setcdr (nthcdr 4 (gnus-get-info name))
- (list (list (cons 'to-group ogroup))))
+ (nconc (gnus-info-params (gnus-get-info name))
+ (list (cons 'to-group ogroup)))
;; Couldn't select this doc group.
(switch-to-buffer buf)
(gnus-set-global-variables)
(nndoc-group-alist nil)
(nndoc-end-of-file nil)
(nndoc-body-begin nil)
+ (nndoc-dissection-alist nil)
+ (nndoc-generate-head nil)
+ (nndoc-article-transform nil)
+ (nndoc-body-end-function nil)
+ (nndoc-prepare-body nil)
+ (nndoc-body-begin-function nil)
(nndoc-address nil)))
(defconst nndoc-version "nndoc 1.0"
(string-match "/[^/]+$" dir)
(let ((group (substring dir (1+ (match-beginning 0))))
(nnmh-directory (substring dir 0 (1+ (match-beginning 0))))
+ (nnmail-keep-last-article nil)
(nnmh-get-new-mail nil))
(eval command))))
(defun nnml-find-id (group id)
(erase-buffer)
- (insert-file-contents
- (concat (nnmail-group-pathname group nnml-directory)
- nnml-nov-file-name))
- (let (number found)
- (while (and (not found)
- (search-forward id nil t)) ; We find the ID.
- ;; And the id is in the fourth field.
- (if (search-backward
- "\t" (save-excursion (beginning-of-line) (point)) t 4)
- (progn
- (beginning-of-line)
- (setq found t)
- ;; We return the article number.
- (setq number
- (condition-case ()
- (read (current-buffer))
- (error nil))))))
- number))
+ (let ((nov (concat (nnmail-group-pathname group nnml-directory)
+ nnml-nov-file-name))
+ number found)
+ (when (file-exists-p nov)
+ (insert-file-contents nov)
+ (while (and (not found)
+ (search-forward id nil t)) ; We find the ID.
+ ;; And the id is in the fourth field.
+ (if (search-backward
+ "\t" (save-excursion (beginning-of-line) (point)) t 4)
+ (progn
+ (beginning-of-line)
+ (setq found t)
+ ;; We return the article number.
+ (setq number
+ (condition-case ()
+ (read (current-buffer))
+ (error nil))))))
+ number)))
(defun nnml-retrieve-headers-with-nov (articles &optional fetch-old)
(if (or gnus-nov-is-evil nnml-nov-is-evil)
+Sat Feb 24 01:11:40 1996 Mark Borges <mdb@cdc.noaa.gov>
+
+ * gnus.texi: Typo fixes.
+
Thu Feb 22 18:44:29 1996 Lars Ingebrigtsen <lars@eyesore.no>
* gnus.texi (Choosing Articles): Addition.
appear on these servers will be subscribed (or not) just as native
groups are.
-For instance, if you use the @code{nnmbox} backend to read you mail, you
+For instance, if you use the @code{nnmbox} backend to read your mail, you
would typically set this variable to
@lisp
(@code{gnus-group-delete-group}). If given a prefix, this function will
actually delete all the articles in the group, and forcibly remove the
group itself from the face of the Earth. Use a prefix only if you are
-aboslutely sure of what you are doing.
+absolutely sure of what you are doing.
@item G V
@kindex G V (Group)
@item s
@kindex s (Group)
@findex gnus-group-save-newsrc
-@cindex savind .newsrc
+@cindex saving .newsrc
Save the @file{.newsrc.eld} file (and @file{.newsrc} if wanted)
(@code{gnus-group-save-newsrc}). If given a prefix, force saving the
file(s) whether Gnus thinks it is necessary or not.
There are several marks you can set on an article.
-You have marks that decide the @dfn{readed-ness} (whoo, neato-keano
+You have marks that decide the @dfn{readedness} (whoo, neato-keano
neologism ohoy!) of the article. Alphabetic marks generally mean
@dfn{read}, while non-alphabetic characters generally mean @dfn{unread}.
library. Uses the function in the @code{gnus-folder-save-name} variable
to get a file name to save the article in. The default is
@code{gnus-folder-save-name}, but you can also use
-@code{gnus-Folder-save-name}. The former creates capitilized names, and
+@code{gnus-Folder-save-name}. The former creates capitalized names, and
the latter does not.
@item gnus-summary-save-in-vm
@end table
@vindex gnus-split-methods
-You can have Gnus suggest where to save articles by plonking regexp into
+You can have Gnus suggest where to save articles by plonking a regexp into
the @code{gnus-split-methods} alist. For instance, if you would like to
save articles related to Gnus in the file @file{gnus-stuff}, and articles
related to VM in @code{vm-stuff}, you could set this variable to something
@end table
Remember that these all react to the presence of articles marked with
-the process mark. If, for instance, you'd like to uncode and save an
+the process mark. If, for instance, you'd like to decode and save an
entire newsgroup, you'd typically do @kbd{M P a}
(@code{gnus-uu-mark-all}) and then @kbd{X U}
(@code{gnus-uu-decode-uu-and-save}).
@item mail-citation-hook
@vindex mail-citation-hook
-This hook is run after yankning a message, both in mail and post
+This hook is run after yanking a message, both in mail and post
buffers. Point will be at the beginning of the yanked message and mark
will be at the end. If this hook is non-@code{nil} the yanked text
-won't be indended automatically---you have to do that explicitly.
+won't be indented automatically---you have to do that explicitly.
For instance, if you want to remove signatures automatically, you could
say something like:
@cindex menus
@vindex gnus-visual
-The @code{gnus-visual} variable controls most of the prettyfying Gnus
+The @code{gnus-visual} variable controls most of the prettifying Gnus
aspects. If @code{nil}, Gnus won't attempt to create menus or use fancy
colors or fonts. This will also inhibit loading the @file{gnus-vis.el}
file.
If @code{gnus-visual} is @code{t}, highlighting and menus will be used
in all Gnus buffers.
-Other general variables that incluence the look of all buffers include:
+Other general variables that influence the look of all buffers include:
@table @code
@item gnus-mouse-face
Spamming is usually canceled within a day or so by various anti-spamming
agencies. These agencies usually also send out @dfn{NoCeM} messages.
-NoCeM is pronouced ``no see-'em'', and means what the name
+NoCeM is pronounced ``no see-'em'', and means what the name
implies---these are messages that make the offending articles, like, go
away.
@item red@@redpoll.mrfs.oh.us (Richard E. Depew)
Richard E. Depew---lone American despammer. He mostly cancels binary
-postings to non-binary groups and removes spews (regurgitaed articles).
+postings to non-binary groups and removes spews (regurgitated articles).
@end table
You do not have to heed NoCeM messages from all these people---just the
@vindex gnus-hidden-properties
This is a list of properties to use to hide ``invisible'' text. It is
@code{(invisible t intangible t)} by default on most systems, which
-makes invisble text invisible and intangible.
+makes invisible text invisible and intangible.
@item gnus-parse-header-hook
@vindex gnus-parse-header-hook