X-Git-Url: https://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fgnus-sum.el;h=dfd1421cfc4368f7b1fccb81fc027f094f667b5b;hb=27049d84774e4c9c6984be6654ce69031bd78599;hp=c04bf7abdfe6d90650fdef173bbeb0d96657da8e;hpb=f59e2e33112ea1a959113c4bdc0c4ee9c26b51d7;p=gnus diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index c04bf7abd..dfd1421cf 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -122,6 +122,7 @@ If t, fetch all the available old headers." "*Use nnir to search an entire server when referring threads. A nil value will only search for thread-related articles in the current group." + :version "24.1" :group 'gnus-thread :type 'boolean) @@ -1529,6 +1530,9 @@ This list will always be a subset of gnus-newsgroup-undownloaded.") (defvar gnus-newsgroup-seen nil "Range of seen articles in the current newsgroup.") +(defvar gnus-newsgroup-unexist nil + "Range of unexistent articles in the current newsgroup.") + (defvar gnus-newsgroup-articles nil "List of articles in the current newsgroup.") @@ -2082,7 +2086,7 @@ increase the score of each group you read." "g" gnus-summary-show-article "s" gnus-summary-isearch-article [tab] gnus-summary-widget-forward - [backtab] gnus-summary-widget-forward + [backtab] gnus-summary-widget-backward "P" gnus-summary-print-article "S" gnus-sticky-article "M" gnus-mailing-list-insinuate @@ -5674,7 +5678,7 @@ If SELECT-ARTICLES, only select those articles from GROUP." (setq gnus-newsgroup-unselected (gnus-sorted-difference gnus-newsgroup-unreads articles)) (setq articles (gnus-articles-to-read group read-all))) - + (cond ((null articles) ;;(gnus-message 3 "Couldn't select newsgroup -- no articles to display") @@ -5813,6 +5817,7 @@ If SELECT-ARTICLES, only select those articles from GROUP." "Find out what articles the user wants to read." (let* ((only-read-p t) (articles + (gnus-list-range-difference ;; Select all articles if `read-all' is non-nil, or if there ;; are no unread articles. (if (or read-all @@ -5839,7 +5844,8 @@ If SELECT-ARTICLES, only select those articles from GROUP." (setq only-read-p nil) (gnus-sorted-nunion (gnus-sorted-union gnus-newsgroup-dormant gnus-newsgroup-marked) - gnus-newsgroup-unreads))) + gnus-newsgroup-unreads)) + (cdr (assq 'unexist (gnus-info-marks (gnus-get-info group)))))) (scored-list (gnus-killed-articles gnus-newsgroup-killed articles)) (scored (length scored-list)) (number (length articles)) @@ -6021,7 +6027,9 @@ If SELECT-ARTICLES, only select those articles from GROUP." (and (numberp (car articles)) (> min (car articles))))) (pop articles)) - (set var articles)))))))) + (set var articles)) + ((eq mark 'unexist) + (set var (cdr marks))))))))) (defun gnus-update-missing-marks (missing) "Go through the list of MISSING articles and remove them from the mark lists." @@ -7320,6 +7328,7 @@ If FORCE (the prefix), also save the .newsrc file(s)." (when (gnus-buffer-live-p gnus-article-buffer) (with-current-buffer gnus-article-buffer (gnus-article-stop-animations) + (gnus-stop-downloads) (mm-destroy-parts gnus-article-mime-handles) ;; Set it to nil for safety reason. (setq gnus-article-mime-handle-alist nil) @@ -7330,9 +7339,11 @@ If FORCE (the prefix), also save the .newsrc file(s)." (gnus-kill-buffer gnus-original-article-buffer) (setq gnus-article-current nil)) ;; Return to the group buffer. - (gnus-configure-windows 'group 'force) (if (not gnus-kill-summary-on-exit) - (gnus-deaden-summary) + (progn + (gnus-deaden-summary) + (gnus-configure-windows 'group 'force)) + (gnus-configure-windows 'group 'force) (gnus-close-group group) (gnus-kill-buffer gnus-summary-buffer)) (unless gnus-single-article-buffer @@ -7354,7 +7365,7 @@ If FORCE (the prefix), also save the .newsrc file(s)." (defun gnus-handle-ephemeral-exit (quit-config) "Handle movement when leaving an ephemeral group. The state which existed when entering the ephemeral is reset." - (if (not (buffer-name (car quit-config))) + (if (not (buffer-live-p (car quit-config))) (gnus-configure-windows 'group 'force) (set-buffer (car quit-config)) (unless (eq (cdr quit-config) 'group) @@ -9666,6 +9677,7 @@ C-u g', show the raw article." (when (gnus-buffer-live-p gnus-article-buffer) (with-current-buffer gnus-article-buffer (gnus-article-stop-animations) + (gnus-stop-downloads) (mm-destroy-parts gnus-article-mime-handles) ;; Set it to nil for safety reason. (setq gnus-article-mime-handle-alist nil) @@ -11592,6 +11604,7 @@ Returns nil if no thread was there to be shown." (beg (progn (beginning-of-line) (if (bobp) (point) (1- (point))))) (eoi (when end (if (fboundp 'next-single-char-property-change) + ;; Note: XEmacs version of n-s-c-p-c may return nil (or (next-single-char-property-change end 'invisible) (point-max)) (while (progn @@ -12866,6 +12879,7 @@ If ALL is a number, fetch this number of articles." (gnus-group-decoded-name gnus-newsgroup-name) (if initial "max" "default") len) + nil nil (if initial (cons (number-to-string initial) 0)))))