** API
-*** \e$B0lHL\e(B
-
[buffer \e$B6I=jJQ?t\e(B] mime-mother-buffer
\e$BBP1~$9$k?F\e(B buffer \e$B$r<($9!#\e(B
\e$B2DG=@-$,$"$k$+$i$G$"$k!#\e(B
-[buffer \e$B6I=jJQ?t\e(B] mime-preview-original-major-mode
-
- \e$BBP1~$9$k\e(B mime-raw-buffer \e$B$K$*$1$k\e(B major-mode \e$B$r<($9!#\e(B
-
-
[buffer \e$B6I=jJQ?t\e(B] mime-preview-original-window-configuration
mime-preview-buffer \e$B$r:n$kA0$N\e(B window-configuration \e$B$r<}$a$k!#\e(B
-[text-property] mime-view-raw-buffer
+[text-property] mime-view-entity
- \e$B$3$N0LCV$KBP1~$9$k\e(B mime-raw-buffer \e$B$r<($9!#\e(B
+ \e$B8=:_0LCV$KBP1~$9$k\e(B entity \e$B9=B$BN$r<($9!#\e(B
-[text-property] mime-view-entity
+[\e$B4X?t\e(B] mime-preview-original-major-mode (&optional recursive)
+
+ \e$B8=:_0LCV$KBP1~$9$k\e(B entity \e$B$NI=>]$,B8:_$9$k\e(B buffer \e$B$N\e(B
+ major-mode \e$B$rJV$9!#\e(B
- \e$B$3$N0LCV$KBP1~$9$k\e(B entity \e$B9=B$BN$r<($9!#\e(B
+ RECURSIVE \e$B$K\e(B non-nil \e$B$,;XDj$5$l$?>l9g!";OAD$N\e(B major-mode \e$B$rJV\e(B
+ \e$B$9!#\e(B
* entity
# Makefile for SEMI kernel.
#
-VERSION = 1.6.0
PACKAGE = remi
+VERSION = 1.6.1
SHELL = /bin/sh
MAKE = make
SEMI NEWS --- history of major-changes.
Copyright (C) 1998 Free Software Foundation, Inc.
+* Changes in SEMI 1.6
+
+** Abolish tm-compatible external method support
+
+ Abolish tm-compatible external method support. Please use mailcap
+method instead of it.
+
+
+** Abolish `mime-edit-signing-type' and `mime-edit-encrypting-type'
+
+ C-c C-m C-s encloses as "pgp-signed" which means PGP/MIME signature.
+
+ C-c C-m C-e encloses as "pgp-encrypted" which means PGP/MIME
+encryption.
+
+
+** New interface to display message
+
+- Function `mime-view-buffer'
+- Function `mime-view-display-message'
+
+
+** Change interface of internal playback method
+
+ Interface of internal playback method was changed to
+
+ (entity situation)
+
+It is as same as interface of body-presentation-method.
+
+
+** Change interface of `mime-view-entity-button-visible-p'
+
+** Change interface of `mime-view-insert-entity-button'
+
+
+** `mime-preview-original-major-mode'
+
+ Abolish variable `mime-preview-original-major-mode'.
+
+ Please use function `mime-preview-original-major-mode' instead of
+it.
+
+
+** mime-preview-over-to-{previous|next}-method-alist
+
+ `mime-preview-over-to-{previous|next}-method-alist' were renamed
+from `mime-view-over-to-{previous|next}-method-alist'.
+
+\f
* Changes in SEMI 1.5
+** mime-w3
+
+ Add inline text/html preview feature using w3. If
+`mime-setup-enable-inline-html' is not nil, semi-setup.el sets up it.
+
+
** `pgp-elkins' -> `pgp-mime'
Rename `pgp-elkins' -> `pgp-mime'. Variable
text decoding features were abolished and introduces news features
(cf. next section).
+
** mime-raw-representation-type and mime-raw-representation-type-alist
Abolish `mime-text-decoder' and `mime-text-decoder-alist' because of
** dynamic configuration for 'mime-preview-condition
+** multipart/related support
+
** Don't use filter-model
tomo (major developer of SEMI) and akr (major developer of
(let ((entity (get-text-property (point) 'mime-view-entity)))
(if entity
(let ((the-buf (current-buffer))
- (raw-buffer (get-text-property (point) 'mime-view-raw-buffer)))
+ (raw-buffer (mime-entity-buffer entity)))
(setq mime-preview-after-decoded-position (point))
(set-buffer raw-buffer)
(mime-raw-play-entity entity mode)
(order '((type . 1)
(subtype . 2)
(mode . 3)
- (major-mode . 4)))
+ (method . 4)
+ (major-mode . 5)
+ (disposition-type . 6)
+ ))
a-order b-order)
(if (symbolp a-t)
(let ((ret (assq a-t order)))
(if ret
(setq a-order (cdr ret))
- (setq a-order 5)
+ (setq a-order 7)
))
- (setq a-order 6)
+ (setq a-order 8)
)
(if (symbolp b-t)
(let ((ret (assq b-t order)))
(if ret
(setq b-order (cdr ret))
- (setq b-order 5)
+ (setq b-order 7)
))
- (setq b-order 6)
+ (setq b-order 8)
)
(if (= a-order b-order)
(string< (format "%s" a-t)(format "%s" b-t))
(setq situations (cdr situations)))
dest))
-(defun mime-raw-play-entity (entity &optional mode)
+(defun mime-raw-play-entity (entity &optional mode situation)
"Play entity specified by ENTITY.
It decodes the entity to call internal or external method. The method
is selected from variable `mime-acting-condition'. If MODE is
specified, play as it. Default MODE is \"play\"."
- (let ((beg (mime-entity-point-min entity))
- (end (mime-entity-point-max entity)))
- (let (method cal ret)
- (setq cal (mime-entity-situation entity))
- (if mode
- (setq cal (cons (cons 'mode mode) cal))
- )
- (setq ret
- (or (ctree-match-calist mime-acting-situation-examples cal)
- (ctree-match-calist-partially mime-acting-situation-examples
- cal)
- cal))
- (setq ret
- (or (mime-delq-null-situation
- (ctree-find-calist mime-acting-condition ret
- mime-view-find-every-acting-situation)
- 'method)
- (mime-delq-null-situation
- (ctree-find-calist mime-acting-condition cal
- mime-view-find-every-acting-situation)
- 'method)
- ))
- (cond ((cdr ret)
- (setq ret (select-menu-alist
- "Methods"
- (mapcar (function
- (lambda (situation)
- (cons
- (format "%s"
- (cdr (assq 'method situation)))
- situation)))
- ret)))
- (setq ret (mime-sort-situation ret))
- (ctree-set-calist-strictly 'mime-acting-situation-examples ret)
- )
- (t
- (setq ret (car ret))
- ))
- (setq method (cdr (assq 'method ret)))
- (cond ((and (symbolp method)
- (fboundp method))
- (funcall method entity ret)
- )
- ((stringp method)
- (mime-activate-mailcap-method beg end ret)
- )
- ((and (listp method)(stringp (car method)))
- (mime-activate-external-method beg end ret)
- )
- (t
- (mime-show-echo-buffer "No method are specified for %s\n"
- (mime-entity-type/subtype entity))
- ))
- )))
+ (let (method ret)
+ (or situation
+ (setq situation (mime-entity-situation entity)))
+ (if mode
+ (setq situation (cons (cons 'mode mode) situation))
+ )
+ (setq ret
+ (or (ctree-match-calist mime-acting-situation-examples situation)
+ (ctree-match-calist-partially mime-acting-situation-examples
+ situation)
+ situation))
+ (setq ret
+ (or (mime-delq-null-situation
+ (ctree-find-calist mime-acting-condition ret
+ mime-view-find-every-acting-situation)
+ 'method)
+ (mime-delq-null-situation
+ (ctree-find-calist mime-acting-condition situation
+ mime-view-find-every-acting-situation)
+ 'method)
+ ))
+ (cond ((cdr ret)
+ (setq ret (select-menu-alist
+ "Methods"
+ (mapcar (function
+ (lambda (situation)
+ (cons
+ (format "%s"
+ (cdr (assq 'method situation)))
+ situation)))
+ ret)))
+ (setq ret (mime-sort-situation ret))
+ (ctree-set-calist-strictly 'mime-acting-situation-examples ret)
+ )
+ (t
+ (setq ret (car ret))
+ ))
+ (setq method (cdr (assq 'method ret)))
+ (cond ((and (symbolp method)
+ (fboundp method))
+ (funcall method entity ret)
+ )
+ ((stringp method)
+ (mime-activate-mailcap-method entity ret)
+ )
+ ;; ((and (listp method)(stringp (car method)))
+ ;; (mime-activate-external-method entity ret)
+ ;; )
+ (t
+ (mime-show-echo-buffer "No method are specified for %s\n"
+ (mime-entity-type/subtype entity))
+ ))
+ ))
;;; @ external decoder
(defvar mime-mailcap-method-filename-alist nil)
-(defun mime-activate-mailcap-method (start end situation)
+(defun mime-activate-mailcap-method (entity situation)
(save-excursion
(save-restriction
- (narrow-to-region start end)
- (goto-char start)
- (let ((method (cdr (assoc 'method situation)))
- (name (expand-file-name (mime-raw-get-filename situation)
- mime-temp-directory)))
- (mime-write-decoded-region (if (re-search-forward "^$" end t)
- (1+ (match-end 0))
- (point-min))
- end name
- (cdr (assq 'encoding situation)))
- (message "External method is starting...")
- (let ((process
- (let ((command
- (mailcap-format-command
- method
- (cons (cons 'filename name) situation))))
- (start-process command mime-echo-buffer-name
- shell-file-name shell-command-switch command)
- )))
- (set-alist 'mime-mailcap-method-filename-alist process name)
- (set-process-sentinel process 'mime-mailcap-method-sentinel)
- )
- ;;(mime-show-echo-buffer)
- ))))
+ (let ((start (mime-entity-point-min entity))
+ (end (mime-entity-point-max entity)))
+ (narrow-to-region start end)
+ (goto-char start)
+ (let ((method (cdr (assoc 'method situation)))
+ (name (expand-file-name (mime-raw-get-filename situation)
+ mime-temp-directory)))
+ (mime-write-decoded-region (mime-entity-body-start entity) end
+ name (cdr (assq 'encoding situation)))
+ (message "External method is starting...")
+ (let ((process
+ (let ((command
+ (mailcap-format-command
+ method
+ (cons (cons 'filename name) situation))))
+ (start-process command mime-echo-buffer-name
+ shell-file-name shell-command-switch command)
+ )))
+ (set-alist 'mime-mailcap-method-filename-alist process name)
+ (set-process-sentinel process 'mime-mailcap-method-sentinel)
+ )
+ )))))
(defun mime-mailcap-method-sentinel (process event)
(let ((file (cdr (assq process mime-mailcap-method-filename-alist))))
(remove-alist 'mime-mailcap-method-filename-alist process)
(message (format "%s %s" process event)))
-(defun mime-activate-external-method (beg end cal)
- (save-excursion
- (save-restriction
- (narrow-to-region beg end)
- (goto-char beg)
- (let ((method (cdr (assoc 'method cal)))
- (name (mime-raw-get-filename cal))
- )
- (if method
- (let ((file (make-temp-name
- (expand-file-name "TM" mime-temp-directory)))
- b args)
- (if (nth 1 method)
- (setq b beg)
- (setq b
- (if (re-search-forward "^$" nil t)
- (1+ (match-end 0))
- (point-min)
- ))
- )
- (goto-char b)
- (write-region b end file)
- (message "External method is starting...")
- (setq cal (put-alist
- 'name (replace-as-filename name) cal))
- (setq cal (put-alist 'file file cal))
- (setq args (nconc
- (list (car method)
- mime-echo-buffer-name (car method)
- )
- (mime-make-external-method-args
- cal (cdr (cdr method)))
- ))
- (apply (function start-process) args)
- (mime-show-echo-buffer)
- ))
- ))))
-
-(defun mime-make-external-method-args (cal format)
- (mapcar (function
- (lambda (arg)
- (if (stringp arg)
- arg
- (let* ((item (eval arg))
- (ret (cdr (assoc item cal)))
- )
- (if ret
- ret
- (if (eq item 'encoding)
- "7bit"
- ""))
- ))
- ))
- format))
+;; (defun mime-activate-external-method (entity cal)
+;; (save-excursion
+;; (save-restriction
+;; (let ((beg (mime-entity-point-min entity))
+;; (end (mime-entity-point-max entity)))
+;; (narrow-to-region beg end)
+;; (goto-char beg)
+;; (let ((method (cdr (assoc 'method cal)))
+;; (name (mime-raw-get-filename cal)))
+;; (if method
+;; (let ((file (make-temp-name
+;; (expand-file-name "TM" mime-temp-directory)))
+;; b args)
+;; (if (nth 1 method)
+;; (setq b beg)
+;; (setq b (mime-entity-body-start entity)))
+;; (goto-char b)
+;; (write-region b end file)
+;; (message "External method is starting...")
+;; (setq cal (put-alist
+;; 'name (replace-as-filename name) cal))
+;; (setq cal (put-alist 'file file cal))
+;; (setq args (nconc
+;; (list (car method)
+;; mime-echo-buffer-name (car method))
+;; (mime-make-external-method-args
+;; cal (cdr (cdr method)))
+;; ))
+;; (apply (function start-process) args)
+;; (mime-show-echo-buffer)
+;; ))
+;; )))))
+
+;; (defun mime-make-external-method-args (cal format)
+;; (mapcar (function
+;; (lambda (arg)
+;; (if (stringp arg)
+;; arg
+;; (let* ((item (eval arg))
+;; (ret (cdr (assoc item cal))))
+;; (or ret
+;; (if (eq item 'encoding)
+;; "7bit"
+;; ""))
+;; ))))
+;; format))
(defvar mime-echo-window-is-shared-with-bbdb t
"*If non-nil, mime-echo window is shared with BBDB window.")
)))
+;;; @ file detection
+;;;
+
+(defvar mime-file-content-type-alist
+ '(("JPEG" image jpeg)
+ ("GIF" image gif)
+ )
+ "*Alist of \"file\" output patterns vs. corresponding media-types.
+Each element looks like (REGEXP TYPE SUBTYPE).
+REGEXP is pattern for \"file\" command output.
+TYPE is symbol to indicate primary type of media-type.
+SUBTYPE is symbol to indicate subtype of media-type.")
+
+(defun mime-method-to-detect (entity situation)
+ (let ((beg (mime-entity-point-min entity))
+ (end (mime-entity-point-max entity)))
+ (goto-char beg)
+ (let* ((name (save-restriction
+ (narrow-to-region beg end)
+ (mime-raw-get-filename situation)
+ ))
+ (encoding (or (cdr (assq 'encoding situation)) "7bit"))
+ (filename (if (and name (not (string-equal name "")))
+ (expand-file-name name mime-temp-directory)
+ (make-temp-name
+ (expand-file-name "EMI" mime-temp-directory)))))
+ (mime-write-decoded-region (mime-entity-body-start entity) end
+ filename encoding)
+ (let (type subtype)
+ (with-temp-buffer
+ (call-process "file" nil t nil filename)
+ (goto-char (point-min))
+ (if (search-forward (concat filename ": ") nil t)
+ (let ((rest mime-file-content-type-alist))
+ (while (not (let ((cell (car rest)))
+ (if (looking-at (car cell))
+ (setq type (nth 1 cell)
+ subtype (nth 2 cell))
+ )))
+ (setq rest (cdr rest))))))
+ (if type
+ (mime-raw-play-entity
+ entity "play"
+ (put-alist 'type type
+ (put-alist 'subtype subtype
+ (mime-entity-situation entity))))
+ ))
+ )))
+
+
;;; @ mail/news message
;;;
:type 'file)
-;;; @ buffer local variables
-;;;
-
-;;; @@ in raw-buffer
+;;; @ in raw-buffer (representation space)
;;;
(defvar mime-raw-message-info nil
`mime-raw-representation-type' if it is not nil.")
-;;; @@ in preview-buffer
-;;;
-
-(defvar mime-mother-buffer nil
- "Mother buffer corresponding with the (MIME-preview) buffer.
-If current MIME-preview buffer is generated by other buffer, such as
-message/partial, it is called `mother-buffer'.")
-(make-variable-buffer-local 'mime-mother-buffer)
-
-(defvar mime-raw-buffer nil
- "Raw buffer corresponding with the (MIME-preview) buffer.")
-(make-variable-buffer-local 'mime-raw-buffer)
-
-(defvar mime-preview-original-window-configuration nil
- "Window-configuration before mime-view-mode is called.")
-(make-variable-buffer-local 'mime-preview-original-window-configuration)
-
-
-;;; @ entity information
-;;;
-
(defsubst mime-raw-find-entity-from-node-id (entity-node-id
&optional message-info)
"Return entity from ENTITY-NODE-ID in mime-raw-buffer.
message-info))))
+;;; @ in preview-buffer (presentation space)
+;;;
+
+(defvar mime-mother-buffer nil
+ "Mother buffer corresponding with the (MIME-preview) buffer.
+If current MIME-preview buffer is generated by other buffer, such as
+message/partial, it is called `mother-buffer'.")
+(make-variable-buffer-local 'mime-mother-buffer)
+
+(defvar mime-raw-buffer nil
+ "Raw buffer corresponding with the (MIME-preview) buffer.")
+(make-variable-buffer-local 'mime-raw-buffer)
+
+(defvar mime-preview-original-window-configuration nil
+ "Window-configuration before mime-view-mode is called.")
+(make-variable-buffer-local 'mime-preview-original-window-configuration)
+
+(defun mime-preview-original-major-mode (&optional recursive)
+ "Return major-mode of original buffer.
+If optional argument RECURSIVE is non-nil and current buffer has
+mime-mother-buffer, it returns original major-mode of the
+mother-buffer."
+ (if (and recursive mime-mother-buffer)
+ (save-excursion
+ (set-buffer mime-mother-buffer)
+ (mime-preview-original-major-mode recursive)
+ )
+ (save-excursion
+ (set-buffer
+ (mime-entity-buffer
+ (get-text-property (point-min) 'mime-view-entity)))
+ major-mode)))
+
+
+;;; @ entity information
+;;;
+
(defsubst mime-entity-parent (entity &optional message-info)
"Return mother entity of ENTITY.
If optional argument MESSAGE-INFO is not specified,
(set-buffer (mime-entity-buffer entity))
mime-raw-message-info))))
-(defsubst mime-entity-situation (entity)
+(defun mime-entity-situation (entity)
"Return situation of ENTITY."
(append (or (mime-entity-content-type entity)
(make-mime-content-type 'text 'plain))
+ (let ((d (mime-entity-content-disposition entity)))
+ (cons (cons 'disposition-type
+ (mime-content-disposition-type d))
+ (mapcar (function
+ (lambda (param)
+ (let ((name (car param)))
+ (cons (cond ((string= name "filename")
+ 'filename)
+ ((string= name "creation-date")
+ 'creation-date)
+ ((string= name "modification-date")
+ 'modification-date)
+ ((string= name "read-date")
+ 'read-date)
+ ((string= name "size")
+ 'size)
+ (t (cons 'disposition (car param))))
+ (cdr param)))))
+ (mime-content-disposition-parameters d))
+ ))
(list (cons 'encoding (mime-entity-encoding entity))
(cons 'major-mode
(save-excursion
(setq entries (cdr entries))
)))
-;; (ctree-set-calist-strictly
-;; 'mime-acting-condition
-;; '((type . t)(subtype . t)(mode . "extract")
-;; (method . mime-method-to-save)))
+(ctree-set-calist-strictly
+ 'mime-acting-condition
+ '((type . application)(subtype . octet-stream)
+ (mode . "play")
+ (method . mime-method-to-detect)
+ ))
+
(ctree-set-calist-with-default
'mime-acting-condition
'((mode . "extract")
(method . mime-method-to-save)))
-;; (ctree-set-calist-strictly
-;; 'mime-acting-condition
-;; '((type . text)(subtype . plain)(mode . "play")
-;; (method "tm-plain" nil 'file "" 'encoding 'mode 'name)
-;; ))
-;; (ctree-set-calist-strictly
-;; 'mime-acting-condition
-;; '((type . text)(subtype . plain)(mode . "print")
-;; (method "tm-plain" nil 'file "" 'encoding 'mode 'name)
-;; ))
-;; (ctree-set-calist-strictly
-;; 'mime-acting-condition
-;; '((type . text)(subtype . html)(mode . "play")
-;; (method "tm-html" nil 'file "" 'encoding 'mode 'name)
-;; ))
(ctree-set-calist-strictly
'mime-acting-condition
'((type . text)(subtype . x-rot13-47)(mode . "play")
(method . mime-method-to-display-caesar)
))
-;; (ctree-set-calist-strictly
-;; 'mime-acting-condition
-;; '((type . audio)(subtype . basic)(mode . "play")
-;; (method "tm-au" nil 'file "" 'encoding 'mode 'name)
-;; ))
-
-;; (ctree-set-calist-strictly
-;; 'mime-acting-condition
-;; '((type . image)(mode . "play")
-;; (method "tm-image" nil 'file "" 'encoding 'mode 'name)
-;; ))
-;; (ctree-set-calist-strictly
-;; 'mime-acting-condition
-;; '((type . image)(mode . "print")
-;; (method "tm-image" nil 'file "" 'encoding 'mode 'name)
-;; ))
-
-;; (ctree-set-calist-strictly
-;; 'mime-acting-condition
-;; '((type . video)(subtype . mpeg)(mode . "play")
-;; (method "tm-mpeg" nil 'file "" 'encoding 'mode 'name)
-;; ))
-
-;; (ctree-set-calist-strictly
-;; 'mime-acting-condition
-;; '((type . application)(subtype . postscript)(mode . "play")
-;; (method "tm-ps" nil 'file "" 'encoding 'mode 'name)
-;; ))
-;; (ctree-set-calist-strictly
-;; 'mime-acting-condition
-;; '((type . application)(subtype . postscript)(mode . "print")
-;; (method "tm-ps" nil 'file "" 'encoding 'mode 'name)
-;; ))
-
(ctree-set-calist-strictly
'mime-acting-condition
'((type . message)(subtype . rfc822)(mode . "play")
. mime-preview-quitting-method-for-mime-show-message-mode))
"Alist of major-mode vs. quitting-method of mime-view.")
-(defvar mime-view-over-to-previous-method-alist nil)
-(defvar mime-view-over-to-next-method-alist nil)
+(defvar mime-preview-over-to-previous-method-alist nil
+ "Alist of major-mode vs. over-to-previous-method of mime-view.")
-(defvar mime-view-show-summary-method nil
- "Alist of major-mode vs. show-summary-method.")
+(defvar mime-preview-over-to-next-method-alist nil
+ "Alist of major-mode vs. over-to-next-method of mime-view.")
;;; @ following method
))
(setq ne (point-max))
(widen)
- (put-text-property nb ne 'mime-view-raw-buffer raw-buffer)
(put-text-property nb ne 'mime-view-entity entity)
(goto-char ne)
(if children
(define-key mime-view-mode-map
"q" (function mime-preview-quit))
(define-key mime-view-mode-map
- "h" (function mime-preview-show-summary))
- (define-key mime-view-mode-map
"\C-c\C-x" (function mime-preview-kill-buffer))
;; (define-key mime-view-mode-map
;; "<" (function beginning-of-buffer))
e Decode current content as `extract mode'
C-c C-p Decode current content as `print mode'
a Followup to current content.
-x Display X-Face
q Quit
button-2 Move to point under the mouse cursor
and decode current content as `play mode'
;;; @@ following
;;;
-(defun mime-preview-original-major-mode (&optional recursive)
- "Return major-mode of original buffer.
-If a current buffer has mime-mother-buffer, return original major-mode
-of the mother-buffer."
- (if (and recursive mime-mother-buffer)
- (save-excursion
- (set-buffer mime-mother-buffer)
- (mime-preview-original-major-mode recursive)
- )
- (save-excursion
- (set-buffer
- (mime-entity-buffer
- (get-text-property (point-min) 'mime-view-entity)))
- major-mode)))
-
(defun mime-preview-follow-current-entity ()
"Write follow message to current entity.
It calls following-method selected from variable
(defun mime-preview-move-to-previous ()
"Move to previous entity.
If there is no previous entity, it calls function registered in
-variable `mime-view-over-to-previous-method-alist'."
+variable `mime-preview-over-to-previous-method-alist'."
(interactive)
(while (null (get-text-property (point) 'mime-view-entity))
(backward-char)
(mime-preview-move-to-previous)
)
(let ((f (assq (mime-preview-original-major-mode)
- mime-view-over-to-previous-method-alist)))
+ mime-preview-over-to-previous-method-alist)))
(if f
(funcall (cdr f))
))
(defun mime-preview-move-to-next ()
"Move to next entity.
If there is no previous entity, it calls function registered in
-variable `mime-view-over-to-next-method-alist'."
+variable `mime-preview-over-to-next-method-alist'."
(interactive)
(while (null (get-text-property (point) 'mime-view-entity))
(forward-char)
(mime-preview-move-to-next)
))
(let ((f (assq (mime-preview-original-major-mode)
- mime-view-over-to-next-method-alist)))
+ mime-preview-over-to-next-method-alist)))
(if f
(funcall (cdr f))
))
(defun mime-preview-scroll-up-entity (&optional h)
"Scroll up current entity.
If reached to (point-max), it calls function registered in variable
-`mime-view-over-to-next-method-alist'."
+`mime-preview-over-to-next-method-alist'."
(interactive)
(or h
(setq h (1- (window-height)))
)
(if (= (point) (point-max))
(let ((f (assq (mime-preview-original-major-mode)
- mime-view-over-to-next-method-alist)))
+ mime-preview-over-to-next-method-alist)))
(if f
(funcall (cdr f))
))
(defun mime-preview-scroll-down-entity (&optional h)
"Scroll down current entity.
If reached to (point-min), it calls function registered in variable
-`mime-view-over-to-previous-method-alist'."
+`mime-preview-over-to-previous-method-alist'."
(interactive)
(or h
(setq h (1- (window-height)))
)
(if (= (point) (point-min))
(let ((f (assq (mime-preview-original-major-mode)
- mime-view-over-to-previous-method-alist)))
+ mime-preview-over-to-previous-method-alist)))
(if f
(funcall (cdr f))
))
(funcall (cdr r))
)))
-(defun mime-preview-show-summary ()
- "Show summary.
-It calls function registered in variable
-`mime-view-show-summary-method'."
- (interactive)
- (let ((r (assq (mime-preview-original-major-mode)
- mime-view-show-summary-method)))
- (if r
- (funcall (cdr r))
- )))
-
(defun mime-preview-kill-buffer ()
(interactive)
(kill-buffer (current-buffer))
`(let ((color (color-name (face-background 'default))))
(prog1
(progn ,@body)
- (font-set-face-background 'default color
- (get-buffer gnus-article-buffer))
+ (font-set-face-background 'default color (current-buffer))
))
(cons 'progn body)))
(eval-when-compile (require 'cl))
-(defconst mime-module-version '("REMI" "Amaharashi" 1 6 0)
+(defconst mime-module-version '("REMI" "Ecch\e,D~\e(B-Kokubu" 1 6 1)
"Implementation name, version name and numbers of MIME-kernel package.")
(autoload 'mule-caesar-region "mule-caesar"