Paul Bowyer pbowyer@olynet.com writes:
Do I have some configuration issues, or is there some reason I can no longer use the *inferior-lisp* buffer for direct entry of lisp commands?
Hi Paul,
I still can't reproduce. To be sure, let's agree on the test case
(setq inferior-lisp-program "sbcl") (add-to-list 'load-path "/path/to/slime") (require 'slime-autoloads) (setq slime-contribs '(slime-fancy)) ;; or do you have slime-repl? M-x slime switch to *inferior lisp* buffer type (sb-ext:describe-compiler-policy) and RET
I'm doing this with emacs 23 and everything works as expected. Are you using the very latest slime? Some days ago I fixed some failing repl tests.
That said, my best bet is that some strange interaction might be trying to overwrite the REPL prompt in slime-repl.el, which has been recently marked as read-only.
Maybe this fix is in order, It simply binds inhibit-read-only to nil around slime-repl-emit's activities.
But I would like to reproduce before I push it.
diff --git a/contrib/slime-repl.el b/contrib/slime-repl.el index 2d74e94..77bc0eb 100644 --- a/contrib/slime-repl.el +++ b/contrib/slime-repl.el @@ -262,22 +262,23 @@ This is set to nil after displaying the buffer.")
(defun slime-repl-emit (string) ;; insert the string STRING in the output buffer - (with-current-buffer (slime-output-buffer) - (save-excursion - (goto-char slime-output-end) - (slime-save-marker slime-output-start - (slime-propertize-region '(face slime-repl-output-face - slime-repl-output t - rear-nonsticky (face)) - (insert-before-markers string) - (when (and (= (point) slime-repl-prompt-start-mark) - (not (bolp))) - (insert-before-markers "\n") - (set-marker slime-output-end (1- (point))))))) - (when slime-repl-popup-on-output - (setq slime-repl-popup-on-output nil) - (display-buffer (current-buffer))) - (slime-repl-show-maximum-output))) + (let ((inhibit-read-only t)) + (with-current-buffer (slime-output-buffer) + (save-excursion + (goto-char slime-output-end) + (slime-save-marker slime-output-start + (slime-propertize-region '(face slime-repl-output-face + slime-repl-output t + rear-nonsticky (face)) + (insert-before-markers string) + (when (and (= (point) slime-repl-prompt-start-mark) + (not (bolp))) + (insert-before-markers "\n") + (set-marker slime-output-end (1- (point))))))) + (when slime-repl-popup-on-output + (setq slime-repl-popup-on-output nil) + (display-buffer (current-buffer))) + (slime-repl-show-maximum-output))))
(defun slime-repl-emit-result (string &optional bol) ;; insert STRING and mark it as evaluation result