-(defun mime-edit-define-keymap (keymap)
- "Add mime-editor commands to KEYMAP."
- (if (not (keymapp keymap))
- nil
- (define-key keymap "\C-t" 'mime-edit-insert-text)
- (define-key keymap "\C-i" 'mime-edit-insert-file)
- (define-key keymap "\C-e" 'mime-edit-insert-external)
- (define-key keymap "\C-v" 'mime-edit-insert-voice)
- (define-key keymap "\C-y" 'mime-edit-insert-message)
- (define-key keymap "\C-m" 'mime-edit-insert-mail)
- (define-key keymap "\C-w" 'mime-edit-insert-signature)
- (define-key keymap "\C-s" 'mime-edit-insert-signature)
- (define-key keymap "\C-k" 'mime-edit-insert-key)
- (define-key keymap "t" 'mime-edit-insert-tag)
- (define-key keymap "a" 'mime-edit-enclose-alternative-region)
- (define-key keymap "p" 'mime-edit-enclose-parallel-region)
- (define-key keymap "m" 'mime-edit-enclose-mixed-region)
- (define-key keymap "d" 'mime-edit-enclose-digest-region)
- (define-key keymap "s" 'mime-edit-enclose-signed-region)
- (define-key keymap "e" 'mime-edit-enclose-encrypted-region)
- (define-key keymap "q" 'mime-edit-enclose-quote-region)
- (define-key keymap "7" 'mime-edit-set-transfer-level-7bit)
- (define-key keymap "8" 'mime-edit-set-transfer-level-8bit)
- (define-key keymap "/" 'mime-edit-set-split)
- (define-key keymap "v" 'mime-edit-set-sign)
- (define-key keymap "h" 'mime-edit-set-encrypt)
- (define-key keymap "\C-p" 'mime-edit-preview-message)
- (define-key keymap "\C-z" 'mime-edit-exit)
- (define-key keymap "?" 'mime-edit-help)
- ))
-
-(mime-edit-define-keymap mime-edit-mime-map)
-
-(defun mime-edit-toggle-mode ()
- (interactive)
- (if mime-edit-mode-flag
- (mime-edit-exit 'nomime)
- (mime-edit-mode)
- ))
-
-(cond (running-xemacs
- (defconst mime-edit-minor-mime-map nil "Keymap for MIME commands.")
- (or mime-edit-minor-mime-map
- (progn
- (setq mime-edit-minor-mime-map
- (make-sparse-keymap 'mime-edit-minor-mime-map))
- (define-key
- 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-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))))
- )
+(defvar mime-edit-mode-entity-prefix "\C-c\C-x"
+ "Keymap prefix for MIME-Edit mode commands to insert entity or set status.")
+(defvar mime-edit-mode-entity-map (make-sparse-keymap)
+ "Keymap for MIME-Edit mode commands to insert entity or set status.")
+
+(define-key mime-edit-mode-entity-map "\C-t" 'mime-edit-insert-text)
+(define-key mime-edit-mode-entity-map "\C-i" 'mime-edit-insert-file)
+(define-key mime-edit-mode-entity-map "\C-e" 'mime-edit-insert-external)
+(define-key mime-edit-mode-entity-map "\C-v" 'mime-edit-insert-voice)
+(define-key mime-edit-mode-entity-map "\C-y" 'mime-edit-insert-message)
+(define-key mime-edit-mode-entity-map "\C-m" 'mime-edit-insert-mail)
+(define-key mime-edit-mode-entity-map "\C-w" 'mime-edit-insert-signature)
+(define-key mime-edit-mode-entity-map "\C-s" 'mime-edit-insert-signature)
+(define-key mime-edit-mode-entity-map "\C-k" 'mime-edit-insert-key)
+(define-key mime-edit-mode-entity-map "t" 'mime-edit-insert-tag)
+
+(define-key mime-edit-mode-entity-map "7" 'mime-edit-set-transfer-level-7bit)
+(define-key mime-edit-mode-entity-map "8" 'mime-edit-set-transfer-level-8bit)
+(define-key mime-edit-mode-entity-map "/" 'mime-edit-set-split)
+(define-key mime-edit-mode-entity-map "s" 'mime-edit-set-sign)
+(define-key mime-edit-mode-entity-map "v" 'mime-edit-set-sign)
+(define-key mime-edit-mode-entity-map "e" 'mime-edit-set-encrypt)
+(define-key mime-edit-mode-entity-map "h" 'mime-edit-set-encrypt)
+(define-key mime-edit-mode-entity-map "p" 'mime-edit-preview-message)
+(define-key mime-edit-mode-entity-map "\C-z" 'mime-edit-exit)
+(define-key mime-edit-mode-entity-map "?" 'mime-edit-help)
+
+(defvar mime-edit-mode-enclosure-prefix "\C-c\C-m"
+ "Keymap prefix for MIME-Edit mode commands about enclosure.")
+(defvar mime-edit-mode-enclosure-map (make-sparse-keymap)
+ "Keymap for MIME-Edit mode commands about enclosure.")
+
+(define-key mime-edit-mode-enclosure-map
+ "\C-a" 'mime-edit-enclose-alternative-region)
+(define-key mime-edit-mode-enclosure-map
+ "\C-p" 'mime-edit-enclose-parallel-region)
+(define-key mime-edit-mode-enclosure-map
+ "\C-m" 'mime-edit-enclose-mixed-region)
+(define-key mime-edit-mode-enclosure-map
+ "\C-d" 'mime-edit-enclose-digest-region)
+(define-key mime-edit-mode-enclosure-map
+ "\C-s" 'mime-edit-enclose-signed-region)
+(define-key mime-edit-mode-enclosure-map
+ "\C-e" 'mime-edit-enclose-encrypted-region)
+(define-key mime-edit-mode-enclosure-map
+ "\C-q" 'mime-edit-enclose-quote-region)
+
+(defvar mime-edit-mode-map (make-sparse-keymap)
+ "Keymap for MIME-Edit mode commands.")
+(define-key mime-edit-mode-map
+ mime-edit-mode-entity-prefix mime-edit-mode-entity-map)
+(define-key mime-edit-mode-map
+ mime-edit-mode-enclosure-prefix mime-edit-mode-enclosure-map)