From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22241 invoked by alias); 25 Sep 2016 13:26:27 -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: 39432 Received: (qmail 3099 invoked from network); 25 Sep 2016 13:26:27 -0000 X-Qmail-Scanner-Diagnostics: from out2-smtp.messagingengine.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(66.111.4.26):SA:0(0.0/5.0):. Processed in 0.364473 secs); 25 Sep 2016 13:26:27 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.1 X-Envelope-From: d.s@daniel.shahaf.name X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: none (ns1.primenet.com.au: domain at daniel.shahaf.name does not designate permitted sender hosts) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= daniel.shahaf.name; h=date:from:message-id:subject:to:x-sasl-enc :x-sasl-enc; s=mesmtp; bh=znGzC8UdtmQFCr6qTSmJaDLDPBQ=; b=GCicFz HGWu88DiTfC+v6WOzcSdcDBByIRtreXtt2236UxNcEH1hLDEeMaKZmuvfin7Ma52 VrxrFaDJ4YNgSIn2ag8m506mppq+iw7V1gtWZ5UF+GPcrs1YO/tZWrO2kxlilufF DRyg3F6tNqawRz8JZUxXVSU92EV+MWdjD5KVY= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=date:from:message-id:subject:to :x-sasl-enc:x-sasl-enc; s=smtpout; bh=znGzC8UdtmQFCr6qTSmJaDLDPB Q=; b=MwMyUgYmcYygbItU4DpvLTPKaC1KQLPlqDz3ZdgZXNDjfERDOOOqhSp7oo Ot8DIj5dYmBSdv6R3WE+ul+tgWOAbXIRrMZpTz3B/Og9wIm4FQqTJqF6lXFPdQIg zeycq1PZuoeshLVQcp3CM+BNP4ajzO8AjfSWyibnejF26754w= X-Sasl-enc: pCSseflZrHMB/DZUABNfPzoheuMUoBPNIiuWfkkPRMn0 1474809979 From: Daniel Shahaf To: zsh-workers@zsh.org Subject: [PATCH] zle: Call zle-line-pre-redraw when popping from bufstack. Date: Sun, 25 Sep 2016 13:25:05 +0000 Message-Id: <1474809905-12861-1-git-send-email-danielsh@fujitsu.shahaf.local2> X-Mailer: git-send-email 2.1.4 --- I'd appreciate another pair of eyes; it looks correct but I'm not very familiar with this part of the code. Originally reported as . Thanks, Daniel Src/Zle/zle_main.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/Src/Zle/zle_main.c b/Src/Zle/zle_main.c index 9a83d41..89a545b 100644 --- a/Src/Zle/zle_main.c +++ b/Src/Zle/zle_main.c @@ -1162,7 +1162,16 @@ zlecore(void) popheap(); } -/* Read a line. It is returned metafied. */ +/* Read a line. It is returned metafied. + * + * Parmaeters: + * - lp: left prompt, e.g., $PS1 + * - rp: right prompt, e.g., $RPS1 + * - flags: ZLRF_* flags (I think), see zlereadflags + * - context: ZLCON_* flags (I think), see zlecontext + * - init: "zle-line-init" + * - finish: "zle-line-finish" + */ /**/ char * @@ -1171,6 +1180,7 @@ zleread(char **lp, char **rp, int flags, int context, char *init, char *finish) char *s, **bracket; int old_errno = errno; int tmout = getiparam("TMOUT"); + int redraw_required = 0; #if defined(HAVE_POLL) || defined(HAVE_SELECT) /* may not be set, but that's OK since getiparam() returns 0 == off */ @@ -1242,6 +1252,7 @@ zleread(char **lp, char **rp, int flags, int context, char *init, char *finish) initundo(); fixsuffix(); if ((s = getlinknode(bufstack))) { + redraw_required = 1; setline(s, ZSL_TOEND); zsfree(s); if (stackcs != -1) { @@ -1293,6 +1304,12 @@ zleread(char **lp, char **rp, int flags, int context, char *init, char *finish) prefixflag = 0; region_active = 0; + if (redraw_required) { + /* If we popped a command from bufstack, syntax highlight it, now + * that zle is active. */ + redrawhook(); + } + zrefresh(); unqueue_signals(); /* Should now be safe to acknowledge SIGWINCH */