Mercurial > emacs
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) |