Merge from gnus--rel--5.10
Patches applied: * gnus--rel--5.10 (patch 245) - Update from CVS 2007-08-17 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus-art.el (gnus-article-summary-command-nosave) (gnus-article-read-summary-keys): Don't use 3rd arg of pop-to-buffer. 2007-08-14 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/gnus.el (gnus-maximum-newsgroup): New variable. * lisp/gnus/gnus-agent.el (gnus-agent-fetch-headers): Limit the range of articles according to gnus-maximum-newsgroup. * lisp/gnus/gnus-sum.el (gnus-articles-to-read, gnus-list-of-unread-articles) (gnus-list-of-read-articles, gnus-sequence-of-unread-articles): Limit the range of articles according to gnus-maximum-newsgroup. 2007-08-14 Katsumi Yamaoka <yamaoka@jpl.org> * man/gnus.texi (Selecting a Group): Mention gnus-maximum-newsgroup. Revision: emacs@sv.gnu.org/emacs--rel--22--patch-96
This commit is contained in:
parent
30a718e6b7
commit
11abff8e05
7 changed files with 88 additions and 18 deletions
|
@ -1,3 +1,19 @@
|
|||
2007-08-17 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
* gnus-art.el (gnus-article-summary-command-nosave)
|
||||
(gnus-article-read-summary-keys): Don't use 3rd arg of pop-to-buffer.
|
||||
|
||||
2007-08-14 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
* gnus.el (gnus-maximum-newsgroup): New variable.
|
||||
|
||||
* gnus-agent.el (gnus-agent-fetch-headers): Limit the range of articles
|
||||
according to gnus-maximum-newsgroup.
|
||||
|
||||
* gnus-sum.el (gnus-articles-to-read, gnus-list-of-unread-articles)
|
||||
(gnus-list-of-read-articles, gnus-sequence-of-unread-articles): Limit
|
||||
the range of articles according to gnus-maximum-newsgroup.
|
||||
|
||||
2007-08-10 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
* nntp.el (nntp-xref-number-is-evil): New server variable.
|
||||
|
|
|
@ -1765,7 +1765,14 @@ article numbers will be returned."
|
|||
(gnus-agent-find-parameter group
|
||||
'agent-predicate)))))
|
||||
(articles (if fetch-all
|
||||
(gnus-uncompress-range (gnus-active group))
|
||||
(if gnus-maximum-newsgroup
|
||||
(let ((active (gnus-active group)))
|
||||
(gnus-uncompress-range
|
||||
(cons (max (car active)
|
||||
(- (cdr active)
|
||||
gnus-maximum-newsgroup -1))
|
||||
(cdr active))))
|
||||
(gnus-uncompress-range (gnus-active group)))
|
||||
(gnus-list-of-unread-articles group)))
|
||||
(gnus-decode-encoded-word-function 'identity)
|
||||
(gnus-decode-encoded-address-function 'identity)
|
||||
|
|
|
@ -5607,7 +5607,7 @@ not have a face in `gnus-article-boring-faces'."
|
|||
"Execute the last keystroke in the summary buffer."
|
||||
(interactive)
|
||||
(let (func)
|
||||
(pop-to-buffer gnus-article-current-summary nil (not (featurep 'xemacs)))
|
||||
(pop-to-buffer gnus-article-current-summary)
|
||||
(setq func (lookup-key (current-local-map) (this-command-keys)))
|
||||
(call-interactively func)))
|
||||
|
||||
|
@ -5646,8 +5646,7 @@ not have a face in `gnus-article-boring-faces'."
|
|||
(member keys nosave-in-article))
|
||||
(let (func)
|
||||
(save-window-excursion
|
||||
(pop-to-buffer gnus-article-current-summary
|
||||
nil (not (featurep 'xemacs)))
|
||||
(pop-to-buffer gnus-article-current-summary)
|
||||
;; We disable the pick minor mode commands.
|
||||
(let (gnus-pick-mode)
|
||||
(setq func (lookup-key (current-local-map) keys))))
|
||||
|
@ -5659,16 +5658,14 @@ not have a face in `gnus-article-boring-faces'."
|
|||
(call-interactively func)
|
||||
(setq new-sum-point (point)))
|
||||
(when (member keys nosave-but-article)
|
||||
(pop-to-buffer gnus-article-buffer
|
||||
nil (not (featurep 'xemacs)))))
|
||||
(pop-to-buffer gnus-article-buffer)))
|
||||
;; These commands should restore window configuration.
|
||||
(let ((obuf (current-buffer))
|
||||
(owin (current-window-configuration))
|
||||
(opoint (point))
|
||||
win func in-buffer selected new-sum-start new-sum-hscroll)
|
||||
(cond (not-restore-window
|
||||
(pop-to-buffer gnus-article-current-summary
|
||||
nil (not (featurep 'xemacs))))
|
||||
(pop-to-buffer gnus-article-current-summary))
|
||||
((setq win (get-buffer-window gnus-article-current-summary))
|
||||
(select-window win))
|
||||
(t
|
||||
|
|
|
@ -5472,7 +5472,13 @@ If SELECT-ARTICLES, only select those articles from GROUP."
|
|||
;; articles in the group, or (if that's nil), the
|
||||
;; articles in the cache.
|
||||
(or
|
||||
(gnus-uncompress-range (gnus-active group))
|
||||
(if gnus-maximum-newsgroup
|
||||
(let ((active (gnus-active group)))
|
||||
(gnus-uncompress-range
|
||||
(cons (max (car active)
|
||||
(- (cdr active) gnus-maximum-newsgroup -1))
|
||||
(cdr active))))
|
||||
(gnus-uncompress-range (gnus-active group)))
|
||||
(gnus-cache-articles-in-group group))
|
||||
;; Select only the "normal" subset of articles.
|
||||
(gnus-sorted-nunion
|
||||
|
@ -6534,23 +6540,26 @@ displayed, no centering will be performed."
|
|||
(let* ((read (gnus-info-read (gnus-get-info group)))
|
||||
(active (or (gnus-active group) (gnus-activate-group group)))
|
||||
(last (cdr active))
|
||||
(bottom (if gnus-maximum-newsgroup
|
||||
(max (car active) (- last gnus-maximum-newsgroup -1))
|
||||
(car active)))
|
||||
first nlast unread)
|
||||
;; If none are read, then all are unread.
|
||||
(if (not read)
|
||||
(setq first (car active))
|
||||
(setq first bottom)
|
||||
;; If the range of read articles is a single range, then the
|
||||
;; first unread article is the article after the last read
|
||||
;; article. Sounds logical, doesn't it?
|
||||
(if (and (not (listp (cdr read)))
|
||||
(or (< (car read) (car active))
|
||||
(or (< (car read) bottom)
|
||||
(progn (setq read (list read))
|
||||
nil)))
|
||||
(setq first (max (car active) (1+ (cdr read))))
|
||||
(setq first (max bottom (1+ (cdr read))))
|
||||
;; `read' is a list of ranges.
|
||||
(when (/= (setq nlast (or (and (numberp (car read)) (car read))
|
||||
(caar read)))
|
||||
1)
|
||||
(setq first (car active)))
|
||||
(setq first bottom))
|
||||
(while read
|
||||
(when first
|
||||
(while (< first nlast)
|
||||
|
@ -6575,7 +6584,12 @@ displayed, no centering will be performed."
|
|||
(gnus-list-range-difference
|
||||
(gnus-list-range-difference
|
||||
(gnus-sorted-complement
|
||||
(gnus-uncompress-range active)
|
||||
(gnus-uncompress-range
|
||||
(if gnus-maximum-newsgroup
|
||||
(cons (max (car active)
|
||||
(- (cdr active) gnus-maximum-newsgroup -1))
|
||||
(cdr active))
|
||||
active))
|
||||
(gnus-list-of-unread-articles group))
|
||||
(cdr (assq 'dormant marked)))
|
||||
(cdr (assq 'tick marked))))))
|
||||
|
@ -6587,23 +6601,26 @@ displayed, no centering will be performed."
|
|||
(let* ((read (gnus-info-read (gnus-get-info group)))
|
||||
(active (or (gnus-active group) (gnus-activate-group group)))
|
||||
(last (cdr active))
|
||||
(bottom (if gnus-maximum-newsgroup
|
||||
(max (car active) (- last gnus-maximum-newsgroup -1))
|
||||
(car active)))
|
||||
first nlast unread)
|
||||
;; If none are read, then all are unread.
|
||||
(if (not read)
|
||||
(setq first (car active))
|
||||
(setq first bottom)
|
||||
;; If the range of read articles is a single range, then the
|
||||
;; first unread article is the article after the last read
|
||||
;; article. Sounds logical, doesn't it?
|
||||
(if (and (not (listp (cdr read)))
|
||||
(or (< (car read) (car active))
|
||||
(or (< (car read) bottom)
|
||||
(progn (setq read (list read))
|
||||
nil)))
|
||||
(setq first (max (car active) (1+ (cdr read))))
|
||||
(setq first (max bottom (1+ (cdr read))))
|
||||
;; `read' is a list of ranges.
|
||||
(when (/= (setq nlast (or (and (numberp (car read)) (car read))
|
||||
(caar read)))
|
||||
1)
|
||||
(setq first (car active)))
|
||||
(setq first bottom))
|
||||
(while read
|
||||
(when first
|
||||
(push (cons first nlast) unread))
|
||||
|
|
|
@ -1501,6 +1501,17 @@ If it is nil, no confirmation is required."
|
|||
:type '(choice (const :tag "No limit" nil)
|
||||
integer))
|
||||
|
||||
(defcustom gnus-maximum-newsgroup nil
|
||||
"The maximum number of articles a newsgroup.
|
||||
If this is a number, old articles in a newsgroup exceeding this number
|
||||
are silently ignored. If it is nil, no article is ignored. Note that
|
||||
setting this variable to a number might prevent you from reading very
|
||||
old articles."
|
||||
:group 'gnus-group-select
|
||||
:version "22.2"
|
||||
:type '(choice (const :tag "No limit" nil)
|
||||
integer))
|
||||
|
||||
(defcustom gnus-use-long-file-name (not (memq system-type '(usg-unix-v xenix)))
|
||||
"*Non-nil means that the default name of a file to save articles in is the group name.
|
||||
If it's nil, the directory form of the group name is used instead.
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2007-08-14 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
* gnus.texi (Selecting a Group): Mention gnus-maximum-newsgroup.
|
||||
|
||||
2007-08-17 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* basic.texi (Position Info): Add index entry for face at point.
|
||||
|
|
|
@ -2153,6 +2153,24 @@ most recently will be fetched.
|
|||
@code{gnus-large-newsgroup}, but is only used for ephemeral
|
||||
newsgroups.
|
||||
|
||||
@vindex gnus-maximum-newsgroup
|
||||
In groups in some news servers, there might be a big gap between a few
|
||||
very old articles that will never be expired and the recent ones. In
|
||||
such a case, the server will return the data like @code{(1 . 30000000)}
|
||||
for the @code{LIST ACTIVE group} command, for example. Even if there
|
||||
are actually only the articles 1-10 and 29999900-30000000, Gnus doesn't
|
||||
know it at first and prepares for getting 30000000 articles. However,
|
||||
it will consume hundreds megabytes of memories and might make Emacs get
|
||||
stuck as the case may be. If you use such news servers, set the
|
||||
variable @code{gnus-maximum-newsgroup} to a positive number. The value
|
||||
means that Gnus ignores articles other than this number of the latest
|
||||
ones in every group. For instance, the value 10000 makes Gnus get only
|
||||
the articles 29990001-30000000 (if the latest article number is 30000000
|
||||
in a group). Note that setting this variable to a number might prevent
|
||||
you from reading very old articles. The default value of the variable
|
||||
@code{gnus-maximum-newsgroup} is @code{nil}, which means Gnus never
|
||||
ignores old articles.
|
||||
|
||||
@vindex gnus-select-group-hook
|
||||
@vindex gnus-auto-select-first
|
||||
@vindex gnus-auto-select-subject
|
||||
|
|
Loading…
Add table
Reference in a new issue