;; Maintainer: MORIOKA Tomohiko <morioka@jaist.ac.jp>
;; Created: 1994/08/21 renamed from mime.el
;; Renamed: 1997/2/21 from tm-edit.el
-;; Version: $Revision: 0.45 $
+;; Version: $Revision: 0.52 $
;; Keywords: MIME, multimedia, multilingual, mail, news
;; This file is part of SEMI (SEMI is Emacs MIME Interfaces).
(require 'mime-view)
(require 'eword-encode)
(require 'signature)
+(require 'alist)
;;; @ version
;;;
(defconst mime-edit-RCS-ID
- "$Id: mime-edit.el,v 0.45 1997-02-25 06:18:07 tmorioka Exp $")
+ "$Id: mime-edit.el,v 0.52 1997-03-01 03:39:01 tmorioka Exp $")
(defconst mime-edit-version (get-version-string mime-edit-RCS-ID))
(iso-2022-int-1 7 "base64")
))
-(defsubst mime/encoding-name (transfer-level &optional not-omit)
+(defvar mime-transfer-level 7
+ "*A number of network transfer level. It should be bigger than 7.")
+(make-variable-buffer-local 'mime-transfer-level)
+
+(defsubst mime-encoding-name (transfer-level &optional not-omit)
(cond ((> transfer-level 8) "binary")
((= transfer-level 8) "8bit")
(not-omit "7bit")
))
-(defvar mime-edit-transfer-level 7
- "*A number of network transfer level. It should be bigger than 7.")
-(make-variable-buffer-local 'mime-edit-transfer-level)
-
-(defvar mime-edit-transfer-level-string
- (mime/encoding-name mime-edit-transfer-level 'not-omit)
+(defvar mime-transfer-level-string
+ (mime-encoding-name mime-transfer-level 'not-omit)
"*A string formatted version of mime/defaul-transfer-level")
-(make-variable-buffer-local 'mime-edit-transfer-level-string)
+(make-variable-buffer-local 'mime-transfer-level-string)
-(defun mime-edit-make-charset-default-encoding-alist (transfer-level)
+(defun mime-make-charset-default-encoding-alist (transfer-level)
(mapcar (function
(lambda (charset-type)
(let ((charset (car charset-type))
(encoding (nth 2 charset-type))
)
(if (<= type transfer-level)
- (cons charset (mime/encoding-name type))
+ (cons charset (mime-encoding-name type))
(cons charset encoding)
))))
mime-charset-type-list))
(defvar mime-edit-charset-default-encoding-alist
- (mime-edit-make-charset-default-encoding-alist mime-edit-transfer-level))
+ (mime-make-charset-default-encoding-alist mime-transfer-level))
(make-variable-buffer-local 'mime-edit-charset-default-encoding-alist)
;;; @@ about message inserting
(defconst mime-edit-mime-map (make-sparse-keymap)
"Keymap for MIME commands.")
+
;;; @ keymap and menu
;;;
mime-edit-minor-mime-map mime-prefix mime-edit-mime-map)
))
(add-minor-mode 'mime-edit-mode-flag
- '((" MIME-Edit " mime-edit-transfer-level-string))
+ '((" MIME-Edit " mime-transfer-level-string))
mime-edit-minor-mime-map
nil
'mime-edit-toggle-mode)
(t
(set-alist 'minor-mode-alist
'mime-edit-mode-flag
- '((" MIME-Edit " mime-edit-transfer-level-string))))
+ '((" MIME-Edit " mime-transfer-level-string))))
)
(defconst mime-edit-menu-title "MIME-Edit")
)
;;; end
+;;; @@ visible/invisible
+;;;
+
+(defmacro enable-invisible ())
+
+(defmacro end-of-invisible ())
+
+(cond (running-xemacs
+ (defun invisible-region (start end)
+ (if (save-excursion
+ (goto-char start)
+ (eq (following-char) ?\n)
+ )
+ (setq start (1+ start))
+ )
+ (put-text-property start end 'invisible t)
+ )
+ (defun invisible-p (pos)
+ (if (save-excursion
+ (goto-char pos)
+ (eq (following-char) ?\n)
+ )
+ (setq pos (1+ pos))
+ )
+ (get-text-property pos 'invisible)
+ )
+ )
+ (defun next-visible-point (pos)
+ (save-excursion
+ (if (save-excursion
+ (goto-char pos)
+ (eq (following-char) ?\n)
+ )
+ (setq pos (1+ pos))
+ )
+ (or (next-single-property-change pos 'invisible)
+ (point-max))
+ ))
+ (t
+ (defun invisible-region (start end)
+ (if (save-excursion
+ (goto-char (1- end))
+ (eq (following-char) ?\n)
+ )
+ (setq end (1- end))
+ )
+ (put-text-property start end 'invisible t)
+ )
+ (defun invisible-p (pos)
+ (get-text-property pos 'invisible)
+ )
+ (defun next-visible-point (pos)
+ (save-excursion
+ (goto-char (next-single-property-change pos 'invisible))
+ (if (eq (following-char) ?\n)
+ (forward-char)
+ )
+ (point)
+ ))
+ ))
+
+(defun visible-region (start end)
+ (put-text-property start end 'invisible nil)
+ )
+
;;; @ functions
;;;
Hide a non-textual body message encoded in base64 after insertion
if non-nil.
- mime-edit-transfer-level
+ mime-transfer-level
A number of network transfer level. It should be bigger than 7.
If you are in 8bit-through environment, please set 8.
;; Set transfer level into mode line
;;
- (setq mime-edit-transfer-level-string
- (mime/encoding-name mime-edit-transfer-level 'not-omit))
+ (setq mime-transfer-level-string
+ (mime-encoding-name mime-transfer-level 'not-omit))
(force-mode-line-update)
;; Define menu. Menus for other emacs implementations are
))
)))
+(defsubst replace-space-with-underline (str)
+ (mapconcat (function
+ (lambda (arg)
+ (char-to-string
+ (if (eq arg ?\ )
+ ?_
+ arg)))) str "")
+ )
+
+(defun mime-edit-make-boundary ()
+ (concat mime-multipart-boundary "_"
+ (replace-space-with-underline (current-time-string))
+ ))
+
(defun mime-edit-translate-body ()
"Encode the tagged MIME body in current buffer in MIME compliant message."
(interactive)
(save-excursion
- (let ((boundary
- (concat mime-multipart-boundary "_"
- (replace-space-with-underline (current-time-string))
- ))
+ (let ((boundary (mime-edit-make-boundary))
(i 1)
ret)
(while (mime-edit-process-multipart-1
t)))
(defun mime-edit-translate-region (beg end &optional boundary multipart)
- (if (null boundary)
- (setq boundary
- (concat mime-multipart-boundary "_"
- (replace-space-with-underline (current-time-string))))
- )
+ (or boundary
+ (setq boundary (mime-edit-make-boundary))
+ )
(save-excursion
(save-restriction
(narrow-to-region beg end)
Optional TRANSFER-LEVEL is a number of transfer-level, 7 or 8."
(interactive)
(if (numberp transfer-level)
- (setq mime-edit-transfer-level transfer-level)
- (if (< mime-edit-transfer-level 8)
- (setq mime-edit-transfer-level 8)
- (setq mime-edit-transfer-level 7)
+ (setq mime-transfer-level transfer-level)
+ (if (< mime-transfer-level 8)
+ (setq mime-transfer-level 8)
+ (setq mime-transfer-level 7)
))
(setq mime-edit-charset-default-encoding-alist
- (mime-edit-make-charset-default-encoding-alist
- mime-edit-transfer-level))
+ (mime-make-charset-default-encoding-alist mime-transfer-level))
(message (format "Current transfer-level is %d bit"
- mime-edit-transfer-level))
- (setq mime-edit-transfer-level-string
- (mime/encoding-name mime-edit-transfer-level 'not-omit))
+ mime-transfer-level))
+ (setq mime-transfer-level-string
+ (mime-encoding-name mime-transfer-level 'not-omit))
(force-mode-line-update)
)