emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r102130: gnus-group.el: Make gnus-gro


From: Katsumi Yamaoka
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r102130: gnus-group.el: Make gnus-group-default-list-level possibly a function.
Date: Wed, 27 Oct 2010 22:08:36 +0000
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 102130
author: Julien Danjou <address@hidden>
committer: Katsumi Yamaoka <address@hidden>
branch nick: trunk
timestamp: Wed 2010-10-27 22:08:36 +0000
message:
  gnus-group.el: Make gnus-group-default-list-level possibly a function.
modified:
  doc/misc/gnus.texi
  lisp/gnus/ChangeLog
  lisp/gnus/gnus-group.el
=== modified file 'doc/misc/gnus.texi'
--- a/doc/misc/gnus.texi        2010-10-24 21:36:09 +0000
+++ b/doc/misc/gnus.texi        2010-10-27 22:08:36 +0000
@@ -2415,6 +2415,9 @@
 All groups with a level less than or equal to
 @code{gnus-group-default-list-level} will be listed in the group buffer
 by default.
+This variable can also be a function.  In that case, that function will
+be called and the result will be used as value.
+
 
 @vindex gnus-group-list-inactive-groups
 If @code{gnus-group-list-inactive-groups} is address@hidden, non-active

=== modified file 'lisp/gnus/ChangeLog'
--- a/lisp/gnus/ChangeLog       2010-10-27 03:59:59 +0000
+++ b/lisp/gnus/ChangeLog       2010-10-27 22:08:36 +0000
@@ -1,3 +1,9 @@
+2010-10-26  Julien Danjou  <address@hidden>
+
+       * 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  <address@hidden>
 
        * mm-decode.el (mm-shr): Add undisplayer to MIME handle.

=== modified file 'lisp/gnus/gnus-group.el'
--- a/lisp/gnus/gnus-group.el   2010-10-27 01:09:11 +0000
+++ b/lisp/gnus/gnus-group.el   2010-10-27 22:08:36 +0000
@@ -119,10 +119,11 @@
   :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 @@
   (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 @@
     (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 @@
             (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)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]