emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 37cf445 2/2: Remove XEmacs compat functions from mm


From: Lars Ingebrigtsen
Subject: [Emacs-diffs] master 37cf445 2/2: Remove XEmacs compat functions from mm-util.el
Date: Fri, 12 Feb 2016 03:40:04 +0000

branch: master
commit 37cf4454b1646481935e7b5bfffc8f64eb484b3a
Author: Lars Ingebrigtsen <address@hidden>
Commit: Lars Ingebrigtsen <address@hidden>

    Remove XEmacs compat functions from mm-util.el
    
    * lisp/gnus/mm-util.el (mm-special-display-p): Remove.
    (mm-decode-coding-string, mm-encode-coding-string)
    (mm-decode-coding-region, mm-encode-coding-region): Remove.
    (mm-string-to-multibyte): Remove.
    (mm-char-or-char-int-p): Remove.
    (mm-ucs-to-char): Remove compat versions of the function.
    (mm-read-coding-system): Remove.
    (mm-coding-system-p): Remove compat code.
    (mm-enrich-utf-8-by-mule-ucs): Remove.
    (mm-enable-multibyte, mm-disable-multibyte): Remove compat versions.
    (mm-delete-duplicates): Remove.
    (mm-multibyte-p): Remove compat versions.
    (mm-xemacs-find-mime-charset-1): Remove.
    (mm-xemacs-find-mime-charset): Remove.
    (mm-make-temp-file): Made obsolete.
    (mm-find-buffer-file-coding-system): Remove XEmacs compat.
---
 lisp/gnus/auth-source.el    |   18 +-
 lisp/gnus/gnus-art.el       |   56 ++--
 lisp/gnus/gnus-cache.el     |    4 +-
 lisp/gnus/gnus-cus.el       |    4 +-
 lisp/gnus/gnus-group.el     |   22 +-
 lisp/gnus/gnus-html.el      |    2 +-
 lisp/gnus/gnus-icalendar.el |    3 +-
 lisp/gnus/gnus-msg.el       |   12 +-
 lisp/gnus/gnus-srvr.el      |    6 +-
 lisp/gnus/gnus-start.el     |    6 +-
 lisp/gnus/gnus-sum.el       |   22 +-
 lisp/gnus/gnus-uu.el        |    8 +-
 lisp/gnus/gnus.el           |    3 +-
 lisp/gnus/ietf-drums.el     |    4 +-
 lisp/gnus/mailcap.el        |    7 -
 lisp/gnus/message.el        |   14 +-
 lisp/gnus/mm-archive.el     |    2 +-
 lisp/gnus/mm-bodies.el      |   15 +-
 lisp/gnus/mm-decode.el      |    8 +-
 lisp/gnus/mm-url.el         |   10 +-
 lisp/gnus/mm-util.el        |  621 +++++--------------------------------------
 lisp/gnus/mm-uu.el          |   10 +-
 lisp/gnus/mm-view.el        |    6 +-
 lisp/gnus/mml-sec.el        |    5 +-
 lisp/gnus/mml-smime.el      |    2 +-
 lisp/gnus/mml.el            |    8 +-
 lisp/gnus/mml2015.el        |   14 +-
 lisp/gnus/nndoc.el          |    2 +-
 lisp/gnus/nneething.el      |    4 +-
 lisp/gnus/nnfolder.el       |    2 +-
 lisp/gnus/nnheader.el       |   10 +-
 lisp/gnus/nnimap.el         |    2 +-
 lisp/gnus/nnir.el           |   11 +-
 lisp/gnus/nnmail.el         |    6 +-
 lisp/gnus/nnmh.el           |    4 +-
 lisp/gnus/nnml.el           |    4 +-
 lisp/gnus/nnrss.el          |    6 +-
 lisp/gnus/nntp.el           |    2 +-
 lisp/gnus/nnweb.el          |    2 +-
 lisp/gnus/qp.el             |   11 +-
 lisp/gnus/rfc1843.el        |    2 +-
 lisp/gnus/rfc2047.el        |   30 +-
 lisp/gnus/rfc2231.el        |    7 +-
 lisp/gnus/spam-report.el    |    3 +-
 lisp/gnus/utf7.el           |    4 +-
 lisp/mh-e/mh-comp.el        |    4 +-
 46 files changed, 255 insertions(+), 753 deletions(-)

diff --git a/lisp/gnus/auth-source.el b/lisp/gnus/auth-source.el
index da3d670..32b39b9 100644
--- a/lisp/gnus/auth-source.el
+++ b/lisp/gnus/auth-source.el
@@ -1601,9 +1601,9 @@ authentication tokens:
                                           (list k (plist-get spec k))))
                                       search-keys))))
          ;; needed keys (always including host, login, port, and secret)
-         (returned-keys (mm-delete-duplicates (append
-                                               '(:host :login :port :secret)
-                                               search-keys)))
+         (returned-keys (delete-dups (append
+                                     '(:host :login :port :secret)
+                                     search-keys)))
          (items
           (loop for search-spec in search-specs
                nconc
@@ -1730,9 +1730,9 @@ entries for git.gnus.org:
                                           (list k (plist-get spec k))))
                                       search-keys)))
          ;; needed keys (always including host, login, port, and secret)
