From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 25 15:49:01 2014 Received: (at submit) by debbugs.gnu.org; 25 Jul 2014 19:49:02 +0000 Received: from localhost ([127.0.0.1]:38064 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XAlUD-0008Mz-53 for submit@debbugs.gnu.org; Fri, 25 Jul 2014 15:49:01 -0400 Received: from eggs.gnu.org ([208.118.235.92]:44342) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XAlUA-0008Mk-A9 for submit@debbugs.gnu.org; Fri, 25 Jul 2014 15:48:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XAlU4-00025v-7A for submit@debbugs.gnu.org; Fri, 25 Jul 2014 15:48:52 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, HTML_MESSAGE,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:55645) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XAlU4-00025r-3f for submit@debbugs.gnu.org; Fri, 25 Jul 2014 15:48:52 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46054) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XAlU3-0000lf-2H for bug-gnu-emacs@gnu.org; Fri, 25 Jul 2014 15:48:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XAlU2-00025M-B5 for bug-gnu-emacs@gnu.org; Fri, 25 Jul 2014 15:48:51 -0400 Received: from mail-ie0-x234.google.com ([2607:f8b0:4001:c03::234]:46302) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XAlU2-00025B-6a for bug-gnu-emacs@gnu.org; Fri, 25 Jul 2014 15:48:50 -0400 Received: by mail-ie0-f180.google.com with SMTP id at20so4067044iec.25 for ; Fri, 25 Jul 2014 12:48:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=yR6zpgGX25/+9iPCpRbdlSwuMaB8FtH+PjgVUmiBWOU=; b=FS3jpCFXwH3b0gFx+lM+2c3GNzeYxstoorWNtfm9CM8KQrZ5B05RUzVSU6cAs8b6vr ldrUNnJmCE7KWKnXc+PwqbPo7UU1KqBLPqd6442s5FJ1nVVN9WUk2oh9D5tL9w9cTysT rwBZJEr9d+0AyBqQV68DXFCDn90ppsB3lk1arxcyiFs4IVFSxLuXtfG1FPZpXKKC5tib 9mTogxEUEdWcxhEkqNZCB38ix7QgGiP9VmlfeTVEfx/SOOtF7HtKxJ/L5PKlELuYiogQ rPnabwMSwi5FCH7E+z47jynz+BmGaJfbRc2AK4Lr2BZdQivr84v6a5UVvnQepv2mEc1L YzrA== MIME-Version: 1.0 X-Received: by 10.50.32.73 with SMTP id g9mr8765295igi.31.1406317729122; Fri, 25 Jul 2014 12:48:49 -0700 (PDT) Received: by 10.64.62.168 with HTTP; Fri, 25 Jul 2014 12:48:49 -0700 (PDT) Date: Fri, 25 Jul 2014 15:48:49 -0400 Message-ID: Subject: 24.3.92 : eshell-visual-options fails with some output. From: Charles Rendleman To: bug-gnu-emacs@gnu.org Content-Type: multipart/alternative; boundary=047d7b10d179af8e7904ff09dc99 X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) --047d7b10d179af8e7904ff09dc99 Content-Type: text/plain; charset=UTF-8 1) emacs -Q 2) invoke eshell The following inputs are at the eshell prompt. 3) git --help # shows git help summary 3') *git --help # shows git help summary 4) (add-to-list 'eshell-visual-options '("git" "--help")) 5) git --help # shows nothing 6) bash -c "git --help" # shows git help summary 7) *git --help # displays '/bin/git: external command failed' 8) git --version # displays "git version 2.0.2" --047d7b10d179af8e7904ff09dc99 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: base64 PGRpdiBkaXI9Imx0ciI+PGRpdj48ZGl2PjEpIGVtYWNzIC1RPGJyPjwvZGl2PjIpIGludm9rZSBl c2hlbGw8YnI+PC9kaXY+PGRpdj48YnI+VGhlIGZvbGxvd2luZyBpbnB1dHMgYXJlIGF0IHRoZSBl c2hlbGwgcHJvbXB0Ljxicj48L2Rpdj48ZGl2PjMpIGdpdCAtLWhlbHDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg IyBzaG93cyBnaXQgaGVscCBzdW1tYXJ5PGJyPjwvZGl2Pg0KPGRpdj4zJiMzOTspICpnaXQgLS1o ZWxwwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgIyBzaG93cyBnaXQgaGVscCBzdW1tYXJ5PGJyPjwvZGl2PjxkaXY+NCkg KGFkZC10by1saXN0ICYjMzk7ZXNoZWxsLXZpc3VhbC1vcHRpb25zICYjMzk7KCZxdW90O2dpdCZx dW90OyAmcXVvdDstLWhlbHAmcXVvdDspKTxicj48L2Rpdj48ZGl2PjUpIGdpdCAtLWhlbHDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgIyBzaG93cyBub3RoaW5nPGJyPg0KPC9kaXY+PGRpdj42KSBiYXNoIC1jICZx dW90O2dpdCAtLWhlbHAmcXVvdDvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgIyBzaG93cyBnaXQgaGVscCBzdW1tYXJ5PGJyPjwvZGl2PjxkaXY+NykgKmdpdCAtLWhl bHDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgICMgZGlzcGxheXMgJiMzOTsvYmluL2dpdDogZXh0ZXJuYWwgY29tbWFu ZCBmYWlsZWQmIzM5Ozxicj48L2Rpdj48ZGl2Pg0KOCkgZ2l0IC0tdmVyc2lvbsKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIyBk aXNwbGF5cyAmcXVvdDtnaXQgdmVyc2lvbiAyLjAuMiZxdW90Ozxicj48YnI+PC9kaXY+PC9kaXY+ DQo= --047d7b10d179af8e7904ff09dc99-- From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 19 04:09:27 2015 Received: (at 18108) by debbugs.gnu.org; 19 Jan 2015 09:09:27 +0000 Received: from localhost ([127.0.0.1]:60978 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YD8Ks-0004U0-V1 for submit@debbugs.gnu.org; Mon, 19 Jan 2015 04:09:27 -0500 Received: from samertm.com ([162.243.37.26]:57880 helo=mail.samertm.com) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YD8Kp-0004Tq-Tp for 18108@debbugs.gnu.org; Mon, 19 Jan 2015 04:09:25 -0500 Received: by mail.samertm.com (Postfix, from userid 1010) id 319E081E6B; Mon, 19 Jan 2015 09:09:08 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on o-server X-Spam-Level: X-Spam-Status: No, score=-1.0 required=3.0 tests=ALL_TRUSTED autolearn=ham version=3.3.2 Received: from samertm.com (localhost [127.0.0.1]) by mail.samertm.com (Postfix) with ESMTP id AFAAA80A2A; Mon, 19 Jan 2015 09:08:42 +0000 (UTC) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Date: Mon, 19 Jan 2015 01:08:42 -0800 From: samer To: Charles Rendleman Subject: Re: bug#18108: [PATCH] 24.3.92 : eshell-visual-options fails with some output. Message-ID: <62d14355b5b5ca4810d6646ecf484c47@samertm.com> X-Sender: samer@samertm.com User-Agent: Roundcube Webmail/0.9.5 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 18108 Cc: 18108@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) Hi friends, Charles, countrymen, and debbugs, When eshell opens a visual command, it creates a buffer for the process, switches to that buffer, and, if the process is still running, attaches a sentinel to the process that kills the process when the sentinel dies. If the process is not running, the visual command signals an error, I assume because there is no good reason to show the term buffer for a process that isn't running. There is a race condition in the part that handles whether a command is running: even short-lived commands, like "git --version", are running when polled, and the error is never thrown. That means we've attached the buffer-killing sentinel to these short-lived commands, so the buffer they're attached to gets killed immediately afterwards. To sum up everything wrong with the current behavior: 1. Killing the process's buffer when the process dies is not the desired behavior. 2. Even if we wanted to kill the process's buffer for long running processes but not short ones, there is *no way* to tell how long a process will run. That means, there is no way to do this correctly. The solution is simple: for every visual application, simply create the term-mode buffer for it and switch to that buffer. This satisfies every use case: if a process dies quickly with an error message, the user will be able to read the error; if the process is running, it doesn't quit (this is also the current behavior); if the process is long running and dies, the user will be able to read the output of the process. I've attached a patch that implements this behavior below. There is a small issue with this patch: eshell does not start on a new line when you execute a visual command, and so you need to press 'enter' before entering a new command. If anyone has any insight into this, I'm all ears, otherwise I can probably figure it out eventually. This is a longer patch, and so it may need to wait for my papers to be processed. I am not sure how long that will take, as it's been more than a month since I first submitted my application. -samer Patch below: Changes in 3e0d44a..b9f2247 2 files changed, 14 insertions(+), 37 deletions(-) ChangeLog | 6 ++++++ lisp/eshell/em-term.el | 45 ++++++++------------------------------------- Modified ChangeLog diff --git a/ChangeLog b/ChangeLog index 36edfe6..d09380a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2015-01-19 Samer Masterson + + * eshell/em-term.el (eshell-exec-visual, eshell-term-sentinel): + Remove eshell-term-sentinel, show term-mode buffer regardless of + whether the process has died (bug#18108). + 2015-01-04 Paul Eggert * INSTALL: Mention 'make WERROR_CFLAGS='. Modified lisp/eshell/em-term.el diff --git a/lisp/eshell/em-term.el b/lisp/eshell/em-term.el index 4a6ac23..6870a6d 100644 --- a/lisp/eshell/em-term.el +++ b/lisp/eshell/em-term.el @@ -132,10 +132,6 @@ character to the invoked process." :type 'boolean :group 'eshell-term) -;;; Internal Variables: - -(defvar eshell-parent-buffer) - ;;; Functions: (defun eshell-term-initialize () @@ -171,39 +167,14 @@ allowed." (cdr args))))) (term-buf (generate-new-buffer - (concat "*" (file-name-nondirectory program) "*"))) - (eshell-buf (current-buffer))) - (save-current-buffer - (switch-to-buffer term-buf) - (term-mode) - (set (make-local-variable 'term-term-name) eshell-term-name) - (make-local-variable 'eshell-parent-buffer) - (setq eshell-parent-buffer eshell-buf) - (term-exec term-buf program program nil args) - (let ((proc (get-buffer-process term-buf))) - (if (and proc (eq 'run (process-status proc))) - (set-process-sentinel proc 'eshell-term-sentinel) - (error "Failed to invoke visual command"))) - (term-char-mode) - (if eshell-escape-control-x - (term-set-escape-char ?\C-x)))) - nil) - -;; Process sentinels receive two arguments. -(defun eshell-term-sentinel (proc _string) - "Destroy the buffer visiting PROC." - (let ((proc-buf (process-buffer proc))) - (when (and proc-buf (buffer-live-p proc-buf) - (not (eq 'run (process-status proc))) - (= (process-exit-status proc) 0)) - (if (eq (current-buffer) proc-buf) - (let ((buf (and (boundp 'eshell-parent-buffer) - eshell-parent-buffer - (buffer-live-p eshell-parent-buffer) - eshell-parent-buffer))) - (if buf - (switch-to-buffer buf)))) - (kill-buffer proc-buf)))) + (concat "*" (file-name-nondirectory program) "*")))) + (switch-to-buffer term-buf) + (term-mode) + (set (make-local-variable 'term-term-name) eshell-term-name) + (term-exec term-buf program program nil args) + (term-char-mode) + (if eshell-escape-control-x + (term-set-escape-char ?\C-x)))) ;; jww (1999-09-17): The code below will allow Eshell to send input ;; characters directly to the currently running interactive process. From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 24 05:54:50 2015 Received: (at 18108) by debbugs.gnu.org; 24 Feb 2015 10:54:50 +0000 Received: from localhost ([127.0.0.1]:56309 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YQD8b-0003Eh-7k for submit@debbugs.gnu.org; Tue, 24 Feb 2015 05:54:49 -0500 Received: from ec2-52-0-7-12.compute-1.amazonaws.com ([52.0.7.12]:60130 helo=samertm.com) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YQD8Z-0003EQ-51 for 18108@debbugs.gnu.org; Tue, 24 Feb 2015 05:54:47 -0500 Received: from [10.1.10.35] (c-98-210-154-226.hsd1.ca.comcast.net [98.210.154.226]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by samertm.com (Postfix) with ESMTPSA id D9A4D42D27 for <18108@debbugs.gnu.org>; Tue, 24 Feb 2015 10:54:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samertm.com; s=mail; t=1424775274; bh=Zu81CH3nRqV6krkV8r3gxuNVh9aN7wHS6SiKiVFhue0=; h=Date:From:Subject:To:From; b=Ru7QcA+JZ4Z7yewpM92PzeKjnxbaJeWlemc3K/E1Qkkxte5iaHGSlRkEj/c7D+022 i2DkHOQjJzTqwK3/xxuCZmX7ZePexdUiReKViez+R+ZiGt80OgAHPtruPeRk8Sul8R jy5GFAq4oUxnj8PjWIm8B0fOgqUggRndAKA/fb/o= Date: Tue, 24 Feb 2015 02:54:34 -0800 From: Samer Masterson Subject: Re: bug#18108: [PATCH] 24.3.92 : eshell-visual-options fails with some output. To: 18108@debbugs.gnu.org Message-Id: <1424775274.11596.5@mail.samertm.com> X-Mailer: geary/0.8.3 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="=-EoWxz09ZpRNi+10qVJlP" X-Spam-Score: 0.4 (/) X-Debbugs-Envelope-To: 18108 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.4 (/) --=-EoWxz09ZpRNi+10qVJlP Content-Type: text/plain; charset=utf-8; format=flowed Hi, My copyright papers have been processed. Can we apply this to master? Best, Samer Patch below: Changes in 3e0d44a..b9f2247 2 files changed, 14 insertions(+), 37 deletions(-) ChangeLog | 6 ++++++ lisp/eshell/em-term.el | 45 ++++++++------------------------------------- Modified ChangeLog diff --git a/ChangeLog b/ChangeLog index 36edfe6..d09380a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2015-01-19 Samer Masterson samertm.com> + + * eshell/em-term.el (eshell-exec-visual, eshell-term-sentinel): + Remove eshell-term-sentinel, show term-mode buffer regardless of + whether the process has died (bug#18108). + 2015-01-04 Paul Eggert cs.ucla.edu> * INSTALL: Mention 'make WERROR_CFLAGS='. Modified lisp/eshell/em-term.el diff --git a/lisp/eshell/em-term.el b/lisp/eshell/em-term.el index 4a6ac23..6870a6d 100644 --- a/lisp/eshell/em-term.el +++ b/lisp/eshell/em-term.el @@ -132,10 +132,6 @@ character to the invoked process." :type 'boolean :group 'eshell-term) -;;; Internal Variables: - -(defvar eshell-parent-buffer) - ;;; Functions: (defun eshell-term-initialize () @@ -171,39 +167,14 @@ allowed." (cdr args))))) (term-buf (generate-new-buffer - (concat "*" (file-name-nondirectory program) "*"))) - (eshell-buf (current-buffer))) - (save-current-buffer - (switch-to-buffer term-buf) - (term-mode) - (set (make-local-variable 'term-term-name) eshell-term-name) - (make-local-variable 'eshell-parent-buffer) - (setq eshell-parent-buffer eshell-buf) - (term-exec term-buf program program nil args) - (let ((proc (get-buffer-process term-buf))) - (if (and proc (eq 'run (process-status proc))) - (set-process-sentinel proc 'eshell-term-sentinel) - (error "Failed to invoke visual command"))) - (term-char-mode) - (if eshell-escape-control-x - (term-set-escape-char ?\C-x)))) - nil) - -;; Process sentinels receive two arguments. -(defun eshell-term-sentinel (proc _string) - "Destroy the buffer visiting PROC." - (let ((proc-buf (process-buffer proc))) - (when (and proc-buf (buffer-live-p proc-buf) - (not (eq 'run (process-status proc))) - (= (process-exit-status proc) 0)) - (if (eq (current-buffer) proc-buf) - (let ((buf (and (boundp 'eshell-parent-buffer) - eshell-parent-buffer - (buffer-live-p eshell-parent-buffer) - eshell-parent-buffer))) - (if buf - (switch-to-buffer buf)))) - (kill-buffer proc-buf)))) + (concat "*" (file-name-nondirectory program) "*")))) + (switch-to-buffer term-buf) + (term-mode) + (set (make-local-variable 'term-term-name) eshell-term-name) + (term-exec term-buf program program nil args) + (term-char-mode) + (if eshell-escape-control-x + (term-set-escape-char ?\C-x)))) ;; jww (1999-09-17): The code below will allow Eshell to send input ;; characters directly to the currently running interactive process. --=-EoWxz09ZpRNi+10qVJlP Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi,

