* gnus-agent.el (directory-files-and-attributes): Move forward.
[gnus] / lisp / gnus-cus.el
index e0d299e..f88f533 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-cus.el --- customization commands for Gnus
-;;
-;; Copyright (C) 1996, 1999, 2000, 2001, 2002, 2003
-;;        Free Software Foundation, Inc.
+
+;; Copyright (C) 1996, 1999, 2000, 2001, 2002, 2003, 2004,
+;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: news
@@ -20,8 +20,8 @@
 
 ;; You should have received a copy of the GNU General Public License
 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 ;;; Commentary:
 
@@ -67,7 +67,7 @@ if that value is non-nil."
     (set (make-local-variable 'widget-push-button-suffix) "")
     (set (make-local-variable 'widget-link-prefix) "")
     (set (make-local-variable 'widget-link-suffix) ""))
-  (gnus-run-hooks 'gnus-custom-mode-hook))
+  (gnus-run-mode-hooks 'gnus-custom-mode-hook))
 
 ;;; Group Customization:
 
@@ -204,8 +204,7 @@ Which articles to display on entering the group.
 An arbitrary comment on the group.")
 
     (visible (const :tag "Permanently visible" t) "\
-Always display this group, even when there are no unread articles
-in it..")
+Always display this group, even when there are no unread articles in it.")
 
     (highlight-words
      (choice :tag "Highlight words"
@@ -228,8 +227,11 @@ See `gnus-emphasis-alist'.")
                              (const signature-file)
                              (const organization)
                              (const address)
+                             (const x-face-file)
                              (const name)
-                             (const body))
+                             (const body)
+                             (symbol)
+                             (string :tag "Header"))
                      (string :format "%v"))))
      "post style.
 See `gnus-posting-styles'."))
@@ -313,15 +315,15 @@ has been stored locally for at least this many days."
               (const :format "Disable " DISABLE))
        "\nEnable, or disable, agent expiration in this group or topic."
        gnus-agent-cat-enable-expiration)
-      (agent-disable-undownloaded-faces
-       (boolean :tag "Disable Agent Faces")
-       "Have the summary buffer ignore the agent's undownloaded faces.
-These faces, when used, act as a warning that an article has not been
-fetched into either the agent nor the cache.  This is of most use to
-users who use the agent as a cache (i.e. they only operate on articles
-that have been downloaded).  Disable to display normal article faces
-even when the article hasn't been downloaded."
-       gnus-agent-cat-disable-undownloaded-faces))
+      (agent-enable-undownloaded-faces
+       (boolean :tag "Enable Agent Faces")
+       "Have the summary buffer use the agent's undownloaded faces.
+These faces, when enabled, act as a warning that an article has not
+been fetched into either the agent nor the cache.  This is of most use
+to users who use the agent as a cache (i.e. they only operate on
+articles that have been downloaded).  Leave disabled to display normal
+article faces even when the article hasn't been downloaded."
+gnus-agent-cat-enable-undownloaded-faces))
     "Alist of group parameters that are not also topic parameters.
 
 Each entry has the form (NAME TYPE DOC ACCESSOR), where NAME is the
@@ -773,8 +775,8 @@ When called interactively, FILE defaults to the current score file.
 This can be changed using the `\\[gnus-score-change-score-file]' command."
   (interactive (list gnus-current-score-file))
   (unless file
-    (error (format "No score file for %s"
-                  (gnus-group-decoded-name gnus-newsgroup-name))))
+    (error "No score file for %s"
+           (gnus-group-decoded-name gnus-newsgroup-name)))
   (let ((scores (gnus-score-load file))
        (types (mapcar (lambda (entry)
                         `(group :format "%v%h\n"
@@ -888,6 +890,17 @@ articles in the thread.
 
 (eval-when-compile
   (defvar category-fields nil)
+  (defvar gnus-agent-cat-name)
+  (defvar gnus-agent-cat-score-file)
+  (defvar gnus-agent-cat-length-when-short)
+  (defvar gnus-agent-cat-length-when-long)
+  (defvar gnus-agent-cat-low-score)
+  (defvar gnus-agent-cat-high-score)
+  (defvar gnus-agent-cat-enable-expiration)
+  (defvar gnus-agent-cat-days-until-old)
+  (defvar gnus-agent-cat-predicate)
+  (defvar gnus-agent-cat-groups)
+  (defvar gnus-agent-cat-enable-undownloaded-faces)
 )
 
 (defun gnus-trim-whitespace (s)
@@ -905,7 +918,8 @@ articles in the thread.
             (val (,field info))
             (deflt (if (,field defaults)
                        (concat " [" (gnus-trim-whitespace
-                                     (pp-to-string (,field defaults))) "]")))
+                                     (gnus-pp-to-string (,field defaults)))
+                               "]")))
             symb)
 
        (if (eq (car type) 'radio)
@@ -919,11 +933,11 @@ articles in the thread.
 
        (if deflt
            (let ((tag (cdr (memq :tag type))))
-             (if (string-match "\n" deflt)
-                 (progn (while (progn (setq deflt (replace-match "\n " t t
-                                                                 deflt))
-                                      (string-match "\n" deflt (match-end 0))))
-                        (setq deflt (concat "\n" deflt))))
+             (when (string-match "\n" deflt)
+              (while (progn (setq deflt (replace-match "\n " t t
+                                                       deflt))
+                            (string-match "\n" deflt (match-end 0))))
+              (setq deflt (concat "\n" deflt)))
 
              (setcar tag (concat (car tag) deflt))))
 
@@ -974,7 +988,7 @@ articles in the thread.
                    (widgets category-fields))
               (while widgets
                 (let* ((widget (pop widgets))
-                       (value (ignore-errors (widget-value widget))))
+                       (value (condition-case nil (widget-value widget) (error))))
                   (eval `(setf (,(widget-get widget :accessor) ',info)
                                ',value)))))
             (gnus-category-write)
@@ -1003,9 +1017,9 @@ articles in the thread.
       ;; gnus-agent-cat-prepare-category-field as I don't want the
       ;; group list to appear when customizing a topic.
       (widget-insert "\n")
-      
-      (let ((symb 
-             (set 
+
+      (let ((symb
+             (set
               (make-local-variable 'gnus-agent-cat-groups)
               (widget-create
                `(choice
@@ -1035,6 +1049,10 @@ articles in the thread.
       (gnus-agent-cat-prepare-category-field agent-enable-expiration)
       (gnus-agent-cat-prepare-category-field agent-days-until-old)
 
+      (widget-insert "\nVisual Settings ")
+
+      (gnus-agent-cat-prepare-category-field agent-enable-undownloaded-faces)
+
       (use-local-map widget-keymap)
       (widget-setup)
       (buffer-enable-undo))))
@@ -1043,4 +1061,5 @@ articles in the thread.
 
 (provide 'gnus-cus)
 
+;;; arch-tag: a37c285a-49bc-4235-8244-804536effeaf
 ;;; gnus-cus.el ends here