;ELC ;;; compiled by kwzh@hal.gnu.ai.mit.edu on Mon Apr 17 19:43:32 1995 ;;; from file /gd/gnu/emacs/19.0/lisp/ielm.el ;;; emacs version 19.28.90.26. ;;; bytecomp version FSF 2.10 ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19"))) (error "`/gd/gnu/emacs/19.0/lisp/ielm.el' was compiled for Emacs 19")) (byte-code "ÀÁ!ˆÀÂ!‡" [require comint pp] 2) #@39 *If non-nil, IELM will beep on error. (defvar ielm-noisy t (#$ . -522)) #@22 Prompt used in IELM. (defvar ielm-prompt "ELISP> " (#$ . 600)) #@232 *Controls whether \\[ielm-return] has intelligent behaviour in IELM. If non-nil, \[ielm-return] evaluates input for complete sexps, or inserts a newline and indents for incomplete sexps. If nil, always inserts newlines. (defvar ielm-dynamic-return t (#$ . -670)) #@321 *Force multiline inputs to start from column zero? If non-nil, after entering the first line of an incomplete sexp, a newline will be inserted after the prompt, moving the input to the next line. This gives more frame width for large indented sexps, and allows functions such as `edebug-defun' to work with such inputs. (defvar ielm-dynamic-multiline-inputs t (#$ . -951)) #@69 *Hooks to be run when IELM (`inferior-emacs-lisp-mode') is started. (defvar ielm-mode-hook nil (#$ . -1330)) #@78 Buffer in which IELM sexps will be evaluated. This variable is buffer-local. (defvar ielm-working-buffer nil (#$ . 1445)) #@42 Message to display when IELM is started. (defvar ielm-header (byte-code "ÀÁÂÃOÄÅR‡" ["*** Welcome to IELM version " "$Revision: 1.4 $" 11 -2 " *** Type (describe-mode) for help.\n" "IELM has ABSOLUTELY NO WARRANTY; type (describe-no-warranty) for details.\n"] 4) (#$ . 1573)) (byte-code "ÀÁ!„ÂÁ B „kÄÅ\"ƒ$Ç È  \"ˆ‚)Ê BË ÌÍ#ˆË ÎÏ#ˆË ÐÑ#ˆË ÒÓ#ˆË ÔÕ#ˆË Ö×#ˆË ØÙ#ˆË ÚÛ#ˆË ÜÝ#ˆË Þß#ˆË àá#ˆÂ‡" [boundp ielm-map nil current-load-list string-match "Lucid" emacs-version make-sparse-keymap set-keymap-parent comint-mode-map keymap define-key " " comint-dynamic-complete " " ielm-return "\n" ielm-send-input "" eval-defun " " lisp-complete-symbol "" indent-sexp "q" lisp-fill-paragraph "" backward-delete-char-untabify "" ielm-change-working-buffer "" ielm-display-working-buffer "" ielm-print-working-buffer] 4) #@48 Possibly indent the current line as lisp code. (defalias 'ielm-tab #[nil "hÀ=„ hzÁ=… ˆÃ‡" [10 32 ielm-indent-line t] 2 (#$ . 2409) nil]) #@40 Complete the lisp symbol before point. (defalias 'ielm-complete-symbol #[nil "À ÂÃ!‰…À\f!Æ ˆ À U?†*\fƒ' À\f!U?‚*ÂÃ!+‡" [buffer-modified-tick btick get-buffer "*Completions*" cbuffer ctick lisp-complete-symbol] 4 (#$ . 2556)]) #@61 Dynamically complete filename before point, if in a string. (defalias 'ielm-complete-filename #[nil "ÀÁ\n`\"8… à ‡" [3 parse-partial-sexp comint-last-input-start comint-dynamic-complete-filename] 4 (#$ . 2796)]) #@66 Indent the current line as Lisp code if it is not a prompt line. (defalias 'ielm-indent-line #[nil "ŠÀyˆÁ\n!)?…à ‡" [0 looking-at comint-prompt-regexp lisp-indent-line] 2 (#$ . 3015)]) #@64 Print the current IELM working buffer's name in the echo area. (defalias 'ielm-print-working-buffer #[nil "ÀÁ !\"‡" [message "The current working buffer is: %s" buffer-name ielm-working-buffer] 4 (#$ . 3208) nil]) #@147 Display the current IELM working buffer. Don't forget that selecting that buffer will change its value of `point' to its value of `window-point'! (defalias 'ielm-display-working-buffer #[nil "À !ˆÂ ‡" [display-buffer ielm-working-buffer ielm-print-working-buffer] 2 (#$ . 3430) nil]) #@209 Change the current IELM working buffer to BUF. This is the buffer in which all sexps entered at the IELM prompt are evaluated. You can achieve the same effect with a call to `set-buffer' at the IELM prompt. (defalias 'ielm-change-working-buffer #[(buf) "À !† ÂÃ!Å ‡" [get-buffer buf error "No such buffer" ielm-working-buffer ielm-print-working-buffer] 2 (#$ . 3721) "bSet working buffer to: "]) #@223 Newline and indent, or evaluate the sexp before the prompt. Complete sexps are evaluated; for incomplete sexps inserts a newline and indents. If however `ielm-dynamic-return' is nil, this always simply inserts a newline. (defalias 'ielm-return #[nil "ƒ@ŠÁˆÂà `\")‰@ÅWƒ!Æ\f8„!Ç ‚>ƒ<ŠÉyˆÊ !)ƒ<ŠÃ bˆÌÅ!ˆ)Í )‡Ì ‡" [ielm-dynamic-return nil parse-partial-sexp ielm-pm state 1 3 ielm-send-input ielm-dynamic-multiline-inputs 0 looking-at comint-prompt-regexp newline newline-and-indent] 4 (#$ . 4127) nil]) (defalias 'ielm-input-sender #[(proc input) "‰‡" [input ielm-input] 2]) #@54 Evaluate the Emacs Lisp expression after the prompt. (defalias 'ielm-send-input #[nil "pÀà ˆÄ !*‡" [nil ielm-input buf comint-send-input ielm-eval-input] 2 (#$ . 4720) nil]) #@45 Return non-nil if STRING is all whitespace. (defalias 'ielm-is-whitespace #[(string) "Á˜†\nÂÃ\"‡" [string "" string-match "\\`[ \n]+\\'"] 3 (#$ . 4902)]) (defalias 'ielm-format-errors #[(errlist) "À\nƒ Ã\n@!ÄQ\nA‰„ ÅÆO)‡" ["" result errlist prin1-to-string ", " 0 -2] 4]) (defalias 'ielm-format-error #[(err) "ÀÁ\n@ÃN†\nÄ\nAƒÀÅÆ\nA!\"‚Ç#‡" [format "%s%s" err error-message "Peculiar error" ": %s" ielm-format-errors ""] 7]) #@72 Evaluate the Lisp expression IELM-STRING, and pretty-print the result. (defalias 'ielm-eval-input #[(ielm-string) "À‰‰‰Á\nà  \nË\f!„«ÍÎψ„`Ð\n!„6ÑÒp‚`Ë\f ÀO!ƒZŠ\nqˆÍÙÚˆ,‚`ÛÜ \n=„mÝÞ \"ˆ \fbˆ„zÍßàˆƒ™!ƒ‡â ˆãäR‰P‚¥åP&Pçè \".‡" [nil "" ielm-working-buffer ielm-pm ielm-pmark ielm-wbuf ielm-output ielm-error-type ielm-result ielm-pos ielm-form ielm-is-whitespace ielm-string err (byte-code "À !‰@ A)À‡" [nil rout read-from-string ielm-string ielm-form ielm-pos] 3) ((error (byte-code "À !ÃÀ‡" [ielm-format-error err ielm-result "Read error" ielm-error-type] 2))) buffer-name "Working buffer has been killed" "IELM Error" : :: ::: :::save ::save :save (byte-code " \npÇ! p\n qˆ,LJ" [:save ::save :::save ielm-obuf ::: :: : eval ielm-form ielm-result ielm-wbuf] 4) ((error (byte-code "À !ÃÀ‡" [ielm-format-error err ielm-result "Eval error" ielm-error-type] 2)) (quit (byte-code "ÀÂć" ["Quit during evaluation" ielm-result "Eval error" ielm-error-type nil] 1))) "IELM error" "More than one sexp in input" message "current buffer is now: %s" (byte-code "Á\n!PÁ‡" [ielm-output pp-to-string ielm-result] 3) ((error (byte-code "ÀÂć" ["IELM Error" ielm-error-type "Error during pretty-printing (bug in pp)" ielm-result nil] 1)) (quit (byte-code "ÀÂć" ["IELM Error" ielm-error-type "Quit during pretty-printing" ielm-result nil] 1))) ielm-noisy ding "*** " " *** " "\n" ielm-prompt comint-output-filter ielm-process] 8 (#$ . 5348)]) (defalias 'ielm-process #[nil "Àp!‡" [get-buffer-process] 2]) (defalias 'ielm-pm #[nil "ÀÁp!!‡" [process-mark get-buffer-process] 3]) (defalias 'ielm-set-pm #[(pos) "ÀÁp!!\nÓ‡" [process-mark get-buffer-process pos nil] 3]) #@1741 Major mode for interactively evaluating Emacs Lisp expressions. Uses the interface provided by `comint-mode' (which see). * \\[ielm-send-input] evaluates the sexp following the prompt. There must be at most one top-level sexp per prompt. * \[ielm-return] inserts a newline and indents, or evaluates a complete expression (but see variable `ielm-dynamic-return'). Inputs longer than one line are moved to the line following the prompt (but see variable `ielm-dynamic-multiline-inputs'). * \[comint-dynamic-complete] completes Lisp symbols (or filenames, within strings), or indents the line if there is nothing to complete. During evaluations, the values of the variables `:', `::', and `:::' are the results of the previous, second previous and third previous evaluations respectively. The current working buffer may be changed (with a call to `set-buffer', or with \[ielm-change-working-buffer]), and its value is preserved between successive evaluations. In this way, expressions may be evaluated in a different buffer than the *ielm* buffer. Display the name of the working buffer with \[ielm-print-working-buffer], or the buffer itself with \[ielm-display-working-buffer]. Expressions evaluated by IELM are not subject to `debug-on-quit' or `debug-on-error'. The behaviour of IELM may be customised with the following variables: * To stop beeping on error, set `ielm-noisy' to nil * If you don't like the prompt, you can change it by setting `ielm-prompt'. * Set `ielm-dynamic-return' to nil for bindings like `lisp-interaction-mode' * Entry to this mode runs `comint-mode-hook' and `ielm-mode-hook' (in that order). Customised bindings may be defined in `ielm-map', which currently contains: \{ielm-map} (defalias 'inferior-emacs-lisp-mode #[nil "À ˆÁ !PÅÆ!ˆ\fÇÉ\nË\fÍÏÑÓ!ˆÕ!ˆÅ×!ˆÅØ!ˆpÙÉÅÚ!ˆÉÅÛ!ˆÉÅÜ!ˆÝp!„Þßpà#ˆáâ !ˆdbˆ#cˆäd!ˆåâ \"ˆ&ç É“ˆèép!å\"ˆêë!‡" [comint-mode "^" regexp-quote ielm-prompt comint-prompt-regexp make-local-variable paragraph-start ielm-input-sender comint-input-sender nil comint-process-echoes (ielm-tab comint-replace-by-expanded-history ielm-complete-filename ielm-complete-symbol) comint-dynamic-complete-functions ielm-get-old-input comint-get-old-input inferior-emacs-lisp-mode major-mode "IELM" mode-name use-local-map ielm-map set-syntax-table emacs-lisp-mode-syntax-table indent-line-function ielm-working-buffer ielm-indent-line : :: ::: comint-check-proc start-process "ielm" "cat" process-kill-without-query ielm-process ielm-header ielm-set-pm comint-output-filter comint-last-input-start ielm-pm set-process-filter get-buffer-process run-hooks ielm-mode-hook] 4 (#$ . 7122) nil]) (defalias 'ielm-get-old-input #[nil "ŠÀyˆÁ\n!„Ã\n!ˆÄ ˆ`ÅÆ!ˆ`{)‡" [0 looking-at comint-prompt-regexp re-search-backward comint-skip-prompt forward-sexp 1] 3]) #@117 Interactively evaluate Emacs Lisp expressions. Switches to the buffer `*ielm*', or creates it if it does not exist. (defalias 'ielm #[nil "ÀÁ!„ŠÂÁ!qˆÃ ˆ)ÄÁ!‡" [comint-check-proc "*ielm*" get-buffer-create inferior-emacs-lisp-mode pop-to-buffer] 2 (#$ . 9972) nil])