comparison lisp/play/doctor.el @ 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 eaa9acd9122c
children 18a818a2ee7c a1b34dec1104
comparison
equal deleted inserted replaced
63239:f48178f79206 63240:c1ed13b98cf0
57 (first (car vv)) 57 (first (car vv))
58 (ww (append (cdr vv) (list first)))) 58 (ww (append (cdr vv) (list first))))
59 (set what ww) 59 (set what ww)
60 first)) 60 first))
61 61
62 (defvar doctor-mode-map nil) 62 (define-derived-mode doctor-mode text-mode "Doctor"
63 (if doctor-mode-map
64 nil
65 (setq doctor-mode-map (make-sparse-keymap))
66 (define-key doctor-mode-map "\n" 'doctor-read-print)
67 (define-key doctor-mode-map "\r" 'doctor-ret-or-read))
68
69 (defun doctor-mode ()
70 "Major mode for running the Doctor (Eliza) program. 63 "Major mode for running the Doctor (Eliza) program.
71 Like Text mode with Auto Fill mode 64 Like Text mode with Auto Fill mode
72 except that RET when point is after a newline, or LFD at any time, 65 except that RET when point is after a newline, or LFD at any time,
73 reads the sentence before point, and prints the Doctor's answer." 66 reads the sentence before point, and prints the Doctor's answer."
74 (interactive)
75 (text-mode)
76 (make-doctor-variables) 67 (make-doctor-variables)
77 (use-local-map doctor-mode-map)
78 (setq major-mode 'doctor-mode)
79 (setq mode-name "Doctor")
80 (turn-on-auto-fill) 68 (turn-on-auto-fill)
81 (doctor-type '(i am the psychotherapist \. 69 (doctor-type '(i am the psychotherapist \.
82 (doc$ please) (doc$ describe) your (doc$ problems) \. 70 (doc$ please) (doc$ describe) your (doc$ problems) \.
83 each time you are finished talking, type \R\E\T twice \.)) 71 each time you are finished talking, type \R\E\T twice \.))
84 (insert "\n")) 72 (insert "\n"))
73
74 (define-key doctor-mode-map "\n" 'doctor-read-print)
75 (define-key doctor-mode-map "\r" 'doctor-ret-or-read)
85 76
86 (defun make-doctor-variables () 77 (defun make-doctor-variables ()
87 (make-local-variable 'typos) 78 (make-local-variable 'typos)
88 (setq typos 79 (setq typos
89 (mapcar (function (lambda (x) 80 (mapcar (function (lambda (x)