]> git.notmuchmail.org Git - notmuch/blobdiff - emacs/notmuch-show.el
emacs: Remove broken `notmuch-get-bodypart-content' API
[notmuch] / emacs / notmuch-show.el
index 87b48813987ae859491c2f2bf14f8ec225463806..f29428ad98154c233ace674a122801bbe013d97a 100644 (file)
@@ -562,48 +562,33 @@ message at DEPTH in the current thread."
 (defvar notmuch-show-w3m-cid-store nil)
 (make-variable-buffer-local 'notmuch-show-w3m-cid-store)
 
-(defun notmuch-show-w3m-cid-store-internal (content-id
-                                           message-id
-                                           part-number
-                                           content-type
-                                           content)
-  (push (list content-id
-             message-id
-             part-number
-             content-type
-             content)
+(defun notmuch-show-w3m-cid-store-internal (content-id msg part content)
+  (push (list content-id msg part content)
        notmuch-show-w3m-cid-store))
 
 (defun notmuch-show-w3m-cid-store (msg part)
   (let ((content-id (plist-get part :content-id)))
     (when content-id
       (notmuch-show-w3m-cid-store-internal (concat "cid:" content-id)
-                                          (plist-get msg :id)
-                                          (plist-get part :id)
-                                          (plist-get part :content-type)
-                                          nil))))
+                                          msg part nil))))
 
 (defun notmuch-show-w3m-cid-retrieve (url &rest args)
   (let ((matching-part (with-current-buffer w3m-current-buffer
                         (assoc url notmuch-show-w3m-cid-store))))
     (if matching-part
-       (let ((message-id (nth 1 matching-part))
-             (part-number (nth 2 matching-part))
-             (content-type (nth 3 matching-part))
-             (content (nth 4 matching-part)))
+       (let* ((msg (nth 1 matching-part))
+              (part (nth 2 matching-part))
+              (content (nth 3 matching-part))
+              (content-type (plist-get part :content-type)))
          ;; If we don't already have the content, get it and cache
          ;; it, as some messages reference the same cid: part many
          ;; times (hundreds!), which results in many calls to
          ;; `notmuch part'.
          (unless content
-           (setq content (notmuch-get-bodypart-internal (notmuch-id-to-query message-id)
-                                                             part-number notmuch-show-process-crypto))
+           (setq content (notmuch-get-bodypart-binary
+                          msg part notmuch-show-process-crypto))
            (with-current-buffer w3m-current-buffer
-             (notmuch-show-w3m-cid-store-internal url
-                                                  message-id
-                                                  part-number
-                                                  content-type
-                                                  content)))
+             (notmuch-show-w3m-cid-store-internal url msg part content)))
          (insert content)
          content-type)
       nil)))
@@ -717,7 +702,7 @@ message at DEPTH in the current thread."
   (let ((start (if button
                   (button-start button)
                 (point))))
-    (insert (notmuch-get-bodypart-content msg part notmuch-show-process-crypto))
+    (insert (notmuch-get-bodypart-text msg part notmuch-show-process-crypto))
     (save-excursion
       (save-restriction
        (narrow-to-region start (point-max))
@@ -726,9 +711,9 @@ message at DEPTH in the current thread."
 
 (defun notmuch-show-insert-part-text/calendar (msg part content-type nth depth button)
   (insert (with-temp-buffer
-           (insert (notmuch-get-bodypart-content msg part notmuch-show-process-crypto))
-           ;; notmuch-get-bodypart-content provides "raw", non-converted
-           ;; data. Replace CRLF with LF before icalendar can use it.
+           (insert (notmuch-get-bodypart-text msg part notmuch-show-process-crypto))
+           ;; notmuch-get-bodypart-text does no newline conversion.
+           ;; Replace CRLF with LF before icalendar can use it.
            (goto-char (point-min))
            (while (re-search-forward "\r\n" nil t)
              (replace-match "\n" nil nil))
@@ -2175,15 +2160,14 @@ omit --in-reply-to=<Message-Id>."
 
 ;; Interactive part functions and their helpers
 
-(defun notmuch-show-generate-part-buffer (message-id nth)
+(defun notmuch-show-generate-part-buffer (msg part)
   "Return a temporary buffer containing the specified part's content."
   (let ((buf (generate-new-buffer " *notmuch-part*"))
        (process-crypto notmuch-show-process-crypto))
     (with-current-buffer buf
-      (setq notmuch-show-process-crypto process-crypto)
-      ;; Always acquires the part via `notmuch part', even if it is
-      ;; available in the SEXP output.
-      (insert (notmuch-get-bodypart-internal message-id nth notmuch-show-process-crypto)))
+      ;; This is always used in the content of mm handles, which
+      ;; expect undecoded, binary part content.
+      (insert (notmuch-get-bodypart-binary msg part process-crypto)))
     buf))
 
 (defun notmuch-show-current-part-handle ()
@@ -2191,10 +2175,9 @@ omit --in-reply-to=<Message-Id>."
 
 This creates a temporary buffer for the part's content; the
 caller is responsible for killing this buffer as appropriate."
-  (let* ((part (notmuch-show-get-part-properties))
-        (message-id (notmuch-show-get-message-id))
-        (nth (plist-get part :id))
-        (buf (notmuch-show-generate-part-buffer message-id nth))
+  (let* ((msg (notmuch-show-get-message-properties))
+        (part (notmuch-show-get-part-properties))
+        (buf (notmuch-show-generate-part-buffer msg part))
         (computed-type (plist-get part :computed-type))
         (filename (plist-get part :filename))
         (disposition (if filename `(attachment (filename . ,filename)))))