Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: [BUG] queueing_enabled grows infinitely when in .recursive-edit
- X-seq: zsh-workers 39550
- From: Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx>
- To: Zsh hackers list <zsh-workers@xxxxxxx>
- Subject: Re: [BUG] queueing_enabled grows infinitely when in .recursive-edit
- Date: Mon, 3 Oct 2016 09:33:23 -0700
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20150623.gappssmtp.com; s=20150623; h=from:message-id:date:in-reply-to:comments:references:to:subject :mime-version; bh=xdbLeECtsB0NMFrRoUvRKS8RKCFNjYrWPN7E2Ymss4Y=; b=oBlSNGmxLscwFNUD2Isax3DbLT32Ci39zkvzUA79B7cGGK7npetv8O41m8fKNd/14y E8+Cp5LMBJVwWTmcqz/Lpk8c7t+kou82WEOD6c0uqwFALP/z1J6YK3zKZApuVzOTQZ/N WYg2d8s9r0Vvay7F2AE9wIuVMnbuTHxbpW5fpCsnie3zFT6ucxZAAMWODlHtevfSUzvg ZNOOSAR3PmjVYGbWHbtvOqSAvxNjQJHsDGiDcNn4tkC0MIeOWcDzoBOzwUDhrX7ogheO OIs+y+DvNfbviAhIN2jiXz28IhaxXLF3GbhcUdp0GpynzLsemsaTjgm1wr3Kd2yT1yOO VPqA==
- In-reply-to: <161002162145.ZM22574@torch.brasslantern.com>
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
- References: <CAKc7PVAoLMj+dwEugbvggrmcjQbLP3GutxiNHPbpwvLw-a9F=w@mail.gmail.com> <161002162145.ZM22574@torch.brasslantern.com>
On Oct 2, 4:21pm, Bart Schaefer wrote:
}
} The second is that zlecore() expects to be entered with the signal
} queue disabled, but zle widgets are called with queueing enabled, so
} recursiveedit() needs save/zero/restore the queue level around the
} call to zlecore().
Here's the patch for this. Unchanged from 39543, but reposting because
I explicitly said 39543 was not for commit.
diff --git a/Src/Zle/zle_main.c b/Src/Zle/zle_main.c
index 0b3b1fc..09581b5 100644
--- a/Src/Zle/zle_main.c
+++ b/Src/Zle/zle_main.c
@@ -1868,11 +1868,17 @@ int
recursiveedit(UNUSED(char **args))
{
int locerror;
+ int q = queue_signal_level();
+
+ /* zlecore() expects to be entered with signal queue disabled */
+ dont_queue_signals();
redrawhook();
zrefresh();
zlecore();
+ restore_queue_signals(q);
+
locerror = errflag ? 1 : 0;
errflag = done = eofsent = 0;
--
Barton E. Schaefer
Messages sorted by:
Reverse Date,
Date,
Thread,
Author