From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13851 invoked by alias); 8 Feb 2014 22:45:59 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 32368 Received: (qmail 15686 invoked from network); 8 Feb 2014 22:45:53 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.2 From: Bart Schaefer Message-id: <140208144555.ZM16333@torch.brasslantern.com> Date: Sat, 08 Feb 2014 14:45:55 -0800 In-reply-to: <140208121311.ZM14905@torch.brasslantern.com> Comments: In reply to Bart Schaefer "Commit 137b15a fails X02zlevi test" (Feb 8, 12:13pm) References: <140208121311.ZM14905@torch.brasslantern.com> X-Mailer: OpenZMail Classic (0.9.2 24April2005) To: zsh-workers@zsh.org Subject: Re: Commit 137b15a fails X02zlevi test MIME-version: 1.0 Content-type: text/plain; charset=us-ascii On Feb 8, 12:13pm, Bart Schaefer wrote: } Subject: Commit 137b15a fails X02zlevi test } } Not sure if this is bad test data or if workers/32342 broke "print -z". OK, it's neither of those. If I rearrange the tests to put that one first, it works and the next test that begins with "comptesteval ..." fails instead. The problem stems from the same zpty used for all the tests, and there is something about the "zletest" function that leaves the zpty in a bad state for a subsequent "comptesteval". Oddly, two "zletest" calls in a row do not encounter whatever situation this is. For some reason, the command that ends "comptesteval", which is . /tmp/comptest.$$ is being executed *again* at the beginning of zletest, which produces an error such as .: no such file or directory: /tmp/comptest.16194 I haven't figured out how to tell whether this means the comptest.$$ file is never read, or if it is read but the buffer is being cleared when that error occurs and therefore is in the wrong state when the actual test input is executed. The only obvious difference between "comptesteval" and "zletest" is that the former uses zpty -w zsh ". $tmp" where the latter uses zpty -n -w zsh "$input"$'\C-M' in which the ^M is supposed to invoke the zle-finish widget. I note that the zle-finish widget uses "zle send-break" and then tries to do "zle -R" after it. That won't work, "zle send-break" causes an implicit return from the widget in which it is executed. But it ought to reset ZLE to viins mode, even without the "zle -K main", so I remain puzzled why the subsequent comptesteval would fail given that the first one (before any zletest call) succeeds.