aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard M. Stallman1994-11-28 13:54:27 +0000
committerRichard M. Stallman1994-11-28 13:54:27 +0000
commit46e4828217c59c105a79af27ff2d7fc7298db7ad (patch)
treed541f1dd7b78d74d32b5cc7dbf917018ada1e6d0
parent056ab24479e84187a8a7e25e5924f36d317b5e79 (diff)
downloademacs-46e4828217c59c105a79af27ff2d7fc7298db7ad.tar.gz
emacs-46e4828217c59c105a79af27ff2d7fc7298db7ad.zip
Many doc fixes. Fix progress message formats.
(gnus-article-prev-digest): Rename arg to n. (gnus-summary-next-digest, gnus-summary-prev-digest): Likewise. (file-newer-than-file-p): Definition deleted.
-rw-r--r--lisp/gnus.el433
1 files changed, 206 insertions, 227 deletions
diff --git a/lisp/gnus.el b/lisp/gnus.el
index dfc6939ce2e..15e985a64a6 100644
--- a/lisp/gnus.el
+++ b/lisp/gnus.el
@@ -98,13 +98,14 @@
98 98
99(defvar gnus-default-nntp-server nil 99(defvar gnus-default-nntp-server nil
100 "*Specify default NNTP server. 100 "*Specify default NNTP server.
101This variable should be defined in paths.el.") 101This variable should be defined in `site-init.el'.")
102 102
103(defvar gnus-nntp-server (or (getenv "NNTPSERVER") gnus-default-nntp-server) 103(defvar gnus-nntp-server (or (getenv "NNTPSERVER") gnus-default-nntp-server)
104 "*The name of the host running NNTP server. 104 "*The name of the host running NNTP server.
105If it is a string such as `:DIRECTORY', the user's private DIRECTORY 105If it is a string starting with a colon, as in as `:DIRECTORY', then the
106is used as a news spool. 106directory ~/DIRECTORY is used as the news spool.
107Initialized from the NNTPSERVER environment variable.") 107This variable is initialized from the NNTPSERVER environment variable
108or from `gnus-default-nntp-server'.")
108 109
109(defvar gnus-nntp-service "nntp" 110(defvar gnus-nntp-service "nntp"
110 "*NNTP service name (\"nntp\" or 119). 111 "*NNTP service name (\"nntp\" or 119).
@@ -124,7 +125,7 @@ read in all newsgroups.")
124 125
125(defvar gnus-use-followup-to t 126(defvar gnus-use-followup-to t
126 "*Specifies what to do with Followup-To: field. 127 "*Specifies what to do with Followup-To: field.
127If nil, ignore followup-to: field. If t, use its value except for 128If nil, ignore `Followup-to:' field. If t, use its value except for
128`poster'. Otherwise, if not nil nor t, always use its value.") 129`poster'. Otherwise, if not nil nor t, always use its value.")
129 130
130(defvar gnus-large-newsgroup 50 131(defvar gnus-large-newsgroup 50
@@ -139,23 +140,23 @@ Initialized from the AUTHORCOPY environment variable.
139Articles are saved using a function specified by the the variable 140Articles are saved using a function specified by the the variable
140`gnus-author-copy-saver' (`rmail-output' is default) if a file name is 141`gnus-author-copy-saver' (`rmail-output' is default) if a file name is
141given. Instead, if the first character of the name is `|', the 142given. Instead, if the first character of the name is `|', the
142contents of the article is piped out to the named program. It is 143contents of the article is piped out to the named program. It is
143possible to save an article in an MH folder as follows: 144possible to save an article in an MH folder as follows:
144 145
145\(setq gnus-author-copy \"|/usr/local/lib/mh/rcvstore +Article\")") 146\(setq gnus-author-copy \"|/usr/local/lib/mh/rcvstore +Article\")")
146 147
147(defvar gnus-author-copy-saver (function rmail-output) 148(defvar gnus-author-copy-saver (function rmail-output)
148 "*A function called with a file name to save an author copy to. 149 "*A function called with a file name to save an author copy to.
149The default function is `rmail-output' which saves in Unix mailbox format.") 150The default function is `rmail-output' which saves in inbox format.")
150 151
151(defvar gnus-use-long-file-name 152(defvar gnus-use-long-file-name
152 (not (memq system-type '(usg-unix-v xenix))) 153 (not (memq system-type '(usg-unix-v xenix)))
153 "*Non-nil means that a newsgroup name is used as a default file name 154 "*Non-nil means that a newsgroup name is used as a default file name
154to save articles to. If it's nil, the directory form of a newsgroup is 155to save articles to. If it's nil, the directory form of a newsgroup is
155used instead.") 156used instead.")
156 157
157(defvar gnus-article-save-directory (getenv "SAVEDIR") 158(defvar gnus-article-save-directory (getenv "SAVEDIR")
158 "*A directory name to save articles to (default to ~/News). 159 "*A directory name to save articles to (default is `~/News').
159Initialized from the SAVEDIR environment variable.") 160Initialized from the SAVEDIR environment variable.")
160 161
161(defvar gnus-kill-files-directory (getenv "SAVEDIR") 162(defvar gnus-kill-files-directory (getenv "SAVEDIR")
@@ -246,15 +247,17 @@ thus making them effectively invisible.")
246 247
247(defvar gnus-ignored-headers 248(defvar gnus-ignored-headers
248 "^Path:\\|^Posting-Version:\\|^Article-I.D.:\\|^Expires:\\|^Date-Received:\\|^References:\\|^Control:\\|^Xref:\\|^Lines:\\|^Posted:\\|^Relay-Version:\\|^Message-ID:\\|^Nf-ID:\\|^Nf-From:\\|^Approved:\\|^Sender:" 249 "^Path:\\|^Posting-Version:\\|^Article-I.D.:\\|^Expires:\\|^Date-Received:\\|^References:\\|^Control:\\|^Xref:\\|^Lines:\\|^Posted:\\|^Relay-Version:\\|^Message-ID:\\|^Nf-ID:\\|^Nf-From:\\|^Approved:\\|^Sender:"
249 "*All random fields within the header of a message.") 250 "*Header fields not worth displaying.
251Ordinarily GNUS excludes these when displaying an article.
252If you want to see them, ask to see the message with \"the full header\"
253\(also known as \"the original header\").")
250 254
251(defvar gnus-required-headers 255(defvar gnus-required-headers
252 '(From Date Newsgroups Subject Message-ID Path Organization Distribution) 256 '(From Date Newsgroups Subject Message-ID Path Organization Distribution)
253 "*All required fields for articles you post. 257 "*All required fields for articles you post.
254RFC977 and RFC1036 require From, Date, Newsgroups, Subject, Message-ID 258RFC977 and RFC1036 require From, Date, Newsgroups, Subject, Message-ID
255and Path fields. Organization, Distribution and Lines are optional. 259and Path fields. Organization, Distribution and Lines are optional.
256If you want GNUS not to insert some field, remove it from the 260If you want GNUS not to insert some field, remove it from this list.")
257variable.")
258 261
259(defvar gnus-show-all-headers nil 262(defvar gnus-show-all-headers nil
260 "*Show all headers of an article if non-nil.") 263 "*Show all headers of an article if non-nil.")
@@ -264,7 +267,7 @@ variable.")
264 267
265(defvar gnus-optional-headers (function gnus-optional-lines-and-from) 268(defvar gnus-optional-headers (function gnus-optional-lines-and-from)
266 "*A function generating a optional string displayed in GNUS Summary 269 "*A function generating a optional string displayed in GNUS Summary
267mode buffer. The function is called with an article HEADER. The 270mode buffer. The function is called with an article HEADER. The
268result must be a string excluding `[' and `]'.") 271result must be a string excluding `[' and `]'.")
269 272
270(defvar gnus-auto-extend-newsgroup t 273(defvar gnus-auto-extend-newsgroup t
@@ -375,7 +378,7 @@ order. The function `gnus-subscribe-interactively' asks for your decision.")
375 378
376(defvar gnus-startup-hook nil 379(defvar gnus-startup-hook nil
377 "*A hook called at start up time. 380 "*A hook called at start up time.
378This hook is called after GNUS is connected to the NNTP server. So, it 381This hook is called after GNUS is connected to the NNTP server. So, it
379is possible to change the behavior of GNUS according to the selected 382is possible to change the behavior of GNUS according to the selected
380NNTP server.") 383NNTP server.")
381 384
@@ -396,8 +399,7 @@ If you want to run a special decoding program like nkf, use this hook.")
396If you want to sort Summary buffer by date and then by subject, you 399If you want to sort Summary buffer by date and then by subject, you
397can use the following hook: 400can use the following hook:
398 401
399\(setq gnus-select-group-hook 402\(add-hook 'gnus-select-group-hook
400 (list
401 (function 403 (function
402 (lambda () 404 (lambda ()
403 ;; First of all, sort by date. 405 ;; First of all, sort by date.
@@ -415,14 +417,13 @@ can use the following hook:
415 (if case-fold-search 417 (if case-fold-search
416 (downcase (gnus-simplify-subject (gnus-header-subject a) t)) 418 (downcase (gnus-simplify-subject (gnus-header-subject a) t))
417 (gnus-simplify-subject (gnus-header-subject a) t))))) 419 (gnus-simplify-subject (gnus-header-subject a) t)))))
418 )))) 420 )))
419 421
420If you'd like to simplify subjects like the 422If you'd like to simplify subjects like the
421`gnus-summary-next-same-subject' command does, you can use the 423`gnus-summary-next-same-subject' command does, you can use the
422following hook: 424following hook:
423 425
424\(setq gnus-select-group-hook 426\(add-hook 'gnus-select-group-hook
425 (list
426 (function 427 (function
427 (lambda () 428 (lambda ()
428 (mapcar (function 429 (mapcar (function
@@ -431,13 +432,12 @@ following hook:
431 header 432 header
432 (gnus-simplify-subject 433 (gnus-simplify-subject
433 (gnus-header-subject header) 're-only)))) 434 (gnus-header-subject header) 're-only))))
434 gnus-newsgroup-headers))))) 435 gnus-newsgroup-headers))))
435 436
436In some newsgroups author name is meaningless. It is possible to 437In some newsgroups author name is meaningless. It is possible to
437prevent listing author names in GNUS Summary buffer as follows: 438prevent listing author names in GNUS Summary buffer as follows:
438 439
439\(setq gnus-select-group-hook 440\(add-hook 'gnus-select-group-hook
440 (list
441 (function 441 (function
442 (lambda () 442 (lambda ()
443 (cond ((string-equal \"comp.sources.unix\" gnus-newsgroup-name) 443 (cond ((string-equal \"comp.sources.unix\" gnus-newsgroup-name)
@@ -445,7 +445,7 @@ prevent listing author names in GNUS Summary buffer as follows:
445 (function gnus-optional-lines))) 445 (function gnus-optional-lines)))
446 (t 446 (t
447 (setq gnus-optional-headers 447 (setq gnus-optional-headers
448 (function gnus-optional-lines-and-from))))))))") 448 (function gnus-optional-lines-and-from)))))))")
449 449
450(defvar gnus-select-article-hook 450(defvar gnus-select-article-hook
451 '(gnus-summary-show-thread) 451 '(gnus-summary-show-thread)
@@ -453,21 +453,20 @@ prevent listing author names in GNUS Summary buffer as follows:
453The default hook shows conversation thread subtrees of the selected 453The default hook shows conversation thread subtrees of the selected
454article automatically using `gnus-summary-show-thread'. 454article automatically using `gnus-summary-show-thread'.
455 455
456If you'd like to run RMAIL on a digest article automagically, you can 456If you'd like to run Rmail on a digest article automagically, you can
457use the following hook: 457use the following hook:
458 458
459\(setq gnus-select-article-hook 459\(add-hook 'gnus-select-article-hook
460 (list
461 (function 460 (function
462 (lambda () 461 (lambda ()
463 (gnus-summary-show-thread)
464 (cond ((string-equal \"comp.sys.sun\" gnus-newsgroup-name) 462 (cond ((string-equal \"comp.sys.sun\" gnus-newsgroup-name)
465 (gnus-summary-rmail-digest)) 463 (gnus-summary-rmail-digest))
466 ((and (string-equal \"comp.text\" gnus-newsgroup-name) 464 ((and (string-equal \"comp.text\" gnus-newsgroup-name)
467 (string-match \"^TeXhax Digest\" 465 (string-match \"^TeXhax Digest\"
468 (gnus-header-subject gnus-current-headers))) 466 (gnus-header-subject gnus-current-headers)))
469 (gnus-summary-rmail-digest) 467 (gnus-summary-rmail-digest)
470 ))))))") 468 ))))
469 t)")
471 470
472(defvar gnus-select-digest-hook 471(defvar gnus-select-digest-hook
473 (list 472 (list
@@ -482,15 +481,14 @@ use the following hook:
482This hook can be used to modify incomplete digest articles as follows 481This hook can be used to modify incomplete digest articles as follows
483\(this is the default): 482\(this is the default):
484 483
485\(setq gnus-select-digest-hook 484\(add-hook 'gnus-select-digest-hook
486 (list
487 (function 485 (function
488 (lambda () 486 (lambda ()
489 ;; Reply-To: is required by `undigestify-rmail-message'. 487 ;; Reply-To: is required by `undigestify-rmail-message'.
490 (or (mail-position-on-field \"Reply-to\" t) 488 (or (mail-position-on-field \"Reply-to\" t)
491 (progn 489 (progn
492 (mail-position-on-field \"Reply-to\") 490 (mail-position-on-field \"Reply-to\")
493 (insert (gnus-fetch-field \"From\"))))))))") 491 (insert (gnus-fetch-field \"From\")))))))")
494 492
495(defvar gnus-rmail-digest-hook nil 493(defvar gnus-rmail-digest-hook nil
496 "*A hook called when reading digest messages using Rmail. 494 "*A hook called when reading digest messages using Rmail.
@@ -502,7 +500,7 @@ This hook is intended to apply a KILL file to the selected newsgroup.
502The function `gnus-apply-kill-file' is called by default. 500The function `gnus-apply-kill-file' is called by default.
503 501
504Since a general KILL file is too heavy to use only for a few 502Since a general KILL file is too heavy to use only for a few
505newsgroups, I recommend you to use a lighter hook function. For 503newsgroups, I recommend you to use a lighter hook function. For
506example, if you'd like to apply a KILL file to articles which contains 504example, if you'd like to apply a KILL file to articles which contains
507a string `rmgroup' in subject in newsgroup `control', you can use the 505a string `rmgroup' in subject in newsgroup `control', you can use the
508following hook: 506following hook:
@@ -548,7 +546,7 @@ to a file).")
548(defvar gnus-exit-group-hook nil 546(defvar gnus-exit-group-hook nil
549 "*A hook called when exiting (not quitting) Summary mode. 547 "*A hook called when exiting (not quitting) Summary mode.
550If your machine is so slow that exiting from Summary mode takes very 548If your machine is so slow that exiting from Summary mode takes very
551long time, set the variable `gnus-use-cross-reference' to nil. This 549long time, set the variable `gnus-use-cross-reference' to nil. This
552inhibits marking articles as read using cross-reference information.") 550inhibits marking articles as read using cross-reference information.")
553 551
554(defvar gnus-suspend-gnus-hook nil 552(defvar gnus-suspend-gnus-hook nil
@@ -562,7 +560,7 @@ inhibits marking articles as read using cross-reference information.")
562This hook is called before saving the `.newsrc' file.") 560This hook is called before saving the `.newsrc' file.")
563 561
564 562
565;; Site dependent variables. You have to define these variables in 563;; Site dependent variables. You have to define these variables in
566;; site-init.el, default.el or your .emacs. 564;; site-init.el, default.el or your .emacs.
567 565
568(defvar gnus-local-timezone nil 566(defvar gnus-local-timezone nil
@@ -592,7 +590,7 @@ file is available, its content is also used.")
592 590
593(defvar gnus-use-generic-from nil 591(defvar gnus-use-generic-from nil
594 "*If nil, prepend local host name to the defined domain in the From: 592 "*If nil, prepend local host name to the defined domain in the From:
595field; if stringp, use this; if non-nil, strip of the local host name.") 593field; if a string, use this; if non-nil, strip of the local host name.")
596 594
597(defvar gnus-use-generic-path nil 595(defvar gnus-use-generic-path nil
598 "*If nil, use the NNTP server name in the Path: field; if stringp, 596 "*If nil, use the NNTP server name in the Path: field; if stringp,
@@ -684,7 +682,7 @@ It is a list of `(original overload &optional file)'.")
684(defvar gnus-distribution-list nil) 682(defvar gnus-distribution-list nil)
685 683
686(defvar gnus-newsrc-options nil 684(defvar gnus-newsrc-options nil
687 "Options line in the .newsrc file.") 685 "Options line in the `.newsrc' file.")
688 686
689(defvar gnus-newsrc-options-n-yes nil 687(defvar gnus-newsrc-options-n-yes nil
690 "Regexp representing subscribed newsgroups.") 688 "Regexp representing subscribed newsgroups.")
@@ -694,24 +692,24 @@ It is a list of `(original overload &optional file)'.")
694 692
695(defvar gnus-newsrc-assoc nil 693(defvar gnus-newsrc-assoc nil
696 "Assoc list of read articles. 694 "Assoc list of read articles.
697gnus-newsrc-hashtb should be kept so that both hold the same information.") 695`gnus-newsrc-hashtb' should be kept so that both hold the same information.")
698 696
699(defvar gnus-newsrc-hashtb nil 697(defvar gnus-newsrc-hashtb nil
700 "Hashtable of gnus-newsrc-assoc.") 698 "Hashtable of `gnus-newsrc-assoc'.")
701 699
702(defvar gnus-killed-assoc nil 700(defvar gnus-killed-assoc nil
703 "Assoc list of newsgroups removed from gnus-newsrc-assoc. 701 "Assoc list of newsgroups removed from `gnus-newsrc-assoc'.
704gnus-killed-hashtb should be kept so that both hold the same information.") 702`gnus-killed-hashtb' should be kept so that both hold the same information.")
705 703
706(defvar gnus-killed-hashtb nil 704(defvar gnus-killed-hashtb nil
707 "Hashtable of gnus-killed-assoc.") 705 "Hashtable of `gnus-killed-assoc'.")
708 706
709(defvar gnus-marked-assoc nil 707(defvar gnus-marked-assoc nil
710 "Assoc list of articles marked as unread. 708 "Assoc list of articles marked as unread.
711gnus-marked-hashtb should be kept so that both hold the same information.") 709`gnus-marked-hashtb' should be kept so that both hold the same information.")
712 710
713(defvar gnus-marked-hashtb nil 711(defvar gnus-marked-hashtb nil
714 "Hashtable of gnus-marked-assoc.") 712 "Hashtable of `gnus-marked-assoc'.")
715 713
716(defvar gnus-unread-hashtb nil 714(defvar gnus-unread-hashtb nil
717 "Hashtable of unread articles.") 715 "Hashtable of unread articles.")
@@ -752,9 +750,8 @@ gnus-marked-hashtb should be kept so that both hold the same information.")
752 750
753(defvar gnus-newsgroup-headers nil 751(defvar gnus-newsgroup-headers nil
754 "List of article headers in the current newsgroup. 752 "List of article headers in the current newsgroup.
755If the variable is modified (added or deleted), the function 753If you modify the variable, you must call the function
756gnus-clear-hashtables-for-newsgroup-headers must be called to clear 754`gnus-clear-hashtables-for-newsgroup-headers' to clear the hash tables.")
757the hash tables.")
758(defvar gnus-newsgroup-headers-hashtb-by-id nil) 755(defvar gnus-newsgroup-headers-hashtb-by-id nil)
759(defvar gnus-newsgroup-headers-hashtb-by-number nil) 756(defvar gnus-newsgroup-headers-hashtb-by-number nil)
760 757
@@ -811,7 +808,7 @@ the hash tables.")
811 "Rewrite Date field in GMT to local in current buffer.") 808 "Rewrite Date field in GMT to local in current buffer.")
812 809
813(autoload 'metamail-buffer "metamail" 810(autoload 'metamail-buffer "metamail"
814 "Process current buffer through 'metamail'." t) 811 "Process current buffer through `metamail'." t)
815 812
816(autoload 'rmail-output "rmailout" 813(autoload 'rmail-output "rmailout"
817 "Append this message to Unix mail file named FILE-NAME." t) 814 "Append this message to Unix mail file named FILE-NAME." t)
@@ -849,13 +846,13 @@ Optional argument HASHSIZE specifies the table size."
849 (` (symbol-value (intern-soft (, string) (, hashtable))))) 846 (` (symbol-value (intern-soft (, string) (, hashtable)))))
850 847
851(defmacro gnus-sethash (string value hashtable) 848(defmacro gnus-sethash (string value hashtable)
852 "Set hash value. Arguments are STRING, VALUE, and HASHTABLE." 849 "Set hash value. Arguments are STRING, VALUE, and HASHTABLE."
853 ;; We cannot use define-abbrev since it only accepts string as value. 850 ;; We cannot use define-abbrev since it only accepts string as value.
854 (` (set (intern (, string) (, hashtable)) (, value)))) 851 (` (set (intern (, string) (, hashtable)) (, value))))
855 852
856;; Note: Macros defined here are also defined in nntp.el. I don't like 853;; Note: Macros defined here are also defined in nntp.el. I don't like
857;; to put them here, but many users got troubled with the old 854;; to put them here, but many users got troubled with the old
858;; definitions in nntp.elc. These codes are NNTP 3.10 version. 855;; definitions in nntp.elc. These codes are NNTP 3.10 version.
859 856
860(defmacro nntp-header-number (header) 857(defmacro nntp-header-number (header)
861 "Return article number in HEADER." 858 "Return article number in HEADER."
@@ -1063,15 +1060,15 @@ C-h m Describe Group Mode.
1063C-c C-i Read Info about Group Mode. 1060C-c C-i Read Info about Group Mode.
1064 1061
1065 The name of the host running NNTP server is asked for if no default 1062 The name of the host running NNTP server is asked for if no default
1066host is specified. It is also possible to choose another NNTP server 1063host is specified. It is also possible to choose another NNTP server
1067even when the default server is defined by giving a prefix argument to 1064even when the default server is defined by giving a prefix argument to
1068the command `\\[gnus]'. 1065the command `\\[gnus]'.
1069 1066
1070 If an NNTP server is preceded by a colon such as `:Mail', the user's 1067 If the NNTP server name starts with a colon, as in `:Mail', the user's
1071private directory `~/Mail' is used as a news spool. This makes it 1068own directory `~/Mail' is used as a news spool. This makes it
1072possible to read mail stored in MH folders or articles saved by GNUS. 1069possible to read mail stored in MH folders or articles saved by GNUS.
1073File names of mail or articles must consist of only numeric 1070File names of mail or articles must consist of only numeric
1074characters. Otherwise, they are ignored. 1071characters. Otherwise, they are ignored.
1075 1072
1076 If there is a file named `~/.newsrc-SERVER', it is used as the 1073 If there is a file named `~/.newsrc-SERVER', it is used as the
1077startup file instead of standard one when talking to SERVER. It is 1074startup file instead of standard one when talking to SERVER. It is
@@ -1079,7 +1076,7 @@ possible to talk to many hosts by using different startup files for
1079each. 1076each.
1080 1077
1081 Option `-n' of the options line in the startup file is recognized 1078 Option `-n' of the options line in the startup file is recognized
1082properly the same as the Bnews system. For example, if the options 1079properly the same as the Bnews system. For example, if the options
1083line is `options -n !talk talk.rumors', newsgroups under the `talk' 1080line is `options -n !talk talk.rumors', newsgroups under the `talk'
1084hierarchy except for `talk.rumors' are ignored while checking new 1081hierarchy except for `talk.rumors' are ignored while checking new
1085newsgroups. 1082newsgroups.
@@ -1098,7 +1095,7 @@ nntp.el, nnspool.el, and mhspoo.el, respectively.
1098 1095
1099User customizable variables: 1096User customizable variables:
1100 gnus-nntp-server 1097 gnus-nntp-server
1101 Specifies the name of the host running the NNTP server. If its 1098 Specifies the name of the host running the NNTP server. If its
1102 value is a string such as `:DIRECTORY', the user's private 1099 value is a string such as `:DIRECTORY', the user's private
1103 DIRECTORY is used as a news spool. The variable is initialized 1100 DIRECTORY is used as a news spool. The variable is initialized
1104 from the NNTPSERVER environment variable. 1101 from the NNTPSERVER environment variable.
@@ -1179,12 +1176,12 @@ User customizable variables:
1179Various hooks for customization: 1176Various hooks for customization:
1180 gnus-group-mode-hook 1177 gnus-group-mode-hook
1181 Entry to this mode calls the value with no arguments, if that 1178 Entry to this mode calls the value with no arguments, if that
1182 value is non-nil. This hook is called before GNUS is connected to 1179 value is non-nil. This hook is called before GNUS is connected to
1183 the NNTP server. So, you can change or define the NNTP server in 1180 the NNTP server. So, you can change or define the NNTP server in
1184 this hook. 1181 this hook.
1185 1182
1186 gnus-startup-hook 1183 gnus-startup-hook
1187 Called with no arguments after the NNTP server is selected. It is 1184 Called with no arguments after the NNTP server is selected. It is
1188 possible to change the behavior of GNUS or initialize the 1185 possible to change the behavior of GNUS or initialize the
1189 variables according to the selected NNTP server. 1186 variables according to the selected NNTP server.
1190 1187
@@ -1275,7 +1272,7 @@ If optional argument CONFIRM is non-nil, ask NNTP server."
1275 1272
1276 1273
1277If you have any trouble with this software, please let me 1274If you have any trouble with this software, please let me
1278know. I will fix your problems in the next release. 1275know. I will fix your problems in the next release.
1279 1276
1280Comments, suggestions, and bug fixes are welcome. 1277Comments, suggestions, and bug fixes are welcome.
1281 1278
@@ -1368,7 +1365,7 @@ If optional argument ALL is non-nil, unsubscribed groups are also listed."
1368 1365
1369(defun gnus-group-prepare-line (info) 1366(defun gnus-group-prepare-line (info)
1370 "Return a string for the Newsgroup buffer from INFO. 1367 "Return a string for the Newsgroup buffer from INFO.
1371INFO is an element of gnus-newsrc-assoc or gnus-killed-assoc." 1368INFO is an element of `gnus-newsrc-assoc' or `gnus-killed-assoc'."
1372 (let* ((group-name (car info)) 1369 (let* ((group-name (car info))
1373 (unread-count 1370 (unread-count
1374 (or (nth 1 (gnus-gethash group-name gnus-unread-hashtb)) 1371 (or (nth 1 (gnus-gethash group-name gnus-unread-hashtb))
@@ -1421,7 +1418,7 @@ If optional argument VISIBLE-ONLY is non-nil, non displayed group is ignored."
1421 ((progn 1418 ((progn
1422 (goto-char (point-max)) 1419 (goto-char (point-max))
1423 (re-search-backward regexp nil t)))) 1420 (re-search-backward regexp nil t))))
1424 ;; GROUP is listed in current buffer. So, delete old line. 1421 ;; GROUP is listed in current buffer. So, delete old line.
1425 (progn 1422 (progn
1426 (setq visible t) 1423 (setq visible t)
1427 (beginning-of-line) 1424 (beginning-of-line)
@@ -1521,7 +1518,7 @@ If argument ALL is non-nil, already read articles become readable."
1521 )) 1518 ))
1522 1519
1523(defun gnus-group-next-group (n) 1520(defun gnus-group-next-group (n)
1524 "Go to next N'th newsgroup." 1521 "Go to Nth following newsgroup."
1525 (interactive "p") 1522 (interactive "p")
1526 (while (and (> n 1) 1523 (while (and (> n 1)
1527 (gnus-group-search-forward nil t)) 1524 (gnus-group-search-forward nil t))
@@ -1530,7 +1527,7 @@ If argument ALL is non-nil, already read articles become readable."
1530 (message "No more newsgroups"))) 1527 (message "No more newsgroups")))
1531 1528
1532(defun gnus-group-next-unread-group (n) 1529(defun gnus-group-next-unread-group (n)
1533 "Go to next N'th unread newsgroup." 1530 "Go to Nth following unread newsgroup."
1534 (interactive "p") 1531 (interactive "p")
1535 (while (and (> n 1) 1532 (while (and (> n 1)
1536 (gnus-group-search-forward nil nil)) 1533 (gnus-group-search-forward nil nil))
@@ -1539,7 +1536,7 @@ If argument ALL is non-nil, already read articles become readable."
1539 (message "No more unread newsgroups"))) 1536 (message "No more unread newsgroups")))
1540 1537
1541(defun gnus-group-prev-group (n) 1538(defun gnus-group-prev-group (n)
1542 "Go to previous N'th newsgroup." 1539 "Go to Nth previous newsgroup."
1543 (interactive "p") 1540 (interactive "p")
1544 (while (and (> n 1) 1541 (while (and (> n 1)
1545 (gnus-group-search-forward t t)) 1542 (gnus-group-search-forward t t))
@@ -1548,7 +1545,7 @@ If argument ALL is non-nil, already read articles become readable."
1548 (message "No more newsgroups"))) 1545 (message "No more newsgroups")))
1549 1546
1550(defun gnus-group-prev-unread-group (n) 1547(defun gnus-group-prev-unread-group (n)
1551 "Go to previous N'th unread newsgroup." 1548 "Go to Nth previous unread newsgroup."
1552 (interactive "p") 1549 (interactive "p")
1553 (while (and (> n 1) 1550 (while (and (> n 1)
1554 (gnus-group-search-forward t nil)) 1551 (gnus-group-search-forward t nil))
@@ -1596,7 +1593,7 @@ Cross references (Xref: field) of articles are ignored."
1596 1593
1597(defun gnus-group-unsubscribe-group (group) 1594(defun gnus-group-unsubscribe-group (group)
1598 "Toggle subscribe from/to unsubscribe GROUP. 1595 "Toggle subscribe from/to unsubscribe GROUP.
1599New newsgroup is added to .newsrc automatically." 1596\(If GROUP is new, it is added to `.newsrc' automatically.)"
1600 (interactive 1597 (interactive
1601 (list (completing-read "Newsgroup: " 1598 (list (completing-read "Newsgroup: "
1602 gnus-active-hashtb nil 'require-match))) 1599 gnus-active-hashtb nil 'require-match)))
@@ -1628,7 +1625,7 @@ New newsgroup is added to .newsrc automatically."
1628 (message "Listing all groups...done")) 1625 (message "Listing all groups...done"))
1629 1626
1630(defun gnus-group-get-new-news () 1627(defun gnus-group-get-new-news ()
1631 "Get newly arrived articles. In fact, read the active file again." 1628 "Get newly arrived articles. In fact, read the active file again."
1632 (interactive) 1629 (interactive)
1633 (gnus-setup-news) 1630 (gnus-setup-news)
1634 (gnus-group-list-groups gnus-have-all-newsgroups)) 1631 (gnus-group-list-groups gnus-have-all-newsgroups))
@@ -1687,7 +1684,7 @@ Type \\[widen] to remove restriction."
1687(defun gnus-group-suspend () 1684(defun gnus-group-suspend ()
1688 "Suspend the current GNUS session. 1685 "Suspend the current GNUS session.
1689In fact, cleanup buffers except for Group Mode buffer. 1686In fact, cleanup buffers except for Group Mode buffer.
1690The hook gnus-suspend-gnus-hook is called before actually suspending." 1687The hook `gnus-suspend-gnus-hook' is called before actually suspending."
1691 (interactive) 1688 (interactive)
1692 (run-hooks 'gnus-suspend-gnus-hook) 1689 (run-hooks 'gnus-suspend-gnus-hook)
1693 ;; Kill GNUS buffers except for Group Mode buffer. 1690 ;; Kill GNUS buffers except for Group Mode buffer.
@@ -1703,8 +1700,8 @@ The hook gnus-suspend-gnus-hook is called before actually suspending."
1703 (delete-windows-on group-buf t))) 1700 (delete-windows-on group-buf t)))
1704 1701
1705(defun gnus-group-exit () 1702(defun gnus-group-exit ()
1706 "Quit reading news after updating .newsrc. 1703 "Quit reading news after updating `.newsrc'.
1707The hook gnus-exit-gnus-hook is called before actually quitting." 1704The hook `gnus-exit-gnus-hook' is called before actually quitting."
1708 (interactive) 1705 (interactive)
1709 (if (or noninteractive ;For gnus-batch-kill 1706 (if (or noninteractive ;For gnus-batch-kill
1710 (zerop (buffer-size)) ;No news is good news. 1707 (zerop (buffer-size)) ;No news is good news.
@@ -1720,8 +1717,8 @@ The hook gnus-exit-gnus-hook is called before actually quitting."
1720 )) 1717 ))
1721 1718
1722(defun gnus-group-quit () 1719(defun gnus-group-quit ()
1723 "Quit reading news without updating .newsrc. 1720 "Quit reading news without updating `.newsrc'.
1724The hook gnus-exit-gnus-hook is called before actually quitting." 1721The hook `gnus-exit-gnus-hook' is called before actually quitting."
1725 (interactive) 1722 (interactive)
1726 (if (or noninteractive ;For gnus-batch-kill 1723 (if (or noninteractive ;For gnus-batch-kill
1727 (zerop (buffer-size)) 1724 (zerop (buffer-size))
@@ -2061,7 +2058,7 @@ C-c C-s C-a Sort subjects by article author.
2061C-c C-s C-s Sort subjects alphabetically. 2058C-c C-s C-s Sort subjects alphabetically.
2062C-c C-s C-d Sort subjects by date. 2059C-c C-s C-d Sort subjects by date.
2063= Expand Summary window to show headers full window. 2060= Expand Summary window to show headers full window.
2064C-x C-s Reselect the current newsgroup. Prefix argument means to select all. 2061C-x C-s Reselect the current newsgroup. Prefix argument means to select all.
2065w Stop page breaking by linefeed. 2062w Stop page breaking by linefeed.
2066C-c C-r Caesar rotates letters by 13/47 places. 2063C-c C-r Caesar rotates letters by 13/47 places.
2067g Force to show the current article. 2064g Force to show the current article.
@@ -2089,21 +2086,21 @@ C-c C-i Read Info about Summary mode.
2089 2086
2090User customizable variables: 2087User customizable variables:
2091 gnus-large-newsgroup 2088 gnus-large-newsgroup
2092 The number of articles which indicates a large newsgroup. If the 2089 The number of articles which indicates a large newsgroup. If the
2093 number of articles in a newsgroup is greater than the value, the 2090 number of articles in a newsgroup is greater than the value, the
2094 number of articles to be selected is asked for. If the given value 2091 number of articles to be selected is asked for. If the given value
2095 N is positive, the last N articles is selected. If N is negative, 2092 N is positive, the last N articles is selected. If N is negative,
2096 the first N articles are selected. An empty string means to select 2093 the first N articles are selected. An empty string means to select
2097 all articles. 2094 all articles.
2098 2095
2099 gnus-use-long-file-name 2096 gnus-use-long-file-name
2100 Non-nil means that a newsgroup name is used as a default file name 2097 Non-nil means that a newsgroup name is used as a default file name
2101 to save articles to. If it's nil, the directory form of a 2098 to save articles to. If it's nil, the directory form of a
2102 newsgroup is used instead. 2099 newsgroup is used instead.
2103 2100
2104 gnus-default-article-saver 2101 gnus-default-article-saver
2105 Specifies your favorite article saver which is interactively 2102 Specifies your favorite article saver which is interactively
2106 funcallable. Following functions are available: 2103 funcallable. Following functions are available:
2107 2104
2108 gnus-summary-save-in-rmail (in Rmail format) 2105 gnus-summary-save-in-rmail (in Rmail format)
2109 gnus-summary-save-in-mail (in Unix mail format) 2106 gnus-summary-save-in-mail (in Unix mail format)
@@ -2117,18 +2114,18 @@ User customizable variables:
2117 Specifies a function generating a file name to save articles in 2114 Specifies a function generating a file name to save articles in
2118 specified format. The function is called with NEWSGROUP, HEADERS, 2115 specified format. The function is called with NEWSGROUP, HEADERS,
2119 and optional LAST-FILE. Access macros to the headers are defined 2116 and optional LAST-FILE. Access macros to the headers are defined
2120 as nntp-header-FIELD, and functions are defined as 2117 as `nntp-header-FIELD', and functions are defined as
2121 gnus-header-FIELD. 2118 `gnus-header-FIELD'.
2122 2119
2123 gnus-article-save-directory 2120 gnus-article-save-directory
2124 Specifies a directory name to save articles to using the commands 2121 Specifies a directory name to save articles to using the commands
2125 gnus-summary-save-in-rmail, gnus-summary-save-in-mail and 2122 `gnus-summary-save-in-rmail', `gnus-summary-save-in-mail' and
2126 gnus-summary-save-in-file. The variable is initialized from the 2123 `gnus-summary-save-in-file'. The variable is initialized from the
2127 SAVEDIR environment variable. 2124 SAVEDIR environment variable.
2128 2125
2129 gnus-kill-files-directory 2126 gnus-kill-files-directory
2130 Specifies a directory name to save KILL files to using the commands 2127 Specifies a directory name to save KILL files to using the commands
2131 gnus-edit-global-kill, and gnus-edit-local-kill. The variable is 2128 `gnus-edit-global-kill', and `gnus-edit-local-kill'. The variable is
2132 initialized from the SAVEDIR environment variable. 2129 initialized from the SAVEDIR environment variable.
2133 2130
2134 gnus-show-all-headers 2131 gnus-show-all-headers
@@ -2161,7 +2158,7 @@ User customizable variables:
2161 2158
2162 gnus-optional-headers 2159 gnus-optional-headers
2163 Specifies a function which generates an optional string displayed 2160 Specifies a function which generates an optional string displayed
2164 in the Summary buffer. The function is called with an article 2161 in the Summary buffer. The function is called with an article
2165 HEADERS. The result must be a string excluding `[' and `]'. The 2162 HEADERS. The result must be a string excluding `[' and `]'. The
2166 default function returns a string like NNN:AUTHOR, where NNN is 2163 default function returns a string like NNN:AUTHOR, where NNN is
2167 the number of lines in an article and AUTHOR is the name of the 2164 the number of lines in an article and AUTHOR is the name of the
@@ -2173,16 +2170,16 @@ User customizable variables:
2173 2170
2174 gnus-auto-select-first 2171 gnus-auto-select-first
2175 Non-nil means the first unread article is selected automagically 2172 Non-nil means the first unread article is selected automagically
2176 when a newsgroup is selected normally (by gnus-group-read-group). 2173 when a newsgroup is selected normally (by `gnus-group-read-group').
2177 If you'd like to prevent automatic selection of the first unread 2174 If you'd like to prevent automatic selection of the first unread
2178 article in some newsgroups, set the variable to nil in 2175 article in some newsgroups, set the variable to nil in
2179 gnus-select-group-hook or gnus-apply-kill-hook. 2176 `gnus-select-group-hook' or `gnus-apply-kill-hook'.
2180 2177
2181 gnus-auto-select-next 2178 gnus-auto-select-next
2182 Non-nil means the next newsgroup is selected automagically at the 2179 Non-nil means the next newsgroup is selected automagically at the
2183 end of the newsgroup. If the value is t and the next newsgroup is 2180 end of the newsgroup. If the value is t and the next newsgroup is
2184 empty (no unread articles), GNUS will exit Summary mode and go 2181 empty (no unread articles), GNUS will exit Summary mode and go
2185 back to Group mode. If the value is neither nil nor t, GNUS won't 2182 back to Group mode. If the value is neither nil nor t, GNUS won't
2186 exit Summary mode but select the following unread newsgroup. 2183 exit Summary mode but select the following unread newsgroup.
2187 Especially, if the value is the symbol `quietly', the next unread 2184 Especially, if the value is the symbol `quietly', the next unread
2188 newsgroup will be selected without any confirmations. 2185 newsgroup will be selected without any confirmations.
@@ -2204,9 +2201,6 @@ User customizable variables:
2204 Specifies a regexp describing line-beginnings that separate pages 2201 Specifies a regexp describing line-beginnings that separate pages
2205 of news article. 2202 of news article.
2206 2203
2207 [gnus-more-message is obsolete. overlay-arrow-string interfares
2208 with other subsystems, such as dbx mode.]
2209
2210 gnus-digest-show-summary 2204 gnus-digest-show-summary
2211 Non-nil means that a summary of digest messages is shown when 2205 Non-nil means that a summary of digest messages is shown when
2212 reading a digest article using `gnus-summary-rmail-digest' 2206 reading a digest article using `gnus-summary-rmail-digest'
@@ -2218,17 +2212,17 @@ User customizable variables:
2218 gnus-mail-reply-method 2212 gnus-mail-reply-method
2219 gnus-mail-other-window-method 2213 gnus-mail-other-window-method
2220 Specifies a function to begin composing mail message using 2214 Specifies a function to begin composing mail message using
2221 commands gnus-summary-reply and gnus-summary-mail-other-window. 2215 commands `gnus-summary-reply' and `gnus-summary-mail-other-window'.
2222 Functions gnus-mail-reply-using-mail and gnus-mail-reply-using-mhe 2216 Functions `gnus-mail-reply-using-mail' and `gnus-mail-reply-using-mhe'
2223 are available for the value of gnus-mail-reply-method. And 2217 are available for the value of `gnus-mail-reply-method'. And
2224 functions gnus-mail-other-window-using-mail and 2218 functions `gnus-mail-other-window-using-mail' and
2225 gnus-mail-other-window-using-mhe are available for the value of 2219 `gnus-mail-other-window-using-mhe' are available for the value of
2226 gnus-mail-other-window-method. 2220 `gnus-mail-other-window-method'.
2227 2221
2228 gnus-mail-send-method 2222 gnus-mail-send-method
2229 Specifies a function to mail a message too which is being posted 2223 Specifies a function to mail a message too which is being posted
2230 as an article. The message must have To: or Cc: field. The value 2224 as an article. The message must have To: or Cc: field. The value
2231 of the variable send-mail-function is the default function which 2225 of the variable `send-mail-function' is the default function, which
2232 uses sendmail mail program. 2226 uses sendmail mail program.
2233 2227
2234Various hooks for customization: 2228Various hooks for customization:
@@ -2238,47 +2232,47 @@ Various hooks for customization:
2238 2232
2239 gnus-select-group-hook 2233 gnus-select-group-hook
2240 Called with no arguments when newsgroup is selected, if that value 2234 Called with no arguments when newsgroup is selected, if that value
2241 is non-nil. It is possible to sort subjects in this hook. See the 2235 is non-nil. It is possible to sort subjects in this hook. See the
2242 documentation of this variable for more information. 2236 documentation of this variable for more information.
2243 2237
2244 gnus-summary-prepare-hook 2238 gnus-summary-prepare-hook
2245 Called with no arguments after a summary list is created in the 2239 Called with no arguments after a summary list is created in the
2246 Summary buffer, if that value is non-nil. If you'd like to modify 2240 Summary buffer, if that value is non-nil. If you'd like to modify
2247 the buffer, you can use this hook. 2241 the buffer, you can use this hook.
2248 2242
2249 gnus-select-article-hook 2243 gnus-select-article-hook
2250 Called with no arguments when an article is selected, if that 2244 Called with no arguments when an article is selected, if that
2251 value is non-nil. See the documentation of this variable for more 2245 value is non-nil. See the documentation of this variable for more
2252 information. 2246 information.
2253 2247
2254 gnus-select-digest-hook 2248 gnus-select-digest-hook
2255 Called with no arguments when reading digest messages using Rmail, 2249 Called with no arguments when reading digest messages using Rmail,
2256 if that value is non-nil. This hook can be used to modify an 2250 if that value is non-nil. This hook can be used to modify an
2257 article so that Rmail can work with it. See the documentation of 2251 article so that Rmail can work with it. See the documentation of
2258 the variable for more information. 2252 the variable for more information.
2259 2253
2260 gnus-rmail-digest-hook 2254 gnus-rmail-digest-hook
2261 Called with no arguments when reading digest messages using Rmail, 2255 Called with no arguments when reading digest messages using Rmail,
2262 if that value is non-nil. This hook is intended to customize Rmail 2256 if that value is non-nil. This hook is intended to customize Rmail
2263 mode. 2257 mode.
2264 2258
2265 gnus-apply-kill-hook 2259 gnus-apply-kill-hook
2266 Called with no arguments when a newsgroup is selected and the 2260 Called with no arguments when a newsgroup is selected and the
2267 Summary buffer is prepared. This hook is intended to apply a KILL 2261 Summary buffer is prepared. This hook is intended to apply a KILL
2268 file to the selected newsgroup. The format of KILL file is 2262 file to the selected newsgroup. The format of KILL file is
2269 completely different from that of version 3.8. You have to rewrite 2263 completely different from that of version 3.8. You have to rewrite
2270 them in the new format. See the documentation of Kill file mode 2264 them in the new format. See the documentation of Kill file mode
2271 for more information. 2265 for more information.
2272 2266
2273 gnus-mark-article-hook 2267 gnus-mark-article-hook
2274 Called with no arguments when an article is selected at the first 2268 Called with no arguments when an article is selected at the first
2275 time. The hook is intended to mark an article as read (or unread) 2269 time. The hook is intended to mark an article as read (or unread)
2276 automatically when it is selected. See the documentation of the 2270 automatically when it is selected. See the documentation of the
2277 variable for more information. 2271 variable for more information.
2278 2272
2279 gnus-exit-group-hook 2273 gnus-exit-group-hook
2280 Called with no arguments when exiting the current newsgroup, if 2274 Called with no arguments when exiting the current newsgroup, if
2281 that value is non-nil. If your machine is so slow that exiting 2275 that value is non-nil. If your machine is so slow that exiting
2282 from Summary mode takes very long time, inhibit marking articles 2276 from Summary mode takes very long time, inhibit marking articles
2283 as read using cross-references by setting the variable 2277 as read using cross-references by setting the variable
2284 gnus-use-cross-reference to nil in this hook." 2278 gnus-use-cross-reference to nil in this hook."
@@ -2496,7 +2490,7 @@ Optional PARENT-SUBJECT specifies the subject of the parent."
2496 2490
2497(defun gnus-summary-set-mode-line () 2491(defun gnus-summary-set-mode-line ()
2498 "Set Summary mode line string. 2492 "Set Summary mode line string.
2499If you don't like it, define your own gnus-summary-set-mode-line." 2493If you don't like it, define your own `gnus-summary-set-mode-line'."
2500 (let ((unmarked 2494 (let ((unmarked
2501 (- (length gnus-newsgroup-unreads) 2495 (- (length gnus-newsgroup-unreads)
2502 (length (gnus-intersection 2496 (length (gnus-intersection
@@ -2586,7 +2580,8 @@ the same subject will be searched for."
2586 (gnus-summary-search-subject t unread subject)) 2580 (gnus-summary-search-subject t unread subject))
2587 2581
2588(defun gnus-summary-article-number () 2582(defun gnus-summary-article-number ()
2589 "Article number around point. If nothing, return current number." 2583 "Return the Article number around point.
2584If none, return current article number."
2590 (save-excursion 2585 (save-excursion
2591 (beginning-of-line) 2586 (beginning-of-line)
2592 (if (looking-at ".[ \t]+\\([0-9]+\\):") 2587 (if (looking-at ".[ \t]+\\([0-9]+\\):")
@@ -2680,8 +2675,8 @@ If prefix argument NO-ARTICLE is non-nil, no article is selected initially."
2680 (get-buffer gnus-summary-buffer)) 2675 (get-buffer gnus-summary-buffer))
2681 (eq gnus-auto-select-next t) 2676 (eq gnus-auto-select-next t)
2682 ;; Expected newsgroup has nothing to read since the articles 2677 ;; Expected newsgroup has nothing to read since the articles
2683 ;; are marked as read by cross-referencing. So, try next 2678 ;; are marked as read by cross-referencing. So, try next
2684 ;; newsgroup. (Make sure we are in Group mode buffer now.) 2679 ;; newsgroup. (Make sure we are in Group mode buffer now.)
2685 (and (eq (current-buffer) 2680 (and (eq (current-buffer)
2686 (get-buffer gnus-group-buffer)) 2681 (get-buffer gnus-group-buffer))
2687 (gnus-group-group-name) 2682 (gnus-group-group-name)
@@ -2713,8 +2708,8 @@ If prefix argument NO-ARTICLE is non-nil, no article is selected initially."
2713 (get-buffer gnus-summary-buffer)) 2708 (get-buffer gnus-summary-buffer))
2714 (eq gnus-auto-select-next t) 2709 (eq gnus-auto-select-next t)
2715 ;; Expected newsgroup has nothing to read since the articles 2710 ;; Expected newsgroup has nothing to read since the articles
2716 ;; are marked as read by cross-referencing. So, try next 2711 ;; are marked as read by cross-referencing. So, try next
2717 ;; newsgroup. (Make sure we are in Group mode buffer now.) 2712 ;; newsgroup. (Make sure we are in Group mode buffer now.)
2718 (and (eq (current-buffer) 2713 (and (eq (current-buffer)
2719 (get-buffer gnus-group-buffer)) 2714 (get-buffer gnus-group-buffer))
2720 (gnus-summary-search-group t) 2715 (gnus-summary-search-group t)
@@ -2726,7 +2721,7 @@ If prefix argument NO-ARTICLE is non-nil, no article is selected initially."
2726;; Walking around summary lines. 2721;; Walking around summary lines.
2727 2722
2728(defun gnus-summary-next-subject (n &optional unread) 2723(defun gnus-summary-next-subject (n &optional unread)
2729 "Go to next N'th summary line. 2724 "Go to Nth following summary line.
2730If optional argument UNREAD is non-nil, only unread article is selected." 2725If optional argument UNREAD is non-nil, only unread article is selected."
2731 (interactive "p") 2726 (interactive "p")
2732 (while (and (> n 1) 2727 (while (and (> n 1)
@@ -2741,12 +2736,12 @@ If optional argument UNREAD is non-nil, only unread article is selected."
2741 )) 2736 ))
2742 2737
2743(defun gnus-summary-next-unread-subject (n) 2738(defun gnus-summary-next-unread-subject (n)
2744 "Go to next N'th unread summary line." 2739 "Go to Nth following unread summary line."
2745 (interactive "p") 2740 (interactive "p")
2746 (gnus-summary-next-subject n t)) 2741 (gnus-summary-next-subject n t))
2747 2742
2748(defun gnus-summary-prev-subject (n &optional unread) 2743(defun gnus-summary-prev-subject (n &optional unread)
2749 "Go to previous N'th summary line. 2744 "Go to Nth previous summary line.
2750If optional argument UNREAD is non-nil, only unread article is selected." 2745If optional argument UNREAD is non-nil, only unread article is selected."
2751 (interactive "p") 2746 (interactive "p")
2752 (while (and (> n 1) 2747 (while (and (> n 1)
@@ -2761,7 +2756,7 @@ If optional argument UNREAD is non-nil, only unread article is selected."
2761 )) 2756 ))
2762 2757
2763(defun gnus-summary-prev-unread-subject (n) 2758(defun gnus-summary-prev-unread-subject (n)
2764 "Go to previous N'th unread summary line." 2759 "Go to Nth previous unread summary line."
2765 (interactive "p") 2760 (interactive "p")
2766 (gnus-summary-prev-subject n t)) 2761 (gnus-summary-prev-subject n t))
2767 2762
@@ -2980,7 +2975,7 @@ If argument UNREAD is non-nil, only unread article is selected."
2980 ))) 2975 )))
2981 2976
2982(defun gnus-summary-prev-unread-article () 2977(defun gnus-summary-prev-unread-article ()
2983 "Select unred article before current one." 2978 "Select unread article before current one."
2984 (interactive) 2979 (interactive)
2985 (gnus-summary-prev-article t (and gnus-auto-select-same 2980 (gnus-summary-prev-article t (and gnus-auto-select-same
2986 (gnus-summary-subject-string)))) 2981 (gnus-summary-subject-string))))
@@ -3058,7 +3053,7 @@ Argument LINES specifies lines to be scrolled up (or down if negative)."
3058 "Refer parent article of current article. 3053 "Refer parent article of current article.
3059If a prefix argument CHILD is non-nil, go back to the child article 3054If a prefix argument CHILD is non-nil, go back to the child article
3060using internally maintained articles history. 3055using internally maintained articles history.
3061NOTE: This command may not work with nnspool.el." 3056NOTE: This command may not work with `nnspool.el'."
3062 (interactive "P") 3057 (interactive "P")
3063 (gnus-summary-select-article t t) ;Request all headers. 3058 (gnus-summary-select-article t t) ;Request all headers.
3064 (let ((referenced-id nil)) ;Message-id of parent or child article. 3059 (let ((referenced-id nil)) ;Message-id of parent or child article.
@@ -3086,7 +3081,7 @@ NOTE: This command may not work with nnspool.el."
3086 "Refer article specified by MESSAGE-ID. 3081 "Refer article specified by MESSAGE-ID.
3087If the MESSAGE-ID is nil or an empty string, Message-ID is poped from 3082If the MESSAGE-ID is nil or an empty string, Message-ID is poped from
3088internally maintained articles history. 3083internally maintained articles history.
3089NOTE: This command may not work with nnspool.el nor mhspool.el." 3084NOTE: This command may not work with `nnspool.el' nor `mhspool.el'."
3090 (interactive "sMessage-ID: ") 3085 (interactive "sMessage-ID: ")
3091 ;; Make sure that this command depends on the fact that article 3086 ;; Make sure that this command depends on the fact that article
3092 ;; related information is not updated when an article is retrieved 3087 ;; related information is not updated when an article is retrieved
@@ -3121,24 +3116,23 @@ NOTE: This command may not work with nnspool.el nor mhspool.el."
3121 (error "No such references")) 3116 (error "No such references"))
3122 ) 3117 )
3123 3118
3124(defun gnus-summary-next-digest (nth) 3119(defun gnus-summary-next-digest (n)
3125 "Move to head of NTH next digested message." 3120 "Move to head of Nth next digested message."
3126 (interactive "p") 3121 (interactive "p")
3127 (gnus-summary-select-article) 3122 (gnus-summary-select-article)
3128 (gnus-eval-in-buffer-window gnus-article-buffer 3123 (gnus-eval-in-buffer-window gnus-article-buffer
3129 (gnus-article-next-digest (or nth 1)) 3124 (gnus-article-next-digest (or n 1))
3130 )) 3125 ))
3131 3126
3132(defun gnus-summary-prev-digest (nth) 3127(defun gnus-summary-prev-digest (n)
3133 "Move to head of NTH previous digested message." 3128 "Move to head of Nth previous digested message."
3134 (interactive "p") 3129 (interactive "p")
3135 (gnus-summary-select-article) 3130 (gnus-summary-select-article)
3136 (gnus-eval-in-buffer-window gnus-article-buffer 3131 (gnus-eval-in-buffer-window gnus-article-buffer
3137 (gnus-article-prev-digest (or nth 1)) 3132 (gnus-article-prev-digest (or n 1))))
3138 ))
3139 3133
3140(defun gnus-summary-first-unread-article () 3134(defun gnus-summary-first-unread-article ()
3141 "Select first unread article. Return non-nil if successfully selected." 3135 "Select first unread article. Return non-nil if successfully selected."
3142 (interactive) 3136 (interactive)
3143 (let ((begin (point))) 3137 (let ((begin (point)))
3144 (goto-char (point-min)) 3138 (goto-char (point-min))
@@ -3161,7 +3155,8 @@ NOTE: This command may not work with nnspool.el nor mhspool.el."
3161 3155
3162(defun gnus-summary-search-article-forward (regexp) 3156(defun gnus-summary-search-article-forward (regexp)
3163 "Search for an article containing REGEXP forward. 3157 "Search for an article containing REGEXP forward.
3164gnus-select-article-hook is not called during the search." 3158`gnus-select-article-hook' is not called for articles examined
3159by searching search."
3165 (interactive 3160 (interactive
3166 (list (read-string 3161 (list (read-string
3167 (concat "Search forward (regexp): " 3162 (concat "Search forward (regexp): "
@@ -3180,7 +3175,8 @@ gnus-select-article-hook is not called during the search."
3180 3175
3181(defun gnus-summary-search-article-backward (regexp) 3176(defun gnus-summary-search-article-backward (regexp)
3182 "Search for an article containing REGEXP backward. 3177 "Search for an article containing REGEXP backward.
3183gnus-select-article-hook is not called during the search." 3178`gnus-select-article-hook' is not called for articles examined
3179by searching search."
3184 (interactive 3180 (interactive
3185 (list (read-string 3181 (list (read-string
3186 (concat "Search backward (regexp): " 3182 (concat "Search backward (regexp): "
@@ -3200,7 +3196,8 @@ gnus-select-article-hook is not called during the search."
3200(defun gnus-summary-search-article (regexp &optional backward) 3196(defun gnus-summary-search-article (regexp &optional backward)
3201 "Search for an article containing REGEXP. 3197 "Search for an article containing REGEXP.
3202Optional argument BACKWARD means do search for backward. 3198Optional argument BACKWARD means do search for backward.
3203gnus-select-article-hook is not called during the search." 3199`gnus-select-article-hook' is not called for articles examined
3200by searching search."
3204 (let ((gnus-select-article-hook nil) ;Disable hook. 3201 (let ((gnus-select-article-hook nil) ;Disable hook.
3205 (gnus-mark-article-hook nil) ;Inhibit marking as read. 3202 (gnus-mark-article-hook nil) ;Inhibit marking as read.
3206 (re-search 3203 (re-search
@@ -3265,10 +3262,10 @@ If optional (prefix) argument BACKWARD is non-nil, do backward instead."
3265 (` (lambda () 3262 (` (lambda ()
3266 (call-interactively '(, (key-binding command))))) 3263 (call-interactively '(, (key-binding command)))))
3267 backward) 3264 backward)
3268 (message "Executing %s... done" (key-description command))))) 3265 (message "Executing %s...done" (key-description command)))))
3269 3266
3270(defun gnus-summary-beginning-of-article () 3267(defun gnus-summary-beginning-of-article ()
3271 "Go to beginning of article body" 3268 "Go to beginning of article body."
3272 (interactive) 3269 (interactive)
3273 (gnus-summary-select-article) 3270 (gnus-summary-select-article)
3274 (gnus-eval-in-buffer-window gnus-article-buffer 3271 (gnus-eval-in-buffer-window gnus-article-buffer
@@ -3279,7 +3276,7 @@ If optional (prefix) argument BACKWARD is non-nil, do backward instead."
3279 )) 3276 ))
3280 3277
3281(defun gnus-summary-end-of-article () 3278(defun gnus-summary-end-of-article ()
3282 "Go to end of article body" 3279 "Go to end of article body."
3283 (interactive) 3280 (interactive)
3284 (gnus-summary-select-article) 3281 (gnus-summary-select-article)
3285 (gnus-eval-in-buffer-window gnus-article-buffer 3282 (gnus-eval-in-buffer-window gnus-article-buffer
@@ -3290,8 +3287,8 @@ If optional (prefix) argument BACKWARD is non-nil, do backward instead."
3290 )) 3287 ))
3291 3288
3292(defun gnus-summary-goto-article (article &optional all-headers) 3289(defun gnus-summary-goto-article (article &optional all-headers)
3293 "Read ARTICLE if exists. 3290 "Read article number ARTICLE if it exists.
3294Optional argument ALL-HEADERS means all headers are shown." 3291Optional argument ALL-HEADERS means show the full header."
3295 (interactive 3292 (interactive
3296 (list 3293 (list
3297 (string-to-int 3294 (string-to-int
@@ -3347,7 +3344,7 @@ With arg, turn MIME processing on iff arg is positive."
3347 (gnus-summary-select-article (not gnus-have-all-headers) t)) 3344 (gnus-summary-select-article (not gnus-have-all-headers) t))
3348 3345
3349(defun gnus-summary-stop-page-breaking () 3346(defun gnus-summary-stop-page-breaking ()
3350 "Stop page breaking by linefeed temporary (Widen article buffer)." 3347 "Stop page breaking by linefeed temporary (widen article buffer)."
3351 (interactive) 3348 (interactive)
3352 (gnus-summary-select-article) 3349 (gnus-summary-select-article)
3353 (gnus-eval-in-buffer-window gnus-article-buffer 3350 (gnus-eval-in-buffer-window gnus-article-buffer
@@ -3364,7 +3361,7 @@ If argument UNMARK is negative, mark articles as unread instead."
3364 (let ((count 3361 (let ((count
3365 (gnus-summary-mark-same-subject 3362 (gnus-summary-mark-same-subject
3366 (gnus-summary-subject-string) unmark))) 3363 (gnus-summary-subject-string) unmark)))
3367 ;; Select next unread article. If auto-select-same mode, should 3364 ;; Select next unread article. If auto-select-same mode, should
3368 ;; select the first unread article. 3365 ;; select the first unread article.
3369 (gnus-summary-next-article t (and gnus-auto-select-same 3366 (gnus-summary-next-article t (and gnus-auto-select-same
3370 (gnus-summary-subject-string))) 3367 (gnus-summary-subject-string)))
@@ -3460,7 +3457,7 @@ Optional 2nd argument CLEAR-MARK remove any kinds of mark."
3460 3457
3461(defun gnus-summary-mark-as-read-forward (count) 3458(defun gnus-summary-mark-as-read-forward (count)
3462 "Mark current article as read, and then go forward. 3459 "Mark current article as read, and then go forward.
3463Argument COUNT specifies number of articles marked as read" 3460Argument COUNT specifies number of articles marked as read."
3464 (interactive "p") 3461 (interactive "p")
3465 (while (> count 0) 3462 (while (> count 0)
3466 (gnus-summary-mark-as-read) 3463 (gnus-summary-mark-as-read)
@@ -3469,7 +3466,7 @@ Argument COUNT specifies number of articles marked as read"
3469 3466
3470(defun gnus-summary-mark-as-read-backward (count) 3467(defun gnus-summary-mark-as-read-backward (count)
3471 "Mark current article as read, and then go backward. 3468 "Mark current article as read, and then go backward.
3472Argument COUNT specifies number of articles marked as read" 3469Argument COUNT specifies number of articles marked as read."
3473 (interactive "p") 3470 (interactive "p")
3474 (while (> count 0) 3471 (while (> count 0)
3475 (gnus-summary-mark-as-read) 3472 (gnus-summary-mark-as-read)
@@ -3500,7 +3497,7 @@ Any kind of string (length 1) except for a space and `-' is ok."
3500 3497
3501(defun gnus-summary-clear-mark-forward (count) 3498(defun gnus-summary-clear-mark-forward (count)
3502 "Remove current article's mark, and go forward. 3499 "Remove current article's mark, and go forward.
3503Argument COUNT specifies number of articles unmarked" 3500Argument COUNT specifies number of articles unmarked."
3504 (interactive "p") 3501 (interactive "p")
3505 (while (> count 0) 3502 (while (> count 0)
3506 (gnus-summary-mark-as-unread nil t) 3503 (gnus-summary-mark-as-unread nil t)
@@ -3509,7 +3506,7 @@ Argument COUNT specifies number of articles unmarked"
3509 3506
3510(defun gnus-summary-clear-mark-backward (count) 3507(defun gnus-summary-clear-mark-backward (count)
3511 "Remove current article's mark, and go backward. 3508 "Remove current article's mark, and go backward.
3512Argument COUNT specifies number of articles unmarked" 3509Argument COUNT specifies number of articles unmarked."
3513 (interactive "p") 3510 (interactive "p")
3514 (while (> count 0) 3511 (while (> count 0)
3515 (gnus-summary-mark-as-unread nil t) 3512 (gnus-summary-mark-as-unread nil t)
@@ -3517,7 +3514,7 @@ Argument COUNT specifies number of articles unmarked"
3517 (setq count (1- count)))) 3514 (setq count (1- count))))
3518 3515
3519(defun gnus-summary-delete-marked-as-read () 3516(defun gnus-summary-delete-marked-as-read ()
3520 "Delete lines which is marked as read." 3517 "Delete summary lines for articles that are marked as read."
3521 (interactive) 3518 (interactive)
3522 (if gnus-newsgroup-unreads 3519 (if gnus-newsgroup-unreads
3523 (let ((buffer-read-only nil)) 3520 (let ((buffer-read-only nil))
@@ -3795,7 +3792,7 @@ Argument REVERSE means reverse order."
3795 )) 3792 ))
3796 3793
3797(defun gnus-summary-sort-by-subject (reverse) 3794(defun gnus-summary-sort-by-subject (reverse)
3798 "Sort Summary buffer by subject alphabetically. `Re:'s are ignored. 3795 "Sort Summary buffer by subject alphabetically. `Re:'s are ignored.
3799If case-fold-search is non-nil, case of letters is ignored. 3796If case-fold-search is non-nil, case of letters is ignored.
3800Argument REVERSE means reverse order." 3797Argument REVERSE means reverse order."
3801 (interactive "P") 3798 (interactive "P")
@@ -3875,11 +3872,11 @@ Caesar rotates Japanese letters by 47 places in any case."
3875 3872
3876(defun gnus-summary-rmail-digest () 3873(defun gnus-summary-rmail-digest ()
3877 "Run RMAIL on current digest article. 3874 "Run RMAIL on current digest article.
3878gnus-select-digest-hook will be called with no arguments, if that 3875`gnus-select-digest-hook' will be called with no arguments, if that
3879value is non-nil. It is possible to modify the article so that Rmail 3876value is non-nil. It is possible to modify the article so that Rmail
3880can work with it. 3877can work with it.
3881gnus-rmail-digest-hook will be called with no arguments, if that value 3878`gnus-rmail-digest-hook' will be called with no arguments, if that value
3882is non-nil. The hook is intended to customize Rmail mode." 3879is non-nil. The hook is intended to customize Rmail mode."
3883 (interactive) 3880 (interactive)
3884 (gnus-summary-select-article) 3881 (gnus-summary-select-article)
3885 (require 'rmail) 3882 (require 'rmail)
@@ -4216,7 +4213,7 @@ If prefix argument ALL is non-nil, all articles are marked as read."
4216 4213
4217(defun gnus-summary-exit (&optional temporary) 4214(defun gnus-summary-exit (&optional temporary)
4218 "Exit reading current newsgroup, and then return to group selection mode. 4215 "Exit reading current newsgroup, and then return to group selection mode.
4219gnus-exit-group-hook is called with no arguments if that value is non-nil." 4216`gnus-exit-group-hook' is called with no arguments if that value is non-nil."
4220 (interactive) 4217 (interactive)
4221 (let ((updated nil) 4218 (let ((updated nil)
4222 (gnus-newsgroup-headers gnus-newsgroup-headers) 4219 (gnus-newsgroup-headers gnus-newsgroup-headers)
@@ -4360,7 +4357,8 @@ Various hooks for customization:
4360(defun gnus-article-prepare (article &optional all-headers) 4357(defun gnus-article-prepare (article &optional all-headers)
4361 "Prepare ARTICLE in Article mode buffer. 4358 "Prepare ARTICLE in Article mode buffer.
4362ARTICLE can be either a article number or Message-ID. 4359ARTICLE can be either a article number or Message-ID.
4363If optional argument ALL-HEADERS is non-nil, all headers are inserted." 4360If optional argument ALL-HEADERS is non-nil,
4361include the article's whole original header."
4364 ;; Make sure a connection to NNTP server is alive. 4362 ;; Make sure a connection to NNTP server is alive.
4365 (if (not (gnus-server-opened)) 4363 (if (not (gnus-server-opened))
4366 (progn 4364 (progn
@@ -4478,7 +4476,7 @@ If optional argument ALL-HEADERS is non-nil, all headers are inserted."
4478 4476
4479(defun gnus-article-set-mode-line () 4477(defun gnus-article-set-mode-line ()
4480 "Set Article mode line string. 4478 "Set Article mode line string.
4481If you don't like it, define your own gnus-article-set-mode-line." 4479If you don't like it, define your own `gnus-article-set-mode-line'."
4482 (let ((maxlen 15) ;Maximum subject length 4480 (let ((maxlen 15) ;Maximum subject length
4483 (subject 4481 (subject
4484 (if gnus-current-headers 4482 (if gnus-current-headers
@@ -4516,7 +4514,7 @@ If you don't like it, define your own gnus-article-set-mode-line."
4516 4514
4517(defun gnus-article-next-page (lines) 4515(defun gnus-article-next-page (lines)
4518 "Show next page of current article. 4516 "Show next page of current article.
4519If end of article, return non-nil. Otherwise return nil. 4517If end of article, return non-nil. Otherwise return nil.
4520Argument LINES specifies lines to be scrolled up." 4518Argument LINES specifies lines to be scrolled up."
4521 (interactive "P") 4519 (interactive "P")
4522 (move-to-window-line -1) 4520 (move-to-window-line -1)
@@ -4587,18 +4585,18 @@ Set mark at end of digested message."
4587 (message "End of message") 4585 (message "End of message")
4588 )) 4586 ))
4589 4587
4590(defun gnus-article-prev-digest (nth) 4588(defun gnus-article-prev-digest (n)
4591 "Move to head of NTH previous digested message." 4589 "Move to head of Nth previous digested message."
4592 ;; Stop page breaking in digest mode. 4590 ;; Stop page breaking in digest mode.
4593 (widen) 4591 (widen)
4594 (beginning-of-line) 4592 (beginning-of-line)
4595 ;; Skip NTH - 1 digest. 4593 ;; Skip N - 1 digest.
4596 ;; Suggested by Khalid Sattar <admin@cs.exeter.ac.uk>. 4594 ;; Suggested by Khalid Sattar <admin@cs.exeter.ac.uk>.
4597 ;; Digest separator is customizable. 4595 ;; Digest separator is customizable.
4598 ;; Suggested by Skip Montanaro <montanaro@sprite.crd.ge.com>. 4596 ;; Suggested by Skip Montanaro <montanaro@sprite.crd.ge.com>.
4599 (while (and (> nth 1) 4597 (while (and (> n 1)
4600 (re-search-backward gnus-digest-separator nil 'move)) 4598 (re-search-backward gnus-digest-separator nil 'move))
4601 (setq nth (1- nth))) 4599 (setq n (1- n)))
4602 (if (re-search-backward gnus-digest-separator nil t) 4600 (if (re-search-backward gnus-digest-separator nil t)
4603 (let ((begin (point))) 4601 (let ((begin (point)))
4604 ;; Search for end of this message. 4602 ;; Search for end of this message.
@@ -4697,13 +4695,13 @@ well-known. For this reason, GNUS provides a general function which
4697does this easily for non-Lisp programmers. 4695does this easily for non-Lisp programmers.
4698 4696
4699 The `gnus-kill' function executes commands available in Summary Mode 4697 The `gnus-kill' function executes commands available in Summary Mode
4700by their key sequences. `gnus-kill' should be called with FIELD, 4698by their key sequences. `gnus-kill' should be called with FIELD,
4701REGEXP and optional COMMAND and ALL. FIELD is a string representing 4699REGEXP and optional COMMAND and ALL. FIELD is a string representing
4702the header field or an empty string. If FIELD is an empty string, the 4700the header field or an empty string. If FIELD is an empty string, the
4703entire article body is searched for. REGEXP is a string which is 4701entire article body is searched for. REGEXP is a string which is
4704compared with FIELD value. COMMAND is a string representing a valid 4702compared with FIELD value. COMMAND is a string representing a valid
4705key sequence in Summary mode or Lisp expression. COMMAND defaults to 4703key sequence in Summary mode or Lisp expression. COMMAND defaults to
4706'(gnus-summary-mark-as-read nil \"X\"). Make sure that COMMAND is 4704\(gnus-summary-mark-as-read nil \"X\"). Make sure that COMMAND is
4707executed in the Summary buffer. If the second optional argument ALL 4705executed in the Summary buffer. If the second optional argument ALL
4708is non-nil, the COMMAND is applied to articles which are already 4706is non-nil, the COMMAND is applied to articles which are already
4709marked as read or unread. Articles which are marked are skipped over 4707marked as read or unread. Articles which are marked are skipped over
@@ -4719,8 +4717,8 @@ the following expression:
4719 4717
4720 (gnus-kill \"Subject\" \"AI\" \"d\") 4718 (gnus-kill \"Subject\" \"AI\" \"d\")
4721 4719
4722In this example it is assumed that the command 4720\(Here we assume the command `gnus-summary-mark-as-read-forward' is
4723`gnus-summary-mark-as-read-forward' is assigned to `d' in Summary Mode. 4721assigned to `d' in Summary Mode.)
4724 4722
4725 It is possible to delete unnecessary headers which are marked with 4723 It is possible to delete unnecessary headers which are marked with
4726`X' in a KILL file as follows: 4724`X' in a KILL file as follows:
@@ -4733,8 +4731,8 @@ with `D' are deleted in a KILL file, it is impossible to read articles
4733which are marked as read in the previous GNUS sessions. Marks other 4731which are marked as read in the previous GNUS sessions. Marks other
4734than `D' should be used for articles which should really be deleted. 4732than `D' should be used for articles which should really be deleted.
4735 4733
4736Entry to this mode calls emacs-lisp-mode-hook and 4734Entry to this mode calls `emacs-lisp-mode-hook' and
4737gnus-kill-file-mode-hook with no arguments, if that value is non-nil." 4735`gnus-kill-file-mode-hook' with no arguments, if that value is non-nil."
4738 (interactive) 4736 (interactive)
4739 (kill-all-local-variables) 4737 (kill-all-local-variables)
4740 (use-local-map gnus-kill-file-mode-map) 4738 (use-local-map gnus-kill-file-mode-map)
@@ -5127,7 +5125,7 @@ If optional argument NEXT is non-nil, it is inserted before NEXT."
5127 )) 5125 ))
5128 5126
5129(defun gnus-capitalize-newsgroup (newsgroup) 5127(defun gnus-capitalize-newsgroup (newsgroup)
5130 "Capitalize NEWSGROUP name with treating '.' and '-' as part of words." 5128 "Capitalize NEWSGROUP name with treating `.' and `-' as part of words."
5131 ;; Suggested by "Jonathan I. Kamens" <jik@pit-manager.MIT.EDU>. 5129 ;; Suggested by "Jonathan I. Kamens" <jik@pit-manager.MIT.EDU>.
5132 (let ((current-syntax-table (syntax-table))) 5130 (let ((current-syntax-table (syntax-table)))
5133 (unwind-protect 5131 (unwind-protect
@@ -5213,7 +5211,7 @@ Optional argument REVERSE means reverse order."
5213 5211
5214(defun gnus-string-lessp (a b) 5212(defun gnus-string-lessp (a b)
5215 "Return T if first arg string is less than second in lexicographic order. 5213 "Return T if first arg string is less than second in lexicographic order.
5216If case-fold-search is non-nil, case of letters is ignored." 5214If `case-fold-search' is non-nil, case of letters is ignored."
5217 (if case-fold-search 5215 (if case-fold-search
5218 (string-lessp (downcase a) (downcase b)) 5216 (string-lessp (downcase a) (downcase b))
5219 (string-lessp a b))) 5217 (string-lessp a b)))
@@ -5224,7 +5222,7 @@ If case-fold-search is non-nil, case of letters is ignored."
5224 (gnus-sortable-date date2))) 5222 (gnus-sortable-date date2)))
5225 5223
5226(defun gnus-sortable-date (date) 5224(defun gnus-sortable-date (date)
5227 "Make sortable string by string-lessp from DATE. 5225 "Convert DATE into a string that can be sorted with `string-lessp'.
5228Timezone package is used." 5226Timezone package is used."
5229 (let* ((date (timezone-fix-time date nil nil)) ;[Y M D H M S] 5227 (let* ((date (timezone-fix-time date nil nil)) ;[Y M D H M S]
5230 (year (aref date 0)) 5228 (year (aref date 0))
@@ -5283,12 +5281,12 @@ Optional 1st argument COMMAND is default to
5283 (gnus-summary-mark-as-read nil \"X\"). 5281 (gnus-summary-mark-as-read nil \"X\").
5284If optional 2nd argument ALL is non-nil, articles marked are also applied to. 5282If optional 2nd argument ALL is non-nil, articles marked are also applied to.
5285If FIELD is an empty string (or nil), entire article body is searched for. 5283If FIELD is an empty string (or nil), entire article body is searched for.
5286COMMAND must be a lisp expression or a string representing a key sequence." 5284COMMAND must be a Lisp expression or a string representing a key sequence."
5287 ;; We don't want to change current point nor window configuration. 5285 ;; We don't want to change current point nor window configuration.
5288 (save-excursion 5286 (save-excursion
5289 (save-window-excursion 5287 (save-window-excursion
5290 ;; Selected window must be Summary buffer to execute keyboard 5288 ;; Selected window must be Summary buffer to execute keyboard
5291 ;; macros correctly. See command_loop_1. 5289 ;; macros correctly. See command_loop_1.
5292 (switch-to-buffer gnus-summary-buffer 'norecord) 5290 (switch-to-buffer gnus-summary-buffer 'norecord)
5293 (goto-char (point-min)) ;From the beginning. 5291 (goto-char (point-min)) ;From the beginning.
5294 (if (null command) 5292 (if (null command)
@@ -5300,8 +5298,8 @@ COMMAND must be a lisp expression or a string representing a key sequence."
5300 "If FIELD of article header matches REGEXP, execute lisp FORM (or a string). 5298 "If FIELD of article header matches REGEXP, execute lisp FORM (or a string).
5301If FIELD is an empty string (or nil), entire article body is searched for. 5299If FIELD is an empty string (or nil), entire article body is searched for.
5302If optional 1st argument BACKWARD is non-nil, do backward instead. 5300If optional 1st argument BACKWARD is non-nil, do backward instead.
5303If optional 2nd argument IGNORE-MARKED is non-nil, articles which are 5301If optional 2nd argument IGNORE-MARKED is non-nil, ignore articles
5304marked as read or unread are ignored." 5302marked as read or unread."
5305 (let ((function nil) 5303 (let ((function nil)
5306 (header nil) 5304 (header nil)
5307 (article nil)) 5305 (article nil))
@@ -5410,7 +5408,7 @@ ROT47 will be performed for Japanese text in any case."
5410 (if (<= v t1) (if (< v t2) v (+ v 47)) 5408 (if (<= v t1) (if (< v t2) v (+ v 47))
5411 (if (<= v t3) (- v 47) v)))) 5409 (if (<= v t3) (- v 47) v))))
5412 (setq i (1+ i)))) 5410 (setq i (1+ i))))
5413 (message "Building caesar-translate-table... done"))) 5411 (message "Building caesar-translate-table...done")))
5414 (let ((from (region-beginning)) 5412 (let ((from (region-beginning))
5415 (to (region-end)) 5413 (to (region-end))
5416 (i 0) str len) 5414 (i 0) str len)
@@ -5573,7 +5571,7 @@ ROT47 will be performed for Japanese text in any case."
5573 "Open network stream to remote NNTP server. 5571 "Open network stream to remote NNTP server.
5574If optional argument CONFIRM is non-nil, ask you host that NNTP server 5572If optional argument CONFIRM is non-nil, ask you host that NNTP server
5575is running even if it is defined. 5573is running even if it is defined.
5576Run gnus-open-server-hook just before opening news server." 5574Run `gnus-open-server-hook' just before opening news server."
5577 (if (gnus-server-opened) 5575 (if (gnus-server-opened)
5578 ;; Stream is already opened. 5576 ;; Stream is already opened.
5579 nil 5577 nil
@@ -5624,7 +5622,7 @@ Run gnus-open-server-hook just before opening news server."
5624 (format "Cannot open NNTP server on %s" gnus-nntp-server))))) 5622 (format "Cannot open NNTP server on %s" gnus-nntp-server)))))
5625 )) 5623 ))
5626 5624
5627;; Dummy functions used only once. Should return nil. 5625;; Dummy functions used only once. Should return nil.
5628(defun gnus-server-opened () nil) 5626(defun gnus-server-opened () nil)
5629(defun gnus-close-server () nil) 5627(defun gnus-close-server () nil)
5630 5628
@@ -5640,7 +5638,7 @@ If no message is available and optional MESSAGE is given, return it."
5640(defun gnus-define-access-method (method &optional access-methods) 5638(defun gnus-define-access-method (method &optional access-methods)
5641 "Define access functions for the access METHOD. 5639 "Define access functions for the access METHOD.
5642Methods definition is taken from optional argument ACCESS-METHODS or 5640Methods definition is taken from optional argument ACCESS-METHODS or
5643the variable gnus-access-methods." 5641the variable `gnus-access-methods'."
5644 (let ((bindings 5642 (let ((bindings
5645 (cdr (assoc method (or access-methods gnus-access-methods))))) 5643 (cdr (assoc method (or access-methods gnus-access-methods)))))
5646 (if (null bindings) 5644 (if (null bindings)
@@ -5761,8 +5759,8 @@ are selected."
5761 5759
5762(defun gnus-get-header-by-number (number) 5760(defun gnus-get-header-by-number (number)
5763 "Return a header specified by a NUMBER. 5761 "Return a header specified by a NUMBER.
5764If the variable gnus-newsgroup-headers is updated, the hashed table 5762If you update the variable `gnus-newsgroup-headers', you must set the
5765gnus-newsgroup-headers-hashtb-by-number must be set to nil to indicate 5763hash table `gnus-newsgroup-headers-hashtb-by-number' to nil to indicate
5766rehash is necessary." 5764rehash is necessary."
5767 (or gnus-newsgroup-headers-hashtb-by-number 5765 (or gnus-newsgroup-headers-hashtb-by-number
5768 (gnus-make-headers-hashtable-by-number)) 5766 (gnus-make-headers-hashtable-by-number))
@@ -5771,8 +5769,8 @@ rehash is necessary."
5771 5769
5772(defun gnus-get-header-by-id (id) 5770(defun gnus-get-header-by-id (id)
5773 "Return a header specified by an ID. 5771 "Return a header specified by an ID.
5774If the variable gnus-newsgroup-headers is updated, the hashed table 5772If you update the variable `gnus-newsgroup-headers', you must set the
5775gnus-newsgroup-headers-hashtb-by-id must be set to nil to indicate 5773hash table `gnus-newsgroup-headers-hashtb-by-id' to nil to indicate
5776rehash is necessary." 5774rehash is necessary."
5777 (or gnus-newsgroup-headers-hashtb-by-id 5775 (or gnus-newsgroup-headers-hashtb-by-id
5778 (gnus-make-headers-hashtable-by-id)) 5776 (gnus-make-headers-hashtable-by-id))
@@ -5780,7 +5778,7 @@ rehash is necessary."
5780 (gnus-gethash id gnus-newsgroup-headers-hashtb-by-id))) 5778 (gnus-gethash id gnus-newsgroup-headers-hashtb-by-id)))
5781 5779
5782(defun gnus-make-headers-hashtable-by-number () 5780(defun gnus-make-headers-hashtable-by-number ()
5783 "Make hashtable for the variable gnus-newsgroup-headers by number." 5781 "Make hashtable for the variable `gnus-newsgroup-headers' by number."
5784 (let ((header nil) 5782 (let ((header nil)
5785 (headers gnus-newsgroup-headers)) 5783 (headers gnus-newsgroup-headers))
5786 (setq gnus-newsgroup-headers-hashtb-by-number 5784 (setq gnus-newsgroup-headers-hashtb-by-number
@@ -5793,7 +5791,7 @@ rehash is necessary."
5793 ))) 5791 )))
5794 5792
5795(defun gnus-make-headers-hashtable-by-id () 5793(defun gnus-make-headers-hashtable-by-id ()
5796 "Make hashtable for the variable gnus-newsgroup-headers by id." 5794 "Make hashtable for the variable `gnus-newsgroup-headers' by id."
5797 (let ((header nil) 5795 (let ((header nil)
5798 (headers gnus-newsgroup-headers)) 5796 (headers gnus-newsgroup-headers))
5799 (setq gnus-newsgroup-headers-hashtb-by-id 5797 (setq gnus-newsgroup-headers-hashtb-by-id
@@ -5806,7 +5804,7 @@ rehash is necessary."
5806 ))) 5804 )))
5807 5805
5808(defun gnus-clear-hashtables-for-newsgroup-headers () 5806(defun gnus-clear-hashtables-for-newsgroup-headers ()
5809 "Clear hash tables created for the variable gnus-newsgroup-headers." 5807 "Clear hash tables created for the variable `gnus-newsgroup-headers'."
5810 (setq gnus-newsgroup-headers-hashtb-by-id nil) 5808 (setq gnus-newsgroup-headers-hashtb-by-id nil)
5811 (setq gnus-newsgroup-headers-hashtb-by-number nil)) 5809 (setq gnus-newsgroup-headers-hashtb-by-number nil))
5812 5810
@@ -5917,7 +5915,7 @@ that it was marked as read once."
5917 "Configure GNUS windows according to the next ACTION. 5915 "Configure GNUS windows according to the next ACTION.
5918The ACTION is either a symbol, such as `summary', or a 5916The ACTION is either a symbol, such as `summary', or a
5919configuration list such as `(1 1 2)'. If ACTION is not a list, 5917configuration list such as `(1 1 2)'. If ACTION is not a list,
5920configuration list is got from the variable gnus-window-configuration." 5918configuration list is got from the variable `gnus-window-configuration'."
5921 (let* ((windows 5919 (let* ((windows
5922 (if (listp action) 5920 (if (listp action)
5923 action (car (cdr (assq action gnus-window-configuration))))) 5921 action (car (cdr (assq action gnus-window-configuration)))))
@@ -5950,7 +5948,7 @@ configuration list is got from the variable gnus-window-configuration."
5950 (setq height (+ (if grpwin (window-height grpwin) 0) 5948 (setq height (+ (if grpwin (window-height grpwin) 0)
5951 (if subwin (window-height subwin) 0) 5949 (if subwin (window-height subwin) 0)
5952 (if artwin (window-height artwin) 0))))) 5950 (if artwin (window-height artwin) 0)))))
5953 ;; The Newsgroup buffer exits always. So, use it to extend the 5951 ;; The Newsgroup buffer exits always. So, use it to extend the
5954 ;; Group window so as to get enough window space. 5952 ;; Group window so as to get enough window space.
5955 (switch-to-buffer gnus-group-buffer 'norecord) 5953 (switch-to-buffer gnus-group-buffer 'norecord)
5956 (and (get-buffer gnus-summary-buffer) 5954 (and (get-buffer gnus-summary-buffer)
@@ -6047,7 +6045,7 @@ configuration list is got from the variable gnus-window-configuration."
6047 6045
6048(defun gnus-overload-functions (&optional overloads) 6046(defun gnus-overload-functions (&optional overloads)
6049 "Overload functions specified by optional argument OVERLOADS. 6047 "Overload functions specified by optional argument OVERLOADS.
6050If nothing is specified, use the variable gnus-overload-functions." 6048If nothing is specified, use the variable `gnus-overload-functions'."
6051 (let ((defs nil) 6049 (let ((defs nil)
6052 (overloads (or overloads gnus-overload-functions))) 6050 (overloads (or overloads gnus-overload-functions)))
6053 (while overloads 6051 (while overloads
@@ -6282,7 +6280,7 @@ If optional argument RAWFILE is non-nil, force to read raw startup file."
6282 6280
6283(defun gnus-find-new-newsgroups () 6281(defun gnus-find-new-newsgroups ()
6284 "Looking for new newsgroups and return names. 6282 "Looking for new newsgroups and return names.
6285`-n' option of options line in .newsrc file is recognized." 6283`-n' option of options line in `.newsrc' file is recognized."
6286 (let ((group nil) 6284 (let ((group nil)
6287 (new-newsgroups nil)) 6285 (new-newsgroups nil))
6288 (mapatoms 6286 (mapatoms
@@ -6306,7 +6304,7 @@ If optional argument RAWFILE is non-nil, force to read raw startup file."
6306 )) 6304 ))
6307 6305
6308(defun gnus-kill-newsgroup (group) 6306(defun gnus-kill-newsgroup (group)
6309 "Kill GROUP from gnus-newsrc-assoc, .newsrc and gnus-unread-hashtb." 6307 "Kill GROUP from `gnus-newsrc-assoc', `.newsrc' and `gnus-unread-hashtb'."
6310 (let ((info (gnus-gethash group gnus-newsrc-hashtb))) 6308 (let ((info (gnus-gethash group gnus-newsrc-hashtb)))
6311 (if (null info) 6309 (if (null info)
6312 nil 6310 nil
@@ -6376,8 +6374,8 @@ If optional argument NEXT is nil, appended to the last."
6376 )) 6374 ))
6377 6375
6378(defun gnus-check-killed-newsgroups () 6376(defun gnus-check-killed-newsgroups ()
6379 "Check consistency between gnus-newsrc-assoc and gnus-killed-assoc. 6377 "Update `gnus-killed-assoc' based on `gnus-newsrc-assoc'.
6380gnus-killed-hashtb is also updated." 6378Update `gnus-killed-hashtb' also."
6381 (let ((group nil) 6379 (let ((group nil)
6382 (new-killed nil) 6380 (new-killed nil)
6383 (old-killed gnus-killed-assoc)) 6381 (old-killed gnus-killed-assoc))
@@ -6453,7 +6451,7 @@ If optional argument CONFIRM is non-nil, confirm deletion of newsgroups."
6453 (setq gnus-marked-assoc new-marked) 6451 (setq gnus-marked-assoc new-marked)
6454 (setq gnus-marked-hashtb 6452 (setq gnus-marked-hashtb
6455 (gnus-make-hashtable-from-alist gnus-marked-assoc)) 6453 (gnus-make-hashtable-from-alist gnus-marked-assoc))
6456 (message "Checking bogus newsgroups... done") 6454 (message "Checking bogus newsgroups...done")
6457 )) 6455 ))
6458 6456
6459(defun gnus-get-unread-articles () 6457(defun gnus-get-unread-articles ()
@@ -6488,7 +6486,7 @@ If optional argument CONFIRM is non-nil, confirm deletion of newsgroups."
6488 ) 6486 )
6489 (setq read (cdr read)) 6487 (setq read (cdr read))
6490 ) 6488 )
6491 (message "Checking new news... done") 6489 (message "Checking new news...done")
6492 )) 6490 ))
6493 6491
6494(defun gnus-expire-marked-articles () 6492(defun gnus-expire-marked-articles ()
@@ -6657,12 +6655,12 @@ Arguments are GROUP, HEADERS, UNREADS, and optional SUBSCRIBED-ONLY."
6657 (save-excursion 6655 (save-excursion
6658 (set-buffer nntp-server-buffer) 6656 (set-buffer nntp-server-buffer)
6659 (gnus-active-to-gnus-format) 6657 (gnus-active-to-gnus-format)
6660 (message "Reading active file... done")) 6658 (message "Reading active file...done"))
6661 (error "Cannot read active file from NNTP server."))) 6659 (error "Cannot read active file from NNTP server.")))
6662 6660
6663(defun gnus-active-to-gnus-format () 6661(defun gnus-active-to-gnus-format ()
6664 "Convert active file format to internal format. 6662 "Convert active file format to internal format.
6665Lines matching gnus-ignored-newsgroups are ignored." 6663Lines matching `gnus-ignored-newsgroups' are ignored."
6666 ;; Delete unnecessary lines. 6664 ;; Delete unnecessary lines.
6667 (goto-char (point-min)) 6665 (goto-char (point-min))
6668 ;;(delete-matching-lines "^to\\..*$") 6666 ;;(delete-matching-lines "^to\\..*$")
@@ -6737,7 +6735,7 @@ If optional argument RAWFILE is non-nil, the raw startup file is read."
6737 (message "Reading %s..." newsrc-file) 6735 (message "Reading %s..." newsrc-file)
6738 (gnus-newsrc-to-gnus-format) 6736 (gnus-newsrc-to-gnus-format)
6739 (gnus-check-killed-newsgroups) 6737 (gnus-check-killed-newsgroups)
6740 (message "Reading %s... Done" newsrc-file))) 6738 (message "Reading %s...done" newsrc-file)))
6741 ))) 6739 )))
6742 6740
6743(defun gnus-make-newsrc-file (file) 6741(defun gnus-make-newsrc-file (file)
@@ -6749,7 +6747,7 @@ If optional argument RAWFILE is non-nil, the raw startup file is read."
6749 )) 6747 ))
6750 6748
6751(defun gnus-newsrc-to-gnus-format () 6749(defun gnus-newsrc-to-gnus-format ()
6752 "Parse current buffer as .newsrc file." 6750 "Parse current buffer as `.newsrc' file."
6753 (let ((newsgroup nil) 6751 (let ((newsgroup nil)
6754 (subscribe nil) 6752 (subscribe nil)
6755 (ranges nil) 6753 (ranges nil)
@@ -6902,7 +6900,7 @@ If optional argument RAWFILE is non-nil, the raw startup file is read."
6902 )) 6900 ))
6903 6901
6904(defun gnus-save-newsrc-file () 6902(defun gnus-save-newsrc-file ()
6905 "Save to .newsrc FILE." 6903 "Save current status in the `.newsrc' file."
6906 ;; Note: We cannot save .newsrc file if all newsgroups are removed 6904 ;; Note: We cannot save .newsrc file if all newsgroups are removed
6907 ;; from the variable gnus-newsrc-assoc. 6905 ;; from the variable gnus-newsrc-assoc.
6908 (and (or gnus-newsrc-assoc gnus-killed-assoc) 6906 (and (or gnus-newsrc-assoc gnus-killed-assoc)
@@ -6931,12 +6929,12 @@ If optional argument RAWFILE is non-nil, the raw startup file is read."
6931 (require-final-newline t)) ;Don't ask even if requested. 6929 (require-final-newline t)) ;Don't ask even if requested.
6932 (write-file (concat gnus-current-startup-file ".el"))) 6930 (write-file (concat gnus-current-startup-file ".el")))
6933 (kill-buffer (current-buffer)) 6931 (kill-buffer (current-buffer))
6934 (message "Saving %s... Done" gnus-current-startup-file) 6932 (message "Saving %s...done" gnus-current-startup-file)
6935 )) 6933 ))
6936 )) 6934 ))
6937 6935
6938(defun gnus-update-newsrc-buffer (group &optional delete next) 6936(defun gnus-update-newsrc-buffer (group &optional delete next)
6939 "Incrementally update .newsrc buffer about GROUP. 6937 "Incrementally update `.newsrc' buffer about GROUP.
6940If optional 1st argument DELETE is non-nil, delete the group. 6938If optional 1st argument DELETE is non-nil, delete the group.
6941If optional 2nd argument NEXT is non-nil, inserted before it." 6939If optional 2nd argument NEXT is non-nil, inserted before it."
6942 (save-excursion 6940 (save-excursion
@@ -6992,7 +6990,7 @@ If optional 2nd argument NEXT is non-nil, inserted before it."
6992 ))) 6990 )))
6993 6991
6994(defun gnus-gnus-to-quick-newsrc-format () 6992(defun gnus-gnus-to-quick-newsrc-format ()
6995 "Insert GNUS variables such as gnus-newsrc-assoc in lisp format." 6993 "Insert GNUS variables such as `gnus-newsrc-assoc' in Lisp format."
6996 (insert ";; GNUS internal format of .newsrc.\n") 6994 (insert ";; GNUS internal format of .newsrc.\n")
6997 (insert ";; Touch .newsrc instead if you think to remove this file.\n") 6995 (insert ";; Touch .newsrc instead if you think to remove this file.\n")
6998 (let ((variable nil) 6996 (let ((variable nil)
@@ -7077,7 +7075,7 @@ If optional 2nd argument NEXT is non-nil, inserted before it."
7077 (let ((count 0)) 7075 (let ((count 0))
7078 (while range 7076 (while range
7079 (if (/= (cdr (car range)) 0) 7077 (if (/= (cdr (car range)) 0)
7080 ;; If end1 is 0, it must be skipped. Usually no articles in 7078 ;; If end1 is 0, it must be skipped. Usually no articles in
7081 ;; this group. 7079 ;; this group.
7082 (setq count (+ count 1 (- (cdr (car range)) (car (car range)))))) 7080 (setq count (+ count 1 (- (cdr (car range)) (car (car range))))))
7083 (setq range (cdr range)) 7081 (setq range (cdr range))
@@ -7125,7 +7123,7 @@ Range of OBJ is expressed as `((beg1 . end1) (beg2 . end2) ...)."
7125 (save-excursion 7123 (save-excursion
7126 (set-buffer nntp-server-buffer) 7124 (set-buffer nntp-server-buffer)
7127 (gnus-distributions-to-gnus-format) 7125 (gnus-distributions-to-gnus-format)
7128 (message "Reading distributions file... done")) 7126 (message "Reading distributions file...done"))
7129 ;; It's not a fatal error. 7127 ;; It's not a fatal error.
7130 ;;(error "Cannot read distributions file from NNTP server.") 7128 ;;(error "Cannot read distributions file from NNTP server.")
7131 ) 7129 )
@@ -7152,25 +7150,6 @@ Range of OBJ is expressed as `((beg1 . end1) (beg2 . end2) ...)."
7152 gnus-distribution-list))) 7150 gnus-distribution-list)))
7153 (setq gnus-distribution-list 7151 (setq gnus-distribution-list
7154 (nreverse gnus-distribution-list))) 7152 (nreverse gnus-distribution-list)))
7155
7156;; Some older version of GNU Emacs does not support function
7157;; `file-newer-than-file-p'.
7158
7159(or (fboundp 'file-newer-than-file-p)
7160 (defun file-newer-than-file-p (file1 file2)
7161 "Return t if file FILE1 is newer than file FILE2.
7162If FILE1 does not exist, the answer is nil;
7163otherwise, if FILE2 does not exist, the answer is t."
7164 (let ((mod1 (nth 5 (file-attributes file1)))
7165 (mod2 (nth 5 (file-attributes file2))))
7166 (cond ((not (file-exists-p file1)) nil)
7167 ((not (file-exists-p file2)) t)
7168 ((and mod2 mod1)
7169 (or (< (car mod2) (car mod1))
7170 (and (= (car mod2) (car mod1))
7171 (<= (nth 1 mod2) (nth 1 mod1)))))
7172 ))))
7173
7174 7153
7175(provide 'gnus) 7154(provide 'gnus)
7176 7155