summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog3
-rw-r--r--lisp/mail/rmailout.el14
2 files changed, 14 insertions, 3 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index b944746861c..97bad569955 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -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).
diff --git a/lisp/mail/rmailout.el b/lisp/mail/rmailout.el
index c325824eb28..63cc26360b7 100644
--- a/lisp/mail/rmailout.el
+++ b/lisp/mail/rmailout.el
@@ -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.