(mm-coding-system-p): Don't override nil from
authorDave Love <fx@gnu.org>
Fri, 2 May 2003 17:55:08 +0000 (17:55 +0000)
committerDave Love <fx@gnu.org>
Fri, 2 May 2003 17:55:08 +0000 (17:55 +0000)
coding-system-p.
(mm-mule4-p, mm-disable-multibyte-mule4)
(mm-with-unibyte-current-buffer-mule4): Deleted.
(mm-multibyte-p): Use defun, not defalias.
(mm-make-temp-file): Moved to group at top of file.

lisp/mm-util.el

index c50c3b5..7631e5e 100644 (file)
      (string-make-unibyte . identity)
      (string-as-multibyte . identity)
      (multibyte-string-p . ignore)
+     ;; It is not a MIME function, but some MIME functions use it.
+     (make-temp-file . (lambda (prefix &optional dir-flag)
+                        (let ((file (expand-file-name
+                                     (make-temp-name prefix)
+                                     (if (fboundp 'temp-directory)
+                                         (temp-directory)
+                                       temporary-file-directory))))
+                          (if dir-flag
+                              (make-directory file))
+                          file)))
      (insert-byte . insert-char)
      (multibyte-char-to-unibyte . identity))))
 
 
 (defun mm-coding-system-p (sym)
   "Return non-nil if SYM is a coding system."
-  (or (and (fboundp 'coding-system-p) (coding-system-p sym))
-      (memq sym (mm-get-coding-system-list))))
+  (if (fboundp 'coding-system-p)
+      (coding-system-p sym)
+    (memq sym (mm-get-coding-system-list))))
 
 (defvar mm-charset-synonym-alist
   `(
     ;; Apparently not defined in Emacs 20, but is a valid MIME name.
     ,@(unless (mm-coding-system-p 'gb2312)
        '((gb2312 . cn-gb-2312)))
-    ;; ISO-8859-15 is very similar to ISO-8859-1.
-    ,@(unless (mm-coding-system-p 'iso-8859-15) ; Emacs 21 defines it.
+    ;; ISO-8859-15 is very similar to ISO-8859-1.  But it's _different_!
+    ,@(unless (mm-coding-system-p 'iso-8859-15)
        '((iso-8859-15 . iso-8859-1)))
     ;; Windows-1252 is actually a superset of Latin-1.  See also
     ;; `gnus-article-dumbquotes-map'.
@@ -380,12 +391,7 @@ used as the line break code type of the coding system."
                             (boundp 'default-enable-multibyte-characters)
                             default-enable-multibyte-characters
                             (fboundp 'set-buffer-multibyte))
-    "Emacs mule.")
-
-  (defvar mm-mule4-p (and mm-emacs-mule
-                         (fboundp 'charsetp)
-                         (not (charsetp 'eight-bit-control)))
-    "Mule version 4.")
+    "True in Emacs with Mule.")
 
   (if mm-emacs-mule
       (defun mm-enable-multibyte ()
@@ -400,27 +406,14 @@ non-nil.  This is a no-op in XEmacs."
        "Unset the multibyte flag of in the current buffer.
 This is a no-op in XEmacs."
        (set-buffer-multibyte nil))
-    (defalias 'mm-disable-multibyte 'ignore))
-
-  (if mm-mule4-p
-      (defun mm-enable-multibyte-mule4  ()
-       "Enable multibyte in the current buffer.
-Only used in Emacs Mule 4."
-       (set-buffer-multibyte t))
-    (defalias 'mm-enable-multibyte-mule4 'ignore))
-
-  (if mm-mule4-p
-      (defun mm-disable-multibyte-mule4 ()
-       "Disable multibyte in the current buffer.
-Only used in Emacs Mule 4."
-       (set-buffer-multibyte nil))
-    (defalias 'mm-disable-multibyte-mule4 'ignore)))
+    (defalias 'mm-disable-multibyte 'ignore)))
 
 (defun mm-preferred-coding-system (charset)
   ;; A typo in some Emacs versions.
   (or (get-charset-property charset 'preferred-coding-system)
       (get-charset-property charset 'prefered-coding-system)))
 
+;; Mule charsets shouldn't be used.
 (defsubst mm-guess-charset ()
   "Guess Mule charset from the language environment."
   (or
@@ -451,7 +444,7 @@ If the charset is `composition', return the actual one."
        (setq charset 'ascii)
       ;; charset-after is fake in some Emacsen.
       (setq charset (and (fboundp 'char-charset) (char-charset char)))
-      (if (eq charset 'composition)
+      (if (eq charset 'composition)    ; Mule 4
          (let ((p (or pos (point))))
            (cadr (find-charset-region p (1+ p))))
        (if (and charset (not (memq charset '(ascii eight-bit-control
@@ -487,13 +480,13 @@ If the charset is `composition', return the actual one."
       (setq result (cons head result)))
     (nreverse result)))
 
-(if (and (not (featurep 'xemacs))
-        (boundp 'enable-multibyte-characters))
-    (defalias 'mm-multibyte-p
-      (lambda ()
-       "Say whether multibyte is enabled in the current buffer."
-       enable-multibyte-characters))
-  (defalias 'mm-multibyte-p (lambda () (featurep 'mule))))
+(eval-and-compile
+  (if (and (not (featurep 'xemacs))
+          (boundp 'enable-multibyte-characters))
+      (defun mm-multibyte-p ()
+       "Non-nil if multibyte is enabled in the current buffer."
+       enable-multibyte-characters)
+    (defun mm-multibyte-p () (featurep 'mule))))
 
 (defun mm-iso-8859-x-to-15-region (&optional b e)
   (if (fboundp 'char-charset)
@@ -592,7 +585,7 @@ Equivalent to `progn' in XEmacs"
   (let ((multibyte (make-symbol "multibyte"))
        (buffer (make-symbol "buffer")))
     `(if mm-emacs-mule
-        (let ((,multibyte enable-multibyte-characters)
+        (let ((,multibyte enable-multibyte-characters)
               (,buffer (current-buffer)))
           (unwind-protect
               (let (default-enable-multibyte-characters)
@@ -605,25 +598,6 @@ Equivalent to `progn' in XEmacs"
 (put 'mm-with-unibyte-current-buffer 'lisp-indent-function 0)
 (put 'mm-with-unibyte-current-buffer 'edebug-form-spec '(body))
 
-(defmacro mm-with-unibyte-current-buffer-mule4 (&rest forms)
-  "Evaluate FORMS there like `progn' in current buffer.
-Mule4 only."
-  (let ((multibyte (make-symbol "multibyte"))
-       (buffer (make-symbol "buffer")))
-    `(if mm-mule4-p
-        (let ((,multibyte enable-multibyte-characters)
-              (,buffer (current-buffer)))
-          (unwind-protect
-              (let (default-enable-multibyte-characters)
-                (set-buffer-multibyte nil)
-                ,@forms)
-            (set-buffer ,buffer)
-            (set-buffer-multibyte ,multibyte)))
-       (let (default-enable-multibyte-characters)
-        ,@forms))))
-(put 'mm-with-unibyte-current-buffer-mule4 'lisp-indent-function 0)
-(put 'mm-with-unibyte-current-buffer-mule4 'edebug-form-spec '(body))
-
 (defmacro mm-with-unibyte (&rest forms)
   "Eval the FORMS with the default value of `enable-multibyte-characters' nil, ."
   `(let (default-enable-multibyte-characters)
@@ -768,6 +742,7 @@ If INHIBIT is non-nil, inhibit `mm-inhibit-file-name-handlers'."
          (push dir result))
       (push path result))))
 
+;; Fixme: This doesn't look useful where it's used.
 (if (fboundp 'detect-coding-region)
     (defun mm-detect-coding-region (start end)
       "Like `detect-coding-region' except returning the best one."
@@ -818,20 +793,6 @@ If INHIBIT is non-nil, inhibit `mm-inhibit-file-name-handlers'."
      (t
       'iso-8859-1))))
 
-;; It is not a MIME function, but some MIME functions use it.
-(defalias 'mm-make-temp-file
-  (if (fboundp 'make-temp-file)
-      'make-temp-file
-    (lambda (prefix &optional dir-flag)
-      (let ((file (expand-file-name
-                  (make-temp-name prefix)
-                  (if (fboundp 'temp-directory)
-                      (temp-directory)
-                    temporary-file-directory))))
-       (if dir-flag
-           (make-directory file))
-       file))))
-
 (provide 'mm-util)
 
 ;;; mm-util.el ends here