(defun mm-coding-system-p (cs)
"Return non-nil if CS is a symbol naming a coding system.
-In XEmacs, also return non-nil if CS is a coding system object."
+In XEmacs, also return non-nil if CS is a coding system object.
+If CS is available, return CS itself in Emacs, and return a coding
+system object in XEmacs."
(if (fboundp 'find-coding-system)
(find-coding-system cs)
(if (fboundp 'coding-system-p)
- (coding-system-p cs)
+ (when (coding-system-p cs)
+ cs)
;; Is this branch ever actually useful?
- (memq cs (mm-get-coding-system-list)))))
+ (car (memq cs (mm-get-coding-system-list))))))
(defvar mm-charset-synonym-alist
`(
(big5 chinese-big5-1 chinese-big5-2)
(tibetan tibetan)
(thai-tis620 thai-tis620)
+ (windows-1251 cyrillic-iso8859-5)
(iso-2022-7bit ethiopic arabic-1-column arabic-2-column)
(iso-2022-jp-2 latin-iso8859-1 greek-iso8859-7
latin-jisx0201 japanese-jisx0208-1978
(let ((priorities
(mapcar (lambda (cs)
;; Note: invalid entries are dropped silently
- (and (mm-coding-system-p cs)
+ (and (setq cs (mm-coding-system-p cs))
(coding-system-base cs)))
mm-coding-system-priorities)))
- (and (mm-coding-system-p a)
- (if (mm-coding-system-p b)
+ (and (setq a (mm-coding-system-p a))
+ (if (setq b (mm-coding-system-p b))
(> (length (memq (coding-system-base a) priorities))
(length (memq (coding-system-base b) priorities)))
t))))