+2001-05-07 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * lisp/gnus-vers.el: T-gnus 6.15.4 revision 00.
+
2001-04-27 Katsumi Yamaoka <yamaoka@jpl.org>
* lisp/gnus-vers.el (gnus-revision-number): Increment to 01.
* 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).
+2001-05-05 15:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * 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 <zsh@cs.rochester.edu>
+
+ * message.el (message-do-send-housekeeping): mail-abbrevs may
+ rename buffer behind Gnus.
+
+2001-05-04 14:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * 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 <zsh@cs.rochester.edu>
+
+ * 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 <zsh@cs.rochester.edu>
+
+ * message.el (message-use-followup-to): Set default value to t.
+
+2001-05-03 Florian Weimer <fw@deneb.enyo.de>
+
+ * 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 <zsh@cs.rochester.edu>
+
+ * nnrss.el (nnrss-request-expire-articles): Calculate # of days
+ correctly.
+ (nnrss-check-group): Use time.
+
+2001-05-01 19:21:19 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
+
+ * gnus.el: Oort Gnus v0.03 is released.
+
+2001-05-01 19:06:21 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * nnultimate.el (nnultimate-topic-article-to-article): Use the
+ group.
+
+2001-04-24 19:50:14 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-srvr.el (gnus-server-insert-server-line): Add a space.
+
+2001-04-15 14:55:03 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * 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 <larsi@gnus.org>
+
+ * nnultimate.el (nnultimate-retrieve-headers): Clean up.
+
+2001-04-30 17:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * nntp.el (nntp-retrieve-groups): Use throw instead of error.
+
+2001-04-29 09:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * 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 <zsh@cs.rochester.edu>
+
+ * 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]
+ <sperber@informatik.uni-tuebingen.de>.
+
2001-04-25 Per Abrahamsen <abraham@dina.kvl.dk>
* mm-uu.el (mm-uu-configure-list): Fixed customize type.
(gnus-tmp-agent (if (and gnus-agent
(member method
gnus-agent-covered-methods))
- "(agent)"
+ " (agent)"
"")))
(beginning-of-line)
(gnus-add-text-properties
(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
: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
(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)
(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)"
(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)
(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.")
(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)))))))
: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',
`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)))
(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)
;; 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"))
(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
(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)
(require 'mm-util)
(require 'gnus-util)
(require 'time-date)
+(require 'rfc2231)
(eval-when-compile
(ignore-errors
(require 'xml)
(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"
("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"
("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)
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)
(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)
(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 '"
(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)
(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 '"
(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
(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 "<rdf\\|<rss" nil t)
- (goto-char (match-beginning 0)))
- (setq xml (xml-parse-region (point) (point-max))))
+ (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 "<rdf\\|<rss" nil t)
+ (goto-char (match-beginning 0)))
+ (setq xml (xml-parse-region (point) (point-max))))
+ (error
+ (nnheader-message 1 "Error in group %s: %s" group (cadr err))))
(while (and xml (not (assq 'item xml)))
(unless (listp (car (setq xml (cddar xml))))
(setq xml nil)))
(push
(list
(incf nnrss-group-max)
- (time-to-days (current-time))
+ (current-time)
url
(and subject (nnrss-decode-entities-unibyte-string subject))
(and author (nnrss-decode-entities-unibyte-string author))
(push (list group nnrss-group-max) nnrss-server-data)))
(nnrss-save-server-data server))))
+(defun nnrss-generate-download-script ()
+ "Generate a download script in the current buffer.
+It is useful when `(setq nnrss-use-local t)'."
+ (interactive)
+ (insert "#!/bin/sh\n")
+ (insert "WGET=wget\n")
+ (insert "RSSDIR='" (expand-file-name nnrss-directory) "'\n")
+ (dolist (elem nnrss-server-data)
+ (let ((url (or (nth 2 elem)
+ (second (assoc (car elem) nnrss-group-alist)))))
+ (insert "$WGET -q -O \"$RSSDIR\"/'"
+ (nnrss-translate-file-chars (concat (car elem) ".xml"))
+ "' '" url "'\n"))))
+
+(defun nnrss-translate-file-chars (name)
+ (let ((nnheader-file-name-translation-alist
+ (append nnheader-file-name-translation-alist '((?' . ?_)))))
+ (nnheader-translate-file-chars name)))
+
+(defvar nnrss-moreover-url
+ "http://w.moreover.com/categories/category_list_rss.html"
+ "The url of moreover.com categories.")
+
+(defun nnrss-snarf-moreover-categories ()
+ "Snarf RSS links from moreover.com."
+ (interactive)
+ (let (category name url changed)
+ (with-temp-buffer
+ (nnrss-insert nnrss-moreover-url)
+ (goto-char (point-min))
+ (while (re-search-forward
+ "<A NAME=\"\\([^\"]+\\)\">\\|<A HREF=\"\\(http://[^\"]*moreover\\.com[^\"]+page\\?c=\\([^\"&]+\\)&o=rss\\)" nil t)
+ (if (match-string 1)
+ (setq category (match-string 1))
+ (setq url (match-string 2)
+ name (nnweb-decode-entities-string
+ (rfc2231-decode-encoded-string
+ (match-string 3))))
+ (if category
+ (setq name (concat category "." name)))
+ (unless (assoc name nnrss-server-data)
+ (setq changed t)
+ (push (list name 0 url) nnrss-server-data)))))
+ (if changed
+ (nnrss-save-server-data ""))))
+
(provide 'nnrss)
;;; nnrss.el ends here
(setq gname (concat description " (" sid ")"))
(if (setq elem (assoc gname nnslashdot-groups))
(setcar (cdr elem) articles)
- (push (list gname articles sid) nnslashdot-groups))
+ (push (list gname articles sid (current-time))
+ nnslashdot-groups))
(goto-char (point-max))
(widen)))
;; Then do the older groups.
(setq gname (concat description " (" sid ")"))
(if (setq elem (assoc gname nnslashdot-groups))
(setcar (cdr elem) articles)
- (push (list gname articles sid) nnslashdot-groups)))))
+ (push (list gname articles sid (current-time))
+ nnslashdot-groups)))))
(incf number 30)))
(search-failed (nnslashdot-lose why)))
(nnslashdot-write-groups)
(setq nnslashdot-headers nil
nnslashdot-groups nil))
+(deffoo nnslashdot-request-expire-articles
+ (articles group &optional server force)
+ (nnslashdot-possibly-change-server group server)
+ (let ((item (assoc group nnslashdot-groups)))
+ (when item
+ (if (fourth item)
+ (when (and (>= (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
"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
(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))))
(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
from (or date "")
(concat "<" (number-to-string sid) "%"
(number-to-string article)
- "@ultimate>")
+ "@ultimate." server ">")
"" 0
(/ (length (mapconcat
'identity
(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)
+2001-05-05 Florian Weimer <fw@deneb.enyo.de>
+
+ * gnus.texi (IMAP): Remove double paragraph (suggest by Norbert
+ Koch), fix NNTP reference.
+
+2001-05-04 08:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+ Suggested by Dan Christensen <jdc@uwo.ca>
+
+ * gnus.texi (Mail Group Commands): Add pxref.
+ (Group Maintenance): Ditto.
+ (Topic Commands): Ditto.
+ (Expiring Mail): Typo.
+
+2001-05-04 08:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+ From Raymond Scholz <ray-2001@zonix.de>
+
+ * gnus.texi (Summary Buffer Lines): Mention the meaning of a
+ colon.
+
+2001-05-03 07:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+ From Sriram Karra <karra@cs.utah.edu>.
+
+ * gnus.texi: Add default value.
+
+2001-05-03 06:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * gnus.texi (Using GPG): Use example environment.
+
+2001-05-02 17:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * gnus.texi (Expunging mailboxes): Typo.
+
+2001-04-15 19:38:54 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Mail and Post): Fix.
+
+2001-04-29 09:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * gnus.texi: Remove a few The's.
+ (RSS): New.
+
2001-04-26 Kai Gro\e,A_\e(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
* gnus.texi (Unread Articles): Say that dormants are similar to
\thispagestyle{empty}
-Copyright \copyright{} 1995, 1996, 1997, 1998, 1999, 2000
+Copyright \copyright{} 1995, 1996, 1997, 1998, 1999, 2000
Free Software Foundation, Inc.
* Subscription Methods:: \e$B?7$7$$%0%k!<%W$KBP$7$F\e(B gnus \e$B$O2?$r$9$Y$-$+\e(B
* Filtering New Groups:: Gnus \e$B$KFCDj$N?7$7$$%0%k!<%W$rL5;k$5$;$k\e(B
-The Group Buffer
+Group Buffer
* Group Buffer Format:: \e$BI=<($5$l$F$$$k>pJs$HJQ99$NJ}K!\e(B
* Group Maneuvering:: \e$B%0%k!<%W%P%C%U%!$r0\F0$9$k%3%^%s%I\e(B
* Group Timestamp:: Gnus \e$B$K:G8e$K$$$D%0%k!<%W$rFI$s$@$+$r5-O?$5$;$k\e(B
* File Commands:: Gnus \e$B$N%U%!%$%k$NFI$_=q$-\e(B
-The Summary Buffer
+Summary Buffer
* Summary Buffer Format:: \e$B35N,%P%C%U%!$N304Q$r7hDj$9$k\e(B
* Summary Maneuvering:: \e$B35N,%P%C%U%!$rF0$-2s$k\e(B
* Summary Generation Commands:: \e$B35N,%P%C%U%!$N\e(B (\e$B:F\e(B) \e$B:n@.\e(B
* Really Various Summary Commands:: \e$B$"$N$d$C$+$$$JB>$KE,9g$7$J$$L?Na\e(B
-The Article Buffer
+Article Buffer
* Hiding Headers:: \e$B$I$N%X%C%@!<$rI=<($9$k$+$r7h$a$k\e(B
* Using MIME:: @sc{mime} \e$B5-;v$H$7$F8+$;$k\e(B
* Combined Groups:: \e$BJ#?t$N%0%k!<%W$r0l$D$N%0%k!<%W$K7k9g$9$k\e(B
* Gnus Unplugged:: \e$B%K%e!<%9$H%a!<%k$r%*%U%i%$%s$GFI$`\e(B
-The Server Buffer
+Server Buffer
* Server Buffer Format:: \e$B$3$N%P%C%U%!$N308+$r%+%9%?%^%$%:$G$-$k\e(B
* Server Commands:: \e$B%5!<%P!<$rA`$kL?Na\e(B
* Ultimate:: Ultimate Bulletin Board \e$B%7%9%F%`\e(B
* Web Archive:: \e$B%&%'%V$KJ]4I$5$l$?%a!<%j%s%0%j%9%H$rFI$`\e(B
* Web Newspaper:: \e$B%&%'%V$KJ]4I$5$l$??7J9$rFI$`\e(B
+* RSS:: RDF Site Summary \e$B$rFI$`\e(B
* Customizing w3:: Gnus \e$B$+$i\e(B Emacs/w3 \e$B$rA`:n$9$k\e(B
Other Sources
@kindex C-c C-x (Group)
@findex gnus-group-expire-articles
\e$B8=:_$N%0%k!<%W$N%(%/%9%Q%$%"5-;v$KBP$7$F\e(B (\e$B$b$7$"$l$P\e(B) \e$BA4$F%(%/%9%Q%$%"=h\e(B
-\e$BM}$r9T$$$^$9\e(B (@code{gnus-group-expire-articles})\e$B!#\e(B
+\e$BM}$r9T$$$^$9\e(B (@code{gnus-group-expire-articles})\e$B!#$3$l$O!"$=$N%0%k!<%W$K\e(B
+\e$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\e(B
+\e$B$9!#\e(B(@pxref{Expiring Mail})\e$B!#\e(B
@item C-c M-C-x
@kindex C-c M-C-x (Group)
@findex gnus-group-expire-all-groups
-\e$BA4$F$N%0%k!<%W$NA4$F$N5-;v$KBP$7$F!"%(%/%9%Q%$%"=hM}$r9T$$$^\e(B
-\e$B$9\e(B (@code{gnus-group-expire-all-groups})\e$B!#\e(B
+\e$BA4$F$N%0%k!<%W$NA4$F$N4|8B@Z$l:o=|2DG=$J5-;v$KBP$7$F!"%(%/%9%Q%$%"=hM}$r\e(B
+\e$B9T$$$^$9!#\e(B(@code{gnus-group-expire-all-groups})\e$B!#\e(B
@end table
@kindex C-c C-x (Topic)
@findex gnus-topic-expire-articles
(\e$B$b$7$"$l$P\e(B) \e$B8=:_$N%0%k!<%W$+%H%T%C%/$+$NA4$F$N;~8B>C5n2DG=5-;v$r;~8B>C\e(B
-\e$B5n$7$^$9\e(B (@code{gnus-topic-expire-articles})\e$B!#\e(B
+\e$B5n$7$^$9\e(B (@code{gnus-topic-expire-articles})\e$B!#\e(B(@pxref{Expiring Mail})\e$B!#\e(B
@item C-k
@kindex C-k (Topic)
\e$BD%\e(B (@pxref{Formatting Variables}) \e$B$r=|$$$F!"IaDL$N\e(B @code{format} \e$BJ8;zNs\e(B
\e$B$HF1$8$h$&$KF0:n$7$^$9!#\e(B
+\e$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\e(B
+\e$B$$$D$b%3%m%s$N>l=j$K0\F0$7$^$9!#\e(B
+
\e$B=i4|CM$NJ8;zNs$O\e(B @samp{%U%R%z%I%(%[%4L: %-20,20n%]%) %s\n} \e$B$G$9!#\e(B
\e$B0J2<$NMM<0;X<(J8;z$r;H$&$3$H$,$G$-$^$9\e(B:
\e$B!X$:$l!Y$r%9%l%C%I$rJd40$9$k$N$KLr$KN)$D$+$r9MN8$;$:$KI=<($7$^$9!#:G8e$K!"\e(B
\e$B$3$NJQ?t$,\e(B @code{more} \e$B$G$"$k$H!"\e(Bgnus \e$B$O$I$3$K$b$D$J$,$C$F$$$J$$;^MU$N$^\e(B
\e$B$P$i$J@a$r@Z$jMn$H$7$^$;$s!#$3$NJQ?t$O%G%#%U%)%k%H$G$O\e(B @code{nil} \e$B$G$9!#\e(B
+
+@item gnus-read-all-available-headers
+@vindex gnus-read-all-available-headers
+\e$B$3$l$O$I$A$i$+$H8@$($P$"$^$jLr$KN)$?$J$$JQ?t$G$9!#%K%e!<%9$G$O$J$$%0%k!<\e(B
+\e$B%W$K$*$$$F35N,%P%C%U%!$,$H$F$bBg$-$/$J$j!"$7$+$b?F5-;v$rC)$k$3$H$,$G$-$J\e(B
+\e$B$$>l9g$K;H$&$3$H$rA[Dj$7$F$$$^$9!#$=$l$O<g$K\e(B @code{nnultimate} \e$B%0%k!<%W\e(B
+\e$B$N$h$&$J!"%&%'%V$K4p$E$$$?%0%k!<%W$G$9!#\e(B
+
+\e$B$3$l$r;H$o$J$$>l9g$O%G%#%U%)%k%H$N\e(B @code{nil} \e$B$N$^$^$K$7$F$*$/$N$,L5Fq$G\e(B
+\e$B$9!#;H$$$?$$>l9g$O%0%k!<%WL>$K9gCW$9$k@55,I=8=$+!"$9$Y$F$N%0%k!<%WL>$K9g\e(B
+\e$BCW$9$k\e(B @code{t} \e$B$K$7$F2<$5$$!#\e(B
@end table
@node More Threading
@item B e
@kindex B e (\e$B35N,\e(B)
@findex gnus-summary-expire-articles
-\e$B%0%k!<%W$N$9$Y$F$N4|8B:o=|2DG=$J5-;v$r4|8B@Z$l:o=|$7$^\e(B
-\e$B$9\e(B (@code{gnus-summary-expire-articles})\e$B!#\e(B
+\e$B8=:_$N%0%k!<%W$N$9$Y$F$N4|8B:o=|2DG=$J5-;v$K$D$$$F!"4|8B:o=|$N=h\e(B
+\e$BM}\e(B (@code{gnus-summary-expire-articles}) \e$B$r9T$J$$$^$9!#$3$l$O!"$=$N%0%k!<\e(B
+\e$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\e(B
+\e$B$H$G$9!#\e(B(@pxref{Expiring Mail})\e$B!#\e(B
@item B M-C-e
@kindex B M-C-e (\e$B35N,\e(B)
encrypted messages.
@enumerate
-@item
+@item
To verify or decrypt PGP messages, you have to install mailcrypt or
gpg.el.
@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
\e$B$"$J$?$NI,MW$K1~$8$FJQ99$7$F2<$5$$!#\e(B
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}:
\e$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\e(B
\e$B$k;v$G$O$J$$;v$K5$$rIU$1$F$/$@$5$$\e(B---\e$B4|8B@Z$l>C5n2DG=$H$7$F0u$NIU$$$?5-\e(B
-\e$B;v$@$1$,4|8B@Z$l>C5n$5$l$^$9!#L?Na\e(B @kbd{d}\e$B$,<+F0E*$K%0%k!<%W$r4|8B@Z$l>C\e(B
-\e$B5n2DG=$K$9$k$N$G$OL5$$$H$$$&;v$K$b5$$rIU$1$F$/$@$5$$\e(B---\e$BH><+F0$N!"<+F04|\e(B
-\e$B8B@Z$l>C5n2DG=%0%k!<%W$G5-;v$r4{FI$K0uIU$1$k$3$H$@$1$,5-;v$r4|8B@Z$l>C5n\e(B
-\e$B2DG=$K$7$^$9!#\e(B
+\e$B;v$@$1$,4|8B@Z$l>C5n$5$l$^$9!#L?Na\e(B @kbd{d}\e$B$,<+F0E*$K5-;v$r4|8B@Z$l>C5n2D\e(B
+\e$BG=$K$9$k$N$G$OL5$$$H$$$&;v$K$b5$$rIU$1$F$/$@$5$$\e(B---\e$BH><+F0$N!"<+F04|8B@Z\e(B
+\e$B$l>C5n2DG=%0%k!<%W$G5-;v$r4{FI$K0uIU$1$k$3$H$@$1$,5-;v$r4|8B@Z$l>C5n2DG=\e(B
+\e$B$K$7$^$9!#\e(B
@lisp
(setq gnus-auto-expirable-newsgroups
@table @code
@item nnmbox-mbox-file
@vindex nnmbox-mbox-file
-\e$BMxMQ<T$N%[!<%`%G%#%l%/%H%j!<$N%a!<%k%\%C%/%9$NL>A0!#\e(B
+\e$BMxMQ<T$N%[!<%`%G%#%l%/%H%j!<$N%a!<%k%\%C%/%9$NL>A0!#4{DjCM\e(B
+\e$B$O\e(B @file{~/mbox} \e$B$G$9!#\e(B
@item nnmbox-activate-file
@vindex nnmbox-active-file
-\e$B%a!<%k%\%C%/%9$N%"%/%F%#%V%U%!%$%k$NL>A0!#\e(B
+\e$B%a!<%k%\%C%/%9$N%"%/%F%#%V%U%!%$%k$NL>A0!#4{DjCM\e(B
+\e$B$O\e(B @file{~/.mbox-active} \e$B$G$9!#\e(B
@item nnmbox-get-new-mail
@vindex nnmbox-get-new-mail
@code{nil} \e$B$G$J$1$l$P!"\e(B@code{nnmbox} \e$B$OF~$C$FMh$?%a!<%k$rFI$_9~$s$G%0%k!<\e(B
-\e$B%W$KJ,3d$7$^$9!#\e(B
+\e$B%W$KJ,3d$7$^$9!#4{DjCM$O\e(B @code{t} \e$B$G$9!#\e(B
@end table
@node Rmail Babyl
@table @code
@item nnbabyl-mbox-file
@vindex nnbabyl-mbox-file
-rmail mbox \e$B%U%!%$%k$NL>A0\e(B
+rmail mbox \e$B%U%!%$%k$NL>A0!#4{DjCM$O\e(B @file{~/RMAIL} \e$B$G$9!#\e(B
@item nnbabyl-active-file
@vindex nnbabyl-active-file
-rmail box \e$B$N$?$a$N%"%/%F%#%V%U%!%$%k$NL>A0!#\e(B
+rmail box \e$B$N$?$a$N%"%/%F%#%V%U%!%$%k$NL>A0!#4{DjCM\e(B
+\e$B$O\e(B @file{~/.rmail-active} \e$B$G$9!#\e(B
@item nnbabyl-get-new-mail
@vindex nnbabyl-get-new-mail
@code{nil} \e$B$G$J$1$l$P!"\e(B@code{nnbabyl} \e$B$OF~$C$F$/$k%a!<%k$rFI$_9~$_$^$9!#\e(B
+\e$B4{DjCM$O\e(B @code{t} \e$B$G$9!#\e(B
@end table
@node Mail Spool
@item nnml-directory
@vindex nnml-directory
\e$BA4$F$N\e(B @code{nnml} \e$B%G%#%l%/%H%j!<$O$3$N%G%#%l%/%H%j!<$N2<$KCV$+$l$^$9!#\e(B
+\e$B4{DjCM$O\e(B `message-directory' \e$B$NCM\e(B (\e$B$=$N4{DjCM$O\e(B @file{~/Mail}) \e$B$G$9!#\e(B
@item nnml-active-file
@vindex nnml-active-file
-@code{nnml} \e$B%5!<%P!<$N$?$a$N%"%/%F%#%V%U%!%$%k!#\e(B
+@code{nnml} \e$B%5!<%P!<$N$?$a$N%"%/%F%#%V%U%!%$%k!#4{DjCM\e(B
+\e$B$O\e(B @file{~/Mail/active"} \e$B$G$9!#\e(B
@item nnml-newsgroups-file
@vindex nnml-newgroups-file
-@code{nnml} \e$B%0%k!<%W5-=R%U%!%$%k!#\e(B@xref{Newsgroups File Format}\e$B!#\e(B
+@code{nnml} \e$B%0%k!<%W5-=R%U%!%$%k!#\e(B@xref{Newsgroups File Format}\e$B!#4{DjCM\e(B
+\e$B$O\e(B @file{~/Mail/newsgroups"} \e$B$G$9!#\e(B
@item nnml-get-new-mail
@vindex nnml-get-new-mail
-@code{nil} \e$B$G$J$1$l$P!"\e(B@code{nnml} \e$B$OF~$C$FMh$?%a!<%kFI$_9~$_$^$9!#\e(B
+@code{nil} \e$B$G$J$1$l$P!"\e(B@code{nnml} \e$B$OF~$C$FMh$?%a!<%kFI$_9~$_$^$9!#4{Dj\e(B
+\e$BCM$O\e(B @code{t} \e$B$G$9!#\e(B
@item nnml-nov-is-evil
@vindex nnml-nov-is-evil
@code{nil} \e$B$G$J$1$l$P!"$3$N%P%C%/%(%s%I$O$I$N\e(B @sc{nov} \e$B%U%!%$%k$bL5;k$7\e(B
-\e$B$^$9!#\e(B
+\e$B$^$9!#4{DjCM$O\e(B @code{nil} \e$B$G$9!#\e(B
@item nnml-nov-file-name
@vindex nnml-nov-file-name
@item nnmh-directory
@vindex nnmh-directory
\e$BA4$F$N\e(B @code{nnmh} \e$B%G%#%l%/%H%j!<$O$3$N%G%#%l%/%H%j!<$N2<$KCV$+$l$^$9!#\e(B
+\e$B4{DjCM$O\e(B @code{message-directory} \e$B$NCM\e(B (\e$B$=$N4{DjCM$O\e(B @file{~/Mail}) \e$B$G$9!#\e(B
@item nnmh-get-new-mail
@vindex nnmh-get-new-mail
-@code{nil} \e$B$G$J$1$l$P!"\e(B@code{nnmh} \e$B$OF~$C$F$/$k%a!<%k$rFI$_9~$_$^$9!#\e(B
+@code{nil} \e$B$G$J$1$l$P!"\e(B@code{nnmh} \e$B$OF~$C$F$/$k%a!<%k$rFI$_9~$_$^$9!#4{\e(B
+\e$BDjCM$O\e(B @code{t} \e$B$G$9!#\e(B
@item nnmh-be-safe
@vindex nnmh-be-safe
\e$BF|IU$HL\$KF~$kA4$F$N>pJs$rD4$Y$^$9$N$G!"$3$l$r\e(B @code{t} \e$B$K@_Dj$9$k;v$O?<\e(B
\e$B9o$JB.EYDc2<$,5/$3$k$H$$$&;v$G$9!#$b$7\e(B @code{nnmh} \e$B5-;v$rFI$`$N\e(B
\e$B$K\e(B gnus \e$B0J30$N$b$N$r;H$C$F$$$J$$$N$G$"$l$P!"$3$NJQ?t$r\e(B @code{t} \e$B$K@_Dj$9\e(B
-\e$B$kI,MW$O$"$j$^$;$s!#\e(B
+\e$B$kI,MW$O$"$j$^$;$s!#4{DjCM$O\e(B @code{nil} \e$B$G$9!#\e(B
@end table
@node Mail Folders
@item nnfolder-directory
@vindex nnfolder-directory
\e$BA4$F$N\e(B @code{nnfolder} \e$B%a!<%k%\%C%/%9$O$3$N%G%#%l%/%H%j!<$N2<$KCV$+$l$^\e(B
-\e$B$9!#\e(B
+\e$B$9!#4{DjCM$O\e(B @code{message-directory} \e$B$NCM\e(B (\e$B$=$N4{DjCM\e(B
+\e$B$O\e(B @file{~/Mail}) \e$B$G$9!#\e(B
@item nnfolder-active-file
@vindex nnfolder-active-file
-\e$B%"%/%F%#%V%U%!%$%k$NL>A0!#\e(B
+\e$B%"%/%F%#%V%U%!%$%k$NL>A0!#4{DjCM$O\e(B @file{~/Mail/active} \e$B$G$9!#\e(B
@item nnfolder-newgroups-file
@vindex nnfolder-newsgroups-file
-\e$B%0%k!<%W5-=R%U%!%$%k$NL>A0!#\e(B@xref{Newsgroups File Format}\e$B!#\e(B
+\e$B%0%k!<%W5-=R%U%!%$%k$NL>A0!#\e(B@xref{Newsgroups File Format}\e$B!#4{DjCM\e(B
+\e$B$O\e(B @file{~/Mail/newsgroups"} \e$B$G$9!#\e(B
@item nnfolder-get-new-mail
@vindex nnfolder-get-new-mail
@code{nil} \e$B$G$J$1$l$P!"\e(B@code{nnfolder} \e$B$OF~$C$F$/$k%a!<%k$rFI$_9~$_$^$9!#\e(B
+\e$B4{DjCM$O\e(B @code{t} \e$B$G$9!#\e(B
@item nnfolder-save-buffer-hook
@vindex nnfolder-save-buffer-hook
@item nnfolder-nov-is-evil
@vindex nnfolder-nov-is-evil
\e$B$b$7Hs\e(B@code{nil}\e$B$J$i!"$3$N%P%C%/%(%s%I$O\e(B @sc{nov} \e$B%U%!%$%k$rL5;k$7$^$9!#\e(B
+\e$B4{DjCM$O\e(B @code{nil} \e$B$G$9!#\e(B
@end table
* Ultimate:: Ultimate Bulletin Board \e$B%7%9%F%`\e(B
* Web Archive:: \e$B%&%'%V$KJ]4I$5$l$?%a!<%j%s%0%j%9%H$rFI$`\e(B
* Web Newspaper:: \e$B%&%'%V$KJ]4I$5$l$??7J9$rFI$`\e(B
+* RSS:: RDF Site Summary \e$B$rFI$`\e(B
* Customizing w3:: Gnus \e$B$+$i\e(B Emacs/w3 \e$B$rA`:n$9$k\e(B
@end menu
(nnshimbun "asahi" (nnshimbun-url "http://iij.asahi.com/"))
@end lisp
+@node RSS
+@subsection RSS
+@cindex nnrss
+@cindex RSS
+
+\e$B$$$/$D$+$N%5%$%H$O\e(B RDF site summary (RSS) \e$B$r;}$C$F$$$^\e(B
+\e$B$9\e(B @uref{http://purl.org/rss/1.0/spec}\e$B!#$3$l$O$H$F$b5,B'E*$+$DNI<A$J%$%s\e(B
+\e$B%?!<%U%'!<%9$G!"\e(Bgnus \e$B$,%0%k!<%W$r>o$K?7$7$/$7$F$*$/$?$a$N>pJs$rF@$k$3$H\e(B
+\e$B$,$G$-$^$9!#\e(B
+
+\e$B4JC1$K\e(B @code{nnrss} \e$B$r;H$$;O$a$k$K$O!"%0%k!<%W%P%C%U%!\e(B
+\e$B$G\e(B @kbd{B nnrss RET RET} \e$B$H%?%$%W$7$F!"%0%k!<%W$r9VFI$7$F2<$5$$!#\e(B
+
+\e$B0J2<$N\e(B @code{nnrss} \e$BJQ?t$,JQ992DG=$G$9\e(B:
+
+@table @code
+@item nnrss-directory
+@vindex nnrss-directory
+@code{nnrss} \e$B$,%U%!%$%k$r=q$-9~$`%G%#%l%/%H%j!<$G!"%G%#%U%)%k%H\e(B
+\e$B$O\e(B @samp{~/News/rss/} \e$B$G$9!#\e(B
+@end table
+
@node Customizing w3
@subsection w3 \e$B$N%+%9%?%^%$%:\e(B
@cindex w3
\e$B%5!<%P$K%m%0%$%s$9$k$?$a$K;H$&G'>Z>pJs\e(B (authinfo) \e$B$r4^$`%U%!%$%k$G$9!#$=\e(B
\e$B$N7A<0$O\e(B (\e$B$[$H$s$I\e(B) @code{ftp} \e$B$N\e(B @file{~/.netrc} \e$B%U%!%$%k$HF1$8$G$9!#87\e(B
-\e$BL)$JDj5A$O!"JQ?t\e(B @code{nntp-authinfo-file} \e$B$*$h$S\e(B @xref{NNTP} \e$B$r8+$F2<$5\e(B
-\e$B$$!#\e(B
+\e$BL)$JDj5A$O!"JQ?t\e(B @code{nntp-authinfo-file} \e$B$r8+$F2<$5$$!#$=$7\e(B
+\e$B$F\e(B @ref{NNTP} \e$B$b8+$F2<$5$$!#\e(B
@end table
@kindex G x
@findex gnus-group-nnimap-expunge
-@code{nnimap-expunge-close} \e$B$K\e(B @code{never} \e$B$r@_Dj$7$F$$$l$P!"%a!<%k%\%C\e(B
-\e$B%/%9$NA4$F$N>C5n$5$l$?5-;v$r<jF0$G:o=|$7$?$$$H;W$&$G$7$g$&!#\e(B@kbd{G x} \e$B$,\e(B
-\e$B$^$5$K$3$N$3$H$r$7$^$9!#\e(B
+@code{nnimap-expunge-on-close} \e$B$K\e(B @code{never} \e$B$r@_Dj$7$F$$$l$P!"%a!<%k\e(B
+\e$B%\%C%/%9$NA4$F$N>C5n$5$l$?5-;v$r<jF0$G:o=|$7$?$$$H;W$&$G$7$g$&!#\e(B
+@kbd{G x} \e$B$,$^$5$K$3$N$3$H$r$7$^$9!#\e(B
\e$B8=;~E@$G$O!">C5n$5$l$?5-;v$rI=<($9$kJ}K!$O$"$j$^$;$s!#$?$@>C5n$G$-$k$@$1\e(B
\e$B$G$9!#\e(B
@subsubsection Pterodactyl Gnus
Gnus 5.8 \e$B$N?7$7$$5!G=\e(B:
-
+
@itemize @bullet
@item \e$B%a!<%k$r<h$j9~$`5!G=$,JQ$o$j$^$7$?!#$?$/$5$s$N>\:Y$K$D$$$F$O%^%K%e\e(B
* 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.
* 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.
* 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.
* 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.
* 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
@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
@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)
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:
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
@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)
(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")))))
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}:
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
@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
@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
@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
@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
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
@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
@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
* 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
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
@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
@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.