+1999-12-18 16:43:37 Shenghuo ZHU <zsh@cs.rochester.edu>
+
+ * mm-util.el (mm-charset-after): Non-MULE case.
+ * mail-prsvr.el (mail-parse-mule-charset): New variable.
+ * rfc2047.el (rfc2047-dissect-region): Bind it.
+
1999-12-18 Florian Weimer <fw@s.netic.de>
* mml.el (mml-generate-multipart-alist): Correct default value.
functions that wish to call mail-parse functions and let them know
what the desired charset is to be.")
+(defvar mail-parse-mule-charset nil
+ "Default MULE charset used by low-level libraries.
+This variable should never be set.")
+
(defvar mail-parse-ignored-charsets nil
"Ignored charsets used by low-level libraries.
This variable should never be set. Instead, it should be bound by
;;; Code:
+(require 'mail-prsvr)
+
(defvar mm-mime-mule-charset-alist
'((us-ascii ascii)
(iso-8859-1 latin-iso8859-1)
chinese-cns11643-7))
"Alist of MIME-charset/MULE-charsets.")
-
(eval-and-compile
(mapcar
(lambda (elem)
If POS is nil, it defauls to the current point.
If POS is out of range, the value is nil.
If the charset is `composition', return the actual one."
- (let ((charset (if (fboundp 'charset-after)
- (charset-after pos)
- (char-charset (char-after pos)))))
+ (let ((charset (cond
+ ((fboundp 'charset-after)
+ (charset-after pos))
+ ((fboundp 'char-charset)
+ (char-charset (char-after pos)))
+ ((< (mm-char-int (char-after pos)) 128)
+ 'ascii)
+ (mail-parse-mule-charset ;; cached mule-charset
+ mail-parse-mule-charset)
+ ((boundp 'current-language-environment)
+ (let ((entry (assoc current-language-environment
+ language-info-alist)))
+ (setq mail-parse-mule-charset
+ (or (car (last (assq 'charset entry)))
+ 'latin-iso8859-1))))
+ (t ;; figure out the charset
+ (setq mail-parse-mule-charset
+ (or (car (last (assq mail-parse-charset
+ mm-mime-mule-charset-alist)))
+ 'latin-iso8859-1))))))
(if (eq charset 'composition)
(let ((p (or pos (point))))
(cadr (find-charset-region p (1+ p))))
(let ((all-specials (concat ietf-drums-tspecials " \t\n\r"))
(special-list (mapcar 'identity ietf-drums-tspecials))
(blank-list '(? ?\t ?\n ?\r))
- words current cs state)
+ words current cs state mail-parse-mule-charset)
(save-restriction
(narrow-to-region b e)
(goto-char (point-min))