+2001-08-23 18:43:05 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * 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 <zsh@cs.rochester.edu>
+
+ * 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 <larsi@gnus.org>
+
+ * 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 <larsi@gnus.org>
* gnus.el (gnus-visual-p): Define function before use of
(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."
(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)
;; 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)
"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
["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]
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)
(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)))
(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))))
(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
(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)
;; 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))
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
(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
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
"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"
+2001-08-23 19:22:59 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Group Parameters): Fix.
+ (Group Parameters): Addition.
+ (Limiting): Addition.
+
2001-08-21 23:55:48 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus.texi (Score Variables): Fix.
\e$B%W$NE,1~%U%!%$%k$K$7$^$9!#A4$F$NE,1~%9%3%"EPO?$O$3$N%U%!%$%k$KF~$j$^$9!#\e(B
@item admin-address
+@cindex admin-address
\e$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\e(B
\e$B<+?H$KAw?.$7$F$O$$$1$^$;$s!#Be$o$j$K4IM}MQ%"%I%l%9$K%a%C%;!<%8$rAw?.$7$^\e(B
\e$B$9!#$3$N%Q%i%a!<%?$K$O$I$3$+JXMx$J4IM}MQ%"%I%l%9$r=q$$$F$*$/$3$H$,$G$-$^\e(B
\e$B$9!#\e(B
@item display
+@cindex display
@code{(display . MODE)} \e$B$N$h$&$JMWAG$O!"%0%k!<%W$KF~$k$H$-$K$I$N5-;v$rI=\e(B
\e$B<($9$k$+$r;XDj$7$^$9!#M-8z$JCM$O!"\e(B
@item [not expire]
\e$B4|8B@Z$l>C5n2DG=$J5-;v0J30$N$9$Y$F$rI=<($7$^$9!#\e(B
-@item [and (not reply) (not expirable)]
+@item [and (not reply) (not expire)]
\e$B4|8B@Z$l>C5n2DG=$H$9$G$KJV?.$7$?5-;v0J30$N$9$Y$F$rI=<($7$^$9!#\e(B
@end table
\e$BMxMQ$G$-$k1i;;;R$O\e(B @code{not}\e$B!"\e(B@code{and} \e$B$*$h$S\e(B @code{or} \e$B$G$9!#=R8l\e(B
-\e$B$O\e(B @code{tick}\e$B!"\e(B@code{unsend}\e$B!"\e(B@code{undownload}\e$B!"\e(B@code{unread}\e$B!"\e(B
-@code{read}\e$B!"\e(B@code{dormant}\e$B!"\e(B@code{}\e$B!"\e(B@code{}\e$B!"\e(B@code{}\e$B!"\e(B@code{expire}\e$B!"\e(B
-@code{reply}\e$B!"\e(B@code{killed}\e$B!"\e(B@code{bookmark}\e$B!"\e(B@code{score}\e$B!"\e(B@code{save}\e$B!"\e(B
-@code{cache}\e$B!"\e(B@code{forward} \e$B$*$h$S\e(B @code{recent} \e$B$r4^$_$^$9!#\e(B
+\e$B$O\e(B @code{read}\e$B!"\e(B@code{dormant}\e$B!"\e(B@code{expire}\e$B!"\e(B@code{reply}\e$B!"\e(B
+@code{killed}\e$B!"\e(B@code{bookmark}\e$B!"\e(B@code{score}\e$B!"\e(B@code{save}\e$B!"\e(B@code{cache}\e$B!"\e(B
+@code{forward}\e$B!"\e(B@code{seen} \e$B$*$h$S\e(B @code{recent} \e$B$r4^$_$^$9!#\e(B
@end table
+@code{display} \e$B%Q%i%a!<%?$O!"35N,%P%C%U%!$r;XDj$7$?0lIt$NAH$@$1$K@)8B$9\e(B
+\e$B$k$h$&$KF/$-$^$9!#@)8B$r%9%?%C%/$+$i<h$j=P$9$N$O\e(B @kbd{/ w} \e$B%3%^%s%I$G$G\e(B
+\e$B$-$^$9\e(B (@pxref{Limiting})\e$B!#\e(B
+
@item comment
+@cindex comment
@code{(comment . "This is a comment")} \e$B$N$h$&$JMWAG$O!"$=$N%0%k!<%W$KBP\e(B
\e$B$9$kG$0U$N%3%a%s%H$G$9!#$3$l$O8=:_$N\e(B gnus \e$B$G$OL5;k$5$l$^$9$,!"FCDj$N%0%k!<\e(B
\e$B%W$KBP$9$k>pJs$r3JG<$9$k>l=j$rDs6!$7$^$9!#\e(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.
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.
See also @code{gnus-group-ignored-charsets-alist}.
@end ignore
@item posting-style
+@cindex posting-style
\e$B$3$N%0%k!<%W$NDI2C$NEj9FMM<0$r$3$3$N$_$KJ]B8$9$k$3$H$,$G$-$^\e(B
\e$B$9\e(B (@pxref{Posting Styles})\e$B!#=q<0$O\e(B @code{gnus-posting-style} \e$BO"A[%j%9%H\e(B
\e$B$HF1$8$G$9$,!"$3$3$K$O%0%k!<%WL>$K9gCW$9$k@55,I=8=$O$"$j$^$;$s\e(B (\e$BEvA3$G\e(B
\e$B$F\e(B @code{gnus-post-method} \e$B$NBe$o$j$K;H$o$l$^$9!#\e(B
@item banner
+@cindex banner
@code{(banner . "regex")} \e$B$N$h$&$J9`L\$O!"5-;v$N$9$Y$F$N>l=j$G@55,I=\e(B
\e$B8=\e(B "regex" \e$B$K%^%C%A$9$k$b$N$r:o=|$7$^$9!#\e(B"regex" \e$B$NBe$o$j$K%7%s%\\e(B
\e$B%k\e(B @code{signature} (\e$B:G8e$N=pL>$r:o\e(B
\e$B35N,%P%C%U%!$r$"$k%9%3%"$HF1$8$+!"$=$l$h$jBg$-$J%9%3%"$r;}$D5-;v$K@)8B$7\e(B
\e$B$^$9\e(B (@code{gnus-summary-limit-to-score})\e$B!#\e(B
+@item / p
+@kindex / p (Summary)
+@findex gnus-summary-limit-to-display-parameter
+\e$B35N,%P%C%U%!$r\e(B @code{display} \e$B%0%k!<%W%Q%i%a!<%?$N=R8l$rK~B-$5$;$k$h$&$K\e(B
+\e$B@)8B$7$^$9\e(B (@code{gnus-summary-limit-to-display-parameter})\e$B!#$3$N=R8l$K\e(B
+\e$B4X$9$k>\:Y$O\e(B @pxref{Group Parameters} \e$B$r;2>H$7$F2<$5$$!#\e(B
+
@item / E
@itemx M S
@kindex M S (\e$B35N,\e(B)
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:
@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.
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.
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
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
@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).
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)