From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15749 invoked by alias); 12 Nov 2016 17:55:05 -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: 39927 Received: (qmail 21499 invoked from network); 12 Nov 2016 17:55:05 -0000 X-Qmail-Scanner-Diagnostics: from mail-qt0-f170.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.216.170):SA:0(-0.7/5.0):. Processed in 1.055326 secs); 12 Nov 2016 17:55:05 -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.7 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_PASS,T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.1 X-Envelope-From: mikachu@gmail.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: pass (ns1.primenet.com.au: SPF record at _netblocks.google.com designates 209.85.216.170 as permitted sender) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=l8Hdgw5DB75hSQYZtG6rITMZSm6C2wJlA/BmxFtBHmM=; b=b21xhlaRbWoorQKtPcPLIhy+kML0C1VwVCgYNtyH9UXko9yjDbAliR5nzfyx8vLtgK iprINLo3Cg9Cp5y5fLuZWSw1v8NacbbAKpmQEDXh6IrS8n8lmgflu2NFD2u9TZEI+oha XD1HmhgNjRAkak3LL9wtFHkRqmbLUxFCDQfKz6A6sf2LaNjLPK6VyqA/xqGb1rHmwXVT EspWiUoNgSnKyTJtPx5LOmDT4zaECPHX5Ha6FT7gb/C4AsVhOvieDjxmo0hFZYdkbNj/ CwpxHzfm4wSgwErFGxUnUXVOW4B1/y0hOn6ULqeOHGBb0FQiYrlSuEM9664eysejExNW Q7bA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=l8Hdgw5DB75hSQYZtG6rITMZSm6C2wJlA/BmxFtBHmM=; b=FpIjIPZvlUqf2nHiNs1xIynVUYQ6X00idbzcoDSRPrcjSqyGvxqyogTIPcRPRwBBtv FNJWFGDooMgtuLtPOit4AqAq5twoQxh3orWI07uKEuNspjinSutZCXowcY9akNeyiNki KTlvoQJTSscOckftsBNmI8eBww6iI2xVTzGOZFdYrp8QF4SYoVcNZjr+oBVQF2aaHPxJ ul7F7P+vuEjreGAwzZhhJVXX9qNleWuJkT+CD4mqUiekvZ9P2h8bLNzZ85cJhahlfzQt CTps44PCYJmgd2DVgsJ9JBAPhFOGME5+/3h7UHKbYg3/BxQ3EEVjxhTdjSuCm905U6CN WM9A== X-Gm-Message-State: ABUngvcZJSI2n4DV3swPjuYMNgCNdLutricudD64T9YbyjquXfacMNPzjYAhrEMaF/EckYBNfr2mpMfkEtnkRg== X-Received: by 10.200.43.167 with SMTP id m36mr6814140qtm.117.1478973297797; Sat, 12 Nov 2016 09:54:57 -0800 (PST) MIME-Version: 1.0 In-Reply-To: <161112090315.ZM1146@torch.brasslantern.com> References: <161112090315.ZM1146@torch.brasslantern.com> From: Mikael Magnusson Date: Sat, 12 Nov 2016 18:54:55 +0100 Message-ID: Subject: Re: Bad effect of error in zle-line-pre-redraw To: Bart Schaefer Cc: zsh workers Content-Type: text/plain; charset=UTF-8 On Sat, Nov 12, 2016 at 6:03 PM, Bart Schaefer wrote: > If you happen to introduce an error into zle-line-pre-redraw, > your shell is pretty badly wrecked -- ZLE resets itself after every > character typed. Stupid minimal example: > > torch% zle-line-pre-redraw() { : ${bad_subscript[missing-bracket} } > torch% zle -N zle-line-pre-redraw > torch% e > zle-line-pre-redraw: invalid subscript > torch% e > torch% c > zle-line-pre-redraw: invalid subscript > torch% c > torch% h > zle-line-pre-redraw: invalid subscript > torch% h > torch% o > zle-line-pre-redraw: invalid subscript > torch% o > torch% > > Why the missing bracket isn't a syntax error at parse time rather > than an evaluation error at run time is left as an exercise; e.g. ksh > complains when defining the function. > > Other hook functions (zle-history-line-set, etc.) don't have this side- > effect. % foo() { : ${bad_subscript[missing-bracket} } % zle -N self-insert foo {5514|18:54:05|~}% foo: invalid subscript {5514|18:54:05|~}% {5514|18:54:05|~}% foo: invalid subscript {5514|18:54:05|~}% {5514|18:54:05|~}% There are many many more ways to break a shell session, surely. -- Mikael Magnusson