+2002-08-19 Miles Bader <miles@gnu.org>
+
+ [original idea from Luc Teirlinck <teirllm@mail.auburn.edu>]
+ * comint.el (comint-inhibit-carriage-motion): New variable.
+ (comint-carriage-motion): Argument STRING removed. New arguments
+ START and END; interpret characters between START and END rather
+ than using special comint state.
+ (comint-output-filter): Call `comint-carriage-motion'.
+ (comint-output-filter-functions): Don't add `comint-carriage-motion'.
+ * ielm.el (inferior-emacs-lisp-mode): Give
+ `comint-inhibit-carriage-motion' a local value of t.
+
2002-08-18 Richard M. Stallman <rms@gnu.org>
* table.el: New file.
;;; ielm.el --- interaction mode for Emacs Lisp
-;; Copyright (C) 1994 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 2002 Free Software Foundation, Inc.
;; Author: David Smith <maa036@lancaster.ac.uk>
;; Maintainer: FSF
'(ielm-font-lock-keywords nil nil ((?: . "w") (?- . "w") (?* . "w"))))
;; A dummy process to keep comint happy. It will never get any input
- (if (comint-check-proc (current-buffer)) nil
+ (unless (comint-check-proc (current-buffer))
;; Was cat, but on non-Unix platforms that might not exist, so
;; use hexl instead, which is part of the Emacs distribution.
(start-process "ielm" (current-buffer) "hexl")
(process-kill-without-query (ielm-process))
(goto-char (point-max))
+
+ ;; Lisp output can include raw characters that confuse comint's
+ ;; carriage control code.
+ (set (make-local-variable 'comint-inhibit-carriage-motion) t)
+
;; Add a silly header
(insert ielm-header)
(ielm-set-pm (point-max))
(comint-output-filter (ielm-process) ielm-prompt)
(set-marker comint-last-input-start (ielm-pm))
(set-process-filter (get-buffer-process (current-buffer)) 'comint-output-filter))
+
(run-hooks 'ielm-mode-hook))
(defun ielm-get-old-input nil