Trying to start ielm results in the lisp backtrace below. A possible fix
is attached.
Signaling: (setting-constant : nil)
(setq : nil)
)
inferior-emacs-lisp-mode()
(save-excursion (set-buffer (get-buffer-create "*ielm*"))
(inferior-emacs-lisp-mode))
)
(if (comint-check-proc "*ielm*") nil (save-excursion (set-buffer ...)
(inferior-emacs-lisp-mode)))
)
(lambda nil "Interactively evaluate Emacs Lisp expressions.\nSwitches to the buffer
`*ielm*', or creates it if it does not exist." (interactive) (if
(comint-check-proc "*ielm*") nil (save-excursion ... ...)) (pop-to-buffer
"*ielm*"))()
call-interactively(ielm)
command-execute(ielm t)
execute-extended-command(nil)
call-interactively(execute-extended-command)
recursive-edit()
byte-code("..." [pop-to-buffer debugger-buffer erase-buffer t 50 print-length
print-escape-newlines standard-output backtrace debugger-mode re-search-forward "\n[*
] debug(" 1 debugger-reenable debugger-args (lambda debug) "Entering:\n"
debug backtrace-debug 3 delete-char ?\* 0 exit "Return value: " debugger-value
prin1 ?\n ?\ error "Signaling: " "Beginning evaluation of function call
form:\n" nil message "" buffer-read-only inhibit-trace recursive-edit] 3)
debug(error (undefined-keystroke-sequence [#<keypress-event control-X>
#<keypress-event control-A>]))
Here is the patch:
--- xemacs/xemacs-21.0-b47/packages/lisp/xemacs-devel/ielm.el Sun Jan 25 20:24:59 1998
+++ ./ielm.el Sat Jul 11 23:29:57 1998
@@ -301,15 +301,15 @@
(if (ielm-is-whitespace (substring ielm-string ielm-pos))
;; need this awful let convolution to work around
;; an Emacs bug involving local vbls and let binding
- (let ((:save :)
- (::save ::)
- (:::save :::))
+ (let ((ielm-:save ielm-:)
+ (ielm-::save ielm-::)
+ (ielm-:::save ielm-:::))
(save-excursion
(set-buffer ielm-working-buffer)
(condition-case err
- (let ((: :save)
- (:: ::save)
- (::: :::save)
+ (let ((ielm-: ielm-:save)
+ (ielm-:: ielm-::save)
+ (ielm-::: ielm-:::save)
(ielm-obuf (current-buffer)))
(setq ielm-result (eval ielm-form))
(setq ielm-wbuf (current-buffer))
@@ -346,9 +346,9 @@
(setq ielm-output (concat ielm-output "*** " ielm-error-type " ***
"))
(setq ielm-output (concat ielm-output ielm-result)))
;; There was no error, so shift the ::: values
- (setq ::: ::)
- (setq :: :)
- (setq : ielm-result))
+ (setq ielm-::: ielm-::)
+ (setq ielm-:: ielm-:)
+ (setq ielm-: ielm-result))
(setq ielm-output (concat ielm-output "\n"))))
(setq ielm-output (concat ielm-output ielm-prompt))
(comint-output-filter (ielm-process) ielm-output)))
@@ -386,9 +386,9 @@
* \\[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.
+During evaluations, the values of the variables `ielm-:', `ielm-::', and
+`ielm-:::' 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
@@ -436,12 +436,12 @@
(setq fill-paragraph-function 'lisp-fill-paragraph)
;; Value holders
- (setq : nil)
- (make-local-variable ':)
- (setq :: nil)
- (make-local-variable '::)
- (setq ::: nil)
- (make-local-variable ':::)
+ (setq ielm-: nil)
+ (make-local-variable 'ielm-:)
+ (setq ielm-:: nil)
+ (make-local-variable 'ielm-::)
+ (setq ielm-::: nil)
+ (make-local-variable 'ielm-:::)
;; font-lock support
(make-local-variable 'font-lock-defaults)
Show replies by date