[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs/lisp/eshell esh-proc.el
From: |
Glenn Morris |
Subject: |
[Emacs-diffs] emacs/lisp/eshell esh-proc.el |
Date: |
Sun, 23 Nov 2008 03:05:33 +0000 |
CVSROOT: /sources/emacs
Module name: emacs
Changes by: Glenn Morris <gm> 08/11/23 03:05:33
Modified files:
lisp/eshell : esh-proc.el
Log message:
(eshell-gather-process-output):
Set process-connection-type nil for all but the first element of a
pipeline. (Bug#1388)
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/eshell/esh-proc.el?cvsroot=emacs&r1=1.21&r2=1.22
Patches:
Index: esh-proc.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/eshell/esh-proc.el,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- esh-proc.el 6 May 2008 03:36:20 -0000 1.21
+++ esh-proc.el 23 Nov 2008 03:05:29 -0000 1.22
@@ -250,11 +250,27 @@
(cond
((fboundp 'start-process)
(setq proc
+ ;; Bug#1388. Some commands (eg bc) check isatty to decide
+ ;; whether they are being called interactively.
+ ;; A normal shell pipeline has:
+ ;; first: stdin tty , stdout pipe
+ ;; rest : stdin pipe, stdout pipe
+ ;; last : stdin pipe, stdout tty
+ ;; We have:
+ ;; first: stdin tty , stdout tty
+ ;; last : stdin pipe, stdout pipe
+ ;; In other words, the first and last elements have the
+ ;; wrong kind of stdout. (Perhaps this does not matter much...)
+ ;; FIXME which is better for the first element:
+ ;; tty/tty (as now), or pipe/pipe?
+ (let ((process-connection-type
+ (unless (and eshell-in-pipeline-p
+ (not (eq eshell-in-pipeline-p 'first)))
+ process-connection-type)))
(apply 'start-process
(file-name-nondirectory command) nil
- ;; `start-process' can't deal with relative
- ;; filenames
- (append (list (expand-file-name command)) args)))
+ ;; `start-process' can't deal with relative filenames
+ (append (list (expand-file-name command)) args))))
(eshell-record-process-object proc)
(set-process-buffer proc (current-buffer))
(if (eshell-interactive-output-p)
- [Emacs-diffs] emacs/lisp/eshell esh-proc.el,
Glenn Morris <=