Bind RET and TAB on images for better UX.
[gnus] / lisp / gnus-score.el
index f910bfb..bd4a39e 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-score.el --- scoring code for Gnus
 
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-;;   2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+;;   2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 
 ;; Author: Per Abrahamsen <amanda@iesd.auc.dk>
 ;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -9,10 +9,10 @@
 
 ;; This file is part of GNU Emacs.
 
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 3, or (at your option)
-;; any later version.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -20,9 +20,7 @@
 ;; GNU General Public License for more details.
 
 ;; 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., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
@@ -326,7 +324,7 @@ If this variable is nil, exact matching will always be used."
   "If non-nil, adaptive score files fill are pretty printed."
   :group 'gnus-score-files
   :group 'gnus-score-adapt
-  :version "23.0" ;; No Gnus
+  :version "23.1" ;; No Gnus
   :type 'boolean)
 
 (defcustom gnus-score-default-header nil
@@ -429,7 +427,7 @@ If a regexp, scoring on headers or body is inhibited if the group
 matches the regexp.  If it is t, scoring on headers or body is
 inhibited for all groups."
   :group 'gnus-score-various
-  :version "23.0" ;; No Gnus
+  :version "23.1" ;; No Gnus
   :type '(choice (const :tag "All" nil)
                 (const :tag "None" t)
                 regexp))
@@ -1552,20 +1550,20 @@ If FORMAT, also format the current score file."
                                      (lambda (score)
                                        (length (gnus-score-get header score)))
                                      scores)))
-               ;; Call the scoring function for this type of "header".
                (when (if (and gnus-inhibit-slow-scoring
-                              (if (and (stringp gnus-inhibit-slow-scoring)
+                              (or (eq gnus-inhibit-slow-scoring t)
+                                  (and (stringp gnus-inhibit-slow-scoring)
                                        ;; Always true here?
                                        ;; (stringp gnus-newsgroup-name)
-                                       (string-match gnus-inhibit-slow-scoring
-                                                     gnus-newsgroup-name))
-                                  t
-                                nil)
+                                       (string-match
+                                        gnus-inhibit-slow-scoring
+                                        gnus-newsgroup-name)))
                               (> 0 (nth 1 (assoc header gnus-header-index))))
                          (progn
                            (gnus-message
                             7 "Scoring on headers or body skipped.")
                            nil)
+                       ;; Call the scoring function for this type of "header".
                        (setq new (funcall (nth 2 entry) scores header
                                           now expire trace)))
                  (push new news))))
@@ -2057,8 +2055,11 @@ score in `gnus-newsgroup-scored' by SCORE."
 
          ;; Evil hackery to make match usable in non-standard headers.
          (when extra
-           (setq match (concat "[ (](" extra " \\. \"[^)]*"
-                               match "[^\"]*\")[ )]")
+           (setq match (concat "[ (](" extra " \\. \"\\([^\"]*\\\\\"\\)*[^\"]*"
+                               (if (eq search-func 're-search-forward)
+                                   match
+                                 (regexp-quote match))
+                               "\\([^\"]*\\\\\"\\)*[^\"]*\")[ )]")
                  search-func 're-search-forward)) ; XXX danger?!?
 
          (cond
@@ -2469,6 +2470,13 @@ score in `gnus-newsgroup-scored' by SCORE."
                   ;; .ADAPT directly:
                   (file-name-nondirectory file)
                   (abbreviate-file-name file))))
+       (insert
+        (format "\nTotal score: %d"
+                (apply '+ (mapcar
+                           (lambda (s)
+                             (or (caddr s)
+                                 gnus-score-interactive-default-score))
+                           trace))))
        (insert
         "\n\nQuick help:
 
@@ -3114,5 +3122,4 @@ See Info node `(gnus)Scoring Tips' for examples of good regular expressions."
 
 (provide 'gnus-score)
 
-;;; arch-tag: d3922589-764d-46ae-9954-9330fd192634
 ;;; gnus-score.el ends here