emacs-diffs
[Top][All Lists]
Advanced

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

master 9a934c4 1/2: Remove old Gnus compat code from MH-E


From: Stefan Kangas
Subject: master 9a934c4 1/2: Remove old Gnus compat code from MH-E
Date: Fri, 8 Oct 2021 21:13:05 -0400 (EDT)

branch: master
commit 9a934c4c0f841915b2f99228b5365587892c13fe
Author: Stefan Kangas <stefan@marxist.se>
Commit: Stefan Kangas <stefan@marxist.se>

    Remove old Gnus compat code from MH-E
    
    * lisp/mh-e/mh-gnus.el (mh-mm-merge-handles)
    (mh-mm-set-handle-multipart-parameter, mh-mm-inline-text-vcard)
    (mh-mm-possibly-verify-or-decrypt)
    (mh-mm-handle-multipart-ctl-parameter, mh-mm-readable-p)
    (mh-mm-long-lines-p, mh-mm-keep-viewer-alive-p)
    (mh-mm-destroy-parts, mh-mm-uu-dissect-text-parts)
    (mh-mml-minibuffer-read-disposition): Make into obsolete aliases
    for functions without the 'mh-' prefix.  Update callers.
    (mh-gnus-local-map-property): Remove Emacs 20 compat code.
---
 lisp/mh-e/mh-gnus.el | 127 ++++++++++++++-------------------------------------
 lisp/mh-e/mh-mime.el |  40 ++++++++--------
 2 files changed, 54 insertions(+), 113 deletions(-)

