From: yamaoka Date: Mon, 7 May 2001 01:53:38 +0000 (+0000) Subject: T-gnus 6.15.4 revision 00 (Synch with latest Oort Gnus) X-Git-Tag: t-gnus-6_15_4-00-quimby~1 X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1311bf688b89ba0f4428dd4cf205416bbd55b811;p=elisp%2Fgnus.git- T-gnus 6.15.4 revision 00 (Synch with latest Oort Gnus) --- diff --git a/ChangeLog b/ChangeLog index 8788176..192b67d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2001-05-07 Katsumi Yamaoka + + * lisp/gnus-vers.el: T-gnus 6.15.4 revision 00. + 2001-04-27 Katsumi Yamaoka * lisp/gnus-vers.el (gnus-revision-number): Increment to 01. diff --git a/README.T-gnus b/README.T-gnus index 717b602..1966194 100644 --- a/README.T-gnus +++ b/README.T-gnus @@ -33,6 +33,6 @@ NEWS: * T-gnus 6.15 - this is based on Oort Gnus. - The latest T-gnus is T-gnus 6.15.3 (based on Oort Gnus 0.03). It + The latest T-gnus is T-gnus 6.15.4 (based on Oort Gnus 0.04). It requires SEMI/WEMI (1.13.5 or later), FLIM (1.13.1 or later), and APEL (10.0 or later). diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 92fadbd..7d41394 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,95 @@ +2001-05-05 15:00:00 ShengHuo ZHU + + * nnslashdot.el (nnslashdot-request-expire-articles): Fix. + + * nnrss.el (nnrss-open-server): Read server data when it is called. + (nnrss-request-expire-articles): Fix. + +2001-05-05 09:00:00 ShengHuo ZHU + + * message.el (message-do-send-housekeeping): mail-abbrevs may + rename buffer behind Gnus. + +2001-05-04 14:00:00 ShengHuo ZHU + + * nnrss.el (nnrss-check-group): Use nnheader-translate-file-chars. + (nnrss-group-alist): Add more resources. + (nnrss-check-group): Ignore errors. + +2001-05-04 00:00:00 ShengHuo ZHU + + * nnrss.el (nnrss-request-expire-articles): Correct the return value. + + * nnslashdot.el (nnslashdot-request-list): Add time. + (nnslashdot-request-expire-articles): New. + + * gnus-start.el (gnus-check-bogus-newsgroups): Remove bogus + secondary methods too. + +2001-05-03 23:00:00 ShengHuo ZHU + + * message.el (message-use-followup-to): Set default value to t. + +2001-05-03 Florian Weimer + + * message.el (message-dont-reply-to-names): Fix documentation. + (message-get-reply-headers): Use Mail-Followup-To only for wide + replies. + +2001-05-03 12:00:00 ShengHuo ZHU + + * nnrss.el (nnrss-request-expire-articles): Calculate # of days + correctly. + (nnrss-check-group): Use time. + +2001-05-01 19:21:19 Lars Magne Ingebrigtsen + + * gnus.el: Oort Gnus v0.03 is released. + +2001-05-01 19:06:21 Lars Magne Ingebrigtsen + + * nnultimate.el (nnultimate-topic-article-to-article): Use the + group. + +2001-04-24 19:50:14 Lars Magne Ingebrigtsen + + * gnus-srvr.el (gnus-server-insert-server-line): Add a space. + +2001-04-15 14:55:03 Lars Magne Ingebrigtsen + + * nnultimate.el (nnultimate-retrieve-headers): Return all + available headers. + + * gnus-sum.el (gnus-read-all-available-headers): New variable. + (gnus-get-newsgroup-headers-xover): Use it. + +2001-04-14 15:47:26 Lars Magne Ingebrigtsen + + * nnultimate.el (nnultimate-retrieve-headers): Clean up. + +2001-04-30 17:00:00 ShengHuo ZHU + + * nntp.el (nntp-retrieve-groups): Use throw instead of error. + +2001-04-29 09:00:00 ShengHuo ZHU + + * nnrss.el (nnrss-insert-w3): Use cache before I figure out how to + disable it. + + * gnus.el (gnus-info-nodes): Remove a few The's. + +2001-04-29 08:00:00 ShengHuo ZHU + + * mail-source.el (mail-source-movemail): Call-process may return a + signal description string. + + * gnus-start.el (gnus-read-newsrc-el-file): + gnus-newsrc-file-version may be nil. + + * nnmail.el (nnmail-get-new-mail): Use the exact file only. + Suggested by Michael Sperber [Mr. Preprocessor] + . + 2001-04-25 Per Abrahamsen * mm-uu.el (mm-uu-configure-list): Fixed customize type. diff --git a/lisp/gnus-srvr.el b/lisp/gnus-srvr.el index 9d5648f..729899a 100644 --- a/lisp/gnus-srvr.el +++ b/lisp/gnus-srvr.el @@ -189,7 +189,7 @@ The following commands are available: (gnus-tmp-agent (if (and gnus-agent (member method gnus-agent-covered-methods)) - "(agent)" + " (agent)" ""))) (beginning-of-line) (gnus-add-text-properties diff --git a/lisp/gnus-start.el b/lisp/gnus-start.el index 4839e7d..215540e 100644 --- a/lisp/gnus-start.el +++ b/lisp/gnus-start.el @@ -1381,7 +1381,9 @@ newsgroup." (setq info (pop newsrc) group (gnus-info-group info)) (unless (or (gnus-active group) ; Active - (gnus-info-method info)) ; Foreign + (and (gnus-info-method info) + (not (gnus-secondary-method-p + (gnus-info-method info))))) ; Foreign ;; Found a bogus newsgroup. (push group bogus))) (if confirm diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index d2be9e7..504b09b 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -1008,6 +1008,13 @@ when prompting the user for which type of files to save." :group 'gnus-summary :type 'regexp) +(defcustom gnus-read-all-available-headers nil + "Whether Gnus should parse all headers made available to it. +This is mostly relevant for slow backends where the user may +wish to widen the summary buffer to include all headers +that were fetched. Say, for nnultimate groups." + :group 'gnus-summary + :type '(choice boolean regexp)) ;;; Internal variables @@ -5143,6 +5150,13 @@ Return a list of headers that match SEQUENCE (see (mail-parse-ignored-charsets gnus-newsgroup-ignored-charsets) (cur nntp-server-buffer) (dependencies (or dependencies gnus-newsgroup-dependencies)) + (allp (cond + ((eq gnus-read-all-available-headers t) + t) + ((stringp gnus-read-all-available-headers) + (string-match gnus-read-all-available-headers group)) + (t + nil))) number headers header) (save-excursion (set-buffer nntp-server-buffer) @@ -5152,19 +5166,22 @@ Return a list of headers that match SEQUENCE (see (goto-char (point-min)) (while (not (eobp)) (condition-case () - (while (and sequence (not (eobp))) + (while (and (or sequence allp) + (not (eobp))) (setq number (read cur)) - (while (and sequence - (< (car sequence) number)) - (setq sequence (cdr sequence))) - (and sequence - (eq number (car sequence)) - (progn - (setq sequence (cdr sequence)) - (setq header (inline - (gnus-nov-parse-line - number dependencies force-new)))) - (push header headers)) + (when (not allp) + (while (and sequence + (< (car sequence) number)) + (setq sequence (cdr sequence)))) + (when (and (or allp + (and sequence + (eq number (car sequence)))) + (progn + (setq sequence (cdr sequence)) + (setq header (inline + (gnus-nov-parse-line + number dependencies force-new))))) + (push header headers)) (forward-line 1)) (error (gnus-error 4 "Strange nov line (%d)" diff --git a/lisp/gnus-vers.el b/lisp/gnus-vers.el index 84cc3ee..9828206 100644 --- a/lisp/gnus-vers.el +++ b/lisp/gnus-vers.el @@ -34,16 +34,16 @@ (require 'product) (provide 'gnus-vers) -(defconst gnus-revision-number "01" +(defconst gnus-revision-number "00" "Revision number for this version of gnus.") ;; Product information of this gnus. (product-provide 'gnus-vers (product-define "T-gnus" nil - (list 6 15 3 + (list 6 15 4 (string-to-number gnus-revision-number)))) -(defconst gnus-original-version-number "0.03" +(defconst gnus-original-version-number "0.04" "Version number for this version of Gnus.") (provide 'running-pterodactyl-gnus-0_73-or-later) diff --git a/lisp/gnus.el b/lisp/gnus.el index 9538a62..4f4dca2 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -1822,10 +1822,10 @@ This variable can be nil, gnus or gnus-ja." (const :tag "Japanese" gnus-ja))) (defvar gnus-info-nodes - '((gnus-group-mode "The Group Buffer") - (gnus-summary-mode "The Summary Buffer") - (gnus-article-mode "The Article Buffer") - (gnus-server-mode "The Server Buffer") + '((gnus-group-mode "Group Buffer") + (gnus-summary-mode "Summary Buffer") + (gnus-article-mode "Article Buffer") + (gnus-server-mode "Server Buffer") (gnus-browse-mode "Browse Foreign Server") (gnus-tree-mode "Tree Display")) "Alist of major modes and related Info nodes.") diff --git a/lisp/mail-source.el b/lisp/mail-source.el index e4df22c..22aec7a 100644 --- a/lisp/mail-source.el +++ b/lisp/mail-source.el @@ -541,8 +541,9 @@ Pass INFO on to CALLBACK." (goto-char (point-min)) (when (looking-at "movemail: ") (delete-region (point-min) (match-end 0))) + ;; Result may be a signal description string. (unless (yes-or-no-p - (format "movemail: %s (%d return). Continue? " + (format "movemail: %s (%s return). Continue? " (buffer-string) result)) (error "%s" (buffer-string))) (setq to nil))))))) diff --git a/lisp/message.el b/lisp/message.el index 240caaa..3ef64c8 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -508,7 +508,7 @@ and respond with new To and Cc headers." :group 'message-interface :type '(choice function (const nil))) -(defcustom message-use-followup-to 'ask +(defcustom message-use-followup-to t "*Specifies what to do with Followup-To header. If nil, always ignore the header. If it is t, use its value, but query before using the \"poster\" value. If it is the symbol `ask', @@ -516,6 +516,7 @@ always query the user whether to use the value. If it is the symbol `use', always use the value." :group 'message-interface :type '(choice (const :tag "ignore" nil) + (const :tag "use & query" t) (const :tag "maybe" t) (const :tag "always" use) (const :tag "ask" ask))) @@ -896,8 +897,8 @@ Valid valued are `unique' and `unsent'." (defcustom message-dont-reply-to-names (and (boundp 'rmail-dont-reply-to-names) rmail-dont-reply-to-names) - "*A regexp specifying names to prune when doing wide replies. -A value of nil means exclude your own name only." + "*A regexp specifying addresses to prune when doing wide replies. +A value of nil means exclude your own user name only." :version "21.1" :group 'message :type '(choice (const :tag "Yourself" nil) @@ -4557,11 +4558,14 @@ than 988 characters long, and if they are not, trim them until they are." ;; Rename the buffer. (if message-send-rename-function (funcall message-send-rename-function) - (when (string-match "\\`\\*\\(sent \\|unsent \\)?\\(.+\\)\\*[^\\*]*" - (buffer-name)) + ;; Note: mail-abbrevs of XEmacs renames buffer name behind Gnus. + (when (string-match + "\\`\\*\\(sent \\|unsent \\)?\\(.+\\)\\*[^\\*]*\\|\\`mail to " + (buffer-name)) (let ((name (match-string 2 (buffer-name))) to group) - (if (not (or (string-equal name "mail") + (if (not (or (null name) + (string-equal name "mail") (string-equal name "news"))) (setq name (concat "*sent " name "*")) (setq to (message-fetch-field "to")) @@ -4846,6 +4850,7 @@ that further discussion should take place only in " (message-set-work-buffer) (if (and mft message-use-followup-to + wide (or (not (eq message-use-followup-to 'ask)) (message-y-or-n-p "Obey Mail-Followup-To? " t "\ You should normally obey the Mail-Followup-To: header. In this diff --git a/lisp/nnmail.el b/lisp/nnmail.el index 912a232..939d853 100644 --- a/lisp/nnmail.el +++ b/lisp/nnmail.el @@ -1576,11 +1576,9 @@ See the Info node `(gnus)Fancy Mail Splitting' for more details." (list :predicate `(lambda (file) - (string-match - ,(concat - (regexp-quote (concat group suffix)) - "$") - file))))))) + (string-equal + ,(concat group suffix) + (file-name-nondirectory file)))))))) (when nnmail-fetched-sources (if (member source nnmail-fetched-sources) (setq source nil) diff --git a/lisp/nnrss.el b/lisp/nnrss.el index e8f3332..a174995 100644 --- a/lisp/nnrss.el +++ b/lisp/nnrss.el @@ -33,6 +33,7 @@ (require 'mm-util) (require 'gnus-util) (require 'time-date) +(require 'rfc2231) (eval-when-compile (ignore-errors (require 'xml) @@ -66,7 +67,8 @@ (defvar nnrss-group-alist '(("MacWeek" - "http://macweek.zdnet.com/macweek.xml") + "http://macweek.zdnet.com/macweek.xml" + "The Macintosh news authority.") ("Linux.Weekly.News" "http://lwn.net/headlines/rss") ("Motley.Fool" @@ -76,17 +78,22 @@ ("Slashdot" "http://www.slashdot.com/slashdot.rdf") ("CNN" - "http://www.cnn.com/cnn.rss") + "http://www.cnn.com/cnn.rss" + "The world's news leader.") ("FreshMeat" - "http://freshmeat.net/backend/fm.rdf") + "http://freshmeat.net/backend/fm.rdf" + "The one-stop-shop for all your Linux software needs.") ("The.Guardian.newspaper" - "http://www.guardianunlimited.co.uk/rss/1,,,00.xml") + "http://www.guardianunlimited.co.uk/rss/1,,,00.xml" + "Intelligent news and comment throughout the day from The Guardian newspaper.") ("MonkeyFist.rdf" - "http://monkeyfist.com/rdf.php3") + "http://monkeyfist.com/rdf.php3" + "News and opinion on politics, technology, and eclectic miscellany.") ("NewsForge" "http://www.newsforge.com/newsforge.rss") ("Reuters.Health" - "http://www.reutershealth.com/eline.rss") + "http://www.reutershealth.com/eline.rss" + "Consumer-oriented health-related news stories.") ("Salon" "http://www.salon.com/feed/RDF/salon_use.rdf") ("Wired" @@ -94,11 +101,56 @@ ("ITN" "http://www.itn.co.uk/itn.rdf") ("Meerkat" - "http://www.oreillynet.com/meerkat/?_fl=rss10") + "http://www.oreillynet.com/meerkat/?_fl=rss10" + "An Open Wire Service") ("MonkeyFist" - "http://monkeyfist.com/rss1.php3") + "http://monkeyfist.com/rss1.php3" + "News and opinion on politics, technology, and eclectic miscellany.") ("Reuters.Health.rdf" - "http://www.reutershealth.com/eline.rdf"))) + "http://www.reutershealth.com/eline.rdf" + "Consumer-oriented health-related news stories.") + ;;("4xt" "http://4xt.org/news/general.rss10" "Resources for XT users.") + ("Aaronland" "http://aaronland.net/xml/abhb.rdf" "A boy and his basement.") + ("Art of the Mix" "http://www.artofthemix.org/xml/rss.asp" "A website devoted to the art of making mixed tapes and cds.") + ("Dave Beckett's RDF Resource Guide" "http://www.ilrt.bristol.ac.uk/discovery/rdf/resources/rss.rdf" "A comprehensive guide to resources about RDF.") + ("David Chess" "http://www.davidchess.com/words/log.rss" "Mostly-daily musings on philosophy, children, culture, technology, the emergence of life from matter, chocolate, Nomic, and all that sort of thing.") + ;;("Dublin Core Metadata Intitiative" "http://www.dublincore.org/news.rss" "Latest news from DCMI.") + ("Figby Articles" "http://www.figby.com/index-rss.php" "A weblog with daily stories about technology, books and publishing, privacy, science, and occasional humor.") + ;;("Figby News" "http://www.figby.com/news.php" "Categorized RSS feeds from various sources.") + ("Figby Quickies" "http://www.figby.com/quickies-rss.php" "Quick commented links to other sites from Figby.com.") + ("Flutterby!" "http://www.flutterby.com/main.rdf" "News and views from Dan Lyke.") + ("Groovelog" "http://groovelog.agora.co.uk/groove+log/groovelog.nsf/today.rss.xml" "The open-access groove users' weblog.") + ;;("Groovelog.rss10" "http://groovelog.agora.co.uk/groove+log/groovelog.nsf/today.rss10.xml" "The open-access groove users' weblog.") + ("Hit or Miss" "http://hit-or-miss.org/rss/" "Daily weblog and journal.") + ;;("Internet.com Feeds" "http://www.webreference.com/services/news/" "News from ") + ("Larkfarm News" "http://www.larkfarm.com/Larkfarm.rdf" "Mike Gunderloy's web site.") + ("Latest RFCs" "http://x42.com/rss/rfc.rss") + ("Linux Today" "http://linuxtoday.com/backend/biglt.rss") + ("Linux Today.rdf" "http://linuxtoday.com/backend/my-netscape10.rdf") + ("More Like This WebLog" "http://www.whump.com/moreLikeThis/RSS" "Because the more you know, the more jokes you get.") + ("Motivational Quotes of the Day" "http://www.quotationspage.com/data/mqotd.rss" "Four motivational quotations each day from the Quotations Page.") + ;;("My Netscape Network" "http://www.dmoz.org/Netscape/My_Netscape_Network/") + ;;("My UserLand" "http://my.userland.com/choose") + ("Network World Fusion NetFlash" "http://www.nwfusion.com/netflash.rss" "Daily breaking news about networking products, technologies and services.") + ;;("News Feeds" "http://newsfeeds.manilasites.com/" "Jeff Barr highlights high quality RSS feeds.") + ;;("News Is Free Export" "http://www.newsisfree.com/export.php3") + ("News Is Free" "http://www.newsisfree.com/news.rdf.php3") + ;;("News is Free XML Export" "http://www.newsisfree.com/ocs/directory.xml") + ("O'Reilly Network Articles" "http://www.oreillynet.com/cs/rss/query/q/260?x-ver=1.0") + ("Quotes of the Day" "http://www.quotationspage.com/data/qotd.rss" "Four humorous quotations each day from the Quotations Page.") + ("RDF Interest Group" "http://ilrt.org/discovery/rdf-dev/roads/cgi-bin/desire/ig2rss?list=www-rdf-interest" "An experimental channel scraped from the RDF Interest Group mail archives.") + ("RDF Logic List" "http://ilrt.org/discovery/rdf-dev/roads/cgi-bin/desire/ig2rss?list=www-rdf-logic" "An experimental channel scraped from the RDF Logic mail archives.") + ("RSS Info" "http://www.blogspace.com/rss/rss10" "News and information on the RSS format") + ;;("RSS-DEV listing" "http://www.egroups.com/links/rss-dev/Feeds_000966335046/" "A listing of RSS files from the RSS-DEV list.") + ("Semantic Web List" "http://ilrt.org/discovery/rdf-dev/roads/cgi-bin/desire/ig2rss?list=semantic-web" "An experimental channel scraped from the W3C's Semantic Web mail archives.") + ;;("Sherch!" "http://www.sherch.com/~pldms/cgi-bin/sherch.pl" "Sherlock for the rest of us.") + ;;("Street Fusion Archived Financial Webcasts" "http://partners.streetfusion.com/rdf/archive.rdf") + ;;("Street Fusion Upcoming Financial Webcasts" "http://partners.streetfusion.com/rdf/live.rdf") + ;;("TNL.net newsletter" "http://www.tnl.net/newsletter/channel100.asp" "A newsletter about Internet technology and issues.") + ("W3C" "http://www.w3.org/2000/08/w3c-synd/home.rss" "The latest news at the World Wide Web Consortium.") + ;;("XML News: RSS Live Content" "http://www.xmlnews.org/RSS/content.html" "A listing of well-known RSS feeds.") + ("XMLfr" "http://xmlfr.org/actualites/general.rss10" "French speaking portal site dedicated to XML.") + ("XMLhack" "http://xmlhack.com/rss10.php" "Developer news from the XML community."))) (defvar nnrss-use-local nil) @@ -185,34 +237,51 @@ t) (deffoo nnrss-open-server (server &optional defs connectionless) + (nnrss-read-server-data server) (nnoo-change-server 'nnrss server defs) t) (deffoo nnrss-request-expire-articles (articles group &optional server force) (nnrss-possibly-change-group group server) - (let (e changed days) + (let (e days not-expirable changed) (dolist (art articles) - (when (setq e (assq art nnrss-group-data)) - (if (nnmail-expired-article-p - group - (if (listp (setq days (nth 1 e))) days (days-to-time days)) - force) + (if (and (setq e (assq art nnrss-group-data)) + (nnmail-expired-article-p + group + (if (listp (setq days (nth 1 e))) days + (days-to-time (- days (time-to-days '(0 0))))) + force)) (setq nnrss-group-data (delq e nnrss-group-data) - changed t)))) + changed t) + (push art not-expirable))) (if changed - (nnrss-save-group-data group server)))) + (nnrss-save-group-data group server)) + not-expirable)) (deffoo nnrss-request-delete-group (group &optional force server) (nnrss-possibly-change-group group server) (setq nnrss-server-data (delq (assoc group nnrss-server-data) nnrss-server-data)) (nnrss-save-server-data server) - (let ((file (expand-file-name (concat group (and server - (not (equal server "")) - "-") - server ".el") nnrss-directory))) - (delete-file file)) + (let ((file (expand-file-name + (nnrss-translate-file-chars + (concat group (and server + (not (equal server "")) + "-") + server ".el")) nnrss-directory))) + (ignore-errors + (delete-file file))) + t) + +(deffoo nnrss-request-list-newsgroups (&optional server) + (nnrss-possibly-change-group nil server) + (save-excursion + (set-buffer nntp-server-buffer) + (erase-buffer) + (dolist (elem nnrss-group-alist) + (if (third elem) + (insert (car elem) "\t" (third elem) "\n")))) t) (nnoo-define-skeleton nnrss) @@ -222,13 +291,17 @@ (defun nnrss-possibly-change-group (&optional group server) (when (and server (not (nnrss-server-opened server))) - (nnrss-read-server-data server) (nnrss-open-server server)) (when (and group (not (equal group nnrss-group))) (nnrss-read-group-data group server) (setq nnrss-group group))) +(defvar nnrss-extra-categories '(nnrss-snarf-moreover-categories)) + (defun nnrss-generate-active () + (if (y-or-n-p "Fetch extra categories?") + (dolist (func nnrss-extra-categories) + (funcall func))) (save-excursion (set-buffer nntp-server-buffer) (erase-buffer) @@ -242,26 +315,31 @@ (defun nnrss-read-server-data (server) (setq nnrss-server-data nil) - (let ((file (expand-file-name (concat "nnrss" (and server - (not (equal server "")) - "-") - server - ".el") - nnrss-directory))) + (let ((file (expand-file-name + (nnrss-translate-file-chars + (concat "nnrss" (and server + (not (equal server "")) + "-") + server + ".el")) + nnrss-directory))) (when (file-exists-p file) (with-temp-buffer (let ((coding-system-for-read 'binary)) (insert-file-contents file)) + (emacs-lisp-mode) (goto-char (point-min)) (eval-buffer))))) (defun nnrss-save-server-data (server) (gnus-make-directory nnrss-directory) - (let ((file (expand-file-name (concat "nnrss" (and server - (not (equal server "")) - "-") - server ".el") - nnrss-directory))) + (let ((file (expand-file-name + (nnrss-translate-file-chars + (concat "nnrss" (and server + (not (equal server "")) + "-") + server ".el")) + nnrss-directory))) (let ((coding-system-for-write 'binary)) (with-temp-file file (insert "(setq nnrss-server-data '" @@ -274,15 +352,18 @@ (let ((pair (assoc group nnrss-server-data))) (setq nnrss-group-max (or (cadr pair) 0)) (setq nnrss-group-min (+ nnrss-group-max 1))) - (let ((file (expand-file-name (concat group (and server - (not (equal server "")) - "-") - server ".el") - nnrss-directory))) + (let ((file (expand-file-name + (nnrss-translate-file-chars + (concat group (and server + (not (equal server "")) + "-") + server ".el")) + nnrss-directory))) (when (file-exists-p file) (with-temp-buffer (let ((coding-system-for-read 'binary)) (insert-file-contents file)) + (emacs-lisp-mode) (goto-char (point-min)) (eval-buffer)) (dolist (e nnrss-group-data) @@ -294,11 +375,13 @@ (defun nnrss-save-group-data (group server) (gnus-make-directory nnrss-directory) - (let ((file (expand-file-name (concat group (and server - (not (equal server "")) - "-") - server ".el") - nnrss-directory))) + (let ((file (expand-file-name + (nnrss-translate-file-chars + (concat group (and server + (not (equal server "")) + "-") + server ".el")) + nnrss-directory))) (let ((coding-system-for-write 'binary)) (with-temp-file file (insert "(setq nnrss-group-data '" @@ -310,12 +393,18 @@ (defun nnrss-no-cache (url) "") +;; TODO:: disable cache. +;; +;; (defun nnrss-insert-w3 (url) +;; (require 'url) +;; (require 'url-cache) +;; (let ((url-cache-creation-function 'nnrss-no-cache)) +;; (mm-with-unibyte-current-buffer +;; (nnweb-insert url)))) + (defun nnrss-insert-w3 (url) - (require 'url) - (require 'url-cache) - (let ((url-cache-creation-function 'nnrss-no-cache)) - (mm-with-unibyte-current-buffer - (nnweb-insert url)))) + (mm-with-unibyte-current-buffer + (nnweb-insert url))) (defun nnrss-decode-entities-unibyte-string (string) (mm-with-unibyte-buffer @@ -334,30 +423,34 @@ (defun nnrss-check-group (group server) (let ((w3-html-entities (cons '(nbsp . 32) w3-html-entities)) file xml subject url extra changed author date) - (mm-with-unibyte-buffer - (if (and nnrss-use-local - (file-exists-p (setq file (expand-file-name - (concat group ".xml") + (condition-case err + (mm-with-unibyte-buffer + (if (and nnrss-use-local + (file-exists-p (setq file (expand-file-name + (nnrss-translate-file-chars + (concat group ".xml")) nnrss-directory)))) - (insert-file-contents file) - (setq url (or (nth 2 (assoc group nnrss-server-data)) - (second (assoc group nnrss-group-alist)))) - (unless url - (setq url + (insert-file-contents file) + (setq url (or (nth 2 (assoc group nnrss-server-data)) + (second (assoc group nnrss-group-alist)))) + (unless url + (setq url (read-string (format "RSS url of %s: " group "http://"))) - (let ((pair (assoc group nnrss-server-data))) - (if pair - (setcdr (cdr pair) (list url)) - (push (list group nnrss-group-max url) nnrss-server-data))) - (setq changed t)) - (nnrss-insert url)) - (goto-char (point-min)) - (while (re-search-forward "\r\n?" nil t) - (replace-match "\n")) - (goto-char (point-min)) - (if (re-search-forward "\\|= (length articles) (cadr item)) ;; All are expirable. + (nnmail-expired-article-p + group + (fourth item) + force)) + (setq nnslashdot-groups (delq item nnslashdot-groups)) + (nnslashdot-write-groups) + (setq articles nil)) ;; all expired. + (setcdr (cddr item) (list (current-time))) + (nnslashdot-write-groups)))) + articles) + (nnoo-define-skeleton nnslashdot) ;;; Internal functions diff --git a/lisp/nntp.el b/lisp/nntp.el index a1ea1e7..092e8a2 100644 --- a/lisp/nntp.el +++ b/lisp/nntp.el @@ -532,84 +532,85 @@ noticing asynchronous data.") "Retrieve group info on GROUPS." (nntp-possibly-change-group nil server) (when (nntp-find-connection-buffer nntp-server-buffer) - (save-excursion - ;; Erase nntp-server-buffer before nntp-inhibit-erase. - (set-buffer nntp-server-buffer) - (erase-buffer) - (set-buffer (nntp-find-connection-buffer nntp-server-buffer)) - ;; The first time this is run, this variable is `try'. So we - ;; try. - (when (eq nntp-server-list-active-group 'try) - (nntp-try-list-active (car groups))) - (erase-buffer) - (let ((count 0) - (received 0) - (last-point (point-min)) - (nntp-inhibit-erase t) - (buf (nntp-find-connection-buffer nntp-server-buffer)) - (command (if nntp-server-list-active-group "LIST ACTIVE" "GROUP"))) - (while groups - ;; Send the command to the server. - (nntp-send-command nil command (pop groups)) - (incf count) - ;; Every 400 requests we have to read the stream in - ;; order to avoid deadlocks. - (when (or (null groups) ;All requests have been sent. - (zerop (% count nntp-maximum-request))) - (nntp-accept-response) + (catch 'done + (save-excursion + ;; Erase nntp-server-buffer before nntp-inhibit-erase. + (set-buffer nntp-server-buffer) + (erase-buffer) + (set-buffer (nntp-find-connection-buffer nntp-server-buffer)) + ;; The first time this is run, this variable is `try'. So we + ;; try. + (when (eq nntp-server-list-active-group 'try) + (nntp-try-list-active (car groups))) + (erase-buffer) + (let ((count 0) + (received 0) + (last-point (point-min)) + (nntp-inhibit-erase t) + (buf (nntp-find-connection-buffer nntp-server-buffer)) + (command (if nntp-server-list-active-group "LIST ACTIVE" "GROUP"))) + (while groups + ;; Send the command to the server. + (nntp-send-command nil command (pop groups)) + (incf count) + ;; Every 400 requests we have to read the stream in + ;; order to avoid deadlocks. + (when (or (null groups) ;All requests have been sent. + (zerop (% count nntp-maximum-request))) + (nntp-accept-response) + (while (and (gnus-buffer-live-p buf) + (progn + ;; Search `blue moon' in this file for the + ;; reason why set-buffer here. + (set-buffer buf) + (goto-char last-point) + ;; Count replies. + (while (re-search-forward "^[0-9]" nil t) + (incf received)) + (setq last-point (point)) + (< received count))) + (nntp-accept-response)))) + + ;; Wait for the reply from the final command. + (unless (gnus-buffer-live-p buf) + (nnheader-report 'nntp "Connection to %s is closed." server) + (throw 'done nil)) + (set-buffer buf) + (goto-char (point-max)) + (re-search-backward "^[0-9]" nil t) + (when (looking-at "^[23]") (while (and (gnus-buffer-live-p buf) (progn - ;; Search `blue moon' in this file for the - ;; reason why set-buffer here. (set-buffer buf) - (goto-char last-point) - ;; Count replies. - (while (re-search-forward "^[0-9]" nil t) - (incf received)) - (setq last-point (point)) - (< received count))) - (nntp-accept-response)))) - - ;; Wait for the reply from the final command. - (unless (gnus-buffer-live-p buf) - (error - (nnheader-report 'nntp "Connection to %s is closed." server))) - (set-buffer buf) - (goto-char (point-max)) - (re-search-backward "^[0-9]" nil t) - (when (looking-at "^[23]") - (while (and (gnus-buffer-live-p buf) - (progn - (set-buffer buf) - (goto-char (point-max)) - (if (not nntp-server-list-active-group) - (not (re-search-backward "\r?\n" (- (point) 3) t)) - (not (re-search-backward "^\\.\r?\n" - (- (point) 4) t))))) - (nntp-accept-response))) - - ;; Now all replies are received. We remove CRs. - (unless (gnus-buffer-live-p buf) - (error - (nnheader-report 'nntp "Connection to %s is closed." server))) - (set-buffer buf) - (goto-char (point-min)) - (while (search-forward "\r" nil t) - (replace-match "" t t)) - - (if (not nntp-server-list-active-group) - (progn - (copy-to-buffer nntp-server-buffer (point-min) (point-max)) - 'group) - ;; We have read active entries, so we just delete the - ;; superfluous gunk. + (goto-char (point-max)) + (if (not nntp-server-list-active-group) + (not (re-search-backward "\r?\n" (- (point) 3) t)) + (not (re-search-backward "^\\.\r?\n" + (- (point) 4) t))))) + (nntp-accept-response))) + + ;; Now all replies are received. We remove CRs. + (unless (gnus-buffer-live-p buf) + (nnheader-report 'nntp "Connection to %s is closed." server) + (throw 'done nil)) + (set-buffer buf) (goto-char (point-min)) - (while (re-search-forward "^[.2-5]" nil t) - (delete-region (match-beginning 0) - (progn (forward-line 1) (point)))) - (copy-to-buffer nntp-server-buffer (point-min) (point-max)) - 'active))))) - + (while (search-forward "\r" nil t) + (replace-match "" t t)) + + (if (not nntp-server-list-active-group) + (progn + (copy-to-buffer nntp-server-buffer (point-min) (point-max)) + 'group) + ;; We have read active entries, so we just delete the + ;; superfluous gunk. + (goto-char (point-min)) + (while (re-search-forward "^[.2-5]" nil t) + (delete-region (match-beginning 0) + (progn (forward-line 1) (point)))) + (copy-to-buffer nntp-server-buffer (point-min) (point-max)) + 'active)))))) + (deffoo nntp-retrieve-articles (articles &optional group server) (nntp-possibly-change-group group server) (save-excursion diff --git a/lisp/nnultimate.el b/lisp/nnultimate.el index 4ed3377..3f69d36 100644 --- a/lisp/nnultimate.el +++ b/lisp/nnultimate.el @@ -86,6 +86,8 @@ (setq map mapping) (while (and (setq article (car articles)) map) + ;; Skip past the articles in the map until we reach the + ;; article we're looking for. (while (and map (or (> article (caar map)) (< (cadar map) (caar map)))) @@ -139,14 +141,21 @@ (setq contents (cdr (nth 2 (car (nth 2 table))))) (setq total-contents (nconc total-contents contents)) (incf current-page)) - ;;(setq total-contents (nreverse total-contents)) - (dolist (art (cdr elem)) - (if (not (nth (1- (cdr art)) total-contents)) - () ;(debug) - (push (list (car art) - (nth (1- (cdr art)) total-contents) - subject) - nnultimate-articles))))) + (when t + (let ((i 0)) + (dolist (co total-contents) + (push (list (or (nnultimate-topic-article-to-article + group (car elem) (incf i)) + 1) + co subject) + nnultimate-articles)))) + (when nil + (dolist (art (cdr elem)) + (when (nth (1- (cdr art)) total-contents) + (push (list (car art) + (nth (1- (cdr art)) total-contents) + subject) + nnultimate-articles)))))) (setq nnultimate-articles (sort nnultimate-articles 'car-less-than-car)) ;; Now we have all the articles, conveniently in an alist @@ -191,7 +200,7 @@ from (or date "") (concat "<" (number-to-string sid) "%" (number-to-string article) - "@ultimate>") + "@ultimate." server ">") "" 0 (/ (length (mapconcat 'identity @@ -210,6 +219,16 @@ (nnheader-insert-nov (cdr header)))))) 'nov))) +(defun nnultimate-topic-article-to-article (group topic article) + (catch 'found + (dolist (elem (nth 5 (assoc group nnultimate-groups))) + (when (and (= topic (nth 2 elem)) + (>= article (nth 3 elem)) + (< article (+ (- (nth 1 elem) (nth 0 elem)) 1 + (nth 3 elem)))) + (throw 'found + (+ (nth 0 elem) (- article (nth 3 elem)))))))) + (deffoo nnultimate-request-group (group &optional server dont-check) (nnultimate-possibly-change-server nil server) (when (not nnultimate-groups) diff --git a/texi/ChangeLog b/texi/ChangeLog index fe59443..232c225 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,44 @@ +2001-05-05 Florian Weimer + + * gnus.texi (IMAP): Remove double paragraph (suggest by Norbert + Koch), fix NNTP reference. + +2001-05-04 08:00:00 ShengHuo ZHU + Suggested by Dan Christensen + + * gnus.texi (Mail Group Commands): Add pxref. + (Group Maintenance): Ditto. + (Topic Commands): Ditto. + (Expiring Mail): Typo. + +2001-05-04 08:00:00 ShengHuo ZHU + From Raymond Scholz + + * gnus.texi (Summary Buffer Lines): Mention the meaning of a + colon. + +2001-05-03 07:00:00 ShengHuo ZHU + From Sriram Karra . + + * gnus.texi: Add default value. + +2001-05-03 06:00:00 ShengHuo ZHU + + * gnus.texi (Using GPG): Use example environment. + +2001-05-02 17:00:00 ShengHuo ZHU + + * gnus.texi (Expunging mailboxes): Typo. + +2001-04-15 19:38:54 Lars Magne Ingebrigtsen + + * gnus.texi (Mail and Post): Fix. + +2001-04-29 09:00:00 ShengHuo ZHU + + * gnus.texi: Remove a few The's. + (RSS): New. + 2001-04-26 Kai Gro,A_(Bjohann * gnus.texi (Unread Articles): Say that dormants are similar to diff --git a/texi/gnus-ja.texi b/texi/gnus-ja.texi index 5ae0c55..b485f82 100644 --- a/texi/gnus-ja.texi +++ b/texi/gnus-ja.texi @@ -272,7 +272,7 @@ \thispagestyle{empty} -Copyright \copyright{} 1995, 1996, 1997, 1998, 1999, 2000 +Copyright \copyright{} 1995, 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. @@ -494,7 +494,7 @@ New Groups * Subscription Methods:: $B?7$7$$%0%k!<%W$KBP$7$F(B gnus $B$O2?$r$9$Y$-$+(B * Filtering New Groups:: Gnus $B$KFCDj$N?7$7$$%0%k!<%W$rL5;k$5$;$k(B -The Group Buffer +Group Buffer * Group Buffer Format:: $BI=<($5$l$F$$$k>pJs$HJQ99$NJ}K!(B * Group Maneuvering:: $B%0%k!<%W%P%C%U%!$r0\F0$9$k%3%^%s%I(B @@ -535,7 +535,7 @@ Misc Group Stuff * Group Timestamp:: Gnus $B$K:G8e$K$$$D%0%k!<%W$rFI$s$@$+$r5-O?$5$;$k(B * File Commands:: Gnus $B$N%U%!%$%k$NFI$_=q$-(B -The Summary Buffer +Summary Buffer * Summary Buffer Format:: $B35N,%P%C%U%!$N304Q$r7hDj$9$k(B * Summary Maneuvering:: $B35N,%P%C%U%!$rF0$-2s$k(B @@ -648,7 +648,7 @@ Various Summary Stuff * Summary Generation Commands:: $B35N,%P%C%U%!$N(B ($B:F(B) $B:n@.(B * Really Various Summary Commands:: $B$"$N$d$C$+$$$JB>$KE,9g$7$J$$L?Na(B -The Article Buffer +Article Buffer * Hiding Headers:: $B$I$N%X%C%@!<$rI=<($9$k$+$r7h$a$k(B * Using MIME:: @sc{mime} $B5-;v$H$7$F8+$;$k(B @@ -677,7 +677,7 @@ Select Methods * Combined Groups:: $BJ#?t$N%0%k!<%W$r0l$D$N%0%k!<%W$K7k9g$9$k(B * Gnus Unplugged:: $B%K%e!<%9$H%a!<%k$r%*%U%i%$%s$GFI$`(B -The Server Buffer +Server Buffer * Server Buffer Format:: $B$3$N%P%C%U%!$N308+$r%+%9%?%^%$%:$G$-$k(B * Server Commands:: $B%5!<%P!<$rA`$kL?Na(B @@ -735,6 +735,7 @@ Browsing the Web * Ultimate:: Ultimate Bulletin Board $B%7%9%F%`(B * Web Archive:: $B%&%'%V$KJ]4I$5$l$?%a!<%j%s%0%j%9%H$rFI$`(B * Web Newspaper:: $B%&%'%V$KJ]4I$5$l$??7J9$rFI$`(B +* RSS:: RDF Site Summary $B$rFI$`(B * Customizing w3:: Gnus $B$+$i(B Emacs/w3 $B$rA`:n$9$k(B Other Sources @@ -3089,13 +3090,15 @@ kill $B$5$l$?%0%k!<%W$rA4$FI=<($7$^$9(B (@code{gnus-group-list-killed})$B!#@\ @kindex C-c C-x (Group) @findex gnus-group-expire-articles $B8=:_$N%0%k!<%W$N%(%/%9%Q%$%"5-;v$KBP$7$F(B ($B$b$7$"$l$P(B) $BA4$F%(%/%9%Q%$%"=h(B -$BM}$r9T$$$^$9(B (@code{gnus-group-expire-articles})$B!#(B +$BM}$r9T$$$^$9(B (@code{gnus-group-expire-articles})$B!#$3$l$O!"$=$N%0%k!<%W$K(B +$B$7$P$i$/B8:_$7$F$$$?4|8B@Z$l:o=|2DG=$J$9$Y$F$N5-;v$r>C5n$9$k$H$$$&$3$H$G(B +$B$9!#(B(@pxref{Expiring Mail})$B!#(B @item C-c M-C-x @kindex C-c M-C-x (Group) @findex gnus-group-expire-all-groups -$BA4$F$N%0%k!<%W$NA4$F$N5-;v$KBP$7$F!"%(%/%9%Q%$%"=hM}$r9T$$$^(B -$B$9(B (@code{gnus-group-expire-all-groups})$B!#(B +$BA4$F$N%0%k!<%W$NA4$F$N4|8B@Z$l:o=|2DG=$J5-;v$KBP$7$F!"%(%/%9%Q%$%"=hM}$r(B +$B9T$$$^$9!#(B(@code{gnus-group-expire-all-groups})$B!#(B @end table @@ -3434,7 +3437,7 @@ Gnus @kindex C-c C-x (Topic) @findex gnus-topic-expire-articles ($B$b$7$"$l$P(B) $B8=:_$N%0%k!<%W$+%H%T%C%/$+$NA4$F$N;~8B>C5n2DG=5-;v$r;~8B>C(B -$B5n$7$^$9(B (@code{gnus-topic-expire-articles})$B!#(B +$B5n$7$^$9(B (@code{gnus-topic-expire-articles})$B!#(B(@pxref{Expiring Mail})$B!#(B @item C-k @kindex C-k (Topic) @@ -3994,6 +3997,9 @@ Gnus $B$OJQ?t(B @code{gnus-extract-address-components} $B$NCM$r(B @code{From $BD%(B (@pxref{Formatting Variables}) $B$r=|$$$F!"IaDL$N(B @code{format} $BJ8;zNs(B $B$HF1$8$h$&$KF0:n$7$^$9!#(B +$B9T$K$O>o$K%3%m%s$,B8:_$7$F$$$J$1$l$P$J$j$^$;$s!#A`:n$7$?8e$K!"%+!<%=%k$O(B +$B$$$D$b%3%m%s$N>l=j$K0\F0$7$^$9!#(B + $B=i4|CM$NJ8;zNs$O(B @samp{%U%R%z%I%(%[%4L: %-20,20n%]%) %s\n} $B$G$9!#(B $B0J2<$NMM<0;X<(J8;z$r;H$&$3$H$,$G$-$^$9(B: @@ -5725,6 +5731,17 @@ gnus $B$OA4$F$N5-;v$N40A4$J(B @code{References} $BMs$r8+$F!"F1$8%9%l%C%I$KB0$ $B!X$:$l!Y$r%9%l%C%I$rJd40$9$k$N$KLr$KN)$D$+$r9MN8$;$:$KI=<($7$^$9!#:G8e$K!"(B $B$3$NJQ?t$,(B @code{more} $B$G$"$k$H!"(Bgnus $B$O$I$3$K$b$D$J$,$C$F$$$J$$;^MU$N$^(B $B$P$i$J@a$r@Z$jMn$H$7$^$;$s!#$3$NJQ?t$O%G%#%U%)%k%H$G$O(B @code{nil} $B$G$9!#(B + +@item gnus-read-all-available-headers +@vindex gnus-read-all-available-headers +$B$3$l$O$I$A$i$+$H8@$($P$"$^$jLr$KN)$?$J$$JQ?t$G$9!#%K%e!<%9$G$O$J$$%0%k!<(B +$B%W$K$*$$$F35N,%P%C%U%!$,$H$F$bBg$-$/$J$j!"$7$+$b?F5-;v$rC)$k$3$H$,$G$-$J(B +$B$$>l9g$K;H$&$3$H$rA[Dj$7$F$$$^$9!#$=$l$Ol9g$O%G%#%U%)%k%H$N(B @code{nil} $B$N$^$^$K$7$F$*$/$N$,L5Fq$G(B +$B$9!#;H$$$?$$>l9g$O%0%k!<%WL>$K9gCW$9$k@55,I=8=$+!"$9$Y$F$N%0%k!<%WL>$K9g(B +$BCW$9$k(B @code{t} $B$K$7$F2<$5$$!#(B @end table @node More Threading @@ -8152,8 +8169,10 @@ Line Formatting})$B!#%G%#%U%)%k%H$O(B @samp{Gnus: %%b %S %Z} $B$G$9!#;HMQ2DG= @item B e @kindex B e ($B35N,(B) @findex gnus-summary-expire-articles -$B%0%k!<%W$N$9$Y$F$N4|8B:o=|2DG=$J5-;v$r4|8B@Z$l:o=|$7$^(B -$B$9(B (@code{gnus-summary-expire-articles})$B!#(B +$B8=:_$N%0%k!<%W$N$9$Y$F$N4|8B:o=|2DG=$J5-;v$K$D$$$F!"4|8B:o=|$N=h(B +$BM}(B (@code{gnus-summary-expire-articles}) $B$r9T$J$$$^$9!#$3$l$O!"$=$N%0%k!<(B +$B%W$K$7$P$i$/B8:_$7$F$$$?4|8B@Z$l:o=|2DG=$J$9$Y$F$N5-;v$r>C5n$9$k$H$$$&$3(B +$B$H$G$9!#(B(@pxref{Expiring Mail})$B!#(B @item B M-C-e @kindex B M-C-e ($B35N,(B) @@ -8732,7 +8751,7 @@ Gnus is able to verify PGP or S/MIME signed messages or decrypt PGP encrypted messages. @enumerate -@item +@item To verify or decrypt PGP messages, you have to install mailcrypt or gpg.el. @@ -9299,12 +9318,13 @@ gnus $B$O>o$KEj9F$K$I$NJ}K!$r;H$&$+$r$"$J$?$K?R$M$^$9!#(B @lisp (add-hook 'gnus-select-group-hook - (lambda () - (cond - ((string-match "^de\\." gnus-newsgroup-name) - (ispell-change-dictionary "deutsch")) - (t - (ispell-change-dictionary "english"))))) + (lambda () + (cond + ((string-match + "^de\\." (gnus-group-real-name gnus-newsgroup-name)) + (ispell-change-dictionary "deutsch")) + (t + (ispell-change-dictionary "english"))))) @end lisp $B$"$J$?$NI,MW$K1~$8$FJQ99$7$F2<$5$$!#(B @@ -9669,10 +9689,10 @@ to 700, for your own safety. If you want to benefit of PGP2.6 compatibility, you might create a script named @file{gpg-2comp} with these instructions: -@code{ +@example #!/bin/sh exec gpg --rfc1991 "$@@" -} +@end example If you don't want to use such compatibility, you can add the following line to your @file{~/.emacs} or @file{~/.gnus}: @@ -11711,10 +11731,10 @@ Gnus $B$KK>$^$7$/$J$$%a!<%k$r:o=|$5$;$k$?$a$K$O!"5-;v$r(B @dfn{$B4|8B@Z$l>C5n $B<+F04|8B@Z$l>C5n2DG=%0%k!<%W$r:n$k;v$O!"A4$F$N4{FI5-;v$,4|8B@Z$l>C5n$5$l(B $B$k;v$G$O$J$$;v$K5$$rIU$1$F$/$@$5$$(B---$B4|8B@Z$l>C5n2DG=$H$7$F0u$NIU$$$?5-(B -$B;v$@$1$,4|8B@Z$l>C5n$5$l$^$9!#L?Na(B @kbd{d}$B$,<+F0E*$K%0%k!<%W$r4|8B@Z$l>C(B -$B5n2DG=$K$9$k$N$G$OL5$$$H$$$&;v$K$b5$$rIU$1$F$/$@$5$$(B---$BH><+F0$N!"<+F04|(B -$B8B@Z$l>C5n2DG=%0%k!<%W$G5-;v$r4{FI$K0uIU$1$k$3$H$@$1$,5-;v$r4|8B@Z$l>C5n(B -$B2DG=$K$7$^$9!#(B +$B;v$@$1$,4|8B@Z$l>C5n$5$l$^$9!#L?Na(B @kbd{d}$B$,<+F0E*$K5-;v$r4|8B@Z$l>C5n2D(B +$BG=$K$9$k$N$G$OL5$$$H$$$&;v$K$b5$$rIU$1$F$/$@$5$$(B---$BH><+F0$N!"<+F04|8B@Z(B +$B$l>C5n2DG=%0%k!<%W$G5-;v$r4{FI$K0uIU$1$k$3$H$@$1$,5-;v$r4|8B@Z$l>C5n2DG=(B +$B$K$7$^$9!#(B @lisp (setq gnus-auto-expirable-newsgroups @@ -12020,16 +12040,18 @@ Gnus $B$O%a!<%k%0%k!<%W$rF0:n$9$k$h$&$K$9$k$H%a!<%k%9%W!<%k$rFI$_9~$_$^$9!#(B @table @code @item nnmbox-mbox-file @vindex nnmbox-mbox-file -$BMxMQA0!#(B +$BMxMQA0!#4{DjCM(B +$B$O(B @file{~/mbox} $B$G$9!#(B @item nnmbox-activate-file @vindex nnmbox-active-file -$B%a!<%k%\%C%/%9$N%"%/%F%#%V%U%!%$%k$NL>A0!#(B +$B%a!<%k%\%C%/%9$N%"%/%F%#%V%U%!%$%k$NL>A0!#4{DjCM(B +$B$O(B @file{~/.mbox-active} $B$G$9!#(B @item nnmbox-get-new-mail @vindex nnmbox-get-new-mail @code{nil} $B$G$J$1$l$P!"(B@code{nnmbox} $B$OF~$C$FMh$?%a!<%k$rFI$_9~$s$G%0%k!<(B -$B%W$KJ,3d$7$^$9!#(B +$B%W$KJ,3d$7$^$9!#4{DjCM$O(B @code{t} $B$G$9!#(B @end table @node Rmail Babyl @@ -12048,15 +12070,17 @@ Gnus $B$O%a!<%k%0%k!<%W$rF0:n$9$k$h$&$K$9$k$H%a!<%k%9%W!<%k$rFI$_9~$_$^$9!#(B @table @code @item nnbabyl-mbox-file @vindex nnbabyl-mbox-file -rmail mbox $B%U%!%$%k$NL>A0(B +rmail mbox $B%U%!%$%k$NL>A0!#4{DjCM$O(B @file{~/RMAIL} $B$G$9!#(B @item nnbabyl-active-file @vindex nnbabyl-active-file -rmail box $B$N$?$a$N%"%/%F%#%V%U%!%$%k$NL>A0!#(B +rmail box $B$N$?$a$N%"%/%F%#%V%U%!%$%k$NL>A0!#4{DjCM(B +$B$O(B @file{~/.rmail-active} $B$G$9!#(B @item nnbabyl-get-new-mail @vindex nnbabyl-get-new-mail @code{nil} $B$G$J$1$l$P!"(B@code{nnbabyl} $B$OF~$C$F$/$k%a!<%k$rFI$_9~$_$^$9!#(B +$B4{DjCM$O(B @code{t} $B$G$9!#(B @end table @node Mail Spool @@ -12096,23 +12120,27 @@ rmail box $B$N$?$a$N%"%/%F%#%V%U%!%$%k$NL>A0!#(B @item nnml-directory @vindex nnml-directory $BA4$F$N(B @code{nnml} $B%G%#%l%/%H%j!<$O$3$N%G%#%l%/%H%j!<$N2<$KCV$+$l$^$9!#(B +$B4{DjCM$O(B `message-directory' $B$NCM(B ($B$=$N4{DjCM$O(B @file{~/Mail}) $B$G$9!#(B @item nnml-active-file @vindex nnml-active-file -@code{nnml} $B%5!<%P!<$N$?$a$N%"%/%F%#%V%U%!%$%k!#(B +@code{nnml} $B%5!<%P!<$N$?$a$N%"%/%F%#%V%U%!%$%k!#4{DjCM(B +$B$O(B @file{~/Mail/active"} $B$G$9!#(B @item nnml-newsgroups-file @vindex nnml-newgroups-file -@code{nnml} $B%0%k!<%W5-=R%U%!%$%k!#(B@xref{Newsgroups File Format}$B!#(B +@code{nnml} $B%0%k!<%W5-=R%U%!%$%k!#(B@xref{Newsgroups File Format}$B!#4{DjCM(B +$B$O(B @file{~/Mail/newsgroups"} $B$G$9!#(B @item nnml-get-new-mail @vindex nnml-get-new-mail -@code{nil} $B$G$J$1$l$P!"(B@code{nnml} $B$OF~$C$FMh$?%a!<%kFI$_9~$_$^$9!#(B +@code{nil} $B$G$J$1$l$P!"(B@code{nnml} $B$OF~$C$FMh$?%a!<%kFI$_9~$_$^$9!#4{Dj(B +$BCM$O(B @code{t} $B$G$9!#(B @item nnml-nov-is-evil @vindex nnml-nov-is-evil @code{nil} $B$G$J$1$l$P!"$3$N%P%C%/%(%s%I$O$I$N(B @sc{nov} $B%U%!%$%k$bL5;k$7(B -$B$^$9!#(B +$B$^$9!#4{DjCM$O(B @code{nil} $B$G$9!#(B @item nnml-nov-file-name @vindex nnml-nov-file-name @@ -12149,10 +12177,12 @@ rmail box $B$N$?$a$N%"%/%F%#%V%U%!%$%k$NL>A0!#(B @item nnmh-directory @vindex nnmh-directory $BA4$F$N(B @code{nnmh} $B%G%#%l%/%H%j!<$O$3$N%G%#%l%/%H%j!<$N2<$KCV$+$l$^$9!#(B +$B4{DjCM$O(B @code{message-directory} $B$NCM(B ($B$=$N4{DjCM$O(B @file{~/Mail}) $B$G$9!#(B @item nnmh-get-new-mail @vindex nnmh-get-new-mail -@code{nil} $B$G$J$1$l$P!"(B@code{nnmh} $B$OF~$C$F$/$k%a!<%k$rFI$_9~$_$^$9!#(B +@code{nil} $B$G$J$1$l$P!"(B@code{nnmh} $B$OF~$C$F$/$k%a!<%k$rFI$_9~$_$^$9!#4{(B +$BDjCM$O(B @code{t} $B$G$9!#(B @item nnmh-be-safe @vindex nnmh-be-safe @@ -12161,7 +12191,7 @@ rmail box $B$N$?$a$N%"%/%F%#%V%U%!%$%k$NL>A0!#(B $BF|IU$HL\$KF~$kA4$F$N>pJs$rD4$Y$^$9$N$G!"$3$l$r(B @code{t} $B$K@_Dj$9$k;v$O?<(B $B9o$JB.EYDc2<$,5/$3$k$H$$$&;v$G$9!#$b$7(B @code{nnmh} $B5-;v$rFI$`$N(B $B$K(B gnus $B0J30$N$b$N$r;H$C$F$$$J$$$N$G$"$l$P!"$3$NJQ?t$r(B @code{t} $B$K@_Dj$9(B -$B$kI,MW$O$"$j$^$;$s!#(B +$B$kI,MW$O$"$j$^$;$s!#4{DjCM$O(B @code{nil} $B$G$9!#(B @end table @node Mail Folders @@ -12181,19 +12211,22 @@ rmail box $B$N$?$a$N%"%/%F%#%V%U%!%$%k$NL>A0!#(B @item nnfolder-directory @vindex nnfolder-directory $BA4$F$N(B @code{nnfolder} $B%a!<%k%\%C%/%9$O$3$N%G%#%l%/%H%j!<$N2<$KCV$+$l$^(B -$B$9!#(B +$B$9!#4{DjCM$O(B @code{message-directory} $B$NCM(B ($B$=$N4{DjCM(B +$B$O(B @file{~/Mail}) $B$G$9!#(B @item nnfolder-active-file @vindex nnfolder-active-file -$B%"%/%F%#%V%U%!%$%k$NL>A0!#(B +$B%"%/%F%#%V%U%!%$%k$NL>A0!#4{DjCM$O(B @file{~/Mail/active} $B$G$9!#(B @item nnfolder-newgroups-file @vindex nnfolder-newsgroups-file -$B%0%k!<%W5-=R%U%!%$%k$NL>A0!#(B@xref{Newsgroups File Format}$B!#(B +$B%0%k!<%W5-=R%U%!%$%k$NL>A0!#(B@xref{Newsgroups File Format}$B!#4{DjCM(B +$B$O(B @file{~/Mail/newsgroups"} $B$G$9!#(B @item nnfolder-get-new-mail @vindex nnfolder-get-new-mail @code{nil} $B$G$J$1$l$P!"(B@code{nnfolder} $B$OF~$C$F$/$k%a!<%k$rFI$_9~$_$^$9!#(B +$B4{DjCM$O(B @code{t} $B$G$9!#(B @item nnfolder-save-buffer-hook @vindex nnfolder-save-buffer-hook @@ -12219,6 +12252,7 @@ rmail box $B$N$?$a$N%"%/%F%#%V%U%!%$%k$NL>A0!#(B @item nnfolder-nov-is-evil @vindex nnfolder-nov-is-evil $B$b$7Hs(B@code{nil}$B$J$i!"$3$N%P%C%/%(%s%I$O(B @sc{nov} $B%U%!%$%k$rL5;k$7$^$9!#(B +$B4{DjCM$O(B @code{nil} $B$G$9!#(B @end table @@ -12372,6 +12406,7 @@ Gnus $B$O$3$l$i$N%=!<%9$X$N3&LL$rDs6!$9$k%P%C%/%(%s%I72$r>/$7Hw$($D$D$"$j(B * Ultimate:: Ultimate Bulletin Board $B%7%9%F%`(B * Web Archive:: $B%&%'%V$KJ]4I$5$l$?%a!<%j%s%0%j%9%H$rFI$`(B * Web Newspaper:: $B%&%'%V$KJ]4I$5$l$??7J9$rFI$`(B +* RSS:: RDF Site Summary $B$rFI$`(B * Customizing w3:: Gnus $B$+$i(B Emacs/w3 $B$rA`:n$9$k(B @end menu @@ -12659,6 +12694,28 @@ asahi RET an_group RET}$B!#(B(@sc{an_group} $B$r1\Mw$7$?$$5-;v%0%k!<%W$KCV$-4 (nnshimbun "asahi" (nnshimbun-url "http://iij.asahi.com/")) @end lisp +@node RSS +@subsection RSS +@cindex nnrss +@cindex RSS + +$B$$$/$D$+$N%5%$%H$O(B RDF site summary (RSS) $B$r;}$C$F$$$^(B +$B$9(B @uref{http://purl.org/rss/1.0/spec}$B!#$3$l$O$H$F$b5,B'E*$+$DNIo$K?7$7$/$7$F$*$/$?$a$N>pJs$rF@$k$3$H(B +$B$,$G$-$^$9!#(B + +$B4JC1$K(B @code{nnrss} $B$r;H$$;O$a$k$K$O!"%0%k!<%W%P%C%U%!(B +$B$G(B @kbd{B nnrss RET RET} $B$H%?%$%W$7$F!"%0%k!<%W$r9VFI$7$F2<$5$$!#(B + +$B0J2<$N(B @code{nnrss} $BJQ?t$,JQ992DG=$G$9(B: + +@table @code +@item nnrss-directory +@vindex nnrss-directory +@code{nnrss} $B$,%U%!%$%k$r=q$-9~$`%G%#%l%/%H%j!<$G!"%G%#%U%)%k%H(B +$B$O(B @samp{~/News/rss/} $B$G$9!#(B +@end table + @node Customizing w3 @subsection w3 $B$N%+%9%?%^%$%:(B @cindex w3 @@ -13593,8 +13650,8 @@ nnimap $B$O$=$l$b%5%]!<%H$7$^$9!#$7$+$7!"(BSSLeay $B$N:G?7HG$G$"$k(B 0.9.x  $B%5!<%P$K%m%0%$%s$9$k$?$a$K;H$&G'>Z>pJs(B (authinfo) $B$r4^$`%U%!%$%k$G$9!#$=(B $B$N7A<0$O(B ($B$[$H$s$I(B) @code{ftp} $B$N(B @file{~/.netrc} $B%U%!%$%k$HF1$8$G$9!#87(B -$BL)$JDj5A$O!"JQ?t(B @code{nntp-authinfo-file} $B$*$h$S(B @xref{NNTP} $B$r8+$F2<$5(B -$B$$!#(B +$BL)$JDj5A$O!"JQ?t(B @code{nntp-authinfo-file} $B$r8+$F2<$5$$!#$=$7(B +$B$F(B @ref{NNTP} $B$b8+$F2<$5$$!#(B @end table @@ -13792,9 +13849,9 @@ ACL $B$O(B Access Control List ($B;HMQ@)8B0lMw(B) $B$NN,$G$9!#(BIMAP $B$G @kindex G x @findex gnus-group-nnimap-expunge -@code{nnimap-expunge-close} $B$K(B @code{never} $B$r@_Dj$7$F$$$l$P!"%a!<%k%\%C(B -$B%/%9$NA4$F$N>C5n$5$l$?5-;v$rC5n$5$l$?5-;v$rC5n$5$l$?5-;v$rI=<($9$kJ}K!$O$"$j$^$;$s!#$?$@>C5n$G$-$k$@$1(B $B$G$9!#(B @@ -19682,7 +19739,7 @@ M******** sm*rtq**t*s $B$rE,@Z$JJ8>O$KK]0F$9$k?7$7$$L?Na$,$"$j$^$9(B--- @subsubsection Pterodactyl Gnus Gnus 5.8 $B$N?7$7$$5!G=(B: - + @itemize @bullet @item $B%a!<%k$r\:Y$K$D$$$F$O%^%K%e(B diff --git a/texi/gnus.texi b/texi/gnus.texi index 0f4bb5c..91cc23f 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -440,7 +440,7 @@ New Groups * Subscription Methods:: What Gnus should do with new groups. * Filtering New Groups:: Making Gnus ignore certain new groups. -The Group Buffer +Group Buffer * Group Buffer Format:: Information listed and how you can change it. * Group Maneuvering:: Commands for moving in the group buffer. @@ -481,7 +481,7 @@ Misc Group Stuff * Group Timestamp:: Making Gnus keep track of when you last read a group. * File Commands:: Reading and writing the Gnus files. -The Summary Buffer +Summary Buffer * Summary Buffer Format:: Deciding how the summary buffer is to look. * Summary Maneuvering:: Moving around the summary buffer. @@ -591,7 +591,7 @@ Various Summary Stuff * Summary Generation Commands:: (Re)generating the summary buffer. * Really Various Summary Commands:: Those pesky non-conformant commands. -The Article Buffer +Article Buffer * Hiding Headers:: Deciding what headers should be displayed. * Using MIME:: Pushing articles through @sc{mime} before reading them. @@ -620,7 +620,7 @@ Select Methods * Combined Groups:: Combining groups into one group. * Gnus Unplugged:: Reading news and mail offline. -The Server Buffer +Server Buffer * Server Buffer Format:: You can customize the look of this buffer. * Server Commands:: Commands to manipulate servers. @@ -672,6 +672,8 @@ Browsing the Web * Slashdot:: Reading the Slashdot comments. * Ultimate:: The Ultimate Bulletin Board systems. * Web Archive:: Reading mailing list archived on web. +* RSS:: Reading RDF site summary. +* Customizing w3:: Doing stuff to Emacs/w3 from Gnus. Other Sources @@ -3058,12 +3060,14 @@ zombies. @kindex C-c C-x (Group) @findex gnus-group-expire-articles Run all expirable articles in the current group through the expiry -process (if any) (@code{gnus-group-expire-articles}). +process (if any) (@code{gnus-group-expire-articles}). That is, delete +all expirable articles in the group that have been around for a while. +(@pxref{Expiring Mail}). @item C-c M-C-x @kindex C-c M-C-x (Group) @findex gnus-group-expire-all-groups -Run all articles in all groups through the expiry process +Run all expirable articles in all groups through the expiry process (@code{gnus-group-expire-all-groups}). @end table @@ -3407,8 +3411,9 @@ prefix, group on that level (and lower) will be displayed. @item C-c C-x @kindex C-c C-x (Topic) @findex gnus-topic-expire-articles -Run all expirable articles in the current group or topic through the expiry -process (if any) (@code{gnus-topic-expire-articles}). +Run all expirable articles in the current group or topic through the +expiry process (if any) +(@code{gnus-topic-expire-articles}). (@pxref{Expiring Mail}). @item C-k @kindex C-k (Topic) @@ -3973,6 +3978,9 @@ the @code{gnus-summary-line-format} variable. It works along the same lines as a normal @code{format} string, with some extensions (@pxref{Formatting Variables}). +There should always be a colon on the line; the cursor always moves to +the colon after performing an operation. + The default string is @samp{%U%R%z%I%(%[%4L: %-20,20n%]%) %s\n}. The following format specification characters are understood: @@ -5792,6 +5800,18 @@ thread or not. Finally, if this variable is @code{more}, gnus won't cut off sparse leaf nodes that don't lead anywhere. This variable is @code{nil} by default. +@item gnus-read-all-available-headers +@vindex gnus-read-all-available-headers +This is a rather obscure variable that few will find useful. It's +intended for those non-news newsgroups where the backend has to fetch +quite a lot to present the summary buffer, and where it's impossible to +go back to parents of articles. This is mostly the case in the +web-based groups, like the @code{nnultimate} groups. + +If you don't use those, then it's safe to leave this as the default +@code{nil}. If you want to use this variable, it should be a regexp +that matches the group name, or @code{t} for all groups. + @end table @@ -8552,8 +8572,10 @@ process/prefix convention (@pxref{Process/Prefix}). @item B e @kindex B e (Summary) @findex gnus-summary-expire-articles -Expire all expirable articles in the group -(@code{gnus-summary-expire-articles}). +Run all expirable articles in the current group through the expiry +process (@code{gnus-summary-expire-articles}). That is, delete all +expirable articles in the group that have been around for a while. +(@pxref{Expiring Mail}). @item B M-C-e @kindex B M-C-e (Summary) @@ -9736,7 +9758,8 @@ you're in, you could say something like the following: (add-hook 'gnus-select-group-hook (lambda () (cond - ((string-match "^de\\." gnus-newsgroup-name) + ((string-match + "^de\\." (gnus-group-real-name gnus-newsgroup-name)) (ispell-change-dictionary "deutsch")) (t (ispell-change-dictionary "english"))))) @@ -10111,10 +10134,10 @@ to 700, for your own safety. If you want to benefit of PGP2.6 compatibility, you might create a script named @file{gpg-2comp} with these instructions: -@code{ +@example #!/bin/sh exec gpg --rfc1991 "$@@" -} +@end example If you don't want to use such compatibility, you can add the following line to your @file{~/.emacs} or @file{~/.gnus}: @@ -12216,7 +12239,7 @@ automatically, you can put something like the following in your Note that making a group auto-expirable doesn't mean that all read articles are expired---only the articles marked as expirable will be expired. Also note that using the @kbd{d} command won't make -groups expirable---only semi-automatic marking of articles as read will +articles expirable---only semi-automatic marking of articles as read will mark the articles as expirable in auto-expirable groups. Let's say you subscribe to a couple of mailing lists, and you want the @@ -12539,16 +12562,18 @@ Virtual server settings: @table @code @item nnmbox-mbox-file @vindex nnmbox-mbox-file -The name of the mail box in the user's home directory. +The name of the mail box in the user's home directory. Default is +@file{~/mbox}. @item nnmbox-active-file @vindex nnmbox-active-file -The name of the active file for the mail box. +The name of the active file for the mail box. Default is +@file{~/.mbox-active}. @item nnmbox-get-new-mail @vindex nnmbox-get-new-mail If non-@code{nil}, @code{nnmbox} will read incoming mail and split it -into groups. +into groups. Default is @code{t}. @end table @@ -12568,15 +12593,17 @@ Virtual server settings: @table @code @item nnbabyl-mbox-file @vindex nnbabyl-mbox-file -The name of the rmail mbox file. +The name of the rmail mbox file. The default is @file{~/RMAIL} @item nnbabyl-active-file @vindex nnbabyl-active-file -The name of the active file for the rmail box. +The name of the active file for the rmail box. The default is +@file{~/.rmail-active} @item nnbabyl-get-new-mail @vindex nnbabyl-get-new-mail -If non-@code{nil}, @code{nnbabyl} will read incoming mail. +If non-@code{nil}, @code{nnbabyl} will read incoming mail. Default is +@code{t} @end table @@ -12617,23 +12644,28 @@ Virtual server settings: @item nnml-directory @vindex nnml-directory All @code{nnml} directories will be placed under this directory. +The default is the value of `message-directory' (whose default value is +@file{~/Mail}) @item nnml-active-file @vindex nnml-active-file -The active file for the @code{nnml} server. +The active file for the @code{nnml} server. The default is +@file{~/Mail/active"}. @item nnml-newsgroups-file @vindex nnml-newsgroups-file The @code{nnml} group descriptions file. @xref{Newsgroups File -Format}. +Format}. The default is @file{~/Mail/newsgroups"}. @item nnml-get-new-mail @vindex nnml-get-new-mail -If non-@code{nil}, @code{nnml} will read incoming mail. +If non-@code{nil}, @code{nnml} will read incoming mail. The default is +@code{t} @item nnml-nov-is-evil @vindex nnml-nov-is-evil -If non-@code{nil}, this backend will ignore any @sc{nov} files. +If non-@code{nil}, this backend will ignore any @sc{nov} files. The +default is @code{nil} @item nnml-nov-file-name @vindex nnml-nov-file-name @@ -12670,11 +12702,14 @@ Virtual server settings: @table @code @item nnmh-directory @vindex nnmh-directory -All @code{nnmh} directories will be located under this directory. +All @code{nnmh} directories will be located under this directory. The +default is the value of @code{message-directory} (whose default is +@file{~/Mail}) @item nnmh-get-new-mail @vindex nnmh-get-new-mail -If non-@code{nil}, @code{nnmh} will read incoming mail. +If non-@code{nil}, @code{nnmh} will read incoming mail. The default is +@code{t}. @item nnmh-be-safe @vindex nnmh-be-safe @@ -12683,7 +12718,7 @@ sure that the articles in the folder are actually what Gnus thinks they are. It will check date stamps and stat everything in sight, so setting this to @code{t} will mean a serious slow-down. If you never use anything but Gnus to read the @code{nnmh} articles, you do not have -to set this variable to @code{t}. +to set this variable to @code{t}. The default is @code{nil}. @end table @@ -12704,18 +12739,22 @@ Virtual server settings: @item nnfolder-directory @vindex nnfolder-directory All the @code{nnfolder} mail boxes will be stored under this directory. +The default is the value of @code{message-directory} (whose default is +@file{~/Mail}) @item nnfolder-active-file @vindex nnfolder-active-file -The name of the active file. +The name of the active file. The default is @file{~/Mail/active}. @item nnfolder-newsgroups-file @vindex nnfolder-newsgroups-file -The name of the group descriptions file. @xref{Newsgroups File Format}. +The name of the group descriptions file. @xref{Newsgroups File +Format}. The default is @file{~/Mail/newsgroups"} @item nnfolder-get-new-mail @vindex nnfolder-get-new-mail -If non-@code{nil}, @code{nnfolder} will read incoming mail. +If non-@code{nil}, @code{nnfolder} will read incoming mail. The default +is @code{t} @item nnfolder-save-buffer-hook @vindex nnfolder-save-buffer-hook @@ -12740,7 +12779,8 @@ extract some information from it before removing it. @item nnfolder-nov-is-evil @vindex nnfolder-nov-is-evil -If non-@code{nil}, this backend will ignore any @sc{nov} files. +If non-@code{nil}, this backend will ignore any @sc{nov} files. The +default is @code{nil}. @end table @@ -12906,6 +12946,7 @@ interfaces to these sources. * Slashdot:: Reading the Slashdot comments. * Ultimate:: The Ultimate Bulletin Board systems. * Web Archive:: Reading mailing list archived on web. +* RSS:: Reading RDF site summary. * Customizing w3:: Doing stuff to Emacs/w3 from Gnus. @end menu @@ -13167,6 +13208,29 @@ The account name on the web server. The password for your account on the web server. @end table +@node RSS +@subsection RSS +@cindex nnrss +@cindex RSS + +Some sites have RDF site summary (RSS) +@uref{http://purl.org/rss/1.0/spec}. It has a quite regular and nice +interface, and it's possible to get the information Gnus needs to keep +groups updated. + +The easiest way to get started with @code{nnrss} is to say something +like the following in the group buffer: @kbd{B nnrss RET RET}, then +subscribe groups. + +The following @code{nnrss} variables can be altered: + +@table @code +@item nnrss-directory +@vindex nnrss-directory +The directory where @code{nnrss} stores its files. The default is +@samp{~/News/rss/}. + +@end table @node Customizing w3 @subsection Customizing w3 @@ -14106,14 +14170,10 @@ articles or not. @item nnimap-authinfo-file @vindex nnimap-authinfo-file -A file containing credentials used to log in on servers. The format -is (almost) the same as the @code{ftp} @file{~/.netrc} file. See -`nntp-authinfo-file' for exact syntax. - A file containing credentials used to log in on servers. The format is (almost) the same as the @code{ftp} @file{~/.netrc} file. See the variable @code{nntp-authinfo-file} for exact syntax; also see -@xref{NNTP}. +@ref{NNTP}. @end table @@ -14319,7 +14379,7 @@ INBOX.mailbox). @kindex G x @findex gnus-group-nnimap-expunge -If you're using the @code{never} setting of @code{nnimap-expunge-close}, +If you're using the @code{never} setting of @code{nnimap-expunge-on-close}, you may want the option of expunging all deleted articles in a mailbox manually. This is exactly what @kbd{G x} does.