-         (returned-keys (mm-delete-duplicates (append
-                                               '(:host :login :port :secret)
-                                               search-keys)))
+         (returned-keys (delete-dups (append
+                                     '(:host :login :port :secret)
+                                     search-keys)))
          ;; Extract host and port from spec
          (hosts (plist-get spec :host))
          (hosts (if (and hosts (listp hosts)) hosts `(,hosts)))
@@ -1872,9 +1872,9 @@ entries for git.gnus.org:
                                             (list k v))))
                                       search-keys)))
          ;; needed keys (always including host, login, port, and secret)
-         (returned-keys (mm-delete-duplicates (append
-                                               '(:host :login :port :secret)
-                                               search-keys)))
+         (returned-keys (delete-dups (append
+                                     '(:host :login :port :secret)
+                                     search-keys)))
          (items (plstore-find store search-spec))
          (item-names (mapcar #'car items))
          (items (butlast items (- (length items) max)))
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 99d107e..68d07c7 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -2508,7 +2508,7 @@ If PROMPT (the prefix), prompt for a coding system to 
use."
              ctl (and ct (mail-header-parse-content-type ct))
              charset (cond
                       (prompt
-                       (mm-read-coding-system "Charset to decode: "))
+                       (read-coding-system "Charset to decode: "))
                       (ctl
                        (mail-content-type-get ctl 'charset)))
              format (and ctl (mail-content-type-get ctl 'format)))
@@ -2629,7 +2629,7 @@ If READ-CHARSET, ask for a coding system."
              (if (stringp charset)
                  (setq charset (intern (downcase charset)))))))
       (if read-charset
-         (setq charset (mm-read-coding-system "Charset: " charset)))
+         (setq charset (read-coding-system "Charset: " charset)))
       (unless charset
        (setq charset gnus-newsgroup-charset))
       (when (or force
@@ -2657,7 +2657,7 @@ If READ-CHARSET, ask for a coding system."
              (if (stringp charset)
                  (setq charset (intern (downcase charset)))))))
       (if read-charset
-         (setq charset (mm-read-coding-system "Charset: " charset)))
+         (setq charset (read-coding-system "Charset: " charset)))
       (unless charset
        (setq charset gnus-newsgroup-charset))
       (when (or force
@@ -2667,7 +2667,7 @@ If READ-CHARSET, ask for a coding system."
        (save-restriction
          (narrow-to-region (point) (point-max))
          (base64-decode-region (point-min) (point-max))
-         (mm-decode-coding-region
+         (decode-coding-region
           (point-min) (point-max)
           (mm-charset-to-coding-system charset nil t)))))))
 
@@ -2850,7 +2850,7 @@ message header will be added to the bodies of the 
\"text/html\" parts."
 <img[\t\n ]+\\(?:[^\t\n >]+[\t\n ]+\\)*src=\"\\(cid:\\([^\"]+\\)\\)\""
                                           nil t)
                   (unless cid-dir
-                    (setq cid-dir (mm-make-temp-file "cid" t))
+                    (setq cid-dir (make-temp-file "cid" t))
                     (add-to-list 'gnus-article-browse-html-temp-list cid-dir))
                   (setq file nil
                         content nil)
@@ -2863,7 +2863,7 @@ message header will be added to the bodies of the 
\"text/html\" parts."
                     (replace-match cid-file nil nil nil 1))))
               (unless content (setq content (buffer-string))))
             (when (or charset header (not file))
-              (setq tmp-file (mm-make-temp-file
+              (setq tmp-file (make-temp-file
                               ;; Do we need to care for 8.3 filenames?
                               "mm-" nil ".html")))
             ;; Add a meta html tag to specify charset and a header.
@@ -2897,11 +2897,11 @@ message header will be added to the bodies of the 
\"text/html\" parts."
                   ;; charset specified in parts might be different.
                   (if (eq charset 'gnus-decoded)
                       (setq charset 'utf-8
-                            eheader (mm-encode-coding-string (buffer-string)
-                                                             charset)
+                            eheader (encode-coding-string (buffer-string)
+                                                          charset)
                             title (when title
-                                    (mm-encode-coding-string title charset))
-                            body (mm-encode-coding-string content charset))
+                                    (encode-coding-string title charset))
+                            body (encode-coding-string content charset))
                     (setq hcharset (mm-find-mime-charset-region (point-min)
                                                                 (point-max)))
                     (cond ((= (length hcharset) 1)
@@ -2918,30 +2918,30 @@ message header will be added to the bodies of the 
\"text/html\" parts."
                                     (mm-charset-to-coding-system charset
                                                                  nil t))
                               (if (eq coding body)
-                                  (setq eheader (mm-encode-coding-string
+                                  (setq eheader (encode-coding-string
                                                  (buffer-string) coding)
                                         title (when title
-                                                (mm-encode-coding-string
+                                                (encode-coding-string
                                                  title coding))
                                         body content)
                                 (setq charset 'utf-8
-                                      eheader (mm-encode-coding-string
+                                      eheader (encode-coding-string
                                                (buffer-string) charset)
                                       title (when title
-                                              (mm-encode-coding-string
+                                              (encode-coding-string
                                                title charset))
-                                      body (mm-encode-coding-string
-                                            (mm-decode-coding-string
+                                      body (encode-coding-string
+                                            (decode-coding-string
                                              content body)
                                             charset))))
                           (setq charset hcharset
-                                eheader (mm-encode-coding-string
+                                eheader (encode-coding-string
                                          (buffer-string) coding)
                                 title (when title
-                                        (mm-encode-coding-string
+                                        (encode-coding-string
                                          title coding))
                                 body content))
-                      (setq eheader (mm-string-as-unibyte (buffer-string))
+                      (setq eheader (string-as-unibyte (buffer-string))
                             body content)))
                   (erase-buffer)
                   (mm-disable-multibyte)
@@ -2964,8 +2964,8 @@ message header will be added to the bodies of the 
\"text/html\" parts."
              (charset
               (mm-with-unibyte-buffer
                 (insert (if (eq charset 'gnus-decoded)
-                            (mm-encode-coding-string content
-                                                     (setq charset 'utf-8))
+                            (encode-coding-string content
+                                                  (setq charset 'utf-8))
                           content))
                 (if (or (mm-add-meta-html-tag handle charset)
                         (not file))
@@ -5253,7 +5253,7 @@ are decompressed."
        ((numberp arg)
        (setq charset (or (cdr (assq arg
                                     gnus-summary-show-article-charset-alist))
-                         (mm-read-coding-system "Charset: ")))))
+                         (read-coding-system "Charset: ")))))
       (switch-to-buffer (generate-new-buffer filename))
       (if (or coding-system
              (and charset
@@ -5262,7 +5262,7 @@ are decompressed."
                   (not (eq coding-system 'ascii))))
          (progn
            (mm-enable-multibyte)
-           (insert (mm-decode-coding-string contents coding-system))
+           (insert (decode-coding-string contents coding-system))
            (setq buffer-file-coding-system
                  (if (boundp 'last-coding-system-used)
                      (symbol-value 'last-coding-system-used)
@@ -5284,7 +5284,7 @@ are decompressed."
   (gnus-article-check-buffer)
   (let* ((handle (or handle (get-text-property (point) 'gnus-data)))
         (contents (and handle (mm-get-part handle)))
-        (file (mm-make-temp-file (expand-file-name "mm." mm-tmp-directory)))
+        (file (make-temp-file (expand-file-name "mm." mm-tmp-directory)))
         (printer (mailcap-mime-info (mm-handle-media-type handle) "print")))
     (when contents
        (if printer
@@ -5425,7 +5425,7 @@ specified charset."
                           (or (cdr (assq
                                     arg
                                     gnus-summary-show-article-charset-alist))
-                              (mm-read-coding-system "Charset: "))))
+                              (read-coding-system "Charset: "))))
              (if (mm-handle-undisplayer handle)
                  (mm-remove-part handle)))
        (gnus-mime-set-charset-parameters handle charset)
@@ -7060,7 +7060,7 @@ If given a prefix, show the hidden text instead."
             ;; equivalent of string-make-multibyte which amount to decoding
             ;; with locale-coding-system, causing failure of
             ;; subsequent decoding.
-            (insert (mm-string-to-multibyte
+            (insert (string-to-multibyte
                      (with-current-buffer gnus-original-article-buffer
                        (buffer-substring (point-min) (point-max)))))
            'article)
@@ -8280,7 +8280,7 @@ url is put as the `gnus-button-url' overlay property on 
the button."
 
 (defun gnus-button-handle-info-url (url)
   "Fetch an info URL."
-  (setq url (mm-subst-char-in-string ?+ ?\  url))
+  (setq url (subst-char-in-string ?+ ?\  url))
   (cond
    ((string-match "^\\([^:/]+\\)?/\\(.*\\)" url)
     (gnus-info-find-node
@@ -8296,7 +8296,7 @@ url is put as the `gnus-button-url' overlay property on 
the button."
 
 (defun gnus-button-handle-info-url-gnome (url)
   "Fetch GNOME style info URL."
-  (setq url (mm-subst-char-in-string ?_ ?\  url))
+  (setq url (subst-char-in-string ?_ ?\  url))
   (if (string-match "\\([^#]+\\)#?\\(.*\\)" url)
       (gnus-info-find-node
        (concat "("
diff --git a/lisp/gnus/gnus-cache.el b/lisp/gnus/gnus-cache.el
index 83ccc4f..fa320e0 100644
--- a/lisp/gnus/gnus-cache.el
+++ b/lisp/gnus/gnus-cache.el
@@ -458,8 +458,8 @@ system for example was used.")
                        (and (boundp 'default-file-name-coding-system)
                             default-file-name-coding-system))))
        (push (cons group decoded) gnus-cache-decoded-group-names)
-       (push (cons (mm-decode-coding-string
-                    (mm-encode-coding-string decoded coding)
+       (push (cons (decode-coding-string
+                    (encode-coding-string decoded coding)
                     coding)
                    group)
              gnus-cache-unified-group-names)
diff --git a/lisp/gnus/gnus-cus.el b/lisp/gnus/gnus-cus.el
index de66e34..669de2b 100644
--- a/lisp/gnus/gnus-cus.el
+++ b/lisp/gnus/gnus-cus.el
@@ -416,7 +416,7 @@ category."))
       ;; Decode values posting-style holds.
       (dolist (style (cdr (assq 'posting-style values)))
        (when (stringp (cadr style))
-         (setcdr style (list (mm-decode-coding-string (cadr style) 'utf-8)))))
+         (setcdr style (list (decode-coding-string (cadr style) 'utf-8)))))
 
       (setq gnus-custom-params
             (apply 'widget-create 'group
@@ -492,7 +492,7 @@ form, but who cares?"
     ;; Encode values posting-style holds.
     (dolist (style (cdr (assq 'posting-style params)))
       (when (stringp (cadr style))
-       (setcdr style (list (mm-encode-coding-string (cadr style) 'utf-8)))))
+       (setcdr style (list (encode-coding-string (cadr style) 'utf-8)))))
     (if gnus-custom-topic
        (gnus-topic-set-parameters gnus-custom-topic params)
       (gnus-group-edit-group-done 'params gnus-custom-group params)
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el
index eec7b1c..18dd281 100644
--- a/lisp/gnus/gnus-group.el
+++ b/lisp/gnus/gnus-group.el
@@ -1145,7 +1145,7 @@ The following commands are available:
       (goto-char (point-min))
       (setq gnus-group-mark-positions
            (list (cons 'process (and (search-forward
-                                      (mm-string-to-multibyte "\200") nil t)
+                                      (string-to-multibyte "\200") nil t)
                                      (- (point) (point-min) 1))))))))
 
 (defun gnus-mouse-pick-group (e)
@@ -1208,7 +1208,7 @@ The following commands are available:
 (defun gnus-group-name-decode (string charset)
   ;; Fixme: Don't decode in unibyte mode.
   (if (and string charset (featurep 'mule))
-      (mm-decode-coding-string string charset)
+      (decode-coding-string string charset)
     string))
 
 (defun gnus-group-decoded-name (string)
@@ -2216,7 +2216,7 @@ if it is not a list."
                (member group (mapcar 'symbol-name collection))
              (symbol-value (intern-soft group collection)))
       (setq group
-           (mm-encode-coding-string
+           (encode-coding-string
             group (gnus-group-name-charset nil group))))
     (replace-regexp-in-string group "\n" "")))
 
@@ -2378,7 +2378,7 @@ specified by `gnus-gmane-group-download-format'."
   (unless range (setq range 500))
   (when (< range 1)
     (error "Invalid range: %s" range))
-  (let ((tmpfile (mm-make-temp-file
+  (let ((tmpfile (make-temp-file
                  (format "%s.start-%s.range-%s." group start range)))
        (gnus-thread-sort-functions '(gnus-thread-sort-by-number)))
     (with-temp-file tmpfile
@@ -2464,7 +2464,7 @@ the bug number, and browsing the URL must return mbox 
output."
     (setq ids (string-to-number ids)))
   (unless (listp ids)
     (setq ids (list ids)))
-  (let ((tmpfile (mm-make-temp-file "gnus-temp-group-")))
+  (let ((tmpfile (make-temp-file "gnus-temp-group-")))
     (let ((coding-system-for-write 'binary)
          (coding-system-for-read 'binary))
       (with-temp-file tmpfile
@@ -2738,7 +2738,7 @@ server."
   (when (stringp method)
     (setq method (or (gnus-server-to-method method) method)))
   (unless encoded
-    (setq name (mm-encode-coding-string
+    (setq name (encode-coding-string
                name
                (gnus-group-name-charset method name))))
   (let* ((meth (gnus-method-simplify
@@ -2856,7 +2856,7 @@ and NEW-NAME will be prompted for."
                     "Rename group to: "
                     (gnus-group-real-name (gnus-group-decoded-name group)))
           method (gnus-info-method (gnus-get-info group)))
-     (list group (mm-encode-coding-string
+     (list group (encode-coding-string
                  new-name
                  (gnus-group-name-charset
                   method
@@ -3070,9 +3070,9 @@ If called with a prefix argument, ask for the file type."
                       (list 'nndoc-address file)
                       (list 'nndoc-article-type (or type 'guess))))
         (coding (gnus-group-name-charset method name)))
-    (setcar (cdr method) (mm-encode-coding-string file coding))
+    (setcar (cdr method) (encode-coding-string file coding))
     (gnus-group-make-group
-     (mm-encode-coding-string (gnus-group-real-name name) coding)
+     (encode-coding-string (gnus-group-real-name name) coding)
      method nil nil t)))
 
 (defvar nnweb-type-definition)
@@ -3149,8 +3149,8 @@ If there is, use Gnus to create an nnrss group"
               (coding (gnus-group-name-charset '(nnrss "") title)))
          (when coding
            ;; Unify non-ASCII text.
-           (setq title (mm-decode-coding-string
-                        (mm-encode-coding-string title coding)
+           (setq title (decode-coding-string
+                        (encode-coding-string title coding)
                         coding)))
          (gnus-group-make-group title '(nnrss ""))
          (push (list title href desc) nnrss-group-alist)
diff --git a/lisp/gnus/gnus-html.el b/lisp/gnus/gnus-html.el
index f427610..f3b5b96 100644
--- a/lisp/gnus/gnus-html.el
+++ b/lisp/gnus/gnus-html.el
@@ -143,7 +143,7 @@ CHARS is a regexp-like character alternative (e.g., 
\"[)$]\")."
                                      charset nil t))
                       (not (eq charset 'ascii)))
              (insert (prog1
-                         (mm-decode-coding-string (buffer-string) charset)
+                         (decode-coding-string (buffer-string) charset)
                        (erase-buffer)
                        (mm-enable-multibyte))))
            (call-process-region (point-min) (point-max)
diff --git a/lisp/gnus/gnus-icalendar.el b/lisp/gnus/gnus-icalendar.el
index d277c0f..1cf372a 100644
--- a/lisp/gnus/gnus-icalendar.el
+++ b/lisp/gnus/gnus-icalendar.el
@@ -746,8 +746,7 @@ These will be used to retrieve the RSVP information from 
ical events."
        (with-temp-buffer
          (mm-insert-part ,handle)
          (when (string= ,charset "utf-8")
-           (mm-decode-coding-region (point-min) (point-max) 'utf-8))
-
+           (decode-coding-region (point-min) (point-max) 'utf-8))
          ,@body))))
 
 
diff --git a/lisp/gnus/gnus-msg.el b/lisp/gnus/gnus-msg.el
index 527735f..dec0e4e 100644
--- a/lisp/gnus/gnus-msg.el
+++ b/lisp/gnus/gnus-msg.el
@@ -1342,7 +1342,7 @@ For the \"inline\" alternatives, also see the variable
   (gnus-inews-insert-gcc)
   (let ((gcc (mapcar
              (lambda (group)
-               (mm-encode-coding-string
+               (encode-coding-string
                 group
                 (gnus-group-name-charset (gnus-inews-group-method group)
                                          group)))
@@ -1359,7 +1359,7 @@ For the \"inline\" alternatives, also see the variable
             (insert "Gcc: \"" gnus-newsgroup-name "\"\n"))
            ((stringp self)
             (insert "Gcc: "
-                    (mm-encode-coding-string
+                    (encode-coding-string
                      (if (string-match " " self)
                          (concat "\"" self "\"")
                        self)
@@ -1398,7 +1398,7 @@ For the \"inline\" alternatives, also see the variable
        tem)
     (dolist (style styles)
       (when (stringp (cadr style))
-       (setcdr style (list (mm-decode-coding-string (cadr style) 'utf-8)))))
+       (setcdr style (list (decode-coding-string (cadr style) 'utf-8)))))
     (dolist (style (if styles
                       (append gnus-posting-styles (list (cons ".*" styles)))
                     gnus-posting-styles))
@@ -1637,7 +1637,7 @@ this is a reply."
          ;; Copy the article over to some group(s).
          (while (setq group (pop groups))
            (setq method (gnus-inews-group-method group)
-                 group (mm-encode-coding-string
+                 group (encode-coding-string
                         group
                         (gnus-group-name-charset method group)))
            (unless (gnus-check-server method)
@@ -1840,8 +1840,8 @@ this is a reply."
          (when tmp-style
            (dolist (style tmp-style)
              (when (stringp (cadr style))
-               (setcdr style (list (mm-decode-coding-string (cadr style)
-                                                            'utf-8)))))
+               (setcdr style (list (decode-coding-string (cadr style)
+                                                         'utf-8)))))
            (setq styles (append styles (list (cons ".*" tmp-style)))))))
       ;; Go through all styles and look for matches.
       (dolist (style styles)
diff --git a/lisp/gnus/gnus-srvr.el b/lisp/gnus/gnus-srvr.el
index a53cabd..bb807da 100644
--- a/lisp/gnus/gnus-srvr.el
+++ b/lisp/gnus/gnus-srvr.el
@@ -802,7 +802,7 @@ claim them."
              (while (not (eobp))
                (ignore-errors
                  (push (cons
-                        (mm-string-as-unibyte
+                        (string-as-unibyte
                          (buffer-substring
                           (point)
                           (progn
@@ -815,7 +815,7 @@ claim them."
            (while (not (eobp))
              (ignore-errors
                (push (cons
-                      (mm-string-as-unibyte
+                      (string-as-unibyte
                        (if (eq (char-after) ?\")
                            (read cur)
                          (let ((p (point)) (name ""))
@@ -883,7 +883,7 @@ claim them."
                        (if (and (fboundp 'detect-coding-string)
                                 (eq (detect-coding-string name t) 'undecided))
                            name
-                         (mm-decode-coding-string
+                         (decode-coding-string
                           name
                           (inline (gnus-group-name-charset method name)))))))
             (list 'gnus-group name)
diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el
index 825c95c..b081a66 100644
--- a/lisp/gnus/gnus-start.el
+++ b/lisp/gnus/gnus-start.el
@@ -1992,7 +1992,7 @@ backend check whether the group actually exists."
     (while lists
       (setq killed (car lists))
       (while killed
-       (gnus-sethash (mm-string-as-unibyte (car killed)) nil hashtb)
+       (gnus-sethash (string-as-unibyte (car killed)) nil hashtb)
        (setq killed (cdr killed)))
       (setq lists (cdr lists)))))
 
@@ -2455,7 +2455,7 @@ If FORCE is non-nil, the .newsrc file is read."
     (dolist (elem gnus-newsrc-alist)
       ;; Protect against broken .newsrc.el files.
       (when (car elem)
-       (setcar elem (mm-string-as-unibyte (car elem)))))
+       (setcar elem (string-as-unibyte (car elem)))))
     (gnus-make-hashtable-from-newsrc-alist)
     (when (file-newer-than-file-p file ding-file)
       ;; Old format quick file
@@ -3160,7 +3160,7 @@ If FORCE is non-nil, the .newsrc file is read."
                          gnus-default-charset)))
                ;; Fixme: Don't decode in unibyte mode.
                (when (and str charset (featurep 'mule))
-                 (setq str (mm-decode-coding-string str charset)))
+                 (setq str (decode-coding-string str charset)))
                (set group str)))
            (forward-line 1))))
       (gnus-message 5 "Reading descriptions file...done")
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index 683eca1..dfdf8e1 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -4446,9 +4446,9 @@ Returns HEADER if it was entered in the DEPENDENCIES.  
Returns nil otherwise."
 
 (defsubst gnus-remove-odd-characters (string)
   "Translate STRING into something that doesn't contain weird characters."
-  (mm-subst-char-in-string
+  (subst-char-in-string
    ?\r ?\-
-   (mm-subst-char-in-string ?\n ?\- string t) t))
+   (subst-char-in-string ?\n ?\- string t) t))
 
 ;; This function has to be called with point after the article number
 ;; on the beginning of the line.
@@ -5578,15 +5578,15 @@ If SELECT-ARTICLES, only select those articles from 
GROUP."
            (gnus-kill-buffer (current-buffer)))
          (error
           "Couldn't activate group %s: %s"
-          (mm-decode-coding-string group charset)
-          (mm-decode-coding-string (gnus-status-message group) charset))))
+          (decode-coding-string group charset)
+          (decode-coding-string (gnus-status-message group) charset))))
 
     (unless (gnus-request-group group t nil (gnus-get-info group))
       (when (derived-mode-p 'gnus-summary-mode)
        (gnus-kill-buffer (current-buffer)))
       (error "Couldn't request group %s: %s"
-            (mm-decode-coding-string group charset)
-            (mm-decode-coding-string (gnus-status-message group) charset)))
+            (decode-coding-string group charset)
+            (decode-coding-string (gnus-status-message group) charset)))
 
     (when (and gnus-agent
               (gnus-active group))
@@ -9653,7 +9653,7 @@ C-u g', show the raw article."
     (gnus-summary-show-article t)
     (let ((gnus-newsgroup-charset
           (or (cdr (assq arg gnus-summary-show-article-charset-alist))
-              (mm-read-coding-system
+              (read-coding-system
                "View as charset: " ;; actually it is coding system.
                (with-current-buffer gnus-article-buffer
                  (mm-detect-coding-region (point) (point-max))))))
@@ -9948,7 +9948,7 @@ ACTION can be either `move' (the default), `crosspost' or 
`copy'."
            encoded to-newsgroup
            to-method (gnus-server-to-method (gnus-group-method to-newsgroup)))
       (set (intern (format "gnus-current-%s-group" action))
-          (mm-decode-coding-string
+          (decode-coding-string
            to-newsgroup
            (gnus-group-name-charset to-method to-newsgroup))))
     (unless to-method
@@ -9958,7 +9958,7 @@ ACTION can be either `move' (the default), `crosspost' or 
`copy'."
     (setq to-newsgroup
          (or encoded
              (and to-newsgroup
-                  (mm-encode-coding-string
+                  (encode-coding-string
                    to-newsgroup
                    (gnus-group-name-charset to-method to-newsgroup)))))
     ;; Check the method we are to move this article to...
@@ -11135,7 +11135,7 @@ If NO-EXPIRE, auto-expiry will be inhibited."
        (goto-char (+ forward (point)))
        ;; Replace the old mark with the new mark.
         (let ((to-insert
-               (mm-subst-char-in-string
+               (subst-char-in-string
                (char-after) mark
                (buffer-substring (point) (1+ (point))))))
           (delete-region (point) (1+ (point)))
@@ -12279,7 +12279,7 @@ save those articles instead."
          (setq to-newsgroup default))
       (unless to-newsgroup
        (error "No group name entered"))
-      (setq encoded (mm-encode-coding-string
+      (setq encoded (encode-coding-string
                     to-newsgroup
                     (gnus-group-name-charset to-method to-newsgroup)))
       (or (gnus-active encoded)
diff --git a/lisp/gnus/gnus-uu.el b/lisp/gnus/gnus-uu.el
index 1a249e9..6a0c8f9 100644
--- a/lisp/gnus/gnus-uu.el
+++ b/lisp/gnus/gnus-uu.el
@@ -408,7 +408,7 @@ didn't work, and overwrite existing files.  Otherwise, ask 
each time."
                          gnus-uu-default-dir))))
   (gnus-uu-initialize)
   (setq gnus-uu-binhex-article-name
-       (mm-make-temp-file (expand-file-name "binhex" gnus-uu-work-dir)))
+       (make-temp-file (expand-file-name "binhex" gnus-uu-work-dir)))
   (gnus-uu-decode-with-method 'gnus-uu-binhex-article n dir))
 
 (defun gnus-uu-decode-yenc (n dir)
@@ -474,7 +474,7 @@ didn't work, and overwrite existing files.  Otherwise, ask 
each time."
                         gnus-uu-default-dir gnus-uu-default-dir)))
   (gnus-uu-initialize)
   (setq gnus-uu-binhex-article-name
-       (mm-make-temp-file (expand-file-name "binhex" gnus-uu-work-dir)))
+       (make-temp-file (expand-file-name "binhex" gnus-uu-work-dir)))
   (let ((gnus-view-pseudos (or gnus-view-pseudos 'automatic)))
     (gnus-uu-decode-binhex n file)))
 
@@ -486,7 +486,7 @@ didn't work, and overwrite existing files.  Otherwise, ask 
each time."
   (interactive "P")
   (gnus-uu-initialize)
   (let ((gnus-uu-save-in-digest t)
-       (file (mm-make-temp-file (nnheader-concat gnus-uu-work-dir "forward")))
+       (file (make-temp-file (nnheader-concat gnus-uu-work-dir "forward")))
        (message-forward-as-mime message-forward-as-mime)
        (mail-parse-charset gnus-newsgroup-charset)
        (mail-parse-ignored-charsets gnus-newsgroup-ignored-charsets)
@@ -1784,7 +1784,7 @@ Gnus might fail to display all of it.")
                 gnus-uu-tmp-dir)))
 
       (setq gnus-uu-work-dir
-           (mm-make-temp-file (concat gnus-uu-tmp-dir "gnus") 'dir))
+           (make-temp-file (concat gnus-uu-tmp-dir "gnus") 'dir))
       (gnus-set-file-modes gnus-uu-work-dir 448)
       (setq gnus-uu-work-dir (file-name-as-directory gnus-uu-work-dir))
       (push (cons gnus-newsgroup-name gnus-uu-work-dir)
diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el
index fe86749..04496b6 100644
--- a/lisp/gnus/gnus.el
+++ b/lisp/gnus/gnus.el
@@ -3234,8 +3234,7 @@ If ARG, insert string at point."
                         4.99
                       (+ 5 (* 0.02
                               (abs
-                               (- (mm-char-int (aref (downcase alpha) 0))
-                                  (mm-char-int ?t))))
+                               (- (aref (downcase alpha) 0) ?t)))
                          -0.01))
                     minor least)
         (format "%d.%02d%02d" major minor least))))))
diff --git a/lisp/gnus/ietf-drums.el b/lisp/gnus/ietf-drums.el
index 429eead..d833366 100644
--- a/lisp/gnus/ietf-drums.el
+++ b/lisp/gnus/ietf-drums.el
@@ -81,10 +81,10 @@ backslash and doublequote.")
   (let ((i 0)
        b e c out range)
     (while (< i (length token))
-      (setq c (mm-char-int (aref token i)))
+      (setq c (aref token i))
       (incf i)
       (cond
-       ((eq c (mm-char-int ?-))
+       ((eq c ?-)
        (if b
            (setq range t)
          (push c out)))
diff --git a/lisp/gnus/mailcap.el b/lisp/gnus/mailcap.el
index 62d8b9b..7ceb865 100644
--- a/lisp/gnus/mailcap.el
+++ b/lisp/gnus/mailcap.el
@@ -32,13 +32,6 @@
 (eval-when-compile (require 'cl))
 (autoload 'mail-header-parse-content-type "mail-parse")
 
-;; `mm-delete-duplicates' is an alias for `delete-dups' in Emacs 22.
-(defalias 'mailcap-delete-duplicates
-  (if (fboundp 'delete-dups)
-      'delete-dups
-    (autoload 'mm-delete-duplicates "mm-util")
-    'mm-delete-duplicates))
-
 (defgroup mailcap nil
   "Definition of viewers for MIME types."
   :version "21.1"
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index b56c5cd..dec4c37 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -2167,7 +2167,7 @@ contains a valid encoded word.  Decode again? "
          ;; No double encoded subject? => bogus charset.
          (unless cs-coding
            (setq cs-coding
-                 (mm-read-coding-system
+                 (read-coding-system
                   (format-message "\
 Decoded Subject \"%s\"
 contains an encoded word.  The charset `%s' is unknown or invalid.
@@ -4319,7 +4319,7 @@ conformance."
                                 (point) 'no-illegible-text)
                                (point-max))))
               (setq char (char-after)))
-       (when (or (< (mm-char-int char) 128)
+       (when (or (< char 128)
                  (and (mm-multibyte-p)
                       (memq (char-charset char)
                             '(eight-bit-control eight-bit-graphic
@@ -4349,7 +4349,7 @@ conformance."
        (skip-chars-forward mm-7bit-chars)
        (while (not (eobp))
          (when (let ((char (char-after)))
-                 (or (< (mm-char-int char) 128)
+                 (or (< char 128)
                      (and (mm-multibyte-p)
                           ;; FIXME: Wrong for Emacs 23 (unicode) and for
                           ;; things like undecodable utf-8 (in Emacs 21?).
@@ -5346,7 +5346,7 @@ Otherwise, generate and save a value for 
`canlock-password' first."
    ;; Check for control characters.
    (message-check 'control-chars
      (if (re-search-forward
-         (mm-string-to-multibyte "[\000-\007\013\015-\032\034-\037\200-\237]")
+         (string-to-multibyte "[\000-\007\013\015-\032\034-\037\200-\237]")
          nil t)
         (y-or-n-p
          "The article contains control characters.  Really post? ")
@@ -5895,7 +5895,7 @@ subscribed address (and not the additional To and Cc 
header contents)."
         ace)
     (when field
       (dolist (rhs
-              (mm-delete-duplicates
+              (delete-dups
                (mapcar (lambda (rhs) (or (cadr (split-string rhs "@")) ""))
                        (mapcar 'downcase
                                (mapcar
@@ -7427,7 +7427,7 @@ Optional DIGEST will use digest to forward."
   (let ((b (point))
        (contents (with-current-buffer forward-buffer (buffer-string)))
        e)
-    (unless (mm-multibyte-string-p contents)
+    (unless (multibyte-string-p contents)
       (error "Attempt to insert unibyte string from the buffer \"%s\"\
  to the multibyte buffer \"%s\""
             (if (bufferp forward-buffer)
@@ -7490,7 +7490,7 @@ Optional DIGEST will use digest to forward."
   (let ((b (point)) e)
     (if (not message-forward-decoded-p)
        (let ((contents (with-current-buffer forward-buffer (buffer-string))))
-         (unless (mm-multibyte-string-p contents)
+         (unless (multibyte-string-p contents)
            (error "Attempt to insert unibyte string from the buffer \"%s\"\
  to the multibyte buffer \"%s\""
                   (if (bufferp forward-buffer)
diff --git a/lisp/gnus/mm-archive.el b/lisp/gnus/mm-archive.el
index 45dbd90..bac722e 100644
--- a/lisp/gnus/mm-archive.el
+++ b/lisp/gnus/mm-archive.el
@@ -37,7 +37,7 @@
 (defun mm-dissect-archive (handle)
   (let ((decoder (cddr (assoc (car (mm-handle-type handle))
                              mm-archive-decoders)))
-       (dir (mm-make-temp-file
+       (dir (make-temp-file
              (expand-file-name "emm." mm-tmp-directory) 'dir)))
     (set-file-modes dir #o700)
     (unwind-protect
diff --git a/lisp/gnus/mm-bodies.el b/lisp/gnus/mm-bodies.el
index cd57695..e07edd3 100644
--- a/lisp/gnus/mm-bodies.el
+++ b/lisp/gnus/mm-bodies.el
@@ -86,15 +86,15 @@ If no encoding was done, nil is returned."
                    (message-options-get 'mm-body-charset-encoding-alist)
                    (message-options-set
                     'mm-body-charset-encoding-alist
-                    (mm-read-coding-system "Charset used in the article: ")))
+                    (read-coding-system "Charset used in the article: ")))
              ;; The logic in `mml-generate-mime-1' confirms that it's OK
              ;; to return nil here.
              nil)))
     (save-excursion
       (if charset
          (progn
-           (mm-encode-coding-region (point-min) (point-max)
-                                    (mm-charset-to-coding-system charset))
+           (encode-coding-region (point-min) (point-max)
+                                 (mm-charset-to-coding-system charset))
            charset)
        (goto-char (point-min))
        (let ((charsets (mm-find-mime-charset-region (point-min) (point-max)
@@ -110,8 +110,8 @@ If no encoding was done, nil is returned."
           (t
            (prog1
                (setq charset (car charsets))
-             (mm-encode-coding-region (point-min) (point-max)
-                                      (mm-charset-to-coding-system charset))))
+             (encode-coding-region (point-min) (point-max)
+                                   (mm-charset-to-coding-system charset))))
           ))))))
 
 (defun mm-long-lines-p (length)
@@ -258,8 +258,7 @@ decoding.  If it is nil, default to `mail-parse-charset'."
                   (mm-multibyte-p)
                   (or (not (eq coding-system 'ascii))
                       (setq coding-system mail-parse-charset)))
-         (mm-decode-coding-region (point-min) (point-max)
-                                  coding-system))
+         (decode-coding-region (point-min) (point-max) coding-system))
        (setq buffer-file-coding-system
              (if (boundp 'last-coding-system-used)
                  (symbol-value 'last-coding-system-used)
@@ -290,7 +289,7 @@ decoding.  If it is nil, default to `mail-parse-charset'."
                  (mm-multibyte-p)
                  (or (not (eq coding-system 'ascii))
                      (setq coding-system mail-parse-charset)))
-        (mm-decode-coding-string string coding-system))))
+        (decode-coding-string string coding-system))))
    string))
 
 (provide 'mm-bodies)
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el
index d1240c0..d690014 100644
--- a/lisp/gnus/mm-decode.el
+++ b/lisp/gnus/mm-decode.el
@@ -773,7 +773,7 @@ MIME-Version header before proceeding."
     (with-current-buffer
           (generate-new-buffer " *mm*")
       ;; Preserve the data's unibyteness (for url-insert-file-contents).
-      (mm-set-buffer-multibyte mb)
+      (set-buffer-multibyte mb)
       (insert-buffer-substring obuf beg)
       (current-buffer))))
 
@@ -888,7 +888,7 @@ external if displayed external."
                  (select-window win)))
              (switch-to-buffer (generate-new-buffer " *mm*")))
            (buffer-disable-undo)
-           (mm-set-buffer-file-coding-system mm-binary-coding-system)
+           (set-buffer-file-coding-system mm-binary-coding-system)
            (insert-buffer-substring cur)
            (goto-char (point-min))
            (when method
@@ -1307,7 +1307,7 @@ are ignored."
                     (with-current-buffer (mm-handle-buffer handle)
                       (buffer-string)))
                    ((mm-multibyte-p)
-                    (mm-string-to-multibyte (mm-get-part handle no-cache)))
+                    (string-to-multibyte (mm-get-part handle no-cache)))
                    (t
                     (mm-get-part handle no-cache)))))
     (save-restriction
@@ -1813,7 +1813,7 @@ If RECURSIVE, search recursively."
                                    (mm-charset-to-coding-system charset
                                                                 nil t))
                              (not (eq charset 'ascii)))
-                        (mm-decode-coding-string (buffer-string) charset)
+                        (decode-coding-string (buffer-string) charset)
                       (mm-string-as-multibyte (buffer-string)))
                   (erase-buffer)
                   (mm-enable-multibyte)))
diff --git a/lisp/gnus/mm-url.el b/lisp/gnus/mm-url.el
index e5c43fd..25954b9 100644
--- a/lisp/gnus/mm-url.el
+++ b/lisp/gnus/mm-url.el
@@ -364,7 +364,7 @@ If FOLLOW-REFRESH is non-nil, redirect refresh url in META."
                              (string-to-number (substring entity 1)))))
                       (setq c (or (cdr (assq c mm-extra-numeric-entities))
                                   (mm-ucs-to-char c)))
-                      (if (mm-char-or-char-int-p c) c ?#))
+                      (if (char-valid-p c) c ?#))
                   (or (cdr (assq (intern entity)
                                  mm-url-html-entities))
                       ?#))))
@@ -399,10 +399,10 @@ spaces.  Die Die Die."
          ((= char ?  ) "+")
          ((memq char mm-url-unreserved-chars) (char-to-string char))
          (t (upcase (format "%%%02x" char)))))
-       (mm-encode-coding-string chunk
-                               (if (fboundp 'find-coding-systems-string)
-                                   (car (find-coding-systems-string chunk))
-                                 buffer-file-coding-system))
+       (encode-coding-string chunk
+                            (if (fboundp 'find-coding-systems-string)
+                                (car (find-coding-systems-string chunk))
+                              buffer-file-coding-system))
        "")))
 
 (defun mm-url-encode-www-form-urlencoded (pairs)
diff --git a/lisp/gnus/mm-util.el b/lisp/gnus/mm-util.el
index 9deca23..97b28bc 100644
--- a/lisp/gnus/mm-util.el
+++ b/lisp/gnus/mm-util.el
@@ -44,50 +44,7 @@
        (if (fboundp (car elem))
           (defalias nfunc (car elem))
         (defalias nfunc (cdr elem)))))
-   `(;; `coding-system-list' is not available in XEmacs 21.4 built
-     ;; without the `file-coding' feature.
-     (coding-system-list . ignore)
-     ;; `char-int' is an XEmacs function, not available in Emacs.
-     (char-int . identity)
-     ;; `coding-system-equal' is an Emacs function, not available in XEmacs.
-     (coding-system-equal . equal)
-     ;; `set-buffer-file-coding-system' is not available in XEmacs 21.4
-     ;; built without the `file-coding' feature.
-     (set-buffer-file-coding-system . ignore)
-     ;; `read-charset' is an Emacs function, not available in XEmacs.
-     (read-charset
-      . ,(lambda (prompt)
-          "Return a charset."
-          (intern
-           (gnus-completing-read
-            prompt
-            (mapcar (lambda (e) (symbol-name (car e)))
-                    mm-mime-mule-charset-alist)
-            t))))
-     ;; `subst-char-in-string' is not available in XEmacs 21.4.
-     (subst-char-in-string
-      . ,(lambda (from to string &optional inplace)
-          ;; stolen (and renamed) from nnheader.el
-          "Replace characters in STRING from FROM to TO.
-         Unless optional argument INPLACE is non-nil, return a new string."
-          (let ((string (if inplace string (copy-sequence string)))
-                (len (length string))
-                (idx 0))
-            ;; Replace all occurrences of FROM with TO.
-            (while (< idx len)
-              (when (= (aref string idx) from)
-                (aset string idx to))
-              (setq idx (1+ idx)))
-            string)))
-     ;; `replace-in-string' is an XEmacs function, not available in Emacs.
-     (replace-in-string
-      . ,(lambda (string regexp rep &optional literal)
-          "See `replace-regexp-in-string', only the order of args differs."
-          (replace-regexp-in-string regexp rep string nil literal)))
-     ;; `string-as-unibyte' is an Emacs function, not available in XEmacs.
-     (string-as-unibyte . identity)
-     ;; `string-make-unibyte' is an Emacs function, not available in XEmacs.
-     (string-make-unibyte . identity)
+   `(
      ;; string-as-multibyte often doesn't really do what you think it does.
      ;; Example:
      ;;    (aref (string-as-multibyte "\201") 0) -> 129 (aka ?\201)
@@ -107,189 +64,22 @@
      ;; (string-to-multibyte s)   ~= (decode-coding-string s 'binary)
      ;; (string-make-multibyte s) ~= (decode-coding-string s 
locale-coding-system)
      ;; `string-as-multibyte' is an Emacs function, not available in XEmacs.
-     (string-as-multibyte . identity)
-     ;; `multibyte-string-p' is an Emacs function, not available in XEmacs.
-     (multibyte-string-p . ignore)
-     ;; `insert-byte' is available only in Emacs 23.1 or greater.
-     (insert-byte . insert-char)
-     ;; `multibyte-char-to-unibyte' is an Emacs function, not available
-     ;; in XEmacs.
-     (multibyte-char-to-unibyte . identity)
-     ;; `set-buffer-multibyte' is an Emacs function, not available in XEmacs.
-     (set-buffer-multibyte . ignore)
-     ;; `substring-no-properties' is available only in Emacs 22.1 or greater.
-     (substring-no-properties
-      . ,(lambda (string &optional from to)
-          "Return a substring of STRING, without text properties.
-It starts at index FROM and ending before TO.
-TO may be nil or omitted; then the substring runs to the end of STRING.
-If FROM is nil or omitted, the substring starts at the beginning of STRING.
-If FROM or TO is negative, it counts from the end.
-
-With one argument, just copy STRING without its properties."
-          (setq string (substring string (or from 0) to))
-          (set-text-properties 0 (length string) nil string)
-          string))
-     ;; `line-number-at-pos' is available only in Emacs 22.1 or greater
-     ;; and XEmacs 21.5.
-     (line-number-at-pos
-      . ,(lambda (&optional pos)
-          "Return (narrowed) buffer line number at position POS.
-If POS is nil, use current buffer location.
-Counting starts at (point-min), so the value refers
-to the contents of the accessible portion of the buffer."
-          (let ((opoint (or pos (point))) start)
-            (save-excursion
-              (goto-char (point-min))
-              (setq start (point))
-              (goto-char opoint)
-              (forward-line 0)
-              (1+ (count-lines start (point))))))))))
-
-;; `special-display-p' is an Emacs function, not available in XEmacs.
-(defalias 'mm-special-display-p
-  (if (featurep 'emacs)
-      'special-display-p
-    (lambda (buffer-name)
-      "Returns non-nil if a buffer named BUFFER-NAME gets a special frame."
-      (and special-display-function
-          (or (and (member buffer-name special-display-buffer-names) t)
-              (cdr (assoc buffer-name special-display-buffer-names))
-              (catch 'return
-                (dolist (elem special-display-regexps)
-                  (and (stringp elem)
-                       (string-match elem buffer-name)
-                       (throw 'return t))
-                  (and (consp elem)
-                       (stringp (car elem))
-                       (string-match (car elem) buffer-name)
-                       (throw 'return (cdr elem))))))))))
-
-;; `decode-coding-string', `encode-coding-string', `decode-coding-region'
-;; and `encode-coding-region' are available in Emacs and XEmacs built with
-;; the `file-coding' feature, but the XEmacs versions treat nil, that is
-;; given as the `coding-system' argument, as the `binary' coding system.
-(eval-and-compile
-  (if (featurep 'xemacs)
-      (if (featurep 'file-coding)
-         (progn
-           (defun mm-decode-coding-string (str coding-system)
-             (if coding-system
-                 (decode-coding-string str coding-system)
-               str))
-           (defun mm-encode-coding-string (str coding-system)
-             (if coding-system
-                 (encode-coding-string str coding-system)
-               str))
-           (defun mm-decode-coding-region (start end coding-system)
-             (if coding-system
-                 (decode-coding-region start end coding-system)))
-           (defun mm-encode-coding-region (start end coding-system)
-             (if coding-system
-                 (encode-coding-region start end coding-system))))
-       (defun mm-decode-coding-string (str coding-system) str)
-       (defun mm-encode-coding-string (str coding-system) str)
-       (defalias 'mm-decode-coding-region 'ignore)
-       (defalias 'mm-encode-coding-region 'ignore))
-    (defalias 'mm-decode-coding-string 'decode-coding-string)
-    (defalias 'mm-encode-coding-string 'encode-coding-string)
-    (defalias 'mm-decode-coding-region 'decode-coding-region)
-    (defalias 'mm-encode-coding-region 'encode-coding-region)))
-
-;; `string-to-multibyte' is available only in Emacs.
-(defalias 'mm-string-to-multibyte (if (featurep 'xemacs)
-                                     'identity
-                                   'string-to-multibyte))
-
-;; `char-or-char-int-p' is an XEmacs function, not available in Emacs.
-(eval-and-compile
-  (defalias 'mm-char-or-char-int-p
-    (cond
-     ((fboundp 'char-or-char-int-p) 'char-or-char-int-p)
-     ((fboundp 'char-valid-p) 'char-valid-p)
-     (t 'identity))))
+     (string-as-multibyte . identity))))
 
-;; `ucs-to-char' is a function that Mule-UCS provides.
-(eval-and-compile
-  (if (featurep 'xemacs)
-      (cond ((and (fboundp 'unicode-to-char) ;; XEmacs 21.5.
-                 (subrp (symbol-function 'unicode-to-char)))
-            (if (featurep 'mule)
-                (defalias 'mm-ucs-to-char 'unicode-to-char)
-              (defun mm-ucs-to-char (codepoint)
-                "Convert Unicode codepoint to character."
-                (or (unicode-to-char codepoint) ?#))))
-           ((featurep 'mule)
-            (defun mm-ucs-to-char (codepoint)
-              "Convert Unicode codepoint to character."
-              (if (fboundp 'ucs-to-char) ;; Mule-UCS is loaded.
-                  (progn
-                    (defalias 'mm-ucs-to-char
-                      (lambda (codepoint)
-                        "Convert Unicode codepoint to character."
-                        (condition-case nil
-                            (or (ucs-to-char codepoint) ?#)
-                          (error ?#))))
-                    (mm-ucs-to-char codepoint))
-                (condition-case nil
-                    (or (int-to-char codepoint) ?#)
-                  (error ?#)))))
-           (t
-            (defun mm-ucs-to-char (codepoint)
-              "Convert Unicode codepoint to character."
-              (condition-case nil
-                  (or (int-to-char codepoint) ?#)
-                (error ?#)))))
-    (if (let ((char (make-char 'japanese-jisx0208 36 34)))
-         (eq char (decode-char 'ucs char)))
-       ;; Emacs 23.
-       (defalias 'mm-ucs-to-char 'identity)
-      (defun mm-ucs-to-char (codepoint)
-       "Convert Unicode codepoint to character."
-       (or (decode-char 'ucs codepoint) ?#)))))
-
-;; Fixme:  This seems always to be used to read a MIME charset, so it
-;; should be re-named and fixed (in Emacs) to offer completion only on
-;; proper charset names (base coding systems which have a
-;; mime-charset defined).  XEmacs doesn't believe in mime-charset;
-;; test with
-;;   `(or (coding-system-get 'iso-8859-1 'mime-charset)
-;;        (coding-system-get 'iso-8859-1 :mime-charset))'
-;; Actually, there should be an `mm-coding-system-mime-charset'.
-(eval-and-compile
-  (defalias 'mm-read-coding-system
-    (if (featurep 'emacs) 'read-coding-system
-      (cond
-       ((fboundp 'read-coding-system)
-       (if (and (featurep 'xemacs)
-                (<= (string-to-number emacs-version) 21.1))
-           (lambda (prompt &optional default-coding-system)
-             (read-coding-system prompt))
-         'read-coding-system))
-       (t (lambda (prompt &optional default-coding-system)
-           "Prompt the user for a coding system."
-           (gnus-completing-read
-            prompt (mapcar (lambda (s) (symbol-name (car s)))
-                           mm-mime-mule-charset-alist))))))))
+(defun mm-ucs-to-char (codepoint)
+  "Convert Unicode codepoint to character."
+  (or (decode-char 'ucs codepoint) ?#))
 
 (defvar mm-coding-system-list nil)
 (defun mm-get-coding-system-list ()
   "Get the coding system list."
   (or mm-coding-system-list
-      (setq mm-coding-system-list (mm-coding-system-list))))
+      (setq mm-coding-system-list (coding-system-list))))
 
 (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.
-If CS is available, return CS itself in Emacs, and return a coding
-system object in XEmacs."
-  (if (fboundp 'find-coding-system)
-      (and cs (find-coding-system cs))
-    (if (fboundp 'coding-system-p)
-       (when (coding-system-p cs)
-         cs)
-      ;; no-MULE XEmacs:
-      (car (memq cs (mm-get-coding-system-list))))))
+  "Return CS if CS is a coding system."
+  (and (coding-system-p cs)
+       cs))
 
 (defvar mm-charset-synonym-alist
   `(
@@ -478,14 +268,13 @@ Unless LIST is given, `mm-codepage-ibm-list' is used."
 
 ;; Note: this has to be defined before `mm-charset-to-coding-system'.
 (defcustom mm-charset-eval-alist
-  (if (featurep 'xemacs)
-      nil ;; I don't know what would be useful for XEmacs.
-    '(;; Emacs 22 provides autoloads for 1250-1258
-      ;; (i.e. `mm-codepage-setup' does nothing).
-      (windows-1250 . (mm-codepage-setup 1250 t))
-      (windows-1251 . (mm-codepage-setup 1251 t))
-      (windows-1253 . (mm-codepage-setup 1253 t))
-      (windows-1257 . (mm-codepage-setup 1257 t))))
+  '(
+    ;; Emacs 22 provides autoloads for 1250-1258
+    ;; (i.e. `mm-codepage-setup' does nothing).
+    (windows-1250 . (mm-codepage-setup 1250 t))
+    (windows-1251 . (mm-codepage-setup 1251 t))
+    (windows-1253 . (mm-codepage-setup 1253 t))
+    (windows-1257 . (mm-codepage-setup 1257 t)))
   "An alist of (CHARSET . FORM) pairs.
 If an article is encoded in an unknown CHARSET, FORM is
 evaluated.  This allows the loading of additional libraries
@@ -761,43 +550,21 @@ superset of iso-8859-1."
                            (coding-system-get 'mule-utf-8 'safe-charsets))))))
   "Alist of MIME-charset/MULE-charsets.")
 
-(defun mm-enrich-utf-8-by-mule-ucs ()
-  "Make the `utf-8' MIME charset usable by the Mule-UCS package.
-This function will run when the `un-define' module is loaded under
-XEmacs, and fill the `utf-8' entry in `mm-mime-mule-charset-alist'
-with Mule charsets.  It is completely useless for Emacs."
-  (when (boundp 'unicode-basic-translation-charset-order-list)
-    (condition-case nil
-       (let ((val (delq
-                   'ascii
-                   (copy-sequence
-                    (symbol-value
-                     'unicode-basic-translation-charset-order-list))))
-             (elem (assq 'utf-8 mm-mime-mule-charset-alist)))
-         (if elem
-             (setcdr elem val)
-           (setq mm-mime-mule-charset-alist
-                 (nconc mm-mime-mule-charset-alist
-                        (list (cons 'utf-8 val))))))
-      (error))))
-
 ;; Correct by construction, but should be unnecessary for Emacs:
-(if (featurep 'xemacs)
-    (eval-after-load "un-define" '(mm-enrich-utf-8-by-mule-ucs))
-  (when (and (fboundp 'coding-system-list)
-            (fboundp 'sort-coding-systems))
-    (let ((css (sort-coding-systems (coding-system-list 'base-only)))
-         cs mime mule alist)
-      (while css
-       (setq cs (pop css)
-             mime (or (coding-system-get cs :mime-charset); Emacs 23 (unicode)
-                      (coding-system-get cs 'mime-charset)))
-       (when (and mime
-                  (not (eq t (setq mule
-                                   (coding-system-get cs 'safe-charsets))))
-                  (not (assq mime alist)))
-         (push (cons mime (delq 'ascii mule)) alist)))
-      (setq mm-mime-mule-charset-alist (nreverse alist)))))
+(when (and (fboundp 'coding-system-list)
+          (fboundp 'sort-coding-systems))
+  (let ((css (sort-coding-systems (coding-system-list 'base-only)))
+       cs mime mule alist)
+    (while css
+      (setq cs (pop css)
+           mime (or (coding-system-get cs :mime-charset) ; Emacs 23 (unicode)
+                    (coding-system-get cs 'mime-charset)))
+      (when (and mime
+                (not (eq t (setq mule
+                                 (coding-system-get cs 'safe-charsets))))
+                (not (assq mime alist)))
+       (push (cons mime (delq 'ascii mule)) alist)))
+    (setq mm-mime-mule-charset-alist (nreverse alist))))
 
 (defvar mm-hack-charsets '(iso-8859-15 iso-2022-jp-2)
   "A list of special charsets.
@@ -903,21 +670,15 @@ like \"&#128;\" to the euro sign, mainly in html 
messages.")
        (pop alist))
       out)))
 
-(eval-and-compile
-  (if (featurep 'xemacs)
-      (defalias 'mm-enable-multibyte 'ignore)
-    (defun mm-enable-multibyte ()
-      "Set the multibyte flag of the current buffer.
+(defun mm-enable-multibyte ()
+  "Set the multibyte flag of the current buffer.
 Only do this if the default value of `enable-multibyte-characters' is
-non-nil.  This is a no-op in XEmacs."
-      (set-buffer-multibyte 'to)))
+non-nil."
+  (set-buffer-multibyte 'to))
 
-  (if (featurep 'xemacs)
-      (defalias 'mm-disable-multibyte 'ignore)
-    (defun mm-disable-multibyte ()
-      "Unset the multibyte flag of in the current buffer.
-This is a no-op in XEmacs."
-      (set-buffer-multibyte nil))))
+(defun mm-disable-multibyte ()
+  "Unset the multibyte flag of in the current buffer."
+  (set-buffer-multibyte nil))
 
 (defun mm-preferred-coding-system (charset)
   ;; A typo in some Emacs versions.
@@ -951,7 +712,7 @@ If POS is nil, it defaults to the current point.
 If POS is out of range, the value is nil.
 If the charset is `composition', return the actual one."
   (let ((char (char-after pos)) charset)
-    (if (< (mm-char-int char) 128)
+    (if (< char 128)
        (setq charset 'ascii)
       ;; charset-after is fake in some Emacsen.
       (setq charset (and (fboundp 'char-charset) (char-charset char)))
@@ -981,40 +742,11 @@ If the charset is `composition', return the actual one."
     ;; This is for XEmacs.
     (mm-mule-charset-to-mime-charset charset)))
 
-;; `delete-dups' is not available in XEmacs 21.4.
-(if (fboundp 'delete-dups)
-    (defalias 'mm-delete-duplicates 'delete-dups)
-  (defun mm-delete-duplicates (list)
-    "Destructively remove `equal' duplicates from LIST.
-Store the result in LIST and return it.  LIST must be a proper list.
-Of several `equal' occurrences of an element in LIST, the first
-one is kept.
-
-This is a compatibility function for Emacsen without `delete-dups'."
-    ;; Code from `subr.el' in Emacs 22:
-    (let ((tail list))
-      (while tail
-       (setcdr tail (delete (car tail) (cdr tail)))
-       (setq tail (cdr tail))))
-    list))
-
 ;; Fixme:  This is used in places when it should be testing the
-;; default multibyteness.  See mm-default-multibyte-p.
-(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-default-multibyte-p ()
-  "Return non-nil if the session is multibyte.
-This affects whether coding conversion should be attempted generally."
-  (if (featurep 'mule)
-      (if (boundp 'enable-multibyte-characters)
-         (default-value 'enable-multibyte-characters)
-       t)))
+;; default multibyteness.
+(defun mm-multibyte-p ()
+  "Non-nil if multibyte is enabled in the current buffer."
+  enable-multibyte-characters)
 
 (defun mm-iso-8859-x-to-15-region (&optional b e)
   (if (fboundp 'char-charset)
@@ -1050,85 +782,6 @@ This affects whether coding conversion should be 
attempted generally."
                (length (memq (coding-system-base b) priorities)))
           t))))
 
-(declare-function latin-unity-massage-name "ext:latin-unity")
-(declare-function latin-unity-maybe-remap "ext:latin-unity")
-(declare-function latin-unity-representations-feasible-region 
"ext:latin-unity")
-(declare-function latin-unity-representations-present-region "ext:latin-unity")
-
-(defvar latin-unity-coding-systems)
-(defvar latin-unity-ucs-list)
-
-(defun mm-xemacs-find-mime-charset-1 (begin end)
-  "Determine which MIME charset to use to send region as message.
-This uses the XEmacs-specific latin-unity package to better handle the
-case where identical characters from diverse ISO-8859-? character sets
-can be encoded using a single one of the corresponding coding systems.
-
-It treats `mm-coding-system-priorities' as the list of preferred
-coding systems; a useful example setting for this list in Western
-Europe would be (iso-8859-1 iso-8859-15 utf-8), which would default
-to the very standard Latin 1 coding system, and only move to coding
-systems that are less supported as is necessary to encode the
-characters that exist in the buffer.
-
-Latin Unity doesn't know about those non-ASCII Roman characters that
-are available in various East Asian character sets.  As such, its
-behavior if you have a JIS 0212 LATIN SMALL LETTER A WITH ACUTE in a
-buffer and it can otherwise be encoded as Latin 1, won't be ideal.
-But this is very much a corner case, so don't worry about it."
-  (let ((systems mm-coding-system-priorities) csets psets curset)
-
-    ;; Load the Latin Unity library, if available.
-    (when (and (not (featurep 'latin-unity)) (locate-library "latin-unity"))
-      (require 'latin-unity))
-
-    ;; Now, can we use it?
-    (if (featurep 'latin-unity)
-       (progn
-         (setq csets (latin-unity-representations-feasible-region begin end)
-               psets (latin-unity-representations-present-region begin end))
-
-         (catch 'done
-
-           ;; Pass back the first coding system in the preferred list
-           ;; that can encode the whole region.
-           (dolist (curset systems)
-             (setq curset (latin-unity-massage-name 'buffer-default curset))
-
-             ;; If the coding system is a universal coding system, then
-             ;; it can certainly encode all the characters in the region.
-             (if (memq curset latin-unity-ucs-list)
-                 (throw 'done (list curset)))
-
-             ;; If a coding system isn't universal, and isn't in
-             ;; the list that latin unity knows about, we can't
-             ;; decide whether to use it here. Leave that until later
-             ;; in `mm-find-mime-charset-region' function, whence we
-             ;; have been called.
-             (unless (memq curset latin-unity-coding-systems)
-               (throw 'done nil))
-
-             ;; Right, we know about this coding system, and it may
-             ;; conceivably be able to encode all the characters in
-             ;; the region.
-             (if (latin-unity-maybe-remap begin end curset csets psets t)
-                 (throw 'done (list curset))))
-
-           ;; Can't encode using anything from the
-           ;; `mm-coding-system-priorities' list.
-           ;; Leave `mm-find-mime-charset' to do most of the work.
-           nil))
-
-      ;; Right, latin unity isn't available; let `mm-find-charset-region'
-      ;; take its default action, which equally applies to GNU Emacs.
-      nil)))
-
-(defmacro mm-xemacs-find-mime-charset (begin end)
-  (when (featurep 'xemacs)
-    `(and (featurep 'mule) (mm-xemacs-find-mime-charset-1 ,begin ,end))))
-
-(declare-function mm-delete-duplicates "mm-util" (list))
-
 (defun mm-find-mime-charset-region (b e &optional hack-charsets)
   "Return the MIME charsets needed to encode the region between B and E.
 nil means ASCII, a single-element list represents an appropriate MIME
@@ -1170,16 +823,9 @@ charset, and a longer list means no appropriate charset."
                         (setq systems nil
                               charsets (list cs))))))
               charsets))
-       ;; If we're XEmacs, and some coding system is appropriate,
-       ;; mm-xemacs-find-mime-charset will return an appropriate list.
-       ;; Otherwise, we'll get nil, and the next setq will get invoked.
-       (setq charsets (mm-xemacs-find-mime-charset b e))
-
-       ;; Fixme: won't work for unibyte Emacs 23:
-
        ;; We're not multibyte, or a single coding system won't cover it.
        (setq charsets
-             (mm-delete-duplicates
+             (delete-dups
               (mapcar 'mm-mime-charset
                       (delq 'ascii
                             (mm-find-charset-region b e))))))
@@ -1192,17 +838,6 @@ charset, and a longer list means no appropriate charset."
     (if (and (memq 'iso-2022-jp-2 charsets)
             (memq 'iso-2022-jp-2 hack-charsets))
        (setq charsets (delq 'iso-2022-jp charsets)))
-    ;; Attempt to reduce the number of charsets if utf-8 is available.
-    (if (and (featurep 'xemacs)
-            (> (length charsets) 1)
-            (mm-coding-system-p 'utf-8))
-       (let ((mm-coding-system-priorities
-              (cons 'utf-8 mm-coding-system-priorities)))
-         (setq charsets
-               (mm-delete-duplicates
-                (mapcar 'mm-mime-charset
-                        (delq 'ascii
-                              (mm-find-charset-region b e)))))))
     charsets))
 
 (defmacro mm-with-unibyte-buffer (&rest forms)
@@ -1225,7 +860,6 @@ Use multibyte mode for this."
 
 (defmacro mm-with-unibyte-current-buffer (&rest forms)
   "Evaluate FORMS with current buffer temporarily made unibyte.
-Equivalent to `progn' in XEmacs.
 
 Note: We recommend not using this macro any more; there should be
 better ways to do a similar thing.  The previous version of this macro
@@ -1233,16 +867,14 @@ bound the default value of `enable-multibyte-characters' 
to nil while
 evaluating FORMS but it is no longer done.  So, some programs assuming
 it if any may malfunction."
   (declare (obsolete nil "25.1") (indent 0) (debug t))
-  (if (featurep 'xemacs)
-      `(progn ,@forms)
-    (let ((multibyte (make-symbol "multibyte")))
-      `(let ((,multibyte enable-multibyte-characters))
+  (let ((multibyte (make-symbol "multibyte")))
+    `(let ((,multibyte enable-multibyte-characters))
+       (when ,multibyte
+        (set-buffer-multibyte nil))
+       (prog1
+          (progn ,@forms)
         (when ,multibyte
-          (set-buffer-multibyte nil))
-        (prog1
-            (progn ,@forms)
-          (when ,multibyte
-            (set-buffer-multibyte t)))))))
+          (set-buffer-multibyte t))))))
 
 (defun mm-find-charset-region (b e)
   "Return a list of Emacs charsets in the region B to E."
@@ -1257,7 +889,7 @@ it if any may malfunction."
               css)
        (setq css (delq cs css)))))
    (t
-    ;; We are in a unibyte buffer or XEmacs non-mule, so we futz around a bit.
+    ;; We are in a unibyte buffer, so we futz around a bit.
     (save-excursion
       (save-restriction
        (narrow-to-region b e)
@@ -1363,64 +995,8 @@ If INHIBIT is non-nil, inhibit 
`mm-inhibit-file-name-handlers'."
           inhibit-file-name-handlers)))
     (write-region start end filename append visit lockname)))
 
-;; It is not a MIME function, but some MIME functions use it.
-(if (and (fboundp 'make-temp-file)
-        (ignore-errors
-          (let ((def (if (fboundp 'compiled-function-arglist) ;; XEmacs
-                         (eval (list 'compiled-function-arglist
-                                     (symbol-function 'make-temp-file)))
-                       (require 'help-fns)
-                       (help-function-arglist 'make-temp-file t))))
-            (and (>= (length def) 4)
-                 (eq (nth 3 def) 'suffix)))))
-    (defalias 'mm-make-temp-file 'make-temp-file)
-  ;; Stolen (and modified for XEmacs) from Emacs 22.
-  (defun mm-make-temp-file (prefix &optional dir-flag suffix)
-    "Create a temporary file.
-The returned file name (created by appending some random characters at the end
-of PREFIX, and expanding against `temporary-file-directory' if necessary),
-is guaranteed to point to a newly created empty file.
-You can then use `write-region' to write new data into the file.
-
-If DIR-FLAG is non-nil, create a new empty directory instead of a file.
-
-If SUFFIX is non-nil, add that at the end of the file name."
-    (let ((umask (default-file-modes))
-         file)
-      (unwind-protect
-         (progn
-           ;; Create temp files with strict access rights.  It's easy to
-           ;; loosen them later, whereas it's impossible to close the
-           ;; time-window of loose permissions otherwise.
-           (set-default-file-modes 448)
-           (while (condition-case err
-                      (progn
-                        (setq file
-                              (make-temp-name
-                               (expand-file-name
-                                prefix
-                                (if (fboundp 'temp-directory)
-                                    ;; XEmacs
-                                    (temp-directory)
-                                  temporary-file-directory))))
-                        (if suffix
-                            (setq file (concat file suffix)))
-                        (if dir-flag
-                            (make-directory file)
-                          (write-region "" nil file nil 'silent nil 'excl))
-                        nil)
-                    (file-already-exists t)
-                    ;; The XEmacs version of `make-directory' issues
-                    ;; `file-error'.
-                    (file-error (or (and (featurep 'xemacs)
-                                         (file-exists-p file))
-                                    (signal (car err) (cdr err)))))
-             ;; the file was somehow created by someone else between
-             ;; `make-temp-name' and `write-region', let's try again.
-             nil)
-           file)
-       ;; Reset the umask.
-       (set-default-file-modes umask)))))
+(defalias 'mm-make-temp-file 'make-temp-file)
+(define-obsolete-function-alias 'mm-make-temp-file 'make-temp-file "25.2")
 
 (defvar mm-image-load-path-cache nil)
 
@@ -1469,26 +1045,11 @@ If SUFFIX is non-nil, add that at the end of the file 
name."
     (let ((cs (mm-detect-coding-region start end)))
       cs)))
 
-(eval-when-compile
-  (unless (fboundp 'coding-system-to-mime-charset)
-    (defalias 'coding-system-to-mime-charset 'ignore)))
-
 (defun mm-coding-system-to-mime-charset (coding-system)
-  "Return the MIME charset corresponding to CODING-SYSTEM.
-To make this function work with XEmacs, the APEL package is required."
+  "Return the MIME charset corresponding to CODING-SYSTEM."
   (when coding-system
-    (or (and (fboundp 'coding-system-get)
-            (or (coding-system-get coding-system :mime-charset)
-                (coding-system-get coding-system 'mime-charset)))
-       (and (featurep 'xemacs)
-            (or (and (fboundp 'coding-system-to-mime-charset)
-                     (not (eq (symbol-function 'coding-system-to-mime-charset)
-                              'ignore)))
-                (and (condition-case nil
-                         (require 'mcharset)
-                       (error nil))
-                     (fboundp 'coding-system-to-mime-charset)))
-            (coding-system-to-mime-charset coding-system)))))
+    (or (coding-system-get coding-system :mime-charset)
+       (coding-system-get coding-system 'mime-charset))))
 
 (defvar jka-compr-acceptable-retval-list)
 (declare-function jka-compr-make-temp-name "jka-compr" (&optional local))
@@ -1587,66 +1148,16 @@ gzip, bzip2, etc. are allowed."
        (setq filename (file-name-sans-extension filename)))
       (goto-char (point-min))
       (unwind-protect
-         (cond
-          ((boundp 'set-auto-coding-function) ;; Emacs
-           (if filename
-               (or (funcall (symbol-value 'set-auto-coding-function)
-                            filename (- (point-max) (point-min)))
-                   (car (find-operation-coding-system 'insert-file-contents
-                                                      filename)))
-             (let (auto-coding-alist)
-               (condition-case nil
-                   (funcall (symbol-value 'set-auto-coding-function)
-                            nil (- (point-max) (point-min)))
-                 (error nil)))))
-          ((and (featurep 'xemacs) (featurep 'file-coding)) ;; XEmacs
-           (let ((case-fold-search t)
-                 (end (point-at-eol))
-                 codesys start)
-             (or
-              (and (re-search-forward "-\\*-+[\t ]*" end t)
-                   (progn
-                     (setq start (match-end 0))
-                     (re-search-forward "[\t ]*-+\\*-" end t))
-                   (progn
-                     (setq end (match-beginning 0))
-                     (goto-char start)
-                     (or (looking-at "coding:[\t ]*\\([^\t ;]+\\)")
-                         (re-search-forward
-                          "[\t ;]+coding:[\t ]*\\([^\t ;]+\\)"
-                          end t)))
-                   (find-coding-system (setq codesys
-                                             (intern (match-string 1))))
-                   codesys)
-              (and (re-search-forward "^[\t ]*;+[\t ]*Local[\t ]+Variables:"
-                                      nil t)
-                   (progn
-                     (setq start (match-end 0))
-                     (re-search-forward "^[\t ]*;+[\t ]*End:" nil t))
-                   (progn
-                     (setq end (match-beginning 0))
-                     (goto-char start)
-                     (re-search-forward
-                      "^[\t ]*;+[\t ]*coding:[\t ]*\\([^\t\n\r ]+\\)"
-                      end t))
-                   (find-coding-system (setq codesys
-                                             (intern (match-string 1))))
-                   codesys)
-              (and (progn
-                     (goto-char (point-min))
-                     (setq case-fold-search nil)
-                     (re-search-forward "^;;;coding system: "
-                                        ;;(+ (point-min) 3000) t))
-                                        nil t))
-                   (looking-at "[^\t\n\r ]+")
-                   (find-coding-system
-                    (setq codesys (intern (match-string 0))))
-                   codesys)
-              (and filename
-                   (setq codesys
-                         (find-file-coding-system-for-read-from-filename
-                          filename))
-                   (coding-system-name (coding-system-base codesys)))))))
+         (if filename
+             (or (funcall (symbol-value 'set-auto-coding-function)
+                          filename (- (point-max) (point-min)))
+                 (car (find-operation-coding-system 'insert-file-contents
+                                                    filename)))
+           (let (auto-coding-alist)
+             (condition-case nil
+                 (funcall (symbol-value 'set-auto-coding-function)
+                          nil (- (point-max) (point-min)))
+               (error nil))))
        (when decomp
          (kill-buffer (current-buffer)))))))
 
diff --git a/lisp/gnus/mm-uu.el b/lisp/gnus/mm-uu.el
index a5b06b2..2fa856c 100644
--- a/lisp/gnus/mm-uu.el
+++ b/lisp/gnus/mm-uu.el
@@ -587,11 +587,11 @@ apply the face `mm-uu-extract'."
                     (not (eq charset 'ascii)))
                ;; Assume that buffer's multibyteness is turned off.
                ;; See `mml2015-pgg-clear-decrypt'.
-               (insert (mm-decode-coding-string (prog1
-                                                    (buffer-string)
-                                                  (erase-buffer)
-                                                  (mm-enable-multibyte))
-                                                charset))
+               (insert (decode-coding-string (prog1
+                                                 (buffer-string)
+                                               (erase-buffer)
+                                               (mm-enable-multibyte))
+                                             charset))
              (mm-enable-multibyte))
            (list (mm-make-handle buf mm-uu-text-plain-type)))
        (list (mm-make-handle buf '("application/pgp-encrypted")))))))
diff --git a/lisp/gnus/mm-view.el b/lisp/gnus/mm-view.el
index ed16313..d8da137 100644
--- a/lisp/gnus/mm-view.el
+++ b/lisp/gnus/mm-view.el
@@ -230,7 +230,7 @@
        ((condition-case nil
             (let ((coding-system-for-write 'iso-2022-jp)
                   (coding-system-for-read 'iso-2022-jp)
-                  (str (mm-decode-coding-string "\
+                  (str (decode-coding-string "\
 \e$B#D#o#e#s!!#w#3#m!!#s#u#p#p#o#r#t!!#m#1#7#n!)\e(B" 'iso-2022-jp)))
               (mm-with-multibyte-buffer
                 (insert str)
@@ -282,7 +282,7 @@
     (delete-region (match-beginning 0) (match-end 0))))
 
 (defun mm-inline-wash-with-file (post-func cmd &rest args)
-  (let ((file (mm-make-temp-file
+  (let ((file (make-temp-file
               (expand-file-name "mm" mm-tmp-directory))))
     (let ((coding-system-for-write 'binary))
       (write-region (point-min) (point-max) file nil 'silent))
@@ -496,7 +496,7 @@ If MODE is not set, try to find mode automatically."
                     (with-current-buffer (mm-handle-buffer handle)
                       (buffer-string)))
                    (coding-system
-                    (mm-decode-coding-string text coding-system))
+                    (decode-coding-string text coding-system))
                    (charset
                     (mm-decode-string text charset))
                    (t
diff --git a/lisp/gnus/mml-sec.el b/lisp/gnus/mml-sec.el
index 3ac3da0..5bfed9f 100644
--- a/lisp/gnus/mml-sec.el
+++ b/lisp/gnus/mml-sec.el
@@ -947,8 +947,9 @@ If no one is selected, symmetric encryption will be 
performed.  "
              (if (eq 'OpenPGP protocol)
                  (epg-sign-string context (buffer-string) mode)
                (epg-sign-string context
-                                (mm-replace-in-string (buffer-string)
-                                                      "\n" "\r\n") t))
+                                (replace-regexp-in-string (buffer-string)
+                                                          "\n" "\r\n")
+                                t))
              mml-secure-secret-key-id-list nil)
       (error
        (mml-secure-clear-secret-key-id-list)
diff --git a/lisp/gnus/mml-smime.el b/lisp/gnus/mml-smime.el
index 407963f..02be62e 100644
--- a/lisp/gnus/mml-smime.el
+++ b/lisp/gnus/mml-smime.el
@@ -425,7 +425,7 @@ Content-Disposition: attachment; filename=smime.p7m
        (mm-set-handle-multipart-parameter
         mm-security-handle 'gnus-info "Corrupted")
        (throw 'error handle))
-      (setq part (mm-replace-in-string part "\n" "\r\n")
+      (setq part (replace-regexp-in-string part "\n" "\r\n")
            context (epg-make-context 'CMS))
       (condition-case error
          (setq plain (epg-verify-string context (mm-get-part signature) part))
diff --git a/lisp/gnus/mml.el b/lisp/gnus/mml.el
index ac84fbf..c4cb763 100644
--- a/lisp/gnus/mml.el
+++ b/lisp/gnus/mml.el
@@ -643,7 +643,7 @@ be \"related\" or \"alternate\"."
            (mm-with-unibyte-buffer
              (cond
               ((cdr (assq 'buffer cont))
-               (insert (mm-string-as-unibyte
+               (insert (string-as-unibyte
                         (with-current-buffer (cdr (assq 'buffer cont))
                           (buffer-string)))))
               ((and filename
@@ -658,7 +658,7 @@ be \"related\" or \"alternate\"."
                (let ((contents (cdr (assq 'contents cont))))
                  (if (if (featurep 'xemacs)
                          (string-match "[^\000-\377]" contents)
-                       (mm-multibyte-string-p contents))
+                       (multibyte-string-p contents))
                      (progn
                        (mm-enable-multibyte)
                        (insert contents)
@@ -1377,7 +1377,7 @@ body) or \"attachment\" (separate from the body)."
                          'type type
                          ;; icicles redefines read-file-name and returns a
                          ;; string w/ text properties :-/
-                         'filename (mm-substring-no-properties file)
+                         'filename (substring-no-properties file)
                          'disposition (or disposition "attachment")
                          'description description)
     ;; When using Mail mode, make sure it does the mime encoding
@@ -1606,7 +1606,7 @@ or the `pop-to-buffer' function."
       ;; FIXME: Buffer is in article mode, but most tool bar commands won't
       ;; work.  Maybe only keep the following icons: search, print, quit
       (goto-char (point-min))))
-  (if (and (not (mm-special-display-p (buffer-name mml-preview-buffer)))
+  (if (and (not (special-display-p (buffer-name mml-preview-buffer)))
           (boundp 'gnus-buffer-configuration)
           (assq 'mml-preview gnus-buffer-configuration))
       (let ((gnus-message-buffer (current-buffer)))
diff --git a/lisp/gnus/mml2015.el b/lisp/gnus/mml2015.el
index 0125ddb..60fdded 100644
--- a/lisp/gnus/mml2015.el
+++ b/lisp/gnus/mml2015.el
@@ -619,7 +619,7 @@ If set, it overrides the setting of 
`mml2015-sign-with-sender'."
            (insert "\r"))
          (forward-line)
          (end-of-line))
-       (with-temp-file (setq signature-file (mm-make-temp-file "pgg"))
+       (with-temp-file (setq signature-file (make-temp-file "pgg"))
          (mm-insert-part signature))
        (if (condition-case err
                (prog1
@@ -660,7 +660,7 @@ If set, it overrides the setting of 
`mml2015-sign-with-sender'."
     (if (condition-case err
            (prog1
                (mm-with-unibyte-buffer
-                 (insert (mm-encode-coding-string text coding-system))
+                 (insert (encode-coding-string text coding-system))
                  (pgg-verify-region (point-min) (point-max) nil t))
              (goto-char (point-min))
              (while (search-forward "\r\n" nil t)
@@ -783,7 +783,7 @@ If set, it overrides the setting of 
`mml2015-sign-with-sender'."
 (defun mml2015-epg-key-image (key-id)
   "Return the image of a key, if any"
   (with-temp-buffer
-    (mm-set-buffer-multibyte nil)
+    (set-buffer-multibyte nil)
     (let* ((coding-system-for-write 'binary)
            (coding-system-for-read 'binary)
            (data (shell-command-to-string
@@ -923,7 +923,7 @@ If set, it overrides the setting of 
`mml2015-sign-with-sender'."
        (mm-set-handle-multipart-parameter
         mm-security-handle 'gnus-info "Corrupted")
        (throw 'error handle))
-      (setq part (mm-replace-in-string part "\n" "\r\n")
+      (setq part (replace-regexp-in-string part "\n" "\r\n")
            signature (mm-get-part signature)
            context (epg-make-context))
       (condition-case error
@@ -946,8 +946,8 @@ If set, it overrides the setting of 
`mml2015-sign-with-sender'."
 (defun mml2015-epg-clear-verify ()
   (let ((inhibit-redisplay t)
        (context (epg-make-context))
-       (signature (mm-encode-coding-string (buffer-string)
-                                           coding-system-for-write))
+       (signature (encode-coding-string (buffer-string)
+                                        coding-system-for-write))
        plain)
     (condition-case error
        (setq plain (epg-verify-string context signature))
@@ -966,7 +966,7 @@ If set, it overrides the setting of 
`mml2015-sign-with-sender'."
           (mml2015-epg-verify-result-to-string
            (epg-context-result-for context 'verify)))
          (delete-region (point-min) (point-max))
-         (insert (mm-decode-coding-string plain coding-system-for-read)))
+         (insert (decode-coding-string plain coding-system-for-read)))
       (mml2015-extract-cleartext-signature))))
 
 (defun mml2015-epg-sign (cont)
diff --git a/lisp/gnus/nndoc.el b/lisp/gnus/nndoc.el
index f8fefeb..09260cf 100644
--- a/lisp/gnus/nndoc.el
+++ b/lisp/gnus/nndoc.el
@@ -761,7 +761,7 @@ from the document.")
   (looking-at "JMF"))
 
 (defun nndoc-oe-dbx-type-p ()
-  (looking-at (mm-string-to-multibyte "\317\255\022\376")))
+  (looking-at (string-to-multibyte "\317\255\022\376")))
 
 (defun nndoc-read-little-endian ()
   (+ (prog1 (char-after) (forward-char 1))
diff --git a/lisp/gnus/nneething.el b/lisp/gnus/nneething.el
index e60a492..28561c0 100644
--- a/lisp/gnus/nneething.el
+++ b/lisp/gnus/nneething.el
@@ -284,7 +284,7 @@ included.")
 (defun nneething-encode-file-name (file &optional coding-system)
   "Encode the name of the FILE in CODING-SYSTEM."
   (let ((pos 0) buf)
-    (setq file (mm-encode-coding-string
+    (setq file (encode-coding-string
                file (or coding-system nnmail-pathname-coding-system)))
     (while (string-match "[^-0-9a-zA-Z_:/.]" file pos)
       (setq buf (cons (format "%%%02x" (aref file (match-beginning 0)))
@@ -300,7 +300,7 @@ included.")
       (setq buf (cons (string (string-to-number (match-string 1 file) 16))
                      (cons (substring file pos (match-beginning 0)) buf))
            pos (match-end 0)))
-    (mm-decode-coding-string
+    (decode-coding-string
      (apply (function concat)
            (nreverse (cons (substring file pos) buf)))
      (or coding-system nnmail-pathname-coding-system))))
diff --git a/lisp/gnus/nnfolder.el b/lisp/gnus/nnfolder.el
index ee60e3e..ff02055 100644
--- a/lisp/gnus/nnfolder.el
+++ b/lisp/gnus/nnfolder.el
@@ -1061,7 +1061,7 @@ This command does not work if you use short group names."
 (defun nnfolder-group-pathname (group)
   "Make file name for GROUP."
   (setq group
-       (mm-encode-coding-string group nnmail-pathname-coding-system))
+       (encode-coding-string group nnmail-pathname-coding-system))
   (let ((dir (file-name-as-directory (expand-file-name nnfolder-directory))))
     ;; If this file exists, we use it directly.
     (if (or nnmail-use-long-file-names
diff --git a/lisp/gnus/nnheader.el b/lisp/gnus/nnheader.el
index cd43016..c8c95f0 100644
--- a/lisp/gnus/nnheader.el
+++ b/lisp/gnus/nnheader.el
@@ -621,8 +621,8 @@ the line could be found."
                        (< beg nnheader-max-head-length))))
        ;; Finally decode the contents.
        (when (mm-coding-system-p nnheader-file-coding-system)
-         (mm-decode-coding-region start (point-max)
-                                  nnheader-file-coding-system))))
+         (decode-coding-region start (point-max)
+                               nnheader-file-coding-system))))
     t))
 
 (defun nnheader-article-p ()
@@ -842,7 +842,7 @@ without formatting."
     t))
 
 (defsubst nnheader-replace-chars-in-string (string from to)
-  (mm-subst-char-in-string from to string))
+  (subst-char-in-string from to string))
 
 (defun nnheader-replace-duplicate-chars-in-string (string from to)
   "Replace characters in STRING from FROM to TO."
@@ -898,7 +898,7 @@ without formatting."
       (if (file-directory-p (concat dir group))
          (expand-file-name group dir)
        ;; If not, we translate dots into slashes.
-       (expand-file-name (mm-encode-coding-string
+       (expand-file-name (encode-coding-string
                           (nnheader-replace-chars-in-string group ?. ?/)
                           nnheader-pathname-coding-system)
                          dir))))
@@ -1102,7 +1102,7 @@ See `find-file-noselect' for the arguments."
       `(insert-buffer-substring ,buffer ,start ,end)
     `(if enable-multibyte-characters
         (insert (with-current-buffer ,buffer
-                  (mm-string-to-multibyte
+                  (string-to-multibyte
                    ,(if (or start end)
                         `(buffer-substring (or ,start (point-min))
                                            (or ,end (point-max)))
diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el
index 130658c..7ad7b7e 100644
--- a/lisp/gnus/nnimap.el
+++ b/lisp/gnus/nnimap.el
@@ -234,7 +234,7 @@ textual parts.")
          (delete-region (+ (match-beginning 0) 2) (point))
          (setq string (buffer-substring (point) (+ (point) size)))
          (delete-region (point) (+ (point) size))
-         (insert (format "%S" (mm-subst-char-in-string ?\n ?\s string))))
+         (insert (format "%S" (subst-char-in-string ?\n ?\s string))))
        (beginning-of-line)
        (setq article
              (and (re-search-forward "UID \\([0-9]+\\)" (line-end-position)
diff --git a/lisp/gnus/nnir.el b/lisp/gnus/nnir.el
index 783d1b9..09fd7b3 100644
--- a/lisp/gnus/nnir.el
+++ b/lisp/gnus/nnir.el
@@ -1689,7 +1689,7 @@ actually)."
             `(("query" . ,search)
               ("HITSPERPAGE" . "999")))))
          (unless (featurep 'xemacs) (set-buffer-multibyte t))
-         (mm-decode-coding-region (point-min) (point-max) 'utf-8)
+         (decode-coding-region (point-min) (point-max) 'utf-8)
          (goto-char (point-min))
          (forward-line 1)
          (while (not (eobp))
@@ -1705,7 +1705,7 @@ actually)."
                      (string-to-number (match-string 2 xref)) xscore)
                     artlist)))))
            (forward-line 1)))
-       (apply 'vector (nreverse (mm-delete-duplicates artlist)))))
+       (apply 'vector (nreverse (delete-dups artlist)))))
 
 ;;; Util Code:
 
@@ -1814,18 +1814,19 @@ article came from is also searched."
        (if (eq (car method) 'nntp)
            (while (not (eobp))
              (ignore-errors
-               (push (mm-string-as-unibyte
+               (push (string-as-unibyte
                       (gnus-group-full-name
                        (buffer-substring
                         (point)
                         (progn
                           (skip-chars-forward "^ \t")
-                          (point))) method))
+                          (point)))
+                       method))
                      groups))
              (forward-line))
          (while (not (eobp))
            (ignore-errors
-             (push (mm-string-as-unibyte
+             (push (string-as-unibyte
                     (if (eq (char-after) ?\")
                         (gnus-group-full-name (read cur) method)
                       (let ((p (point)) (name ""))
diff --git a/lisp/gnus/nnmail.el b/lisp/gnus/nnmail.el
index 3d4178d..625b417 100644
--- a/lisp/gnus/nnmail.el
+++ b/lisp/gnus/nnmail.el
@@ -697,7 +697,7 @@ nn*-request-list should have been called before calling 
this function."
              (setq group (symbol-name group)))
            (if (and (numberp (setq max (read buffer)))
                     (numberp (setq min (read buffer))))
-               (push (list (mm-string-as-unibyte group) (cons min max))
+               (push (list (string-as-unibyte group) (cons min max))
                      group-assoc)))
        (error nil))
       (widen)
@@ -1173,7 +1173,7 @@ FUNC will be called with the group name to determine the 
article number."
                        5 "Error in `nnmail-split-methods'; using `bogus' mail 
group: %S" error-info)
                       (sit-for 1)
                       '("bogus")))))
-             (setq split (mm-delete-duplicates split))
+             (setq split (delete-dups split))
              ;; The article may be "cross-posted" to `junk'.  What
              ;; to do?  Just remove the `junk' spec.  Don't really
              ;; see anything else to do...
@@ -1281,7 +1281,7 @@ Return the number of characters in the body."
       (insert (if (mm-multibyte-p)
                  (mm-string-as-multibyte
                   (format " %s:%d" (caar group-alist) (cdar group-alist)))
-               (mm-string-as-unibyte
+               (string-as-unibyte
                 (format " %s:%d" (caar group-alist) (cdar group-alist)))))
       (setq group-alist (cdr group-alist)))
     (insert "\n")))
diff --git a/lisp/gnus/nnmh.el b/lisp/gnus/nnmh.el
index c60e845..51048bb 100644
--- a/lisp/gnus/nnmh.el
+++ b/lisp/gnus/nnmh.el
@@ -242,8 +242,8 @@ as unread by Gnus.")
              (file-truename (file-name-as-directory
                              (expand-file-name nnmh-toplev))))
             dir)
-           (mm-string-to-multibyte ;Why?  Isn't it multibyte already?
-            (mm-encode-coding-string
+           (string-to-multibyte ;Why?  Isn't it multibyte already?
+            (encode-coding-string
              (nnheader-replace-chars-in-string
               (substring dir (match-end 0))
               ?/ ?.)
diff --git a/lisp/gnus/nnml.el b/lisp/gnus/nnml.el
index 28dcd9a..5b471e8 100644
--- a/lisp/gnus/nnml.el
+++ b/lisp/gnus/nnml.el
@@ -128,13 +128,13 @@ non-nil.")
   "Return a decoded group name of GROUP on SERVER-OR-METHOD."
   (if nnmail-group-names-not-encoded-p
       group
-    (mm-decode-coding-string
+    (decode-coding-string
      group
      (nnml-group-name-charset group server-or-method))))
 
 (defun nnml-encoded-group-name (group &optional server-or-method)
   "Return an encoded group name of GROUP on SERVER-OR-METHOD."
-  (mm-encode-coding-string
+  (encode-coding-string
    group
    (nnml-group-name-charset group server-or-method)))
 
diff --git a/lisp/gnus/nnrss.el b/lisp/gnus/nnrss.el
index 857c58a..57c3af0 100644
--- a/lisp/gnus/nnrss.el
+++ b/lisp/gnus/nnrss.el
@@ -115,7 +115,7 @@ for decoding when the cdr that the data specify is not 
available.")
 
 (defun nnrss-decode-group-name (group)
   (if (and group (mm-coding-system-p 'utf-8))
-      (setq group (mm-decode-coding-string group 'utf-8))
+      (setq group (decode-coding-string group 'utf-8))
     group))
 
 (deffoo nnrss-retrieve-headers (articles &optional group server fetch-old)
@@ -412,7 +412,7 @@ otherwise return nil."
       ;; Decode text according to the encoding attribute.
       (when (setq cs (nnrss-get-encoding))
        (insert (prog1
-                   (mm-decode-coding-string (buffer-string) cs)
+                   (decode-coding-string (buffer-string) cs)
                  (erase-buffer)
                  (mm-enable-multibyte))))
       (goto-char (point-min))
@@ -758,7 +758,7 @@ Read the file and attempt to subscribe to each Feed in the 
file."
 Export subscriptions to a buffer in OPML Format."
   (interactive)
   (with-current-buffer (get-buffer-create "*OPML Export*")
-    (mm-set-buffer-file-coding-system 'utf-8)
+    (set-buffer-file-coding-system 'utf-8)
     (insert "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
            "<!-- OPML generated by Emacs Gnus' nnrss.el -->\n"
            "<opml version=\"1.1\">\n"
diff --git a/lisp/gnus/nntp.el b/lisp/gnus/nntp.el
index f56b045..d339cb2 100644
--- a/lisp/gnus/nntp.el
+++ b/lisp/gnus/nntp.el
@@ -350,7 +350,7 @@ retried once before actually displaying the error report."
        (with-current-buffer ,buffer
         (erase-buffer)
         (insert (if enable-multibyte-characters
-                    (mm-string-to-multibyte string)
+                    (string-to-multibyte string)
                   string))
         (goto-char (point-min))
         nil))))
diff --git a/lisp/gnus/nnweb.el b/lisp/gnus/nnweb.el
index 925f65f..347a91d 100644
--- a/lisp/gnus/nnweb.el
+++ b/lisp/gnus/nnweb.el
@@ -514,7 +514,7 @@ Valid types include `google', `dejanews', and `gmane'.")
        ))))
   (setq buffer-file-name nil)
   (unless (featurep 'xemacs) (set-buffer-multibyte t))
-  (mm-decode-coding-region (point-min) (point-max) 'utf-8)
+  (decode-coding-region (point-min) (point-max) 'utf-8)
   t)
 
 (defun nnweb-gmane-identity (url)
diff --git a/lisp/gnus/qp.el b/lisp/gnus/qp.el
index d179cbb..71e838a 100644
--- a/lisp/gnus/qp.el
+++ b/lisp/gnus/qp.el
@@ -59,7 +59,7 @@ them into characters should be done separately."
        ;; which already contains non-ASCII characters which would
        ;; then get doubly-decoded below.
        (if coding-system
-           (mm-encode-coding-region (point-min) (point-max) coding-system))
+           (encode-coding-region (point-min) (point-max) coding-system))
        (goto-char (point-min))
        (while (and (skip-chars-forward "^=")
                    (not (eobp)))
@@ -87,7 +87,7 @@ them into characters should be done separately."
                 (message "Malformed quoted-printable text")
                 (forward-char)))))
       (if coding-system
-         (mm-decode-coding-region (point-min) (point-max) coding-system)))))
+         (decode-coding-region (point-min) (point-max) coding-system)))))
 
 (defun quoted-printable-decode-string (string &optional coding-system)
   "Decode the quoted-printable encoded STRING and return the result.
@@ -116,7 +116,7 @@ encode lines starting with \"From\"."
     (setq class "\010-\012\014\040-\074\076-\177"))
   (save-excursion
     (goto-char from)
-    (if (re-search-forward (mm-string-to-multibyte "[^\x0-\x7f\x80-\xff]")
+    (if (re-search-forward (string-to-multibyte "[^\x0-\x7f\x80-\xff]")
                           to t)
        (error "Multibyte character in QP encoding region"))
     (save-restriction
@@ -127,8 +127,7 @@ encode lines starting with \"From\"."
                  (not (eobp)))
        (insert
         (prog1
-            ;; To unibyte in case of Emacs 23 (unicode) eight-bit.
-            (format "=%02X" (mm-multibyte-char-to-unibyte (char-after)))
+            (format "=%02X" (char-after))
           (delete-char 1))))
       ;; Encode white space at the end of lines.
       (goto-char (point-min))
@@ -167,7 +166,7 @@ encode lines starting with \"From\"."
 (defun quoted-printable-encode-string (string)
   "Encode the STRING as quoted-printable and return the result."
   (with-temp-buffer
-    (if (mm-multibyte-string-p string)
+    (if (multibyte-string-p string)
        (mm-enable-multibyte)
       (mm-disable-multibyte))
     (insert string)
diff --git a/lisp/gnus/rfc1843.el b/lisp/gnus/rfc1843.el
index 1dbd11d..81646b4 100644
--- a/lisp/gnus/rfc1843.el
+++ b/lisp/gnus/rfc1843.el
@@ -95,7 +95,7 @@ ftp://ftp.math.psu.edu/pub/simpson/chinese/hzp/hzp.doc";
                         (match-beginning 1)
                         (match-end 1)))
              (setq firstc (aref str 0))
-             (insert (mm-decode-coding-string
+             (insert (decode-coding-string
                       (rfc1843-decode
                        (prog1
                            (substring str 1)
diff --git a/lisp/gnus/rfc2047.el b/lisp/gnus/rfc2047.el
index 6647d10..be491e9 100644
--- a/lisp/gnus/rfc2047.el
+++ b/lisp/gnus/rfc2047.el
@@ -267,7 +267,7 @@ Should be called narrowed to the head of the message."
                             (mm-coding-system-p
                              (car message-posting-charset)))
                        ;; 8 bit must be decoded.
-                       (mm-encode-coding-region
+                       (encode-coding-region
                         (point-min) (point-max)
                         (mm-charset-to-coding-system
                          (car message-posting-charset))))
@@ -294,8 +294,8 @@ Should be called narrowed to the head of the message."
                         (if (boundp 'enable-multibyte-characters)
                             (default-value 'enable-multibyte-characters))
                         mail-parse-charset)
-                   (mm-encode-coding-region (point) (point-max)
-                                            mail-parse-charset)))
+                   (encode-coding-region (point) (point-max)
+                                         mail-parse-charset)))
               ;; We get this when CC'ing messages to newsgroups with
               ;; 8-bit names.  The group name mail copy just got
               ;; unconditionally encoded.  Previously, it would ask
@@ -321,7 +321,7 @@ Should be called narrowed to the head of the message."
                             (if (boundp 'enable-multibyte-characters)
                                 (default-value 'enable-multibyte-characters)))
                        (featurep 'file-coding))
-                   (mm-encode-coding-region (point) (point-max) method)))
+                   (encode-coding-region (point) (point-max) method)))
               ;; Hm.
               (t)))
            (goto-char (point-max))))))))
@@ -556,7 +556,7 @@ Dynamically bind `rfc2047-encoding-type' to change that."
             (if (or debug-on-quit debug-on-error)
                 (signal (car err) (cdr err))
               (error "Invalid data for rfc2047 encoding: %s"
-                     (mm-replace-in-string orig-text "[ \t\n]+" " "))))))))
+                     (replace-regexp-in-string orig-text "[ \t\n]+" " "))))))))
     (unless dont-fold
       (rfc2047-fold-region b (point)))
     (goto-char (point-max))))
@@ -592,7 +592,7 @@ should not change this value.")
        ((not rfc2047-encode-max-chars)
         (concat start
                 (funcall encoder (if cs
-                                     (mm-encode-coding-string string cs)
+                                     (encode-coding-string string cs)
                                    string))
                 "?="))
        ((>= column rfc2047-encode-max-chars)
@@ -616,7 +616,7 @@ should not change this value.")
             (setq next (concat start
                                (funcall encoder
                                         (if cs
-                                            (mm-encode-coding-string
+                                            (encode-coding-string
                                              (substring string 0 (1+ index))
                                              cs)
                                           (substring string 0 (1+ index))))
@@ -700,7 +700,7 @@ Point moves to the end of the region."
               (setq crest (buffer-substring-no-properties (point) b)))
             (setq eword (rfc2047-encode-1
                          (- b (point-at-bol))
-                         (mm-replace-in-string
+                         (replace-regexp-in-string
                           (buffer-substring-no-properties b e)
                           "\n\\([ \t]?\\)" "\\1")
                          cs
@@ -947,7 +947,7 @@ ENCODED-WORD)."
                                      (rfc2047-pad-base64 (nth 2 word)))))
                         ((char-equal ?Q (nth 1 word))
                          (setq text (quoted-printable-decode-string
-                                     (mm-subst-char-in-string
+                                     (subst-char-in-string
                                       ?_ ?  (nth 2 word) t)))))
                 (error
                  (message "%s" (error-message-string code))
@@ -963,7 +963,7 @@ ENCODED-WORD)."
       (setq words (concat
                   (or (and (setq cs (caar rest))
                            (condition-case code
-                               (mm-decode-coding-string (cdar rest) cs)
+                               (decode-coding-string (cdar rest) cs)
                              (error
                               (message "%s" (error-message-string code))
                               nil)))
@@ -1087,13 +1087,13 @@ other than `\"' and `\\' in quoted strings."
                     mail-parse-charset
                     (not (eq mail-parse-charset 'us-ascii))
                     (not (eq mail-parse-charset 'gnus-decoded)))
-           (mm-decode-coding-region b e mail-parse-charset))
+           (decode-coding-region b e mail-parse-charset))
          (setq b (point)))
        (when (and (mm-multibyte-p)
                   mail-parse-charset
                   (not (eq mail-parse-charset 'us-ascii))
                   (not (eq mail-parse-charset 'gnus-decoded)))
-         (mm-decode-coding-region b (point-max) mail-parse-charset))))))
+         (decode-coding-region b (point-max) mail-parse-charset))))))
 
 (defun rfc2047-decode-address-region (start end)
   "Decode MIME-encoded words in region between START and END.
@@ -1123,7 +1123,7 @@ other than `\"' and `\\' in quoted strings."
       (when address-mime
        (setq string
              (with-temp-buffer
-               (when (mm-multibyte-string-p string)
+               (when (multibyte-string-p string)
                  (mm-enable-multibyte))
                (insert string)
                (rfc2047-strip-backslashes-in-quoted-strings)
@@ -1146,8 +1146,8 @@ other than `\"' and `\\' in quoted strings."
                   ;; string is purely ASCII
                   (eq (detect-coding-string string t) 'undecided))
               string
-            (mm-decode-coding-string string mail-parse-charset))
-        (mm-string-to-multibyte string)))) ;; )
+            (decode-coding-string string mail-parse-charset))
+        (string-to-multibyte string)))) ;; )
 
 (defun rfc2047-decode-address-string (string)
   "Decode MIME-encoded STRING and return the result.
diff --git a/lisp/gnus/rfc2231.el b/lisp/gnus/rfc2231.el
index 34c8ecd..f5f0c81 100644
--- a/lisp/gnus/rfc2231.el
+++ b/lisp/gnus/rfc2231.el
@@ -63,12 +63,13 @@ must never cause a Lisp error."
          (let (mod)
            (when (and (string-match "\\\\\"" string)
                       (not (string-match "\\`\"\\|[^\\]\"" string)))
-             (setq string (mm-replace-in-string string "\\\\\"" "\"")
+             (setq string (replace-regexp-in-string string "\\\\\"" "\"")
                    mod t))
            (when (and (string-match "\\\\(" string)
                       (string-match "\\\\)" string)
                       (not (string-match "\\`(\\|[^\\][()]" string)))
-             (setq string (mm-replace-in-string string "\\\\\\([()]\\)" "\\1")
+             (setq string (replace-regexp-in-string string
+                                                    "\\\\\\([()]\\)" "\\1")
                    mod t))
            (or (and mod
                     (ignore-errors
@@ -230,7 +231,7 @@ These look like:
       ;; Decode using the charset, if any.
       (if (memq coding-system '(nil ascii))
          (buffer-string)
-       (mm-decode-coding-string (buffer-string) coding-system)))))
+       (decode-coding-string (buffer-string) coding-system)))))
 
 (defun rfc2231-encode-string (param value)
   "Return and PARAM=VALUE string encoded according to RFC2231.
diff --git a/lisp/gnus/spam-report.el b/lisp/gnus/spam-report.el
index 722186e..eb7d862 100644
--- a/lisp/gnus/spam-report.el
+++ b/lisp/gnus/spam-report.el
@@ -297,8 +297,7 @@ symbol `ask', query before flushing the queue file."
                (re-search-forward
                 "http://\\([^/]+\\)\\(/.*\\) *$" (point-at-eol) t))
       (let ((spam-report-gmane-wait
-            (zerop (% (mm-line-number-at-pos)
-                      spam-report-gmane-max-requests))))
+            (zerop (% (line-number-at-pos) spam-report-gmane-max-requests))))
        (gnus-message 6 "Reporting %s%s..."
                      (match-string 1) (match-string 2))
        (funcall spam-report-url-ping-function
diff --git a/lisp/gnus/utf7.el b/lisp/gnus/utf7.el
index 9b7191b..2168b7c 100644
--- a/lisp/gnus/utf7.el
+++ b/lisp/gnus/utf7.el
@@ -185,7 +185,7 @@ Use IMAP modification if FOR-IMAP is non-nil."
 (defun utf7-latin1-u16-char-converter ()
   "Convert latin 1 (ISO-8859.1) characters to 16 bit Unicode.
 Characters are converted to raw byte pairs in narrowed buffer."
-  (mm-encode-coding-region (point-min) (point-max) 'iso-8859-1)
+  (encode-coding-region (point-min) (point-max) 'iso-8859-1)
   (mm-disable-multibyte)
   (goto-char (point-min))
   (while (not (eobp))
@@ -201,7 +201,7 @@ Characters are in raw byte pairs in narrowed buffer."
        (delete-char 1)
        (error "Unable to convert from Unicode"))
     (forward-char))
-  (mm-decode-coding-region (point-min) (point-max) 'iso-8859-1)
+  (decode-coding-region (point-min) (point-max) 'iso-8859-1)
   (mm-enable-multibyte))
 
 ;;;###autoload
diff --git a/lisp/mh-e/mh-comp.el b/lisp/mh-e/mh-comp.el
index 4e64cfb..72980b7 100644
--- a/lisp/mh-e/mh-comp.el
+++ b/lisp/mh-e/mh-comp.el
@@ -916,14 +916,14 @@ CONFIG is the window configuration before sending mail."
   ;; use it as the drafts folder.  Then copy the skeleton to a regular
   ;; temp file, and return the regular temp file.
   (let (new
-        (temp-folder (mm-make-temp-file
+        (temp-folder (make-temp-file
                       (concat mh-user-path "draftfolder.") t)))
     (mh-exec-cmd "comp" "-nowhatnowproc"
                  "-draftfolder" (format "+%s"
                                         (file-name-nondirectory temp-folder))
                  (if (stringp mh-comp-formfile)
                      (list "-form" mh-comp-formfile)))
-    (setq new (mm-make-temp-file "comp."))
+    (setq new (make-temp-file "comp."))
     (rename-file (concat temp-folder "/" "1") new t)
     (delete-file (concat temp-folder "/" ".mh_sequences"))
     (delete-directory temp-folder)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]