changeset 63240:c1ed13b98cf0

(doctor-mode-map): Remove defvar. (doctor-mode): Use define-derived-mode.
author Lute Kamstra <lute@gnu.org>
date Fri, 10 Jun 2005 12:03:48 +0000
parents f48178f79206
children 12caf71f9011
files lisp/play/doctor.el
diffstat 1 files changed, 4 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/play/doctor.el	Fri Jun 10 12:03:06 2005 +0000
+++ b/lisp/play/doctor.el	Fri Jun 10 12:03:48 2005 +0000
@@ -59,30 +59,21 @@
     (set what ww)
     first))
 
-(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