Update copyright header.
[elisp/semi.git] / mime-view.el
index 05222ac..66c8a7b 100644 (file)
@@ -77,6 +77,10 @@ buttom. Nil means don't scroll at all."
   :group 'mime-view
   :type '(repeat file))
 
+(defcustom mime-view-buttons-visible t
+  "Toggle visibility of MIME buttons."
+  :group 'mime-view
+  :type 'boolean)
 
 ;;; @ in raw-buffer (representation space)
 ;;;
@@ -423,33 +427,34 @@ mother-buffer."
          mime-acting-situation-example-list)
       (let ((file mime-situation-examples-file)
            print-length print-level)
-       (with-temp-buffer
-         (insert ";;; " (file-name-nondirectory file) "\n")
-         (insert "\n;; This file is generated automatically by "
-                 mime-view-version "\n\n")
-         (insert ";;; Code:\n\n")
-         (if mime-preview-situation-example-list
-             (pp `(setq mime-preview-situation-example-list
-                        ',mime-preview-situation-example-list)
-                 (current-buffer)))
-         (if mime-acting-situation-example-list
-             (pp `(setq mime-acting-situation-example-list
-                        ',mime-acting-situation-example-list)
-                 (current-buffer)))
-         (insert "\n;;; "
-                 (file-name-nondirectory file)
-                 " ends here.\n")
-         (static-cond
-          ((boundp 'buffer-file-coding-system)
-           (setq buffer-file-coding-system
-                 mime-situation-examples-file-coding-system))
-          ((boundp 'file-coding-system)
-           (setq file-coding-system
-                 mime-situation-examples-file-coding-system)))
-         ;; (setq buffer-file-coding-system
-         ;;       mime-situation-examples-file-coding-system)
-         (setq buffer-file-name file)
-         (save-buffer)))))
+        (when file
+          (with-temp-buffer
+            (insert ";;; " (file-name-nondirectory file) "\n")
+            (insert "\n;; This file is generated automatically by "
+                    mime-view-version "\n\n")
+            (insert ";;; Code:\n\n")
+            (if mime-preview-situation-example-list
+                (pp `(setq mime-preview-situation-example-list
+                           ',mime-preview-situation-example-list)
+                    (current-buffer)))
+            (if mime-acting-situation-example-list
+                (pp `(setq mime-acting-situation-example-list
+                           ',mime-acting-situation-example-list)
+                    (current-buffer)))
+            (insert "\n;;; "
+                    (file-name-nondirectory file)
+                    " ends here.\n")
+            (static-cond
+             ((boundp 'buffer-file-coding-system)
+              (setq buffer-file-coding-system
+                    mime-situation-examples-file-coding-system))
+             ((boundp 'file-coding-system)
+              (setq file-coding-system
+                    mime-situation-examples-file-coding-system)))
+            ;; (setq buffer-file-coding-system
+            ;;       mime-situation-examples-file-coding-system)
+            (setq buffer-file-name file)
+            (save-buffer))))))
 
 (add-hook 'kill-emacs-hook 'mime-save-situation-examples)
 
@@ -676,7 +681,7 @@ Each elements are regexp of field-name.")
           calist))))
 
 (define-calist-field-match-method
-  'access-type #'calist-field-match-method-ignore-case)
+  'access-type #'mime-calist::field-match-method-ignore-case)
 
 
 (defvar mime-preview-condition nil
@@ -1091,9 +1096,10 @@ MEDIA-TYPE must be (TYPE . SUBTYPE), TYPE or t.  t means default."
        (setq situation
              (mime-find-entity-preview-situation entity default-situation)))
     (let ((button-is-invisible
-          (eq (cdr (or (assq '*entity-button situation)
-                       (assq 'entity-button situation)))
-              'invisible))
+          (or (not mime-view-buttons-visible)
+              (eq (cdr (or (assq '*entity-button situation)
+                           (assq 'entity-button situation)))
+                  'invisible)))
          (header-is-visible
           (eq (cdr (or (assq '*header situation)
                        (assq 'header situation)))
@@ -1134,10 +1140,6 @@ MEDIA-TYPE must be (TYPE . SUBTYPE), TYPE or t.  t means default."
              (if (functionp body-presentation-method)
                  (funcall body-presentation-method entity situation)
                (mime-display-text/plain entity situation)))
-         (when button-is-invisible
-           (goto-char (point-max))
-           (mime-view-insert-entity-button entity)
-           )
          (unless header-is-visible
            (goto-char (point-max))
            (insert "\n"))