(const this))
:group 'comint)
-(defcustom comint-scroll-to-bottom-on-output nil
- "*Controls whether interpreter output causes window to scroll.
-If nil, then do not scroll. If t or `all', scroll all windows showing buffer.
-If `this', scroll only the selected window.
-If `others', scroll only those that are not the selected window.
+(defcustom comint-move-point-for-output nil
+ "*Controls whether interpreter output moves point to the end of the output.
+If nil, then output never moves point to the output.
+ (If the output occurs at point, it is inserted before point.)
+If t or `all', move point in all windows showing the buffer.
+If `this', move point only the selected window.
+If `others', move point only in other windows, not in the selected window.
The default is nil.
-See variable `comint-scroll-show-maximum-output' and function
-`comint-postoutput-scroll-to-bottom'. This variable is buffer-local."
+See the variable `comint-scroll-show-maximum-output' and the function
+`comint-postoutput-scroll-to-bottom'.
+This variable is buffer-local in all comint buffers."
:type '(choice (const :tag "off" nil)
(const t)
(const all)
(const others))
:group 'comint)
-(defcustom comint-scroll-show-maximum-output t
- "*Controls how interpreter output causes window to scroll.
-If non-nil, then show the maximum output when the window is scrolled.
+(defvaralias 'comint-scroll-to-bottom-on-output 'comint-move-point-for-output)
-See variable `comint-scroll-to-bottom-on-output' and function
-`comint-postoutput-scroll-to-bottom'. This variable is buffer-local."
+(defcustom comint-scroll-show-maximum-output t
+ "*Controls how to scroll due to interpreter output.
+This variable applies when point is at the end of the buffer
+\(either because it was originally there, or because
+`comint-move-point-for-output' said to move it there)
+and output from the subprocess is inserted.
+
+Non-nil means scroll so that the window is full of text
+and point is on the last line. A value of nil
+means don't do anyting special--scroll normally.
+
+See also the variable `comint-move-point-for-output' and the function
+`comint-postoutput-scroll-to-bottom'.
+This variable is buffer-local in all comint buffers."
:type 'boolean
:group 'comint)
(put 'comint-output-filter-functions 'permanent-local t)
(put 'comint-preoutput-filter-functions 'permanent-local t)
(put 'comint-scroll-to-bottom-on-input 'permanent-local t)
-(put 'comint-scroll-to-bottom-on-output 'permanent-local t)
+(put 'comint-move-point-for-output 'permanent-local t)
(put 'comint-scroll-show-maximum-output 'permanent-local t)
(put 'comint-ptyp 'permanent-local t)
Input to, and output from, the subprocess can cause the window to scroll to
the end of the buffer. See variables `comint-output-filter-functions',
`comint-preoutput-filter-functions', `comint-scroll-to-bottom-on-input',
-and `comint-scroll-to-bottom-on-output'.
+and `comint-move-point-for-output'.
If you accidentally suspend your process, use \\[comint-continue-subjob]
to continue it.
(make-local-variable 'comint-input-sender)
(make-local-variable 'comint-eol-on-send)
(make-local-variable 'comint-scroll-to-bottom-on-input)
- (make-local-variable 'comint-scroll-to-bottom-on-output)
+ (make-local-variable 'comint-move-point-for-output)
(make-local-variable 'comint-scroll-show-maximum-output)
;; This makes it really work to keep point at the bottom.
(make-local-variable 'scroll-conservatively)
(default-directory
(if (file-accessible-directory-p default-directory)
default-directory
- (char-to-string directory-sep-char)))
+ "/"))
proc decoding encoding changed)
(let ((exec-path (if (file-name-directory command)
;; If the command has slashes, make sure we
nil t))))))
(defun comint-postoutput-scroll-to-bottom (string)
- "Go to the end of buffer in all windows showing it.
+ "Go to the end of buffer in some or all windows showing it.
Does not scroll if the current line is the last line in the buffer.
-Depends on the value of `comint-scroll-to-bottom-on-output' and
+Depends on the value of `comint-move-point-for-output' and
`comint-scroll-show-maximum-output'.
This function should be in the list `comint-output-filter-functions'."
(let* ((selected (selected-window))
(current (current-buffer))
(process (get-buffer-process current))
- (scroll comint-scroll-to-bottom-on-output))
+ (scroll comint-move-point-for-output))
(unwind-protect
(if process
(walk-windows
between the process-mark and point."
(interactive)
(comint-skip-input)
- (interrupt-process nil comint-ptyp))
+ (interrupt-process nil comint-ptyp)
+;; (process-send-string nil "\n")
+ )
(defun comint-kill-subjob ()
"Send kill signal to the current subjob.
(dirsuffix (cond ((not comint-completion-addsuffix)
"")
((not (consp comint-completion-addsuffix))
- (char-to-string directory-sep-char))
+ "/")
(t
(car comint-completion-addsuffix))))
(filesuffix (cond ((not comint-completion-addsuffix)