(doctor-mode-map): Remove defvar.
authorLute Kamstra <lute@gnu.org>
Fri, 10 Jun 2005 12:06:05 +0000 (12:06 +0000)
committerLute Kamstra <lute@gnu.org>
Fri, 10 Jun 2005 12:06:05 +0000 (12:06 +0000)
(doctor-mode): Use define-derived-mode.

lisp/ChangeLog
lisp/play/doctor.el

index 46a8302..689c3c4 100644 (file)
        (dungeon-mode-map): Rename to dun-mode-map.  Keep old name as an
        obsolete alias.
 
+       * play/doctor.el (doctor-mode-map): Remove defvar.
+       (doctor-mode): Use define-derived-mode.
+
+       * play/blackbox.el (blackbox-mode): Use run-mode-hooks.
+
 2005-06-10  Miles Bader  <miles@gnu.org>
 
        * textmodes/flyspell.el (flyspell-incorrect, flyspell-duplicate):
index 798abbc..7b81daa 100644 (file)
     (set what ww)
     first))
 \f
-(defvar doctor-mode-map nil)
-(if doctor-mode-map
-    nil
-  (setq doctor-mode-map (make-sparse-keymap))
-  (define-key doctor-mode-map "\n" 'doctor-read-print)
-  (define-key doctor-mode-map "\r" 'doctor-ret-or-read))
-
-(defun doctor-mode ()
+(define-derived-mode doctor-mode text-mode "Doctor"
   "Major mode for running the Doctor (Eliza) program.
 Like Text mode with Auto Fill mode
 except that RET when point is after a newline, or LFD at any time,
 reads the sentence before point, and prints the Doctor's answer."
-  (interactive)
-  (text-mode)
   (make-doctor-variables)
-  (use-local-map doctor-mode-map)
-  (setq major-mode 'doctor-mode)
-  (setq mode-name "Doctor")
   (turn-on-auto-fill)
   (doctor-type '(i am the psychotherapist \.
                 (doc$ please) (doc$ describe) your (doc$ problems) \.
                 each time you are finished talking, type \R\E\T twice \.))
   (insert "\n"))
 
+(define-key doctor-mode-map "\n" 'doctor-read-print)
+(define-key doctor-mode-map "\r" 'doctor-ret-or-read)
+
 (defun make-doctor-variables ()
   (make-local-variable 'typos)
   (setq typos