Fix save-parts bug.
authorShengHuo ZHU <zsh@cs.rochester.edu>
Thu, 14 Sep 2000 01:06:10 +0000 (01:06 +0000)
committerShengHuo ZHU <zsh@cs.rochester.edu>
Thu, 14 Sep 2000 01:06:10 +0000 (01:06 +0000)
lisp/ChangeLog
lisp/gnus-art.el
lisp/gnus-sum.el
lisp/mm-partial.el

index 9864d83..95aaf54 100644 (file)
@@ -1,3 +1,14 @@
+2000-09-13 21:41:25  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * gnus-art.el (gnus-article-setup-buffer): Set
+       gnus-article-mime-handles to nil.
+       * gnus-sum.el (gnus-summary-exit): Ditto.
+       (gnus-summary-exit-no-update): Ditto.
+       (gnus-summary-show-article): Ditto.
+       (gnus-summary-save-parts): Use gnus-article-mime-handles if
+       dissected.
+       * mm-partial.el (mm-partial-find-parts): Remove redundancy.
+
 2000-09-13 16:59:33  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
        * gnus-sum.el (gnus-summary-sort): Sort loose threads too.
index 06c2d5e..aca0d72 100644 (file)
@@ -2653,7 +2653,8 @@ commands:
        (save-excursion
          (set-buffer name)
          (when gnus-article-mime-handles
-           (mm-destroy-parts gnus-article-mime-handles))
+           (mm-destroy-parts gnus-article-mime-handles)
+           (setq gnus-article-mime-handles nil))
          (buffer-disable-undo)
          (setq buffer-read-only t)
          (unless (eq major-mode 'gnus-article-mode)
index eb7e9df..174914b 100644 (file)
@@ -5388,7 +5388,8 @@ If FORCE (the prefix), also save the .newsrc file(s)."
   (when (gnus-buffer-live-p gnus-article-buffer)
     (save-excursion
       (set-buffer gnus-article-buffer)
-      (mm-destroy-parts gnus-article-mime-handles)))
+      (mm-destroy-parts gnus-article-mime-handles)
+      (setq gnus-article-mime-handles nil)))
   (gnus-kill-save-kill-buffer)
   (gnus-async-halt-prefetch)
   (let* ((group gnus-newsgroup-name)
@@ -5486,7 +5487,8 @@ If FORCE (the prefix), also save the .newsrc file(s)."
       (when (gnus-buffer-live-p gnus-article-buffer)
        (save-excursion
          (set-buffer gnus-article-buffer)
-         (mm-destroy-parts gnus-article-mime-handles)))
+         (mm-destroy-parts gnus-article-mime-handles)
+         (setq gnus-article-mime-handles nil)))
       ;; If we have several article buffers, we kill them at exit.
       (unless gnus-single-article-buffer
        (gnus-kill-buffer gnus-article-buffer)
@@ -7249,7 +7251,8 @@ without any article massaging functions being run."
       (when (gnus-buffer-live-p gnus-article-buffer)
        (save-excursion
          (set-buffer gnus-article-buffer)
-         (mm-destroy-parts gnus-article-mime-handles)))
+         (mm-destroy-parts gnus-article-mime-handles)
+         (setq gnus-article-mime-handles nil)))
       (gnus-summary-select-article nil 'force))))
   (gnus-summary-goto-subject gnus-current-article)
   (gnus-summary-position-point))
@@ -9195,10 +9198,12 @@ If REVERSE, save parts that do not match TYPE."
       (gnus-summary-select-article))
     (save-excursion
       (set-buffer gnus-article-buffer)
-      (let ((handles (or (mm-dissect-buffer) (mm-uu-dissect))))
+      (let ((handles (or gnus-article-mime-handles
+                        (mm-dissect-buffer) (mm-uu-dissect))))
        (when handles
          (gnus-summary-save-parts-1 type dir handles reverse)
-         (mm-destroy-parts handles))))))
+         (unless gnus-article-mime-handles ;; Don't destroy this case.
+           (mm-destroy-parts handles)))))))
 
 (defun gnus-summary-save-parts-1 (type dir handle reverse)
   (if (stringp (car handle))
index 4d60a85..27189c9 100644 (file)
@@ -36,7 +36,7 @@
   (let ((headers (save-excursion
                   (set-buffer gnus-summary-buffer)
                   gnus-newsgroup-headers))
-       phandles handles  header)
+       phandles header)
     (while (setq header (pop headers))
       (unless (eq (aref header 0) art)
        (mm-with-unibyte-buffer
@@ -44,7 +44,6 @@
                                            gnus-newsgroup-name)
          (when (search-forward id nil t)
            (let ((nhandles (mm-dissect-buffer)) nid)
-             (setq handles gnus-article-mime-handles)
              (if (consp (car nhandles))
                  (mm-destroy-parts nhandles)
                (setq nid (cdr (assq 'id