smime.el (smime-mode): Use define-derived-mode.
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 11 Nov 2010 23:45:47 +0000 (23:45 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Thu, 11 Nov 2010 23:45:47 +0000 (23:45 +0000)
smime.el (smime-mode-map): Move initialization into declaration.
smime.el (gnus-run-mode-hooks): Don't autoload.

lisp/ChangeLog
lisp/smime.el

index 24a8941..cd88fc7 100644 (file)
@@ -1,3 +1,9 @@
+2010-11-11  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * smime.el (smime-mode-map): Move initialization into declaration.
+       (gnus-run-mode-hooks): Don't autoload.
+       (smime-mode): Use define-derived-mode.
+
 2010-11-11  Glenn Morris  <rgm@gnu.org>
 
        * smime.el (from): Restrict declaration to XEmacs.
index b8ee4c1..5363a40 100644 (file)
@@ -649,20 +649,18 @@ A string or a list of strings is returned."
 
 (defvar smime-buffer "*SMIME*")
 
-(defvar smime-mode-map nil)
-(put 'smime-mode 'mode-class 'special)
-
-(unless smime-mode-map
-  (setq smime-mode-map (make-sparse-keymap))
-  (suppress-keymap smime-mode-map)
-
-  (define-key smime-mode-map "q" 'smime-exit)
-  (define-key smime-mode-map "f" 'smime-certificate-info))
+(defvar smime-mode-map
+  (let ((map (make-sparse-keymap)))
+    (suppress-keymap map)
+    (define-key map "q" 'smime-exit)
+    (define-key map "f" 'smime-certificate-info)
+    map))
 
-(autoload 'gnus-run-mode-hooks "gnus-util")
 (autoload 'gnus-completing-read "gnus-util")
 
-(defun smime-mode ()
+(put 'smime-mode 'mode-class 'special)
+(define-derived-mode smime-mode fundamental-mode ;special-mode
+  "SMIME"
   "Major mode for browsing, viewing and fetching certificates.
 
 All normal editing commands are switched off.
@@ -671,16 +669,10 @@ All normal editing commands are switched off.
 The following commands are available:
 
 \\{smime-mode-map}"
-  (interactive)
-  (kill-all-local-variables)
-  (setq major-mode 'smime-mode)
-  (setq mode-name "SMIME")
   (setq mode-line-process nil)
-  (use-local-map smime-mode-map)
   (buffer-disable-undo)
   (setq truncate-lines t)
-  (setq buffer-read-only t)
-  (gnus-run-mode-hooks 'smime-mode-hook))
+  (setq buffer-read-only t))
 
 (defun smime-certificate-info (certfile)
   (interactive "fCertificate file: ")