X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Fgnus-group.el;h=df4f3715ee1966cc1c115e5c1a1d604e3b9cf8f3;hb=af4a5319cbc657a992111b7cddbc8b23194691ee;hp=dcf1b611b3f1e590dbe3bc951395733e999db92e;hpb=5ab6bed77f7ff3862cfd912f249c58964d4a90e3;p=elisp%2Fgnus.git- diff --git a/lisp/gnus-group.el b/lisp/gnus-group.el index dcf1b61..df4f371 100644 --- a/lisp/gnus-group.el +++ b/lisp/gnus-group.el @@ -1060,6 +1060,8 @@ if it is a string, only list groups matching REGEXP." (let ((buffer-read-only nil) (newsrc (cdr gnus-newsrc-alist)) (lowest (or lowest 1)) + (not-in-list (and gnus-group-listed-groups + (copy-sequence gnus-group-listed-groups))) info clevel unread group params) (erase-buffer) (when (or (< lowest gnus-level-zombie) @@ -1071,6 +1073,8 @@ if it is a string, only list groups matching REGEXP." params (gnus-info-params info) newsrc (cdr newsrc) unread (car (gnus-gethash group gnus-newsrc-hashtb))) + (if not-in-list + (setq not-in-list (delete group not-in-list))) (and (gnus-group-prepare-logic group @@ -1110,10 +1114,15 @@ if it is a string, only list groups matching REGEXP." (setq gnus-zombie-list (sort gnus-zombie-list 'string<)) gnus-level-zombie ?Z regexp)) + (if not-in-list + (dolist (group gnus-zombie-list) + (setq not-in-list (delete group not-in-list)))) (if (or gnus-group-listed-groups (and (>= level gnus-level-killed) (<= lowest gnus-level-killed))) (gnus-group-prepare-flat-list-dead - (setq gnus-killed-list (sort gnus-killed-list 'string<)) + (gnus-union + not-in-list + (setq gnus-killed-list (sort gnus-killed-list 'string<))) gnus-level-killed ?K regexp)) (gnus-group-set-mode-line) @@ -1133,16 +1142,21 @@ if it is a string, only list groups matching REGEXP." (or (not regexp) (and (stringp regexp) (string-match regexp group)) (and (functionp regexp) (funcall regexp group)))) - (gnus-add-text-properties - (point) (prog1 (1+ (point)) - (insert " " mark " *: " - (gnus-group-name-decode group - (gnus-group-name-charset - nil group)) - "\n")) - (list 'gnus-group (gnus-intern-safe group gnus-active-hashtb) - 'gnus-unread t - 'gnus-level level)))))) +;;; (gnus-add-text-properties +;;; (point) (prog1 (1+ (point)) +;;; (insert " " mark " *: " +;;; (gnus-group-name-decode group +;;; (gnus-group-name-charset +;;; nil group)) +;;; "\n")) +;;; (list 'gnus-group (gnus-intern-safe group gnus-active-hashtb) +;;; 'gnus-unread t +;;; 'gnus-level level)) + (gnus-group-insert-group-line + group level nil + (if gnus-server-browse-hashtb + (gnus-gethash group gnus-server-browse-hashtb) t) + (gnus-method-simplify (gnus-find-method-for-group group))))))) (defun gnus-group-update-group-line () "Update the current line in the group buffer."