* lisp/mail/rmailout.el (rmail-output-read-file-name): Trap errors
authorGlenn Morris <rgm@gnu.org>
Mon, 20 Aug 2012 07:45:10 +0000 (00:45 -0700)
committerGlenn Morris <rgm@gnu.org>
Mon, 20 Aug 2012 07:45:10 +0000 (00:45 -0700)
in rmail-output-file-alist elements, and report them.

lisp/ChangeLog
lisp/mail/rmailout.el

index b944746..97bad56 100644 (file)
@@ -1,5 +1,8 @@
 2012-08-20  Glenn Morris  <rgm@gnu.org>
 
+       * mail/rmailout.el (rmail-output-read-file-name):
+       Trap and report errors in rmail-output-file-alist elements.
+
        * font-lock.el (font-lock-add-keywords): Doc fix (quote face names
        since most non-font-lock faces are not also variables).
 
index c325824..63cc263 100644 (file)
@@ -74,13 +74,21 @@ This uses `rmail-output-file-alist'."
                      (widen)
                      (narrow-to-region beg end)
                      (let ((tail rmail-output-file-alist)
-                           answer)
+                           answer err)
                        ;; Suggest a file based on a pattern match.
                        (while (and tail (not answer))
                          (goto-char (point-min))
                          (if (re-search-forward (caar tail) nil t)
-                             ;; FIXME trap and report any errors.
-                             (setq answer (eval (cdar tail))))
+                             (setq answer
+                                   (condition-case err
+                                       (eval (cdar tail))
+                                     (error
+                                      (display-warning
+                                       :error
+                                       (format "Error evaluating \
+`rmail-output-file-alist' element:\nregexp: %s\naction: %s\nerror: %S\n"
+                                               (caar tail) (cdar tail) err))
+                                      nil))))
                          (setq tail (cdr tail)))
                        answer))))))
            ;; If no suggestion, use same file as last time.