summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorJulien Danjou <julien@danjou.info>2010-10-27 22:08:36 +0000
committerKatsumi Yamaoka <yamaoka@jpl.org>2010-10-27 22:08:36 +0000
commit11a5db4a62a5d29f9419db6658f818b9a4d499cc (patch)
tree56a1a32d98ea0ed9face85f530bcd9b9fa6c6c27 /lisp
parentce8794df2c8fb158f6feb0036a1e0f27db02ecc8 (diff)
downloademacs-11a5db4a62a5d29f9419db6658f818b9a4d499cc.tar.gz
emacs-11a5db4a62a5d29f9419db6658f818b9a4d499cc.tar.bz2
emacs-11a5db4a62a5d29f9419db6658f818b9a4d499cc.zip
gnus-group.el: Make gnus-group-default-list-level possibly a function.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/gnus/ChangeLog6
-rw-r--r--lisp/gnus/gnus-group.el19
2 files changed, 19 insertions, 6 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 3e569c7265d..f4dde8b660b 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,9 @@
+2010-10-26 Julien Danjou <julien@danjou.info>
+
+ * gnus-group.el (gnus-group-default-list-level): Add this function to
+ compute the default list level.
+ (gnus-group-default-list-level): Add possibility to use a function.
+
2010-10-27 Katsumi Yamaoka <yamaoka@jpl.org>
* mm-decode.el (mm-shr): Add undisplayer to MIME handle.
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el
index 1d73b44b8b6..3f3cd24963f 100644
--- a/lisp/gnus/gnus-group.el
+++ b/lisp/gnus/gnus-group.el
@@ -119,10 +119,11 @@ If nil, only list groups that have unread articles."
:type 'boolean)
(defcustom gnus-group-default-list-level gnus-level-subscribed
- "*Default listing level.
+ "Default listing level.
Ignored if `gnus-group-use-permanent-levels' is non-nil."
:group 'gnus-group-listing
- :type 'integer)
+ :type '(choice (integer :tag "Level")
+ (function :tag "Function returning level")))
(defcustom gnus-group-list-inactive-groups t
"*If non-nil, inactive groups will be listed."
@@ -1169,6 +1170,12 @@ The following commands are available:
(mouse-set-point e)
(gnus-group-read-group nil))
+(defun gnus-group-default-list-level ()
+ "Return the real value for `gnus-group-default-list-level'."
+ (if (functionp gnus-group-default-list-level)
+ (funcall gnus-group-default-list-level)
+ gnus-group-default-list-level))
+
;; Look at LEVEL and find out what the level is really supposed to be.
;; If LEVEL is non-nil, LEVEL will be returned, if not, what happens
;; will depend on whether `gnus-group-use-permanent-levels' is used.
@@ -1178,13 +1185,13 @@ The following commands are available:
(or (setq gnus-group-use-permanent-levels
(or level (if (numberp gnus-group-use-permanent-levels)
gnus-group-use-permanent-levels
- (or gnus-group-default-list-level
+ (or (gnus-group-default-list-level)
gnus-level-subscribed))))
- gnus-group-default-list-level gnus-level-subscribed))
+ (gnus-group-default-list-level) gnus-level-subscribed))
(number-or-nil
level)
(t
- (or level gnus-group-default-list-level gnus-level-subscribed))))
+ (or level (gnus-group-default-list-level) gnus-level-subscribed))))
(defun gnus-group-setup-buffer ()
(set-buffer (gnus-get-buffer-create gnus-group-buffer))
@@ -1230,7 +1237,7 @@ Also see the `gnus-group-use-permanent-levels' variable."
(prefix-numeric-value current-prefix-arg)
(or
(gnus-group-default-level nil t)
- gnus-group-default-list-level
+ (gnus-group-default-list-level)
gnus-level-subscribed))))
(unless level
(setq level (car gnus-group-list-mode)