From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5853 invoked by alias); 31 Dec 2016 06:22:30 -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: 40248 Received: (qmail 16173 invoked from network); 31 Dec 2016 06:22:30 -0000 X-Qmail-Scanner-Diagnostics: from mercury.zanshin.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(64.84.47.142):SA:0(-0.0/5.0):. Processed in 1.568636 secs); 31 Dec 2016 06:22:30 -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=SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.1 X-Envelope-From: schaefer@brasslantern.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: pass (ns1.primenet.com.au: SPF record at ipost.com designates 64.84.47.142 as permitted sender) Date: Fri, 30 Dec 2016 22:13:27 -0800 (PST) From: Bart Schaefer Reply-To: Bart Schaefer To: zsh-workers@zsh.org Subject: Error in zshaddhistory() should not prevent command from running Message-ID: User-Agent: Alpine 2.00 (LRH 1167 2008-08-23) X-Face: "f/X=UCVgd*^c>+x(gMq0at?e:woX+;'snkkRzc3SX<0AZ (/PS4.M2hzGS9X:Qj]at_H/%a9K}:-eS<"v_7vX84PG9Bf Zpb`wI!I4geY=or+nWq`3CX`oq&TJR;g^ps|7(MH?jh;bs %vHJfCh5>a*6Re5m|Bidja\\o]>n\A)ib1:yX*T`zR(*h~ %tOw<~!D9{e6h!8M2:d8G2@K>y^1I_Vdy\d\MYe]z7c MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII [Fourth attempt sending this, primenet is blocking gmail again.] Should this actually be in callhookfunc() itself? I note that the doc warns about errors in precmd killing off periodic, or else I'd say it ought to be. Possibly more controversial, why run this hook at all when nothing is being added? diff --git a/Src/hist.c b/Src/hist.c index 97fd340..350688d 100644 --- a/Src/hist.c +++ b/Src/hist.c @@ -1418,7 +1418,7 @@ hend(Eprog prog) DPUTS(hptr < chline, "History end pointer off start of line"); *hptr = '\0'; } - { + if (*chline) { LinkList hookargs = newlinklist(); int save_errflag = errflag; errflag = 0; @@ -1427,6 +1427,7 @@ hend(Eprog prog) addlinknode(hookargs, chline); callhookfunc("zshaddhistory", hookargs, 1, &hookret); + errflag &= ~ERRFLAG_ERROR; errflag |= save_errflag; } /* For history sharing, lock history file once for both read and write */