From afec369d127a5a8d82dc059798e3dc98721482f5 Mon Sep 17 00:00:00 2001 From: yamaoka Date: Fri, 24 Aug 2001 00:09:55 +0000 Subject: [PATCH] Synch with Oort Gnus. --- lisp/ChangeLog | 36 ++++++++++++++++++++++++++++++++++++ lisp/gnus-group.el | 12 +++++++++++- lisp/gnus-spec.el | 7 +++++-- lisp/gnus-sum.el | 52 ++++++++++++++++++++++++++++++++++------------------ lisp/gnus-util.el | 11 +++++++++++ lisp/lpath.el | 2 +- lisp/nnrss.el | 2 +- texi/ChangeLog | 6 ++++++ texi/gnus-ja.texi | 27 ++++++++++++++++++++++----- texi/gnus.texi | 34 ++++++++++++++++++++++++++-------- 10 files changed, 153 insertions(+), 36 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a7e5a9b..a5413a3 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,39 @@ +2001-08-23 18:43:05 Lars Magne Ingebrigtsen + + * gnus-sum.el (gnus-select-newsgroup): Use it. + + * gnus-util.el (gnus-not-ignore): New function. + + * lpath.el (featurep): Don't fbind char-int. + + * gnus-util.el (gnus-create-info-command): New function. + + * gnus-group.el (gnus-group-edit-group): Make C-c C-i go to the + right node. + + * gnus-sum.el (gnus-select-newsgroup): Clean up. + (gnus-summary-limit-children): Use 'identity instead of `all'. + (gnus-summary-limit-to-display-predicate): New command and + keystroke. + +2001-08-23 10:00:00 ShengHuo ZHU + + * nnrss.el (nnrss-group-alist): Use fm-releases.rdf. + + * gnus-spec.el (gnus-format-specs): Miss a right parenthesis. + +2001-08-23 18:43:05 Lars Magne Ingebrigtsen + + * gnus-spec.el: Add the Gnus version. + (gnus-update-format-specifications): If the Gnus version changes, + nix out the format spec cache. + + * gnus.el (gnus-continuum-version): Made into a command and + optionalize the VERSION. + + * gnus-spec.el (gnus-parse-complex-format): Remove %C specs from + the start of the lines. + 2001-08-22 00:06:52 Lars Magne Ingebrigtsen * gnus.el (gnus-visual-p): Define function before use of diff --git a/lisp/gnus-group.el b/lisp/gnus-group.el index f974de2..1ff22b6 100644 --- a/lisp/gnus-group.el +++ b/lisp/gnus-group.el @@ -2250,7 +2250,17 @@ and NEW-NAME will be prompted for." (t "group info")) (gnus-group-decoded-name group)) `(lambda (form) - (gnus-group-edit-group-done ',part ,group form))))) + (gnus-group-edit-group-done ',part ,group form))) + (local-set-key + "\C-c\C-i" + (gnus-create-info-command + (cond + ((eq part 'method) + "(gnus)Select Methods") + ((eq part 'params) + "(gnus)Group Parameters") + (t + "(gnus)Group Info")))))) (defun gnus-group-edit-group-method (group) "Edit the select method of GROUP." diff --git a/lisp/gnus-spec.el b/lisp/gnus-spec.el index 1c87a0a..fc6c03f 100644 --- a/lisp/gnus-spec.el +++ b/lisp/gnus-spec.el @@ -227,8 +227,8 @@ (let (type val) (save-excursion (while (setq type (pop types)) - ;; Jump to the proper buffer to find out the value of - ;; the variable, if possible. (It may be buffer-local.) + ;; Jump to the proper buffer to find out the value of the + ;; variable, if possible. (It may be buffer-local.) (let* ((new-format (let ((buffer (intern (format "gnus-%s-buffer" type)))) (when (and (boundp buffer) @@ -461,6 +461,9 @@ by `gnus-xmas-redefine'." ;; Convert the buffer into the spec. (goto-char (point-min)) (let ((form (read (current-buffer)))) + ;; If the first element is '(point), we just remove it. + (when (equal (car form) '(point)) + (pop form)) (cons 'progn (gnus-complex-form-to-spec form spec-alist))))) (defun gnus-complex-form-to-spec (form spec-alist) diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index a1fe9b7..a5cafed 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -1619,6 +1619,7 @@ increase the score of each group you read." "d" gnus-summary-limit-exclude-dormant "t" gnus-summary-limit-to-age "x" gnus-summary-limit-to-extra + "p" gnus-summary-limit-to-display-predicate "E" gnus-summary-limit-include-expunged "c" gnus-summary-limit-exclude-childless-dormant "C" gnus-summary-limit-mark-excluded-as-read @@ -2074,6 +2075,7 @@ increase the score of each group you read." ["Age..." gnus-summary-limit-to-age t] ["Extra..." gnus-summary-limit-to-extra t] ["Score" gnus-summary-limit-to-score t] + ["Score" gnus-summary-limit-to-display-predicate t] ["Unread" gnus-summary-limit-to-unread t] ["Non-dormant" gnus-summary-limit-exclude-dormant t] ["Articles" gnus-summary-limit-to-articles t] @@ -4552,16 +4554,15 @@ If SELECT-ARTICLES, only select those articles from GROUP." gnus-newsgroup-unselected nil gnus-newsgroup-unreads (gnus-list-of-unread-articles group)) - (setq gnus-newsgroup-display (gnus-group-find-parameter group 'display)) - (setq gnus-newsgroup-display - (cond - ((eq gnus-newsgroup-display 'all) - 'all) - ((arrayp gnus-newsgroup-display) - (gnus-summary-display-make-predicate - (mapcar 'identity gnus-newsgroup-display))) - (t - nil))) + (let ((display (gnus-group-find-parameter group 'display))) + (setq gnus-newsgroup-display + (cond + ((eq display 'all) + 'gnus-not-ignore) + ((arrayp display) + (gnus-summary-display-make-predicate (mapcar 'identity display))) + (t + nil)))) (gnus-summary-setup-default-charset) @@ -4665,11 +4666,13 @@ If SELECT-ARTICLES, only select those articles from GROUP." (when (= (length display) 1) (setq display (car display))) (unless gnus-summary-display-cache - (dolist (elem gnus-article-mark-lists) - (push (cons (cdr elem) - (gnus-byte-compile - `(lambda () (gnus-article-marked-p ',(cdr elem))))) - gnus-summary-display-cache))) + (dolist (elem (append (list (cons 'read 'read) + (cons 'unseen 'unseen)) + gnus-article-mark-lists)) + (push (cons (cdr elem) + (gnus-byte-compile + `(lambda () (gnus-article-marked-p ',(cdr elem))))) + gnus-summary-display-cache))) (let ((gnus-category-predicate-alist gnus-summary-display-cache)) (gnus-get-predicate display))) @@ -4708,6 +4711,8 @@ If SELECT-ARTICLES, only select those articles from GROUP." (memq article gnus-newsgroup-cached)) ((eq type 'forward) (memq article gnus-newsgroup-forwarded)) + ((eq type 'seen) + (not (memq article gnus-newsgroup-unseen))) ((eq type 'recent) (memq article gnus-newsgroup-recent)) (t t)))) @@ -4720,7 +4725,7 @@ If SELECT-ARTICLES, only select those articles from GROUP." (if (or read-all (and (zerop (length gnus-newsgroup-marked)) (zerop (length gnus-newsgroup-unreads))) - gnus-newsgroup-display) + (eq gnus-newsgroup-display 'gnus-not-ignore)) ;; We want to select the headers for all the articles in ;; the group, so we select either all the active ;; articles in the group, or (if that's nil), the @@ -6907,6 +6912,18 @@ articles that are younger than AGE days." (gnus-summary-limit articles)) (gnus-summary-position-point)))) +(defun gnus-summary-limit-to-display-predicate () + "Limit the summary buffer to the predicated in the `display' group parameter." + (interactive) + (unless gnus-newsgroup-display + (error "There is no `diplay' group parameter")) + (let (articles) + (dolist (number gnus-newsgroup-articles) + (when (funcall gnus-newsgroup-display) + (push number articles))) + (gnus-summary-limit articles)) + (gnus-summary-position-point)) + (defalias 'gnus-summary-delete-marked-as-read 'gnus-summary-limit-to-unread) (make-obsolete 'gnus-summary-delete-marked-as-read 'gnus-summary-limit-to-unread) @@ -7166,7 +7183,7 @@ fetch-old-headers verbiage, and so on." ;; Most groups have nothing to remove. (if (or gnus-inhibit-limiting (and (null gnus-newsgroup-dormant) - (eq gnus-newsgroup-display 'all) + (eq gnus-newsgroup-display 'gnus-not-ignore) (not (eq gnus-fetch-old-headers 'some)) (not (numberp gnus-fetch-old-headers)) (not (eq gnus-fetch-old-headers 'invisible)) @@ -7257,7 +7274,6 @@ fetch-old-headers verbiage, and so on." t) ;; Do the `display' group parameter. (and gnus-newsgroup-display - (not (eq gnus-newsgroup-display 'all)) (not (funcall gnus-newsgroup-display))) ;; Check NoCeM things. (if (and gnus-use-nocem diff --git a/lisp/gnus-util.el b/lisp/gnus-util.el index 3be8990..7dc2c47 100644 --- a/lisp/gnus-util.el +++ b/lisp/gnus-util.el @@ -1114,6 +1114,17 @@ sure of changing the value of `foo'." (cons (cons key value) (gnus-remassoc key alist)) (gnus-remassoc key alist))) +(defun gnus-create-info-command (node) + "Create a command that will go to info NODE." + `(lambda () + ,(concat "Enter the info system at node " node) + (Info-goto-node ,node) + (setq gnus-info-buffer (current-buffer)) + (gnus-configure-windows 'info))) + +(defun gnus-not-ignore (&rest args) + t) + (provide 'gnus-util) ;;; gnus-util.el ends here diff --git a/lisp/lpath.el b/lisp/lpath.el index bf39359..bc7257b 100644 --- a/lisp/lpath.el +++ b/lisp/lpath.el @@ -90,7 +90,7 @@ enable-multibyte-characters help-echo-owns-message)) (maybe-fbind '(Info-goto-node add-submenu annotation-glyph annotationp babel-as-string - button-press-event-p char-int characterp color-instance-name + button-press-event-p characterp color-instance-name color-instance-rgb-components color-name delete-annotation device-class device-on-window-system-p device-type display-error event-glyph event-object event-point diff --git a/lisp/nnrss.el b/lisp/nnrss.el index c76f4ff..f9af0e8 100644 --- a/lisp/nnrss.el +++ b/lisp/nnrss.el @@ -81,7 +81,7 @@ "http://www.cnn.com/cnn.rss" "The world's news leader.") ("FreshMeat" - "http://freshmeat.net/backend/fm.rdf" + "http://freshmeat.net/backend/fm-releases.rdf" "The one-stop-shop for all your Linux software needs.") ("The.Guardian.newspaper" "http://www.guardianunlimited.co.uk/rss/1,,,00.xml" diff --git a/texi/ChangeLog b/texi/ChangeLog index 2a626ed..9a5fc61 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,9 @@ +2001-08-23 19:22:59 Lars Magne Ingebrigtsen + + * gnus.texi (Group Parameters): Fix. + (Group Parameters): Addition. + (Limiting): Addition. + 2001-08-21 23:55:48 Lars Magne Ingebrigtsen * gnus.texi (Score Variables): Fix. diff --git a/texi/gnus-ja.texi b/texi/gnus-ja.texi index 066bd87..6a0a5e9 100644 --- a/texi/gnus-ja.texi +++ b/texi/gnus-ja.texi @@ -2796,12 +2796,14 @@ kiboze $B%0%k!<%W$r:n@.$7$^$9!#%W%m%s%W%H$GL>A0$H!"(Bkiboze $B%0%k!<%W$K!V4^$ $B%W$NE,1~%U%!%$%k$K$7$^$9!#A4$F$NE,1~%9%3%"EPO?$O$3$N%U%!%$%k$KF~$j$^$9!#(B @item admin-address +@cindex admin-address $B%a!<%j%s%0%j%9%H$+$iC&2q$9$k$H$-$O!"C&2qDLCN%a!<%k$r$=$N%a!<%j%s%0%j%9%H(B $B<+?H$KAw?.$7$F$O$$$1$^$;$s!#Be$o$j$K4IM}MQ%"%I%l%9$K%a%C%;!<%8$rAw?.$7$^(B $B$9!#$3$N%Q%i%a!<%?$K$O$I$3$+JXMx$J4IM}MQ%"%I%l%9$r=q$$$F$*$/$3$H$,$G$-$^(B $B$9!#(B @item display +@cindex display @code{(display . MODE)} $B$N$h$&$JMWAG$O!"%0%k!<%W$KF~$k$H$-$K$I$N5-;v$rI=(B $B<($9$k$+$r;XDj$7$^$9!#M-8z$JCM$O!"(B @@ -2824,24 +2826,29 @@ kiboze $B%0%k!<%W$r:n@.$7$^$9!#%W%m%s%W%H$GL>A0$H!"(Bkiboze $B%0%k!<%W$K!V4^$ @item [not expire] $B4|8B@Z$l>C5n2DG=$J5-;v0J30$N$9$Y$F$rI=<($7$^$9!#(B -@item [and (not reply) (not expirable)] +@item [and (not reply) (not expire)] $B4|8B@Z$l>C5n2DG=$H$9$G$KJV?.$7$?5-;v0J30$N$9$Y$F$rI=<($7$^$9!#(B @end table $BMxMQ$G$-$k1i;;;R$O(B @code{not}$B!"(B@code{and} $B$*$h$S(B @code{or} $B$G$9!#=R8l(B -$B$O(B @code{tick}$B!"(B@code{unsend}$B!"(B@code{undownload}$B!"(B@code{unread}$B!"(B -@code{read}$B!"(B@code{dormant}$B!"(B@code{}$B!"(B@code{}$B!"(B@code{}$B!"(B@code{expire}$B!"(B -@code{reply}$B!"(B@code{killed}$B!"(B@code{bookmark}$B!"(B@code{score}$B!"(B@code{save}$B!"(B -@code{cache}$B!"(B@code{forward} $B$*$h$S(B @code{recent} $B$r4^$_$^$9!#(B +$B$O(B @code{read}$B!"(B@code{dormant}$B!"(B@code{expire}$B!"(B@code{reply}$B!"(B +@code{killed}$B!"(B@code{bookmark}$B!"(B@code{score}$B!"(B@code{save}$B!"(B@code{cache}$B!"(B +@code{forward}$B!"(B@code{seen} $B$*$h$S(B @code{recent} $B$r4^$_$^$9!#(B @end table +@code{display} $B%Q%i%a!<%?$O!"35N,%P%C%U%!$r;XDj$7$?0lIt$NAH$@$1$K@)8B$9(B +$B$k$h$&$KF/$-$^$9!#@)8B$r%9%?%C%/$+$ipJs$r3JG<$9$k>l=j$rDs6!$7$^$9!#(B @ignore @item charset +@cindex charset Elements that look like @code{(charset . iso-8859-1)} will make @code{iso-8859-1} the default charset; that is, the charset that will be used for all articles that do not specify a charset. @@ -2849,6 +2856,7 @@ used for all articles that do not specify a charset. See also @code{gnus-group-charset-alist}. @item ignored-charsets +@cindex ignored-charsets Elements that look like @code{(ignored-charsets x-known iso-8859-1)} will make @code{iso-8859-1} and @code{x-unknown} ignored; that is, the default charset will be used for decoding articles. @@ -2856,6 +2864,7 @@ default charset will be used for decoding articles. See also @code{gnus-group-ignored-charsets-alist}. @end ignore @item posting-style +@cindex posting-style $B$3$N%0%k!<%W$NDI2C$NEj9FMM<0$r$3$3$N$_$KJ]B8$9$k$3$H$,$G$-$^(B $B$9(B (@pxref{Posting Styles})$B!#=q<0$O(B @code{gnus-posting-style} $BO"A[%j%9%H(B $B$HF1$8$G$9$,!"$3$3$K$O%0%k!<%WL>$K9gCW$9$k@55,I=8=$O$"$j$^$;$s(B ($BEvA3$G(B @@ -2878,6 +2887,7 @@ See also @code{gnus-group-ignored-charsets-alist}. $B$F(B @code{gnus-post-method} $B$NBe$o$j$K;H$o$l$^$9!#(B @item banner +@cindex banner @code{(banner . "regex")} $B$N$h$&$J9`L\$O!"5-;v$N$9$Y$F$N>l=j$G@55,I=(B $B8=(B "regex" $B$K%^%C%A$9$k$b$N$r:o=|$7$^$9!#(B"regex" $B$NBe$o$j$K%7%s%\(B $B%k(B @code{signature} ($B:G8e$N=pL>$r:o(B @@ -5648,6 +5658,13 @@ gnus $B<+BN$O2D;k5-;v$r4|8B@Z$l>C5n$7$^$;$s(B) $B$N$G!"1J1s$K5-;v$rJ]B8$7$F$* $B35N,%P%C%U%!$r$"$k%9%3%"$HF1$8$+!"$=$l$h$jBg$-$J%9%3%"$r;}$D5-;v$K@)8B$7(B $B$^$9(B (@code{gnus-summary-limit-to-score})$B!#(B +@item / p +@kindex / p (Summary) +@findex gnus-summary-limit-to-display-parameter +$B35N,%P%C%U%!$r(B @code{display} $B%0%k!<%W%Q%i%a!<%?$N=R8l$rK~B-$5$;$k$h$&$K(B +$B@)8B$7$^$9(B (@code{gnus-summary-limit-to-display-parameter})$B!#$3$N=R8l$K(B +$B4X$9$k>\:Y$O(B @pxref{Group Parameters} $B$r;2>H$7$F2<$5$$!#(B + @item / E @itemx M S @kindex M S ($B35N,(B) diff --git a/texi/gnus.texi b/texi/gnus.texi index d727476..a076e8f 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -2710,12 +2710,14 @@ Elements that look like @code{(adapt-file . "file")} will make All adaptive score entries will be put into this file. @item admin-address +@cindex admin-address When unsubscribing from a mailing list you should never send the unsubscription notice to the mailing list itself. Instead, you'd send messages to the administrative address. This parameter allows you to put the admin address somewhere convenient. @item display +@cindex display Elements that look like @code{(display . MODE)} say which articles to display on entering the group. Valid values are: @@ -2739,28 +2741,32 @@ Display only unread articles. @item [not expire] Display everything except expirable articles. -@item [and (not reply) (not expirable)] +@item [and (not reply) (not expire)] Display everything except expirable and articles you've already responded to. @end table The available operators are @code{not}, @code{and} and @code{or}. Predicates include @code{tick}, @code{unsend}, @code{undownload}, -@code{unread}, @code{read}, @code{dormant}, @code{}, @code{}, @code{}, -@code{expire}, @code{reply}, @code{killed}, @code{bookmark}, -@code{score}, @code{save}, @code{cache}, @code{forward}, and -@code{recent}. +@code{read}, @code{dormant}, @code{expire}, @code{reply}, +@code{killed}, @code{bookmark}, @code{score}, @code{save}, +@code{cache}, @code{forward}, @code{seen} and @code{recent}. @end table +The @code{display} parameter works by limiting the summary buffer to +the subset specified. You can pop the limit by using the @kbd{/ w} +command (@pxref{Limiting}). @item comment +@cindex comment Elements that look like @code{(comment . "This is a comment")} are arbitrary comments on the group. They are currently ignored by gnus, but provide a place for you to store information on particular groups. @item charset +@item charset Elements that look like @code{(charset . iso-8859-1)} will make @code{iso-8859-1} the default charset; that is, the charset that will be used for all articles that do not specify a charset. @@ -2768,6 +2774,7 @@ used for all articles that do not specify a charset. See also @code{gnus-group-charset-alist}. @item ignored-charsets +@item ignored-charset Elements that look like @code{(ignored-charsets x-known iso-8859-1)} will make @code{iso-8859-1} and @code{x-unknown} ignored; that is, the default charset will be used for decoding articles. @@ -2775,6 +2782,7 @@ default charset will be used for decoding articles. See also @code{gnus-group-ignored-charsets-alist}. @item posting-style +@cindex posting-style You can store additional posting style information for this group only here (@pxref{Posting Styles}). The format is that of an entry in the @code{gnus-posting-styles} alist, except that there's no regexp matching @@ -2797,6 +2805,7 @@ If it is set, the value is used as the method for posting message instead of @code{gnus-post-method}. @item banner +@cindex banner An item like @code{(banner . "regex")} causes any part of an article that matches the regular expression "regex" to be stripped. Instead of "regex", you can also use the symbol @code{signature} which strips the @@ -4111,12 +4120,13 @@ the @code{a} spec. @item L Number of lines in the article. @item c -Number of characters in the article. This specifier is not supported in some -methods (like nnfolder). +Number of characters in the article. This specifier is not supported +in some methods (like nnfolder). @item I Indentation based on thread level (@pxref{Customizing Threading}). @item B -A complex trn-style thread tree, showing response-connecting trace lines. +A complex trn-style thread tree, showing response-connecting trace +lines. @item T Nothing if the article is a root and lots of spaces if it isn't (it pushes everything after it off the screen). @@ -5671,6 +5681,14 @@ the stack. Limit the summary buffer to articles that have a score at or above some score (@code{gnus-summary-limit-to-score}). +@item / p +@kindex / p (Summary) +@findex gnus-summary-limit-to-display-parameter +Limit the summary buffer to articles that satisfy the @code{display} +group parameter predicate +(@code{gnus-summary-limit-to-display-parameter}). See @pxref{Group +Parameters} for more on this predicate. + @item / E @itemx M S @kindex M S (Summary) -- 1.7.10.4