From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5992 invoked by alias); 21 Nov 2017 01:45:17 -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: List-Unsubscribe: X-Seq: 42043 Received: (qmail 2785 invoked by uid 1010); 21 Nov 2017 01:45:16 -0000 X-Qmail-Scanner-Diagnostics: from mail-qk0-f181.google.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(209.85.220.181):SA:0(-1.9/5.0):. Processed in 1.247808 secs); 21 Nov 2017 01:45:16 -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=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_PASS,T_DKIM_INVALID autolearn=ham autolearn_force=no version=3.4.1 X-Envelope-From: schaefer@brasslantern.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=angIkCW0wpdIqjfR/cJqh61ex1TpdHP+6tXTYVs7WMg=; b=U35IVeDauM5JztzwU7WxbKGXaE5B9xOJwKnLbdS3Sxa9c6li8eWLvcFWEcMlVurzAp NoKKq0rTE9mjjtE1smWZxblfcdXbjF+Nt7WpC0bPHvEwLTut+dviIASJaYulF95Nj5Ju PMotufq1+YV6ImIOuY7AUDQxeEIKHh2xBvP3//0FbO5YbNl9BwRukGg0o/AZqowUhLHd Jfyq5PgcGhodYaPrfXjzckv6forXg9BzfCTXa/O7SxHAjJRWbSoCwGBy4+HQJoSmRZ5i S/2G9pLkeThexhY/+QCeAjpX2mbXqFOhGoirGMu0Ec1GiPFxh4X2FZts0EUiOCyOItV4 6xjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=angIkCW0wpdIqjfR/cJqh61ex1TpdHP+6tXTYVs7WMg=; b=jZropEkZ3MKJBW4mfeCJdUmM1SCHY/iGDH9PGh2H571cR9D1GzEM+aSvOGjn4DXL/n nlKqcupWVCHLTs757pR/Fr3I00K9Iab5c0pTjGpzQG2Z5bee6MoZ4lTsHyGVEV5oiK3r 8BYw/bkHWp3ednRatrzCEPanCLPJ23tDr3Z4vgfmFKaRuEkGeblqz8tgarEzGXgyM7uw la7fe3vz6cYJtKBvhzKOak0jNtKqyuMVusOAXGgmCjwJeoipIaFjT1JLkR8mPgsu6Quy MwfuWan0Pa8Y76criXOmepwTQEpdWTcdUYDLwUTeTyvlUS0x49eKZGuUr8oEAbVJgC0v P23Q== X-Gm-Message-State: AJaThX63AeP7mfzmKTxCsh/C4NQi16525DXe40aGSXTGjEI+qDmFVIW9 QKqpVcbCgTzc1FHIx6rs6P65v/K1H/3kHruGkDWUPNzu X-Google-Smtp-Source: AGs4zMaJeD5KHmykHlKpFvs1Dw/VC8zvSOgWOdfe4lYtaidLVghrhygEY5jzLPsspVNopMTDPyHYofXCfONy11ogZqk= X-Received: by 10.55.17.72 with SMTP id b69mr23452225qkh.178.1511228712101; Mon, 20 Nov 2017 17:45:12 -0800 (PST) MIME-Version: 1.0 In-Reply-To: <20171120040845.GA37154@CptOrmolo.darkstar> References: <20171120040845.GA37154@CptOrmolo.darkstar> From: Bart Schaefer Date: Mon, 20 Nov 2017 17:45:11 -0800 Message-ID: Subject: Re: DEBUG trap and warn_create_global To: "zsh-workers@zsh.org" Content-Type: text/plain; charset="UTF-8" On Sun, Nov 19, 2017 at 8:08 PM, Matthew Martin wrote: > > I would think ZSH_DEBUG_CMD is local to the trap execution. Otherwise > DEBUG traps can "break" warn_create_global clean functions. Hm. Making it implicitly local would change the behavior with respect to "unset after the trap." I don't know how important that is. However, it should be possible for it to be set without tripping the warning, we just need to call assignsparam() instead of setsparam(). (Apologies if this gets wordwrapped or something, I don't have access to my usual email client this week.) diff --git a/Src/exec.c b/Src/exec.c index fc6d02d..49da562 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -1319,7 +1319,9 @@ execlist(Estate state, int dont_change_job, int exiting) noerrexit = NOERREXIT_EXIT | NOERREXIT_RETURN; if (ltype & Z_SIMPLE) /* skip the line number */ pc2++; - pm = setsparam("ZSH_DEBUG_CMD", getpermtext(state->prog, pc2, 0)); + pm = assignsparam("ZSH_DEBUG_CMD", + getpermtext(state->prog, pc2, 0), + 0); exiting = donetrap; ret = lastval;