*** pub/sgnus/lisp/gnus-nocem.el Fri Feb 23 03:35:46 1996 --- sgnus/lisp/gnus-nocem.el Sat Feb 24 02:48:34 1996 *************** *** 118,137 **** "Check whether the current article is an NCM article and that we want it." (nnheader-temp-write nil ;; Get the article. (gnus-request-article-this-buffer number group) (nnheader-narrow-to-headers) (let ((date (mail-fetch-field "date")) ! issuer b) (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) (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)) (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... --- 118,139 ---- "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 e) (widen) ;; The article has to have proper NoCeM headers. (when (and (setq b (search-forward "\n@@BEGIN NCM HEADERS\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 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... *** pub/sgnus/lisp/gnus.el Fri Feb 23 03:35:51 1996 --- sgnus/lisp/gnus.el Sat Feb 24 02:55:03 1996 *************** *** 1686,1692 **** "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)" "The mail address of the Gnus maintainers.") ! (defconst gnus-version "September Gnus v0.41" "Version number for this version of Gnus.") (defvar gnus-info-nodes --- 1686,1692 ---- "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)" "The mail address of the Gnus maintainers.") ! (defconst gnus-version "September Gnus v0.42" "Version number for this version of Gnus.") (defvar gnus-info-nodes *************** *** 7044,7054 **** (defun gnus-article-parent-p (number) "Say whether this article is a parent or not." ! (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)))))) (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))) --- 7044,7066 ---- (defun gnus-article-parent-p (number) "Say whether this article is a parent or not." ! (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))) *************** *** 7336,7341 **** --- 7348,7355 ---- (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)))))))) *************** *** 9516,9522 **** (when gnus-use-trees (gnus-tree-close group)) ;; Make all changes in this group permanent. ! (gnus-summary-update-info) ;; Make sure where I was, and go to next newsgroup. (set-buffer gnus-group-buffer) (unless quit-config --- 9530,9537 ---- (when gnus-use-trees (gnus-tree-close group)) ;; Make all changes in this group permanent. ! (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 *************** *** 10348,10363 **** "Hide all dormant articles that have no children." (interactive) (gnus-set-global-variables) ! (let ((data gnus-newsgroup-data) ! articles) ;; 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))) ;; Do the limiting. (prog1 (gnus-summary-limit articles) --- 10363,10384 ---- "Hide all dormant articles that have no children." (interactive) (gnus-set-global-variables) ! (let ((data (gnus-data-list t)) ! articles d children) ;; Find all articles that are either not dormant or have ;; children. ! (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) *************** *** 10676,10683 **** ,(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)))) ;; Couldn't select this doc group. (switch-to-buffer buf) (gnus-set-global-variables) --- 10697,10704 ---- ,(get-buffer dig)) (nndoc-article-type ,(if force 'digest 'guess))) t) ;; Make all postings to this group go to the parent group. ! (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) *** pub/sgnus/lisp/nndoc.el Fri Feb 23 03:35:51 1996 --- sgnus/lisp/nndoc.el Sat Feb 24 00:50:27 1996 *************** *** 126,131 **** --- 126,137 ---- (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" *** pub/sgnus/lisp/nndraft.el Fri Feb 23 03:35:51 1996 --- sgnus/lisp/nndraft.el Sat Feb 24 02:09:54 1996 *************** *** 241,246 **** --- 241,247 ---- (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)))) *** pub/sgnus/lisp/nnml.el Fri Feb 23 03:35:52 1996 --- sgnus/lisp/nnml.el Sat Feb 24 02:48:32 1996 *************** *** 489,512 **** (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)) (defun nnml-retrieve-headers-with-nov (articles &optional fetch-old) (if (or gnus-nov-is-evil nnml-nov-is-evil) --- 489,513 ---- (defun nnml-find-id (group id) (erase-buffer) ! (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) *** pub/sgnus/lisp/ChangeLog Fri Feb 23 03:36:00 1996 --- sgnus/lisp/ChangeLog Sat Feb 24 02:48:32 1996 *************** *** 1,4 **** --- 1,31 ---- + Sat Feb 24 01:08:55 1996 Lars Magne Ingebrigtsen + + * 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 + + * 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 + + * gnus.el: 0.41 is released. * gnus.el (gnus-read-active-file): Would put wrong method on `gnus-have-read-active-file'. *** pub/sgnus/texi/gnus.texi Fri Feb 23 03:36:03 1996 --- sgnus/texi/gnus.texi Sat Feb 24 02:10:28 1996 *************** *** 411,417 **** 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 would typically set this variable to @lisp --- 411,417 ---- 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 your mail, you would typically set this variable to @lisp *************** *** 1640,1646 **** (@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. @item G V @kindex G V (Group) --- 1640,1646 ---- (@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 ! absolutely sure of what you are doing. @item G V @kindex G V (Group) *************** *** 2513,2519 **** @item s @kindex s (Group) @findex gnus-group-save-newsrc ! @cindex savind .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. --- 2513,2519 ---- @item s @kindex s (Group) @findex gnus-group-save-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. *************** *** 3250,3256 **** There are several marks you can set on an article. ! You have marks that decide the @dfn{readed-ness} (whoo, neato-keano neologism ohoy!) of the article. Alphabetic marks generally mean @dfn{read}, while non-alphabetic characters generally mean @dfn{unread}. --- 3250,3256 ---- There are several marks you can set on an article. ! 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}. *************** *** 4410,4416 **** 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 the latter does not. @item gnus-summary-save-in-vm --- 4410,4416 ---- 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 capitalized names, and the latter does not. @item gnus-summary-save-in-vm *************** *** 4449,4455 **** @end table @vindex gnus-split-methods ! You can have Gnus suggest where to save articles by plonking 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 --- 4449,4455 ---- @end table @vindex gnus-split-methods ! 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 *************** *** 4578,4584 **** @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 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}). --- 4578,4584 ---- @end table Remember that these all react to the presence of articles marked with ! 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}). *************** *** 6978,6987 **** @item mail-citation-hook @vindex mail-citation-hook ! This hook is run after yankning 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. For instance, if you want to remove signatures automatically, you could say something like: --- 6978,6987 ---- @item mail-citation-hook @vindex mail-citation-hook ! 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 indented automatically---you have to do that explicitly. For instance, if you want to remove signatures automatically, you could say something like: *************** *** 10743,10749 **** @cindex menus @vindex gnus-visual ! The @code{gnus-visual} variable controls most of the prettyfying 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. --- 10743,10749 ---- @cindex menus @vindex gnus-visual ! 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. *************** *** 10792,10798 **** 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: @table @code @item gnus-mouse-face --- 10792,10798 ---- If @code{gnus-visual} is @code{t}, highlighting and menus will be used in all Gnus buffers. ! Other general variables that influence the look of all buffers include: @table @code @item gnus-mouse-face *************** *** 11002,11008 **** 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 implies---these are messages that make the offending articles, like, go away. --- 11002,11008 ---- 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 pronounced ``no see-'em'', and means what the name implies---these are messages that make the offending articles, like, go away. *************** *** 11053,11059 **** @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). @end table You do not have to heed NoCeM messages from all these people---just the --- 11053,11059 ---- @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 (regurgitated articles). @end table You do not have to heed NoCeM messages from all these people---just the *************** *** 11125,11131 **** @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. @item gnus-parse-header-hook @vindex gnus-parse-header-hook --- 11125,11131 ---- @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 invisible text invisible and intangible. @item gnus-parse-header-hook @vindex gnus-parse-header-hook *** pub/sgnus/texi/ChangeLog Fri Feb 23 03:36:01 1996 --- sgnus/texi/ChangeLog Sat Feb 24 02:48:34 1996 *************** *** 1,3 **** --- 1,7 ---- + Sat Feb 24 01:11:40 1996 Mark Borges + + * gnus.texi: Typo fixes. + Thu Feb 22 18:44:29 1996 Lars Ingebrigtsen * gnus.texi (Choosing Articles): Addition.