diff --git a/lisp/mh-e/mh-gnus.el b/lisp/mh-e/mh-gnus.el
index d7f88c6..b096cd6 100644
--- a/lisp/mh-e/mh-gnus.el
+++ b/lisp/mh-e/mh-gnus.el
@@ -39,99 +39,40 @@
 ;; TODO This is not in Gnus 5.11.
 (defun-mh mh-gnus-local-map-property gnus-local-map-property (map)
   "Return a list suitable for a text property list specifying keymap MAP."
-  (cond ((>= emacs-major-version 21) (list 'keymap map))
-        (t (list 'local-map map))))
-
-;; Copy of function from mm-decode.el.
-(defun-mh mh-mm-merge-handles mm-merge-handles (handles1 handles2)
-  (append
-   (if (listp (car handles1))
-       handles1
-     (list handles1))
-   (if (listp (car handles2))
-       handles2
-     (list handles2))))
-
-;; Copy of function from mm-decode.el.
-(defun-mh mh-mm-set-handle-multipart-parameter
-  mm-set-handle-multipart-parameter (handle parameter value)
-  ;; HANDLE could be a CTL.
-  (when handle
-    (put-text-property 0 (length (car handle)) parameter value
-                      (car handle))))
-
-;; Copy of function from mm-view.el.
-(defun-mh mh-mm-inline-text-vcard mm-inline-text-vcard (handle)
-  (let ((inhibit-read-only t))
-    (mm-insert-inline
-     handle
-     (concat "\n-- \n"
-            (ignore-errors
-              (if (fboundp 'vcard-pretty-print)
-                  (vcard-pretty-print (mm-get-part handle))
-                (vcard-format-string
-                 (vcard-parse-string (mm-get-part handle)
-                                     'vcard-standard-filter))))))))
-
-;; Function from mm-decode.el used in PGP messages. Just define it with older
-;; Gnus to avoid compiler warning.
-(defun-mh mh-mm-possibly-verify-or-decrypt
-  mm-possibly-verify-or-decrypt (_parts _ctl)
-  nil)
-
-;; Copy of macro in mm-decode.el.
-(defmacro-mh mh-mm-handle-multipart-ctl-parameter
-  mm-handle-multipart-ctl-parameter (handle parameter)
-  `(get-text-property 0 ,parameter (car ,handle)))
-
-;; Copy of function in mm-decode.el.
-(defun-mh mh-mm-readable-p mm-readable-p (handle)
-  "Say whether the content of HANDLE is readable."
-  (and (< (with-current-buffer (mm-handle-buffer handle)
-            (buffer-size)) 10000)
-       (mm-with-unibyte-buffer
-         (mm-insert-part handle)
-         (and (eq (mm-body-7-or-8) '7bit)
-              (not (mh-mm-long-lines-p 76))))))
-
-;; Copy of function in mm-bodies.el.
-(defun-mh mh-mm-long-lines-p mm-long-lines-p (length)
-  "Say whether any of the lines in the buffer is longer than LENGTH."
-  (save-excursion
-    (goto-char (point-min))
-    (end-of-line)
-    (while (and (not (eobp))
-                (not (> (current-column) length)))
-      (forward-line 1)
-      (end-of-line))
-    (and (> (current-column) length)
-         (current-column))))
-
-(defun-mh mh-mm-keep-viewer-alive-p mm-keep-viewer-alive-p (_handle)
-  ;; Released Gnus doesn't keep handles associated with externally displayed
-  ;; MIME parts. So this will always return nil.
-  nil)
-
-(defun-mh mh-mm-destroy-parts mm-destroy-parts (_list)
-  "Older versions of Emacs don't have this function."
-  nil)
-
-(defun-mh mh-mm-uu-dissect-text-parts mm-uu-dissect-text-parts (_handles)
-  "Emacs 21 and XEmacs don't have this function."
-  nil)
-
-;; Copy of function in mml.el.
-(defun-mh mh-mml-minibuffer-read-disposition
-  mml-minibuffer-read-disposition (type &optional default filename)
-  (unless default
-    (setq default (mml-content-disposition type filename)))
-  (let ((disposition (completing-read
-                     (format-prompt "Disposition" default)
-                     '(("attachment") ("inline") (""))
-                     nil t nil nil default)))
-    (if (not (equal disposition ""))
-       disposition
-      default)))
+  (list 'keymap map))
+
+(define-obsolete-function-alias 'mh-mm-merge-handles
+  #'mm-merge-handles "29.1")
+
+(define-obsolete-function-alias 'mh-mm-set-handle-multipart-parameter
+  #'mm-set-handle-multipart-parameter "29.1")
+
+(define-obsolete-function-alias 'mh-mm-inline-text-vcard
+  #'mm-inline-text-vcard "29.1")
+
+(define-obsolete-function-alias 'mh-mm-possibly-verify-or-decrypt
+  #'mm-possibly-verify-or-decrypt "29.1")
+
+(define-obsolete-function-alias 'mh-mm-handle-multipart-ctl-parameter
+  #'mm-handle-multipart-ctl-parameter "29.1")
+
+(define-obsolete-function-alias 'mh-mm-readable-p
+  #'mm-readable-p "29.1")
+
+(define-obsolete-function-alias 'mh-mm-long-lines-p
+  #'mm-long-lines-p "29.1")
+
+(define-obsolete-function-alias 'mh-mm-keep-viewer-alive-p
+  #'mm-keep-viewer-alive-p "29.1")
+
+(define-obsolete-function-alias 'mh-mm-destroy-parts
+  #'mm-destroy-parts "29.1")
+
+(define-obsolete-function-alias 'mh-mm-uu-dissect-text-parts
+  #'mm-uu-dissect-text-parts "29.1")
+
+(define-obsolete-function-alias 'mh-mml-minibuffer-read-disposition
+  #'mml-minibuffer-read-disposition "29.1")
 
 ;; This is mm-save-part from Gnus 5.11 since that function in Emacs
 ;; 21.2 is buggy (the args to read-file-name are incorrect) and the
diff --git a/lisp/mh-e/mh-mime.el b/lisp/mh-e/mh-mime.el
index a347537..6b10971 100644
--- a/lisp/mh-e/mh-mime.el
+++ b/lisp/mh-e/mh-mime.el
@@ -141,7 +141,7 @@
                 mm-inline-text-html-renderer)
            (and (boundp 'mm-text-html-renderer) mm-text-html-renderer))))
     ("text/x-vcard"
-     mh-mm-inline-text-vcard
+     mm-inline-text-vcard
      (lambda (handle)
        (or (featurep 'vcard)
            (locate-library "vcard"))))
@@ -171,7 +171,7 @@
     ("audio/.*" ignore ignore)
     ("image/.*" ignore ignore)
     ;; Default to displaying as text
-    (".*" mm-inline-text mh-mm-readable-p))
+    (".*" mm-inline-text mm-readable-p))
   "Alist of media types/tests saying whether types can be displayed inline.")
 
 (defvar mh-mime-save-parts-directory nil
@@ -454,10 +454,10 @@ decoding the same message multiple times."
              (setf (gethash handle (mh-mime-handles-cache (mh-buffer-data)))
                    (let ((handles (mm-dissect-buffer nil)))
                      (if handles
-                         (mh-mm-uu-dissect-text-parts handles)
+                         (mm-uu-dissect-text-parts handles)
                        (setq handles (mm-uu-dissect)))
                      (setf (mh-mime-handles (mh-buffer-data))
-                           (mh-mm-merge-handles
+                           (mm-merge-handles
                             handles (mh-mime-handles (mh-buffer-data))))
                      handles))))
 
@@ -528,10 +528,10 @@ parsed and then displayed."
            (if pre-dissected-handles
                (setq handles pre-dissected-handles)
              (if (setq handles (mm-dissect-buffer nil))
-                 (mh-mm-uu-dissect-text-parts handles)
+                 (mm-uu-dissect-text-parts handles)
                (setq handles (mm-uu-dissect)))
              (setf (mh-mime-handles (mh-buffer-data))
-                   (mh-mm-merge-handles handles
+                   (mm-merge-handles handles
                                         (mh-mime-handles (mh-buffer-data))))
              (unless handles
                (mh-decode-message-body)))
@@ -637,7 +637,7 @@ buttons for alternative parts that are usually suppressed."
     (let ((mh-mime-security-button-line-format
            mh-mime-security-button-end-line-format))
       (mh-insert-mime-security-button handle))
-    (mh-mm-set-handle-multipart-parameter
+    (mm-set-handle-multipart-parameter
      handle 'mh-region (cons (point-min-marker) (point-max-marker)))))
 
 (defun mh-mime-display-single (handle)
@@ -868,7 +868,7 @@ by commands like \"K v\" which operate on individual MIME 
parts."
 
 (defun mh-insert-mime-security-button (handle)
   "Display buttons for PGP message, HANDLE."
-  (let* ((protocol (mh-mm-handle-multipart-ctl-parameter handle 'protocol))
+  (let* ((protocol (mm-handle-multipart-ctl-parameter handle 'protocol))
          (crypto-type (or (nth 2 (assoc protocol mm-verify-function-alist))
                           (nth 2 (assoc protocol mm-decrypt-function-alist))
                           "Unknown"))
@@ -879,10 +879,10 @@ by commands like \"K v\" which operate on individual MIME 
parts."
                              (if (equal (car handle) "multipart/signed")
                                  " Signed" " Encrypted")
                              " Part"))
-               (info (or (mh-mm-handle-multipart-ctl-parameter
+               (info (or (mm-handle-multipart-ctl-parameter
                           handle 'gnus-info)
                          "Undecided"))
-               (details (mh-mm-handle-multipart-ctl-parameter
+               (details (mm-handle-multipart-ctl-parameter
                          handle 'gnus-details))
                pressed-details)
       (setq details (if details (concat "\n" details) ""))
@@ -1063,7 +1063,7 @@ This is only called in recent versions of Gnus. The MIME 
handles
 are stored in data structures corresponding to MH-E folder buffer
 FOLDER instead of in Gnus (as in the original). The MIME part,
 HANDLE is associated with the undisplayer FUNCTION."
-  (if (mh-mm-keep-viewer-alive-p handle)
+  (if (mm-keep-viewer-alive-p handle)
       (let ((new-handle (copy-sequence handle)))
         (mm-handle-set-undisplayer new-handle function)
         (mm-handle-set-undisplayer handle nil)
@@ -1073,19 +1073,19 @@ HANDLE is associated with the undisplayer FUNCTION."
 
 (defun mh-mime-security-press-button (handle)
   "Callback from security button for part HANDLE."
-  (if (mh-mm-handle-multipart-ctl-parameter handle 'gnus-info)
+  (if (mm-handle-multipart-ctl-parameter handle 'gnus-info)
       (mh-mime-security-show-details handle)
-    (let ((region (mh-mm-handle-multipart-ctl-parameter handle 'mh-region))
+    (let ((region (mm-handle-multipart-ctl-parameter handle 'mh-region))
           point)
       (setq point (point))
       (goto-char (car region))
       (delete-region (car region) (cdr region))
-      (with-current-buffer (mh-mm-handle-multipart-ctl-parameter handle 
'buffer)
+      (with-current-buffer (mm-handle-multipart-ctl-parameter handle 'buffer)
         (let* ((mm-verify-option 'known)
                (mm-decrypt-option 'known)
-               (new (mh-mm-possibly-verify-or-decrypt (cdr handle) handle)))
+               (new (mm-possibly-verify-or-decrypt (cdr handle) handle)))
           (unless (eq new (cdr handle))
-            (mh-mm-destroy-parts (cdr handle))
+            (mm-destroy-parts (cdr handle))
             (setcdr handle new))))
       (mh-mime-display-security handle)
       (goto-char point))))
@@ -1095,7 +1095,7 @@ HANDLE is associated with the undisplayer FUNCTION."
 ;; to be no way of getting rid of the inserted text.
 (defun mh-mime-security-show-details (handle)
   "Toggle display of detailed security info for HANDLE."
-  (let ((details (mh-mm-handle-multipart-ctl-parameter handle 'gnus-details)))
+  (let ((details (mm-handle-multipart-ctl-parameter handle 'gnus-details)))
     (when details
       (let ((mh-mime-security-button-pressed
              (not (get-text-property (point) 'mh-button-pressed)))
@@ -1285,7 +1285,7 @@ automatically."
          (type (mh-minibuffer-read-type file))
          (description (mml-minibuffer-read-description))
          (dispos (or disposition
-                     (mh-mml-minibuffer-read-disposition type))))
+                     (mml-minibuffer-read-disposition type))))
     (mml-insert-empty-tag 'part 'type type 'filename file
                           'disposition dispos 'description description)))
 
@@ -1799,7 +1799,7 @@ initialized. Always use the command 
`mh-have-file-command'.")
     ;; This is for Emacs, what about XEmacs?
     (mh-funcall-if-exists remove-images (point-min) (point-max))
     (when mime-data
-      (mh-mm-destroy-parts (mh-mime-handles mime-data))
+      (mm-destroy-parts (mh-mime-handles mime-data))
       (remhash (current-buffer) mh-globals-hash))))
 
 ;;;###mh-autoload
@@ -1807,7 +1807,7 @@ initialized. Always use the command 
`mh-have-file-command'.")
   "Free MIME data for externally displayed MIME parts."
   (let ((mime-data (mh-buffer-data)))
     (when mime-data
-      (mh-mm-destroy-parts (mh-mime-handles mime-data)))
+      (mm-destroy-parts (mh-mime-handles mime-data)))
     (remhash (current-buffer) mh-globals-hash)))
 
 (provide 'mh-mime)



reply via email to

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