diff options
Diffstat (limited to 'lisp/progmodes/inf-lisp.el')
-rw-r--r-- | lisp/progmodes/inf-lisp.el | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/lisp/progmodes/inf-lisp.el b/lisp/progmodes/inf-lisp.el index 41ce378e966..109bda80170 100644 --- a/lisp/progmodes/inf-lisp.el +++ b/lisp/progmodes/inf-lisp.el @@ -216,7 +216,7 @@ buffer with \\[set-variable].") (put 'inferior-lisp-mode 'mode-class 'special) -(defun inferior-lisp-mode () +(define-derived-mode inferior-lisp-mode comint-mode "Inferior Lisp" "Major mode for interacting with an inferior Lisp process. Runs a Lisp interpreter as a subprocess of Emacs, with Lisp I/O through an Emacs buffer. Variable `inferior-lisp-program' controls which Lisp interpreter @@ -263,18 +263,11 @@ If `comint-use-prompt-regexp' is nil (the default), \\[comint-insert-input] on o Paragraphs are separated only by blank lines. Semicolons start comments. If you accidentally suspend your process, use \\[comint-continue-subjob] to continue it." - (interactive) - (delay-mode-hooks - (comint-mode)) (setq comint-prompt-regexp inferior-lisp-prompt) - (setq major-mode 'inferior-lisp-mode) - (setq mode-name "Inferior Lisp") (setq mode-line-process '(":%s")) (lisp-mode-variables t) - (use-local-map inferior-lisp-mode-map) ;c-c c-k for "kompile" file (setq comint-get-old-input (function lisp-get-old-input)) - (setq comint-input-filter (function lisp-input-filter)) - (run-mode-hooks 'inferior-lisp-mode-hook)) + (setq comint-input-filter (function lisp-input-filter))) (defun lisp-get-old-input () "Return a string containing the sexp ending at point." @@ -600,7 +593,7 @@ See variable `lisp-describe-sym-command'." ;; "Returns the current inferior Lisp process. ;; See variable `inferior-lisp-buffer'." (defun inferior-lisp-proc () - (let ((proc (get-buffer-process (if (eq major-mode 'inferior-lisp-mode) + (let ((proc (get-buffer-process (if (derived-mode-p 'inferior-lisp-mode) (current-buffer) inferior-lisp-buffer)))) (or proc |