X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=eword-decode.el;h=a8f34b5c70b78ffd78a8fb8d91ea30753f0dd014;hb=e896a4fe741e1127888fd800423dc2ac0fc4b063;hp=55bf8b5d8bdf189e4b98135bbba8b9207ad8bfc1;hpb=eed515ec0f082365d434cb22b460cbca3f0776a0;p=elisp%2Fflim.git diff --git a/eword-decode.el b/eword-decode.el index 55bf8b5..a8f34b5 100644 --- a/eword-decode.el +++ b/eword-decode.el @@ -32,7 +32,7 @@ ;;; Code: -(require 'std11-parse) +(require 'std11) (require 'mel) (require 'mime-def) @@ -452,7 +452,18 @@ If SEPARATOR is not nil, it is used as header separator." ;;; @ encoded-word decoder ;;; -(defvar eword-warning-face nil "Face used for invalid encoded-word.") +(defvar eword-decode-encoded-word-error-handler + 'eword-decode-encoded-word-default-error-handler) + +(defvar eword-warning-face nil + "Face used for invalid encoded-word.") + +(defun eword-decode-encoded-word-default-error-handler (word signal) + (and (add-text-properties 0 (length word) + (and eword-warning-face + (list 'face eword-warning-face)) + word) + word)) (defun eword-decode-encoded-word (word &optional must-unfold) "Decode WORD if it is an encoded-word. @@ -477,12 +488,8 @@ as a version of Net$cape)." (condition-case err (eword-decode-encoded-text charset encoding text must-unfold) (error - (and - (add-text-properties 0 (length word) - (and eword-warning-face - (list 'face eword-warning-face)) - word) - word))) + (funcall eword-decode-encoded-word-error-handler word err) + )) )) word)) @@ -590,7 +597,7 @@ be the result." (setq p (or p len)) (cons (cons 'comment (eword-decode-comment - (substring string 0 p) + (std11-unfold-string (substring string 0 p)) default-mime-charset)) (substring string p))) nil)))