;;; Code:
-(require 'std11-parse)
+(require 'std11)
(require 'mel)
(require 'mime-def)
"Encoded-word decoding"
:group 'mime)
-(defconst eword-decode-version "1.2.2")
-
;;; @ MIME encoded-word definition
;;;
;;; @@ Quoted-Printable
;;;
-(defconst quoted-printable-hex-chars "0123456789ABCDEF")
-(defconst quoted-printable-octet-regexp
- (concat "=[" quoted-printable-hex-chars
- "][" quoted-printable-hex-chars "]"))
-
(defconst eword-Q-encoded-text-regexp
(concat "\\([^=?]\\|" quoted-printable-octet-regexp "\\)+"))
;; (defconst eword-Q-encoding-and-encoded-text-regexp
;;;
(defcustom eword-decode-ignored-field-list
- '(newsgroups path lines nntp-posting-host message-id date)
+ '(newsgroups path lines nntp-posting-host received message-id date)
"*List of field-names to be ignored when decoding.
Each field name must be symbol."
:group 'eword-decode
;;; @ 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.
(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))