My copyright papers have been processed. Can we appl= y this to master?

Best,
Samer
=
Patch below:

Changes in 3e0d44a..b9= f2247
2 files changed, 14 insertions(+), 37 deletions(-)
 ChangeLog | 6 ++++++
 lisp/eshell/em= -term.el | 45 
++++++++-----------------------------------= --

 Modified ChangeLog
diff --git= a/ChangeLog b/ChangeLog
index 36edfe6..d09380a 100644
= --- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2015-01-19 Samer Masterson <samer <at> samertm.com>=
+
+ * eshell/em-term.el (eshell-exec-visual, eshell-term-sen= tinel):
+ Remove eshell-term-sentinel, show term-mode buffer rega= rdless of
+ whether the process has died (bug#18108).
+=
 2015-01-04 Paul Eggert <eggert <at> cs.ucla.edu= >

  * INSTALL: Mention 'make WERROR_CFLAGS= =3D'.
 Modified lisp/eshell/em-term.el
diff --gi= t a/lisp/eshell/em-term.el b/lisp/eshell/em-term.el
index 4a6ac23= ..6870a6d 100644
--- a/lisp/eshell/em-term.el
+++ b/lis= p/eshell/em-term.el
@@ -132,10 +132,6 @@ character to the invoked= process."
   :type 'boolean
   :gr= oup 'eshell-term)

-;;; Internal Variables:
-
-(defvar eshell-parent-buffer)
-
 ;= ;; Functions:

 (defun eshell-term-initialize = ()
@@ -171,39 +167,14 @@ allowed."
     =        (cdr args)))))
   (term-buf=
    (generate-new-buffer
- (concat "*" (f= ile-name-nondirectory program) "*")))
- (eshell-buf (current-buf= fer)))
- (save-current-buffer
- (switch-to-buff= er term-buf)
- (term-mode)
- (set (make-local= -variable 'term-term-name) eshell-term-name)
- (make-local-v= ariable 'eshell-parent-buffer)
- (setq eshell-parent-buffer = eshell-buf)
- (term-exec term-buf program program nil args)<= /div>
- (let ((proc (get-buffer-process term-buf)))
- (i= f (and proc (eq 'run (process-status proc)))
- (set-process-s= entinel proc 'eshell-term-sentinel)
- (error "Failed to invoke = visual command")))
- (term-char-mode)
- (if e= shell-escape-control-x
- (term-set-escape-char ?\C-x))))
<= div>- nil)
-
-;; Process sentinels receive two argumen= ts.
-(defun eshell-term-sentinel (proc _string)
- "Des= troy the buffer visiting PROC."
- (let ((proc-buf (process-buffe= r proc)))
- (when (and proc-buf (buffer-live-p proc-buf)
=
- (not (eq 'run (process-status proc)))
- (=3D= (process-exit-status proc) 0))
- (if (eq (current-buffer) p= roc-buf)
- (let ((buf (and (boundp 'eshell-parent-buffer)
=
- eshell-parent-buffer
- (buffer-live-p eshell-paren= t-buffer)
- eshell-parent-buffer)))
- (if buf
- (switch-to-buffer buf))))
- (kill-buffer proc-bu= f))))
+ (concat "*" (file-name-nondirectory program) "*"))))
+ (switch-to-buffer term-buf)
+ (term-mode)
<= div>+ (set (make-local-variable 'term-term-name) eshell-term-name)
=
+ (term-exec term-buf program program nil args)
+ (ter= m-char-mode)
+ (if eshell-escape-control-x
+ = (term-set-escape-char ?\C-x))))

 ;; jww (1999= -09-17): The code below will allow Eshell to send input
 ;; = characters directly to the currently running interactive process.
= --=-EoWxz09ZpRNi+10qVJlP-- From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 06 00:06:02 2015 Received: (at 18108) by debbugs.gnu.org; 6 Apr 2015 04:06:02 +0000 Received: from localhost ([127.0.0.1]:45752 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YeyIT-0005MR-61 for submit@debbugs.gnu.org; Mon, 06 Apr 2015 00:06:01 -0400 Received: from ec2-52-0-7-12.compute-1.amazonaws.com ([52.0.7.12]:55373 helo=samertm.com) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YeyIQ-0005MB-GW for 18108@debbugs.gnu.org; Mon, 06 Apr 2015 00:05:59 -0400 Received: from [10.20.0.210] (208-90-214-199.PUBLIC.monkeybrains.net [208.90.214.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by samertm.com (Postfix) with ESMTPSA id 42B3641B6B for <18108@debbugs.gnu.org>; Mon, 6 Apr 2015 04:05:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samertm.com; s=mail; t=1428293107; bh=yQe3mu62mUb2tqcLyyGpwgNxEoCS3/dS4Jr/r/CoxFQ=; h=Date:From:Subject:To:From; b=j3izUlR9/+BzJtMuScJ9nNm/tgoTa7G35EhNy1WmzYKa6/cruyvz1gpeC1n02tIaP CszafqeCXhTavP2sN2C5CjvblE7pTV0vRrLWeUJA2eixTyjqEUZVCqYoR4yF2cdihK voGah8RaX8/Hyh+GX+PX5d/lZUiFna6OOoW3CzCA= Date: Sun, 05 Apr 2015 21:05:43 -0700 From: Samer Masterson Subject: Re: bug#18108: [PATCH] 24.3.92 : eshell-visual-options fails with some output. To: 18108@debbugs.gnu.org Message-Id: <1428293143.15170.1@mail.samertm.com> X-Mailer: geary/0.9.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 X-Spam-Score: 0.4 (/) X-Debbugs-Envelope-To: 18108 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.4 (/) Hi, Pinging the list with a well-formed patch. Info below (quoted from my reply to 18108): > When eshell opens a visual command, it creates a buffer for the process, > switches to that buffer, and, if the process is still running, attaches > a sentinel to the process that kills the process when the sentinel dies. > If the process is not running, the visual command signals an error, > I assume because there is no good reason to show the term buffer for a > process that isn't running. > There is a race condition in the part that handles whether a command is > running: even short-lived commands, like "git --version", are running > when polled, and the error is never thrown. That means we've attached > the buffer-killing sentinel to these short-lived commands, so the buffer > they're attached to gets killed immediately afterwards. > To sum up everything wrong with the current behavior: > 1. Killing the process's buffer when the process dies is not the desired > behavior. > 2. Even if we wanted to kill the process's buffer for long running > processes but not short ones, there is *no way* to tell how long a > process will run. That means, there is no way to do this correctly. > The solution is simple: for every visual application, simply create the > term-mode buffer for it and switch to that buffer. This satisfies every > use case: if a process dies quickly with an error message, the user will > be able to read the error; if the process is running, it doesn't quit > (this is also the current behavior); if the process is long running and > dies, the user will be able to read the output of the process. I've > attached a patch that implements this behavior below. > There is a small issue with this patch: eshell does not start on a new > line when you execute a visual command, and so you need to press 'enter' > before entering a new command. If anyone has any insight into this, I'm > all ears, otherwise I can probably figure it out eventually. And the patch is below. -samer ec2e573b4644ffdfa7e035aeb66f55e847b7c991 HEAD 18108 Author: Samer Masterson Date: Sun Apr 5 20:59:37 2015 -0700 Fixes 18108. * eshell/em-term.el (eshell-exec-visual): Show term-mode buffer regardless of whether the process has died (bug#18108). (eshell-term-sentinel, eshell-parent-buffer): Now unused, remove. 2 files changed, 14 insertions(+), 37 deletions(-) lisp/ChangeLog | 6 ++++++ lisp/eshell/em-term.el | 45 ++++++++------------------------------------- Modified lisp/ChangeLog diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b2d431c..a06ad01 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2015-04-06 Samer Masterson + + * eshell/em-term.el (eshell-exec-visual): Show term-mode buffer + regardless of whether the process has died (bug#18108). + (eshell-term-sentinel, eshell-parent-buffer): Now unused, remove. + 2015-03-27 Wolfgang Jenkner * font-lock.el (font-lock--remove-face-from-text-property): New Modified lisp/eshell/em-term.el diff --git a/lisp/eshell/em-term.el b/lisp/eshell/em-term.el index 4a6ac23..7f98ee6 100644 --- a/lisp/eshell/em-term.el +++ b/lisp/eshell/em-term.el @@ -132,10 +132,6 @@ character to the invoked process." :type 'boolean :group 'eshell-term) -;;; Internal Variables: - -(defvar eshell-parent-buffer) - ;;; Functions: (defun eshell-term-initialize () @@ -171,39 +167,14 @@ allowed." (cdr args))))) (term-buf (generate-new-buffer - (concat "*" (file-name-nondirectory program) "*"))) - (eshell-buf (current-buffer))) - (save-current-buffer - (switch-to-buffer term-buf) - (term-mode) - (set (make-local-variable 'term-term-name) eshell-term-name) - (make-local-variable 'eshell-parent-buffer) - (setq eshell-parent-buffer eshell-buf) - (term-exec term-buf program program nil args) - (let ((proc (get-buffer-process term-buf))) - (if (and proc (eq 'run (process-status proc))) - (set-process-sentinel proc 'eshell-term-sentinel) - (error "Failed to invoke visual command"))) - (term-char-mode) - (if eshell-escape-control-x - (term-set-escape-char ?\C-x)))) - nil) - -;; Process sentinels receive two arguments. -(defun eshell-term-sentinel (proc _string) - "Destroy the buffer visiting PROC." - (let ((proc-buf (process-buffer proc))) - (when (and proc-buf (buffer-live-p proc-buf) - (not (eq 'run (process-status proc))) - (= (process-exit-status proc) 0)) - (if (eq (current-buffer) proc-buf) - (let ((buf (and (boundp 'eshell-parent-buffer) - eshell-parent-buffer - (buffer-live-p eshell-parent-buffer) - eshell-parent-buffer))) - (if buf - (switch-to-buffer buf)))) - (kill-buffer proc-buf)))) + (concat "*" (file-name-nondirectory program) "*")))) + (switch-to-buffer term-buf) + (term-mode) + (set (make-local-variable 'term-term-name) eshell-term-name) + (term-exec term-buf program program nil args) + (term-char-mode) + (if eshell-escape-control-x + (term-set-escape-char ?\C-x)))) ;; jww (1999-09-17): The code below will allow Eshell to send input ;; characters directly to the currently running interactive process. From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 08 22:23:31 2015 Received: (at 18108) by debbugs.gnu.org; 9 Apr 2015 02:23:31 +0000 Received: from localhost ([127.0.0.1]:49803 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yg27u-0005BF-Oj for submit@debbugs.gnu.org; Wed, 08 Apr 2015 22:23:31 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.181]:40070) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yg27s-0005B1-GY for 18108@debbugs.gnu.org; Wed, 08 Apr 2015 22:23:28 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgUFAGvvdVRBbthL/2dsb2JhbAA3gVOhb4EIgXUBAQQBViMQCzQSFBgNJIgTohGMIUMJAQIBAoM+A4NwBKg7 X-IPAS-Result: AgUFAGvvdVRBbthL/2dsb2JhbAA3gVOhb4EIgXUBAQQBViMQCzQSFBgNJIgTohGMIUMJAQIBAoM+A4NwBKg7 X-IronPort-AV: E=Sophos;i="5.01,1,1400040000"; d="scan'208";a="115767312" Received: from 65-110-216-75.cpe.pppoe.ca (HELO pastel.home) ([65.110.216.75]) by ironport2-out.teksavvy.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 08 Apr 2015 22:22:23 -0400 Received: by pastel.home (Postfix, from userid 20848) id CC93B20AC; Wed, 8 Apr 2015 22:22:22 -0400 (EDT) From: Stefan Monnier To: Samer Masterson Subject: Re: bug#18108: [PATCH] 24.3.92 : eshell-visual-options fails with some output. Message-ID: References: <1428293143.15170.1@mail.samertm.com> Date: Wed, 08 Apr 2015 22:22:22 -0400 In-Reply-To: <1428293143.15170.1@mail.samertm.com> (Samer Masterson's message of "Sun, 05 Apr 2015 21:05:43 -0700") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 18108 Cc: 18108@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) >> To sum up everything wrong with the current behavior: I wonder: for which commands is this used? I mean, if those commands are things like `vi', or `less', or `emacs', then it might be inconvenient for the user if the term-buffer just sits there when the command exits. Stefan From debbugs-submit-bounces@debbugs.gnu.org Fri May 01 02:53:59 2015 Received: (at 18108) by debbugs.gnu.org; 1 May 2015 06:53:59 +0000 Received: from localhost ([127.0.0.1]:58064 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yo4pi-0007HZ-O5 for submit@debbugs.gnu.org; Fri, 01 May 2015 02:53:59 -0400 Received: from mx2.mailbox.org ([80.241.60.215]:53657) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yo4pf-0007HG-Pc for 18108@debbugs.gnu.org; Fri, 01 May 2015 02:53:57 -0400 Received: from smtp1.mailbox.org (smtp1.mailbox.org [80.241.60.240]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx2.mailbox.org (Postfix) with ESMTPS id 7E75341F19; Fri, 1 May 2015 08:53:49 +0200 (CEST) X-Virus-Scanned: amavisd-new at heinlein-support.de Received: from smtp1.mailbox.org ([80.241.60.240]) by gerste.heinlein-support.de (gerste.heinlein-support.de [91.198.250.173]) (amavisd-new, port 10030) with ESMTP id YtUyHFycdkOr; Fri, 1 May 2015 08:53:48 +0200 (CEST) From: Samer Masterson To: Stefan Monnier Subject: Re: bug#18108: [PATCH] 24.3.92 : eshell-visual-options fails with some output. In-Reply-To: Message-ID: <87sibgeume.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> References: <1428293143.15170.1@mail.samertm.com> User-Agent: Notmuch/0.19 (http://notmuchmail.org) Emacs/25.0.50.1 (x86_64-unknown-linux-gnu) Date: Thu, 30 Apr 2015 23:53:43 -0700 MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 18108 Cc: 18108@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) Thanks again for looking at my patch, and sorry (again) for taking so long to reply! Haha. Just to refresh our memory, this is the bug: Charles Rendleman writes: > 3) git --help # shows git help summary ... > 4) (add-to-list 'eshell-visual-options '("git" "--help")) > 5) git --help # shows nothing The reason for this is that eshell kills visual command buffers after their process dies. My reply: Stefan Monnier writes: > I wonder: for which commands is this used? > I mean, if those commands are things like `vi', or `less', or `emacs', > then it might be inconvenient for the user if the term-buffer just sits > there when the command exits. Ah, I hadn't thought of that :) That's a good point, changing this behavior may be less convenient for some users. There's a very slim "golden path", though -- the behavior of eshell "visual" commands is only consistent for programs that 1. are long running, and 2. only quit when the user asks them, and *never* on their own, *even* when encountering errors or printing help flags (because the user will never see output on stderr/stdout). (By consistent, I mean that the user will always know what to expect when running a visual command.) The second point excludes basically all programs from our "golden path" of consistent behavior. It excludes "less", because less quits during error conditions (like if you call less without any arguments). It excludes programs like "mutt" unless you never run "mutt --help". It also excludes many of the example commands listed in the documentation. This bug is actually from an example in the documentation: Adding '("git" "--help") to `eshell-visual-options' is useful because git shells out to PAGER most of the time... but sometimes it doesn't! If you add the above and run "git --help", the screen flashes and you have no indication that something went wrong. Adding '("git" "log") to `eshell-visual-subcommands' is also in the documentation, and it works most of the time... except git doesn't shell out to PAGER when the number of commits in the repo is small. In that case, the screen flashes and there is no indication to the user why "git log" works 90% of the time but fails here. As you can see, eshell visual commands in their visual state are very hard to use correctly. But what's worse is that it's very hard for the user to tell what's even going on. As far as they can tell, their commands are doing nothing except flickering the eshell window. They have no idea that their command actually ran and failed, because the command's output isn't printed. And so they have no way to actually find the "golden path" of programs that don't break eshell-visual-command, because they cannot reason about what is going on. The author of this feature tries to avoid this bug by checking that the process is not dead before attaching the buffer-killing sentinel to it: ;; On lisp/eshell/em-term.el:183 (let ((proc (get-buffer-process term-buf))) (if (and proc (eq 'run (process-status proc))) (set-process-sentinel proc 'eshell-term-sentinel) (error "Failed to invoke visual command"))) But there's a race here: most programs that will eventually quit (like "git --help") are still running when the `if' sexp runs. So that's obviously not ideal :) Arguably, the convenience of being able to run "git .* --help" as a visual command and have that not break outweighs the convenience of having a buffer die after its process dies. I've given a couple reasons why the current behavior is confusing, and should be removed. The alternative that I've propsed in my patch is to just to not kill the buffer after its process dies. I think that this behavior is acceptable because it's consistent with how inferior modes currently work, e.g. `run-python', `shell', and `ansi-term' all stick around after their process dies. It's also the easiest way to make visual commands usable. I think the absolute ideal would be to detect when a command is attempting to use "visual" shell features and automatically jump into "term" mode. I have no idea if that's possible, though. Thanks again for reviewing my patch! I really appreciate it. Best, Samer Patch below: Changes in 3e0d44a..b9f2247 2 files changed, 14 insertions(+), 37 deletions(-) ChangeLog | 6 ++++++ lisp/eshell/em-term.el | 45 ++++++++------------------------------------- Modified ChangeLog diff --git a/ChangeLog b/ChangeLog index 36edfe6..d09380a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2015-01-19 Samer Masterson + + * eshell/em-term.el (eshell-exec-visual, eshell-term-sentinel): + Remove eshell-term-sentinel, show term-mode buffer regardless of + whether the process has died (bug#18108). + 2015-01-04 Paul Eggert * INSTALL: Mention 'make WERROR_CFLAGS='. Modified lisp/eshell/em-term.el diff --git a/lisp/eshell/em-term.el b/lisp/eshell/em-term.el index 4a6ac23..6870a6d 100644 --- a/lisp/eshell/em-term.el +++ b/lisp/eshell/em-term.el @@ -132,10 +132,6 @@ character to the invoked process." :type 'boolean :group 'eshell-term) -;;; Internal Variables: - -(defvar eshell-parent-buffer) - ;;; Functions: (defun eshell-term-initialize () @@ -171,39 +167,14 @@ allowed." (cdr args))))) (term-buf (generate-new-buffer - (concat "*" (file-name-nondirectory program) "*"))) - (eshell-buf (current-buffer))) - (save-current-buffer - (switch-to-buffer term-buf) - (term-mode) - (set (make-local-variable 'term-term-name) eshell-term-name) - (make-local-variable 'eshell-parent-buffer) - (setq eshell-parent-buffer eshell-buf) - (term-exec term-buf program program nil args) - (let ((proc (get-buffer-process term-buf))) - (if (and proc (eq 'run (process-status proc))) - (set-process-sentinel proc 'eshell-term-sentinel) - (error "Failed to invoke visual command"))) - (term-char-mode) - (if eshell-escape-control-x - (term-set-escape-char ?\C-x)))) - nil) - -;; Process sentinels receive two arguments. -(defun eshell-term-sentinel (proc _string) - "Destroy the buffer visiting PROC." - (let ((proc-buf (process-buffer proc))) - (when (and proc-buf (buffer-live-p proc-buf) - (not (eq 'run (process-status proc))) - (= (process-exit-status proc) 0)) - (if (eq (current-buffer) proc-buf) - (let ((buf (and (boundp 'eshell-parent-buffer) - eshell-parent-buffer - (buffer-live-p eshell-parent-buffer) - eshell-parent-buffer))) - (if buf - (switch-to-buffer buf)))) - (kill-buffer proc-buf)))) + (concat "*" (file-name-nondirectory program) "*")))) + (switch-to-buffer term-buf) + (term-mode) + (set (make-local-variable 'term-term-name) eshell-term-name) + (term-exec term-buf program program nil args) + (term-char-mode) + (if eshell-escape-control-x + (term-set-escape-char ?\C-x)))) ;; jww (1999-09-17): The code below will allow Eshell to send input ;; characters directly to the currently running interactive process. From debbugs-submit-bounces@debbugs.gnu.org Sun May 03 21:21:21 2015 Received: (at 18108) by debbugs.gnu.org; 4 May 2015 01:21:21 +0000 Received: from localhost ([127.0.0.1]:32854 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yp54S-0004K7-Uv for submit@debbugs.gnu.org; Sun, 03 May 2015 21:21:21 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.181]:61502) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yp54Q-0004Jo-Cz for 18108@debbugs.gnu.org; Sun, 03 May 2015 21:21:19 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgUFAGvvdVRFpYts/2dsb2JhbAA3gVOhb4EIgXUBAQQBViMFCws0EhQYDSSIE6IRi3YiAw9DAwECgz4DA4NtBKNjhFg X-IPAS-Result: AgUFAGvvdVRFpYts/2dsb2JhbAA3gVOhb4EIgXUBAQQBViMFCws0EhQYDSSIE6IRi3YiAw9DAwECgz4DA4NtBKNjhFg X-IronPort-AV: E=Sophos;i="5.11,557,1422939600"; d="scan'208";a="118162550" Received: from 69-165-139-108.dsl.teksavvy.com (HELO fmsmemgm.homelinux.net) ([69.165.139.108]) by ironport2-out.teksavvy.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 03 May 2015 21:21:12 -0400 Received: by fmsmemgm.homelinux.net (Postfix, from userid 20848) id A3BECAE12D; Sun, 3 May 2015 21:21:12 -0400 (EDT) From: Stefan Monnier To: Samer Masterson Subject: Re: bug#18108: [PATCH] 24.3.92 : eshell-visual-options fails with some output. Message-ID: References: <1428293143.15170.1@mail.samertm.com> <87sibgeume.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> Date: Sun, 03 May 2015 21:21:12 -0400 In-Reply-To: <87sibgeume.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> (Samer Masterson's message of "Thu, 30 Apr 2015 23:53:43 -0700") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 18108 Cc: 18108@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) > As you can see, eshell visual commands in their visual state are very > hard to use correctly. No doubt. I think the best way to try and make it work well in "both" cases is to try and make the behavior closer to what would happen inside an xterm (say). E.g. one possibility is that when the process dies, rather than simply deleting the corresponding term buffer, we first copy the term buffer's contents to the Eshell's buffer, so as not to lose this process output. WDYT? Stefan From debbugs-submit-bounces@debbugs.gnu.org Mon May 04 08:58:03 2015 Received: (at 18108) by debbugs.gnu.org; 4 May 2015 12:58:03 +0000 Received: from localhost ([127.0.0.1]:33139 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YpFwg-0006jN-6g for submit@debbugs.gnu.org; Mon, 04 May 2015 08:58:02 -0400 Received: from mx1.mailbox.org ([80.241.60.212]:43604) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YpFwb-0006iz-1y for 18108@debbugs.gnu.org; Mon, 04 May 2015 08:57:58 -0400 Received: from smtp1.mailbox.org (smtp1.mailbox.org [80.241.60.240]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.mailbox.org (Postfix) with ESMTPS id DCE354002B; Mon, 4 May 2015 14:57:50 +0200 (CEST) X-Virus-Scanned: amavisd-new at heinlein-support.de Received: from smtp1.mailbox.org ([80.241.60.240]) by hefe.heinlein-support.de (hefe.heinlein-support.de [91.198.250.172]) (amavisd-new, port 10030) with ESMTP id KbhlVlUQ8qTK; Mon, 4 May 2015 14:57:49 +0200 (CEST) From: Samer Masterson To: Stefan Monnier Subject: Re: bug#18108: [PATCH] 24.3.92 : eshell-visual-options fails with some output. In-Reply-To: References: <1428293143.15170.1@mail.samertm.com> <87sibgeume.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> User-Agent: Notmuch/0.19 (http://notmuchmail.org) Emacs/25.0.50.1 (x86_64-unknown-linux-gnu) Date: Mon, 04 May 2015 05:57:45 -0700 Message-ID: <87mw1ksdo6.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 18108 Cc: 18108@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) Stefan Monnier writes: > No doubt. I think the best way to try and make it work well in "both" > cases is to try and make the behavior closer to what would happen inside > an xterm (say). E.g. one possibility is that when the process dies, > rather than simply deleting the corresponding term buffer, we first copy > the term buffer's contents to the Eshell's buffer, so as not to lose > this process output. > WDYT? I agree, it's best to emulate xterm when we can. In this case, though, visual programs are pretty different from "visual" commands in a normal xterm. The solution you suggested comes close, but visual commands are "asynchronous" because they don't block the eshell buffer that spawned them. So it might be confusing if you spawn a visual program, switch back to eshell and forget about the visual program, and then later kill the visual program and have its buffer spit into your eshell. It seems a bit too action-at-a-distance for me, and at the end of the day, it's more complexity for little gain. An ideal solution would be to detect when a command is trying to control the screen and then automatically jump into term mode. I'm not sure how hard that would be, though. FWIW, I've been using this patch for the last couple days and it feels very natural. I've attached a patch that adds a custom var to get the old behavior, tho the new behavior is default. Let me know if that's the right direction. Thanks! I hope you're doing well. -s Patch below: >From c58d82ddb2a2b893f39a926a0de98ff8195a8cad Mon Sep 17 00:00:00 2001 From: Samer Masterson Date: Mon, 4 May 2015 05:50:57 -0700 Subject: [PATCH] Fix bug#18108 * lisp/eshell/em-term.el (eshell-destroy-buffer-when-process-dies): New custom to preserve previous behavior. * lisp/eshell/em-term.el (eshell-term-sentinel): No-op by default, only kills term if `eshell-destroy-buffer-when-process-dies' is non-nil. --- etc/NEWS | 5 +++++ lisp/eshell/em-term.el | 39 +++++++++++++++++++++++++-------------- 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 1193055..e779b1b 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -632,6 +632,11 @@ command line's password prompt. *** The new built-in command `clear' can scroll window contents out of sight. If provided with an optional non-nil argument, the scrollback contents will be cleared. +*** By default, eshell "visual" program buffers (as defined by +`eshell-custom-program' and the `eshell-term' group) are no longer +killed when their processes die. For the old behavior, set +`eshell-destroy-buffer-when-process-dies' to non-nil. + ** Browse-url *** Support for the Conkeror web browser. diff --git a/lisp/eshell/em-term.el b/lisp/eshell/em-term.el index 4a6ac23..9ac2813 100644 --- a/lisp/eshell/em-term.el +++ b/lisp/eshell/em-term.el @@ -132,6 +132,13 @@ character to the invoked process." :type 'boolean :group 'eshell-term) +(defcustom eshell-destroy-buffer-when-process-dies nil + "If non-nil, term buffers are destroyed after their processes die. +WARNING: Setting this to non-nil may result in unexpected +behavior for short-lived processes, see bug#18108." + :type 'boolean + :group 'eshell-term) + ;;; Internal Variables: (defvar eshell-parent-buffer) @@ -190,20 +197,24 @@ allowed." nil) ;; Process sentinels receive two arguments. -(defun eshell-term-sentinel (proc _string) - "Destroy the buffer visiting PROC." - (let ((proc-buf (process-buffer proc))) - (when (and proc-buf (buffer-live-p proc-buf) - (not (eq 'run (process-status proc))) - (= (process-exit-status proc) 0)) - (if (eq (current-buffer) proc-buf) - (let ((buf (and (boundp 'eshell-parent-buffer) - eshell-parent-buffer - (buffer-live-p eshell-parent-buffer) - eshell-parent-buffer))) - (if buf - (switch-to-buffer buf)))) - (kill-buffer proc-buf)))) +(defun eshell-term-sentinel (proc msg) + "Clean up the buffer visiting PROC. +If `eshell-destroy-buffer-when-process-dies' is non-nil, destroy +the buffer." + (term-sentinel proc msg) ;; First call the normal term sentinel. + (when eshell-destroy-buffer-when-process-dies + (let ((proc-buf (process-buffer proc))) + (when (and proc-buf (buffer-live-p proc-buf) + (not (eq 'run (process-status proc))) + (= (process-exit-status proc) 0)) + (if (eq (current-buffer) proc-buf) + (let ((buf (and (boundp 'eshell-parent-buffer) + eshell-parent-buffer + (buffer-live-p eshell-parent-buffer) + eshell-parent-buffer))) + (if buf + (switch-to-buffer buf)))) + (kill-buffer proc-buf))))) ;; jww (1999-09-17): The code below will allow Eshell to send input ;; characters directly to the currently running interactive process. From debbugs-submit-bounces@debbugs.gnu.org Mon May 04 10:14:18 2015 Received: (at 18108) by debbugs.gnu.org; 4 May 2015 14:14:18 +0000 Received: from localhost ([127.0.0.1]:33784 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YpH8T-0000EE-Ig for submit@debbugs.gnu.org; Mon, 04 May 2015 10:14:17 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.181]:59059) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YpH8P-0000Dz-N0 for 18108@debbugs.gnu.org; Mon, 04 May 2015 10:14:14 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgUFAGvvdVRFpYts/2dsb2JhbAA3gVOhb4EIgXUBAQQBViMFCws0EhQYDSSIE6IRjGQJAwECgz4Dg3AEo2OEWA X-IPAS-Result: AgUFAGvvdVRFpYts/2dsb2JhbAA3gVOhb4EIgXUBAQQBViMFCws0EhQYDSSIE6IRjGQJAwECgz4Dg3AEo2OEWA X-IronPort-AV: E=Sophos;i="5.11,557,1422939600"; d="scan'208";a="118201572" Received: from 69-165-139-108.dsl.teksavvy.com (HELO pastel.home) ([69.165.139.108]) by ironport2-out.teksavvy.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 04 May 2015 10:14:07 -0400 Received: by pastel.home (Postfix, from userid 20848) id E77EB1A76; Mon, 4 May 2015 10:14:06 -0400 (EDT) From: Stefan Monnier To: Samer Masterson Subject: Re: bug#18108: [PATCH] 24.3.92 : eshell-visual-options fails with some output. Message-ID: References: <1428293143.15170.1@mail.samertm.com> <87sibgeume.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> <87mw1ksdo6.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> Date: Mon, 04 May 2015 10:14:06 -0400 In-Reply-To: <87mw1ksdo6.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> (Samer Masterson's message of "Mon, 04 May 2015 05:57:45 -0700") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 18108 Cc: 18108@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) > FWIW, I've been using this patch for the last couple days and it feels > very natural. I've attached a patch that adds a custom var to get the > old behavior, tho the new behavior is default. Let me know if that's the > right direction. Well, I don't use Eshell so my judgment is not that important, and it looks like noone is actively maintaining it, so how'bout this deal: - you make this change. - and you sign up as maintainer of Eshell. Do we have a deal? Stefan From debbugs-submit-bounces@debbugs.gnu.org Mon May 04 11:08:21 2015 Received: (at 18108) by debbugs.gnu.org; 4 May 2015 15:08:21 +0000 Received: from localhost ([127.0.0.1]:33865 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YpHyj-0001bY-BW for submit@debbugs.gnu.org; Mon, 04 May 2015 11:08:21 -0400 Received: from mx1.mailbox.org ([80.241.60.212]:55012) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YpHyd-0001b1-Gh for 18108@debbugs.gnu.org; Mon, 04 May 2015 11:08:15 -0400 Received: from smtp1.mailbox.org (smtp1.mailbox.org [80.241.60.240]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.mailbox.org (Postfix) with ESMTPS id 9EA21404F6; Mon, 4 May 2015 17:08:05 +0200 (CEST) X-Virus-Scanned: amavisd-new at heinlein-support.de Received: from smtp1.mailbox.org ([80.241.60.240]) by gerste.heinlein-support.de (gerste.heinlein-support.de [91.198.250.173]) (amavisd-new, port 10030) with ESMTP id QmG3OTbduMle; Mon, 4 May 2015 17:08:04 +0200 (CEST) From: Samer Masterson To: Stefan Monnier Subject: Re: bug#18108: [PATCH] 24.3.92 : eshell-visual-options fails with some output. In-Reply-To: References: <1428293143.15170.1@mail.samertm.com> <87sibgeume.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> <87mw1ksdo6.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> User-Agent: Notmuch/0.19 (http://notmuchmail.org) Emacs/25.0.50.1 (x86_64-unknown-linux-gnu) Date: Mon, 04 May 2015 08:08:00 -0700 Message-ID: <87h9rss7n3.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 18108 Cc: 18108@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) Stefan Monnier writes: > Well, I don't use Eshell so my judgment is not that important, and it > looks like noone is actively maintaining it, so how'bout this deal: > - you make this change. > - and you sign up as maintainer of Eshell. > Do we have a deal? Sounds good to me :) Does this mean I have to answer emails promptly now? (Only kind of joking.) -s From debbugs-submit-bounces@debbugs.gnu.org Mon May 04 17:14:10 2015 Received: (at 18108) by debbugs.gnu.org; 4 May 2015 21:14:10 +0000 Received: from localhost ([127.0.0.1]:34057 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YpNgo-0006gT-4G for submit@debbugs.gnu.org; Mon, 04 May 2015 17:14:10 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.181]:50757) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YpNgk-0006fk-OG for 18108@debbugs.gnu.org; Mon, 04 May 2015 17:14:08 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgUFAGvvdVRFpYts/2dsb2JhbAA3gVOhb4EIgXUBAQQBViMFCws0EhQYDSSIE6IRjGQHAgECAQKDPgODcASjY4RY X-IPAS-Result: AgUFAGvvdVRFpYts/2dsb2JhbAA3gVOhb4EIgXUBAQQBViMFCws0EhQYDSSIE6IRjGQHAgECAQKDPgODcASjY4RY X-IronPort-AV: E=Sophos;i="5.11,557,1422939600"; d="scan'208";a="118239687" Received: from 69-165-139-108.dsl.teksavvy.com (HELO pastel.home) ([69.165.139.108]) by ironport2-out.teksavvy.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 04 May 2015 17:14:01 -0400 Received: by pastel.home (Postfix, from userid 20848) id D7C352115; Mon, 4 May 2015 17:14:00 -0400 (EDT) From: Stefan Monnier To: Samer Masterson Subject: Re: bug#18108: [PATCH] 24.3.92 : eshell-visual-options fails with some output. Message-ID: References: <1428293143.15170.1@mail.samertm.com> <87sibgeume.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> <87mw1ksdo6.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> <87h9rss7n3.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> Date: Mon, 04 May 2015 17:14:00 -0400 In-Reply-To: <87h9rss7n3.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> (Samer Masterson's message of "Mon, 04 May 2015 08:08:00 -0700") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 18108 Cc: 18108@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) > Sounds good to me :) Does this mean I have to answer emails promptly > now? (Only kind of joking.) Well, as promptly as I yes ;-) Stefan From debbugs-submit-bounces@debbugs.gnu.org Fri May 15 23:20:24 2015 Received: (at 18108) by debbugs.gnu.org; 16 May 2015 03:20:24 +0000 Received: from localhost ([127.0.0.1]:46696 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YtSeF-0003TP-Ok for submit@debbugs.gnu.org; Fri, 15 May 2015 23:20:24 -0400 Received: from mx2.mailbox.org ([80.241.60.215]:57175) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YtSeD-0003TB-Ro for 18108@debbugs.gnu.org; Fri, 15 May 2015 23:20:22 -0400 Received: from smtp1.mailbox.org (smtp1.mailbox.org [80.241.60.240]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx2.mailbox.org (Postfix) with ESMTPS id B57974007F; Sat, 16 May 2015 05:20:15 +0200 (CEST) X-Virus-Scanned: amavisd-new at heinlein-support.de Received: from smtp1.mailbox.org ([80.241.60.240]) by gerste.heinlein-support.de (gerste.heinlein-support.de [91.198.250.173]) (amavisd-new, port 10030) with ESMTP id d2iSdInf95Pp; Sat, 16 May 2015 05:20:14 +0200 (CEST) From: Samer Masterson To: Stefan Monnier Subject: Re: bug#18108: [PATCH] 24.3.92 : eshell-visual-options fails with some output. In-Reply-To: References: <1428293143.15170.1@mail.samertm.com> <87sibgeume.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> <87mw1ksdo6.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> <87h9rss7n3.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> User-Agent: Notmuch/0.19 (http://notmuchmail.org) Emacs/25.0.50.1 (x86_64-unknown-linux-gnu) Date: Fri, 15 May 2015 20:20:11 -0700 Message-ID: <87lhgp2opg.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 18108 Cc: 18108@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) Ping, don't worry if you haven't gotten around to installing this. Also, what is the process for requesting write access to the Emacs repo? -s From debbugs-submit-bounces@debbugs.gnu.org Sun May 17 18:02:52 2015 Received: (at 18108) by debbugs.gnu.org; 17 May 2015 22:02:52 +0000 Received: from localhost ([127.0.0.1]:48369 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yu6e0-0005Mh-BO for submit@debbugs.gnu.org; Sun, 17 May 2015 18:02:51 -0400 Received: from mx1.mailbox.org ([80.241.60.212]:37588) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Yu6du-0005MA-T1 for 18108@debbugs.gnu.org; Sun, 17 May 2015 18:02:46 -0400 Received: from smtp1.mailbox.org (smtp1.mailbox.org [80.241.60.240]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.mailbox.org (Postfix) with ESMTPS id B4A8C4283F; Mon, 18 May 2015 00:02:36 +0200 (CEST) X-Virus-Scanned: amavisd-new at heinlein-support.de Received: from smtp1.mailbox.org ([80.241.60.240]) by gerste.heinlein-support.de (gerste.heinlein-support.de [91.198.250.173]) (amavisd-new, port 10030) with ESMTP id HM_LxhTVnqd9; Mon, 18 May 2015 00:02:35 +0200 (CEST) From: Samer Masterson To: Stefan Monnier Subject: Re: bug#18108: [PATCH] 24.3.92 : eshell-visual-options fails with some output. In-Reply-To: <87lhgp2opg.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> References: <1428293143.15170.1@mail.samertm.com> <87sibgeume.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> <87mw1ksdo6.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> <87h9rss7n3.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> <87lhgp2opg.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> User-Agent: Notmuch/0.19 (http://notmuchmail.org) Emacs/25.0.50.1 (x86_64-unknown-linux-gnu) Date: Sun, 17 May 2015 15:02:30 -0700 Message-ID: <87y4kmg8w9.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 18108 Cc: 18108@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) I've installed this as 76f2d19edd7180874f9539897f674ae05d892419. Thanks for the review! -s From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 03 22:19:58 2016 Received: (at control) by debbugs.gnu.org; 4 Jul 2016 02:19:58 +0000 Received: from localhost ([127.0.0.1]:36356 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bJtUM-0006WD-B8 for submit@debbugs.gnu.org; Sun, 03 Jul 2016 22:19:58 -0400 Received: from mail-io0-f170.google.com ([209.85.223.170]:35497) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bJtUK-0006W0-ID for control@debbugs.gnu.org; Sun, 03 Jul 2016 22:19:56 -0400 Received: by mail-io0-f170.google.com with SMTP id f30so142054394ioj.2 for ; Sun, 03 Jul 2016 19:19:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=uW/CdFvoDQGdBft2nSP5JsPccSjU697A2qXJdtq9O80=; b=vtMIkzkR1+bFLYfLmou/z+f3QjAKyBe11Md8uIHb8Wy30p5qPyaOKcCLDsTUCMg3ZM SdYtGMPWMmSD1FVbYvgn5y/1R0lRHyGNnIsij6mcG6jZAbTNeqv/6tMlVCKi6z6cgl9r 0V/+b98oGmnCl00wdkvSZvLMUNf/nEFz8UEW2ByNsv7UHk62LCoYjDdlf4Av4rkTNRyt CPa5iuQvGGZFRNwaTVvctWG3/RxxYw4MqRETSgv5oDU5ZtFnO8Y7cyW5aFC1kJJkVmUP sw2gFiLY3UCI5phShHpe7oWosrnOdsv+wVlrlWxouOg5uI8VU79pYyhuh1NyFow0ppKB wvKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:subject:references:date :in-reply-to:message-id:user-agent:mime-version; bh=uW/CdFvoDQGdBft2nSP5JsPccSjU697A2qXJdtq9O80=; b=DWGsZ4UrNdBJBAW14NrRBKyw29BzPurbZcaHaNmlQ3k5974qAj70aysuTc9AaZAS/z kS3QUuIU5iczWnZ0EtZHouPZyvhsWJ+BW7XZFPWSYWE+bQLBOVDVBl/HQHarNY0mlFhx pmrVuiYotq18kViGHFht3cV/rsMYF9/LJcLrE6ua0af97RmmOrPr7diqtdzs6VM33Njs JMEzLwnMx3Kw73UavZF4aw/Ku1wEcpDZLnT9Dq+HvjEahZ7YJK857iWLCCkqqQC+D/Wq /ygDY824mYmtvXUae+TcIuCiXHWtzWE6gEt854QrsphP0k1+8drPC+GICdeTZL8DIpEO UcuQ== X-Gm-Message-State: ALyK8tJhQwiRTiJIiHSQK+B7NomthDCGo57TwetikKEulhGpc92nsRORLhDj9CPL0eDSTg== X-Received: by 10.107.48.193 with SMTP id w184mr8319692iow.140.1467598790911; Sun, 03 Jul 2016 19:19:50 -0700 (PDT) Received: from zony (206-188-64-44.cpe.distributel.net. [206.188.64.44]) by smtp.googlemail.com with ESMTPSA id g11sm884661iod.41.2016.07.03.19.19.50 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 03 Jul 2016 19:19:50 -0700 (PDT) From: npostavs@users.sourceforge.net To: control@debbugs.gnu.org Subject: Re: bug#18108: [PATCH] 24.3.92 : eshell-visual-options fails with some output. References: <1428293143.15170.1@mail.samertm.com> <87sibgeume.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> <87mw1ksdo6.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> <87h9rss7n3.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> <87lhgp2opg.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> <87y4kmg8w9.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> Date: Sun, 03 Jul 2016 22:19:57 -0400 In-Reply-To: <87y4kmg8w9.fsf@f-box.i-did-not-set--mail-host-address--so-tickle-me> (Samer Masterson's message of "Sun, 17 May 2015 15:02:30 -0700") Message-ID: <87h9c6du0i.fsf@users.sourceforge.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.93 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) tags 18108 fixed close 18108 25.0.90 quit Samer Masterson writes: > I've installed this as 76f2d19edd7180874f9539897f674ae05d892419. Thanks > for the review! > > -s From unknown Sat Sep 06 07:58:59 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 01 Aug 2016 11:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator