projects
/
gnus
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* mml.el (mml-mode): Replace gnus-add-minor-mode with
[gnus]
/
lisp
/
gnus-topic.el
diff --git
a/lisp/gnus-topic.el
b/lisp/gnus-topic.el
index
544d48b
..
292f6c1
100644
(file)
--- a/
lisp/gnus-topic.el
+++ b/
lisp/gnus-topic.el
@@
-1,5
+1,5
@@
;;; gnus-topic.el --- a folding minor mode for Gnus group buffers
;;; gnus-topic.el --- a folding minor mode for Gnus group buffers
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
, 2003
;; Free Software Foundation, Inc.
;; Author: Ilja Weis <kult@uni-paderborn.de>
;; Free Software Foundation, Inc.
;; Author: Ilja Weis <kult@uni-paderborn.de>
@@
-104,16
+104,16
@@
See Info node `(gnus)Formatting Variables'."
(defun gnus-group-topic-name ()
"The name of the topic on the current line."
(defun gnus-group-topic-name ()
"The name of the topic on the current line."
- (let ((topic (get-text-property (
gnus-
point-at-bol) 'gnus-topic)))
+ (let ((topic (get-text-property (point-at-bol) 'gnus-topic)))
(and topic (symbol-name topic))))
(defun gnus-group-topic-level ()
"The level of the topic on the current line."
(and topic (symbol-name topic))))
(defun gnus-group-topic-level ()
"The level of the topic on the current line."
- (get-text-property (
gnus-
point-at-bol) 'gnus-topic-level))
+ (get-text-property (point-at-bol) 'gnus-topic-level))
(defun gnus-group-topic-unread ()
"The number of unread articles in topic on the current line."
(defun gnus-group-topic-unread ()
"The number of unread articles in topic on the current line."
- (get-text-property (
gnus-
point-at-bol) 'gnus-topic-unread))
+ (get-text-property (point-at-bol) 'gnus-topic-unread))
(defun gnus-topic-unread (topic)
"Return the number of unread articles in TOPIC."
(defun gnus-topic-unread (topic)
"Return the number of unread articles in TOPIC."
@@
-126,7
+126,7
@@
See Info node `(gnus)Formatting Variables'."
(defun gnus-topic-visible-p ()
"Return non-nil if the current topic is visible."
(defun gnus-topic-visible-p ()
"Return non-nil if the current topic is visible."
- (get-text-property (
gnus-
point-at-bol) 'gnus-topic-visible))
+ (get-text-property (point-at-bol) 'gnus-topic-visible))
(defun gnus-topic-articles-in-topic (entries)
(let ((total 0)
(defun gnus-topic-articles-in-topic (entries)
(let ((total 0)
@@
-435,6
+435,8
@@
If LOWEST is non-nil, list all newsgroups of level LOWEST or higher."
(and gnus-group-listed-groups
(copy-sequence gnus-group-listed-groups))))
(and gnus-group-listed-groups
(copy-sequence gnus-group-listed-groups))))
+ (gnus-update-format-specifications nil 'topic)
+
(when (or (not gnus-topic-alist)
(not gnus-topology-checked-p))
(gnus-topic-check-topology))
(when (or (not gnus-topic-alist)
(not gnus-topology-checked-p))
(gnus-topic-check-topology))
@@
-461,7
+463,7
@@
If LOWEST is non-nil, list all newsgroups of level LOWEST or higher."
(unless gnus-killed-hashtb
(gnus-make-hashtable-from-killed))
(gnus-group-prepare-flat-list-dead
(unless gnus-killed-hashtb
(gnus-make-hashtable-from-killed))
(gnus-group-prepare-flat-list-dead
- (gnus-
delet
e-if (lambda (group)
+ (gnus-
remov
e-if (lambda (group)
(or (gnus-gethash group gnus-newsrc-hashtb)
(gnus-gethash group gnus-killed-hashtb)))
not-in-list)
(or (gnus-gethash group gnus-newsrc-hashtb)
(gnus-gethash group gnus-killed-hashtb)))
not-in-list)
@@
-725,7
+727,8
@@
articles in the topic and its subtopics."
(unread 0)
(entries (gnus-topic-find-groups
(car type) (car gnus-group-list-mode)
(unread 0)
(entries (gnus-topic-find-groups
(car type) (car gnus-group-list-mode)
- (cdr gnus-group-list-mode))))
+ (cdr gnus-group-list-mode)))
+ entry)
(while children
(incf unread (gnus-topic-unread (caar (pop children)))))
(while (setq entry (pop entries))
(while children
(incf unread (gnus-topic-unread (caar (pop children)))))
(while (setq entry (pop entries))
@@
-926,8
+929,8
@@
articles in the topic and its subtopics."
? ))
(yanked (list group))
alist talist end)
? ))
(yanked (list group))
alist talist end)
- ;; Then we enter the yanked groups into the topics
they belong
- ;; to.
+ ;; Then we enter the yanked groups into the topics
+ ;; t
hey belong t
o.
(when (setq alist (assoc (save-excursion
(forward-line -1)
(or
(when (setq alist (assoc (save-excursion
(forward-line -1)
(or
@@
-1102,7
+1105,7
@@
articles in the topic and its subtopics."
["Move..." gnus-topic-move-group t]
["Remove" gnus-topic-remove-group t]
["Copy matching..." gnus-topic-copy-matching t]
["Move..." gnus-topic-move-group t]
["Remove" gnus-topic-remove-group t]
["Copy matching..." gnus-topic-copy-matching t]
- ["Move matching" gnus-topic-move-matching t])
+ ["Move matching
...
" gnus-topic-move-matching t])
("Topics"
["Goto..." gnus-topic-jump-to-topic t]
["Show" gnus-topic-show-topic t]
("Topics"
["Goto..." gnus-topic-jump-to-topic t]
["Show" gnus-topic-show-topic t]
@@
-1133,7
+1136,7
@@
articles in the topic and its subtopics."
(when (gnus-visual-p 'topic-menu 'menu)
(gnus-topic-make-menu-bar))
(gnus-set-format 'topic t)
(when (gnus-visual-p 'topic-menu 'menu)
(gnus-topic-make-menu-bar))
(gnus-set-format 'topic t)
- (
gnus-
add-minor-mode 'gnus-topic-mode " Topic"
+ (add-minor-mode 'gnus-topic-mode " Topic"
gnus-topic-mode-map nil (lambda (&rest junk)
(interactive)
(gnus-topic-mode nil t)))
gnus-topic-mode-map nil (lambda (&rest junk)
(interactive)
(gnus-topic-mode nil t)))
@@
-1152,7
+1155,7
@@
articles in the topic and its subtopics."
'gnus-group-sort-topic)
(setq gnus-group-change-level-function 'gnus-topic-change-level)
(setq gnus-goto-missing-group-function 'gnus-topic-goto-missing-group)
'gnus-group-sort-topic)
(setq gnus-group-change-level-function 'gnus-topic-change-level)
(setq gnus-goto-missing-group-function 'gnus-topic-goto-missing-group)
- (make-local-hook 'gnus-check-bogus-groups-hook)
+ (
gnus-
make-local-hook 'gnus-check-bogus-groups-hook)
(add-hook 'gnus-check-bogus-groups-hook 'gnus-topic-clean-alist
nil 'local)
(setq gnus-topology-checked-p nil)
(add-hook 'gnus-check-bogus-groups-hook 'gnus-topic-clean-alist
nil 'local)
(setq gnus-topology-checked-p nil)
@@
-1179,6
+1182,8
@@
If ALL is a number, fetch this number of articles.
If performed over a topic line, toggle folding the topic."
(interactive "P")
If performed over a topic line, toggle folding the topic."
(interactive "P")
+ (when (and (eobp) (not (gnus-group-group-name)))
+ (forward-line -1))
(if (gnus-group-topic-p)
(let ((gnus-group-list-mode
(if all (cons (if (numberp all) all 7) t) gnus-group-list-mode)))
(if (gnus-group-topic-p)
(let ((gnus-group-list-mode
(if all (cons (if (numberp all) all 7) t) gnus-group-list-mode)))
@@
-1201,7
+1206,8
@@
If performed over a topic line, toggle folding the topic."
(gnus-message 5 "Expiring groups in %s..." topic)
(let ((gnus-group-marked
(mapcar (lambda (entry) (car (nth 2 entry)))
(gnus-message 5 "Expiring groups in %s..." topic)
(let ((gnus-group-marked
(mapcar (lambda (entry) (car (nth 2 entry)))
- (gnus-topic-find-groups topic gnus-level-killed t))))
+ (gnus-topic-find-groups topic gnus-level-killed t
+ nil t))))
(gnus-group-expire-articles nil))
(gnus-message 5 "Expiring groups in %s...done" topic))))
(gnus-group-expire-articles nil))
(gnus-message 5 "Expiring groups in %s...done" topic))))
@@
-1214,7
+1220,8
@@
Also see `gnus-group-catchup'."
(save-excursion
(let* ((groups
(mapcar (lambda (entry) (car (nth 2 entry)))
(save-excursion
(let* ((groups
(mapcar (lambda (entry) (car (nth 2 entry)))
- (gnus-topic-find-groups topic gnus-level-killed t)))
+ (gnus-topic-find-groups topic gnus-level-killed t
+ nil t)))
(buffer-read-only nil)
(gnus-group-marked groups))
(gnus-group-catchup-current)
(buffer-read-only nil)
(gnus-group-marked groups))
(gnus-group-catchup-current)
@@
-1423,9
+1430,9
@@
If PERMANENT, make it stay shown in subsequent sessions as well."
(setcar (cdr (cadr topic)) 'visible)
(gnus-group-list-groups)))))
(setcar (cdr (cadr topic)) 'visible)
(gnus-group-list-groups)))))
-(defun gnus-topic-mark-topic (topic &optional unmark recursive)
+(defun gnus-topic-mark-topic (topic &optional unmark
non-
recursive)
"Mark all groups in the TOPIC with the process mark.
"Mark all groups in the TOPIC with the process mark.
-If
RECURSIVE is t, mark its subtopics too
."
+If
NON-RECURSIVE (which is the prefix) is t, don't mark its subtopics
."
(interactive (list (gnus-group-topic-name)
nil
(and current-prefix-arg t)))
(interactive (list (gnus-group-topic-name)
nil
(and current-prefix-arg t)))
@@
-1433,20
+1440,20
@@
If RECURSIVE is t, mark its subtopics too."
(call-interactively 'gnus-group-mark-group)
(save-excursion
(let ((groups (gnus-topic-find-groups topic gnus-level-killed t nil
(call-interactively 'gnus-group-mark-group)
(save-excursion
(let ((groups (gnus-topic-find-groups topic gnus-level-killed t nil
-
recursive
)))
+
(not non-recursive)
)))
(while groups
(funcall (if unmark 'gnus-group-remove-mark 'gnus-group-set-mark)
(gnus-info-group (nth 2 (pop groups)))))))))
(while groups
(funcall (if unmark 'gnus-group-remove-mark 'gnus-group-set-mark)
(gnus-info-group (nth 2 (pop groups)))))))))
-(defun gnus-topic-unmark-topic (topic &optional dummy recursive)
+(defun gnus-topic-unmark-topic (topic &optional dummy
non-
recursive)
"Remove the process mark from all groups in the TOPIC.
"Remove the process mark from all groups in the TOPIC.
-If
RECURSIVE is t, unmark its subtopics too
."
+If
NON-RECURSIVE (which is the prefix) is t, don't unmark its subtopics
."
(interactive (list (gnus-group-topic-name)
nil
(and current-prefix-arg t)))
(if (not topic)
(call-interactively 'gnus-group-unmark-group)
(interactive (list (gnus-group-topic-name)
nil
(and current-prefix-arg t)))
(if (not topic)
(call-interactively 'gnus-group-unmark-group)
- (gnus-topic-mark-topic topic t recursive)))
+ (gnus-topic-mark-topic topic t
non-
recursive)))
(defun gnus-topic-get-new-news-this-topic (&optional n)
"Check for new news in the current topic."
(defun gnus-topic-get-new-news-this-topic (&optional n)
"Check for new news in the current topic."