X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/7ad8fe5e2876518a8f33b80050f98dab4ff78398..73b0cd50031a714347109169ceb8bacae338612a:/lisp/progmodes/inf-lisp.el diff --git a/lisp/progmodes/inf-lisp.el b/lisp/progmodes/inf-lisp.el index 2c27501d17..5391c8d909 100644 --- a/lisp/progmodes/inf-lisp.el +++ b/lisp/progmodes/inf-lisp.el @@ -1,6 +1,6 @@ ;;; inf-lisp.el --- an inferior-lisp mode -;; Copyright (C) 1988, 1993, 1994, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +;; Copyright (C) 1988, 1993-1994, 2001-2011 ;; Free Software Foundation, Inc. ;; Author: Olin Shivers @@ -72,7 +72,7 @@ ;;;###autoload (defcustom inferior-lisp-filter-regexp - "\\`\\s *\\(:\\(\\w\\|\\s_\\)\\)?\\s *\\'" + (purecopy "\\`\\s *\\(:\\(\\w\\|\\s_\\)\\)?\\s *\\'") "*What not to save on inferior Lisp's input history. Input matching this regexp is not saved on the input history in Inferior Lisp mode. Default is whitespace followed by 0 or 1 single-letter colon-keyword @@ -80,19 +80,17 @@ mode. Default is whitespace followed by 0 or 1 single-letter colon-keyword :type 'regexp :group 'inferior-lisp) -(defvar inferior-lisp-mode-map nil) -(unless inferior-lisp-mode-map - (setq inferior-lisp-mode-map (copy-keymap comint-mode-map)) - (set-keymap-parent inferior-lisp-mode-map lisp-mode-shared-map) - (define-key inferior-lisp-mode-map "\C-x\C-e" 'lisp-eval-last-sexp) - (define-key inferior-lisp-mode-map "\C-c\C-l" 'lisp-load-file) - (define-key inferior-lisp-mode-map "\C-c\C-k" 'lisp-compile-file) - (define-key inferior-lisp-mode-map "\C-c\C-a" 'lisp-show-arglist) - (define-key inferior-lisp-mode-map "\C-c\C-d" 'lisp-describe-sym) - (define-key inferior-lisp-mode-map "\C-c\C-f" - 'lisp-show-function-documentation) - (define-key inferior-lisp-mode-map "\C-c\C-v" - 'lisp-show-variable-documentation)) +(defvar inferior-lisp-mode-map + (let ((map (copy-keymap comint-mode-map))) + (set-keymap-parent map lisp-mode-shared-map) + (define-key map "\C-x\C-e" 'lisp-eval-last-sexp) + (define-key map "\C-c\C-l" 'lisp-load-file) + (define-key map "\C-c\C-k" 'lisp-compile-file) + (define-key map "\C-c\C-a" 'lisp-show-arglist) + (define-key map "\C-c\C-d" 'lisp-describe-sym) + (define-key map "\C-c\C-f" 'lisp-show-function-documentation) + (define-key map "\C-c\C-v" 'lisp-show-variable-documentation) + map)) ;;; These commands augment Lisp mode, so you can process Lisp code in ;;; the source files. @@ -141,13 +139,13 @@ mode. Default is whitespace followed by 0 or 1 single-letter colon-keyword 'lisp-show-variable-documentation)) ;;;###autoload -(defcustom inferior-lisp-program "lisp" +(defcustom inferior-lisp-program (purecopy "lisp") "*Program name for invoking an inferior Lisp in Inferior Lisp mode." :type 'string :group 'inferior-lisp) ;;;###autoload -(defcustom inferior-lisp-load-command "(load \"%s\")\n" +(defcustom inferior-lisp-load-command (purecopy "(load \"%s\")\n") "*Format-string for building a Lisp expression to load a file. This format string should use `%s' to substitute a file name and should result in a Lisp expression that will command the inferior Lisp @@ -159,7 +157,7 @@ but it works only in Common Lisp." :group 'inferior-lisp) ;;;###autoload -(defcustom inferior-lisp-prompt "^[^> \n]*>+:? *" +(defcustom inferior-lisp-prompt (purecopy "^[^> \n]*>+:? *") "Regexp to recognize prompts in the Inferior Lisp mode. Defaults to \"^[^> \\n]*>+:? *\", which works pretty good for Lucid, kcl, and franz. This variable is used to initialize `comint-prompt-regexp' in the @@ -214,11 +212,11 @@ buffer with \\[set-variable].") ;;;###autoload (defvar inferior-lisp-mode-hook '() - "*Hook for customising Inferior Lisp mode.") + "*Hook for customizing Inferior Lisp mode.") (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 @@ -265,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." @@ -308,7 +299,7 @@ of `inferior-lisp-program'). Runs the hooks from (inferior-lisp-mode))) (setq inferior-lisp-buffer "*inferior-lisp*") (pop-to-buffer "*inferior-lisp*")) -;;;###autoload (add-hook 'same-window-buffer-names "*inferior-lisp*") +;;;###autoload (add-hook 'same-window-buffer-names (purecopy "*inferior-lisp*")) ;;;###autoload (defalias 'run-lisp 'inferior-lisp) @@ -602,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 @@ -662,5 +653,4 @@ See variable `lisp-describe-sym-command'." (provide 'inf-lisp) -;; arch-tag: 5b74abc3-a085-4b91-8ab8-8da6899d3b92 ;;; inf-lisp.el ends here