update.
[elisp/semi.git] / mime-view.el
index 4a2ff0f..8ae704c 100644 (file)
@@ -524,11 +524,11 @@ if it is not nil.")
            (setq entry (cdr entry))
            )
          (setq shared (nreverse shared))
-         (ctree-set-calist-strictly
+         (ctree-set-calist-with-default
           'mime-acting-condition
           (append shared (list '(mode . "play")(cons 'method (cdr view)))))
          (if print
-             (ctree-set-calist-strictly
+             (ctree-set-calist-with-default
               'mime-acting-condition
               (append shared
                       (list '(mode . "print")(cons 'method (cdr view))))
@@ -917,8 +917,10 @@ The compressed face will be piped to this command.")
 (defun mime-raw-get-subject (param &optional encoding)
   (or (std11-find-field-body '("Content-Description" "Subject"))
       (let (ret)
-       (if (or (and (setq ret (mime/Content-Disposition))
-                    (setq ret (assoc "filename" (cdr ret)))
+       (if (or (and (setq ret (mime-read-Content-Disposition))
+                    (setq ret
+                          (assoc "filename"
+                                 (mime-content-disposition-parameters ret)))
                     )
                (setq ret (assoc "name" param))
                (setq ret (assoc "x-name" param))
@@ -1328,10 +1330,13 @@ variable `mime-view-over-to-previous-method-alist'."
   (while (null (get-text-property (point) 'mime-view-entity))
     (backward-char)
     )
-  (let ((point
-        (previous-single-property-change (point) 'mime-view-entity)))
+  (let ((point (previous-single-property-change (point) 'mime-view-entity)))
     (if point
-       (goto-char point)
+       (if (get-text-property (1- point) 'mime-view-entity)
+           (goto-char point)
+         (goto-char (1- point))
+         (mime-preview-move-to-previous)
+         )
       (let ((f (assq mime-preview-original-major-mode
                     mime-view-over-to-previous-method-alist)))
        (if f
@@ -1344,9 +1349,16 @@ variable `mime-view-over-to-previous-method-alist'."
 If there is no previous entity, it calls function registered in
 variable `mime-view-over-to-next-method-alist'."
   (interactive)
+  (while (null (get-text-property (point) 'mime-view-entity))
+    (forward-char)
+    )
   (let ((point (next-single-property-change (point) 'mime-view-entity)))
     (if point
-       (goto-char point)
+       (progn
+         (goto-char point)
+         (if (null (get-text-property point 'mime-view-entity))
+             (mime-preview-move-to-next)
+           ))
       (let ((f (assq mime-preview-original-major-mode
                     mime-view-over-to-next-method-alist)))
        (if f