From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from primenet.com.au (ns1.primenet.com.au [203.24.36.2]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id fa139f67 for ; Tue, 12 Nov 2019 14:57:12 +0000 (UTC) Received: (qmail 29817 invoked by alias); 12 Nov 2019 14:57:02 -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: 44910 Received: (qmail 25325 invoked by uid 1010); 12 Nov 2019 14:57:02 -0000 X-Qmail-Scanner-Diagnostics: from mail-il1-f171.google.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.102.0/25628. spamassassin: 3.4.2. Clear:RC:0(209.85.166.171):SA:0(-2.0/5.0):. Processed in 2.016777 secs); 12 Nov 2019 14:57:02 -0000 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.166.171 as permitted sender) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=8dGH/gtxCRA+zawF5TVdjior+mU5uDrZd4ftyJOaTN0=; b=UWCGitYW6y7/jVIvRSPWc/MWaiAaqU+MsofKu/r75xU7YMOqiK5oEq2m4PBnod9AOV Kc9IERNxvE+/7Iz3tN5gNd9zgAPBNZZ/rIAkQyKfqTnrWNFqcuU3WfAJLRL9GBJYqzVU n97I2AJFJtqyE1kmG8rOaD90zVPGFlrKaxHMsCvuxKT5qO7H4t3JDBXOep1SGxxm4MBK JFgQuMITt0iUEFZe3y5cZSHTJX4EOHsvZZYDpE8O6U7akq38S4OZBYgLm8de21HUIbtb 6wxFKNsKTi5yJbzuKBmMy5a7C1IJzSIm5sBnK/GMYliOD+zQ2TYKuB8BTm3ohZSVe4XC ajCQ== 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:cc; bh=8dGH/gtxCRA+zawF5TVdjior+mU5uDrZd4ftyJOaTN0=; b=J+L1cEKQ4mdFViu7EA5oxLJkUmq6qRJpkL/V5vz+C6rnEefCM6ywraXN9oBskelif6 fp5zDnKgq4bHKQCyfOON9i8uErcK7x/u0ECoqVTljp1oWf2haHHUb+xsdZATNQTGa9Fj 6dU+0juRd8b93Tq0q49UktjnjxQeMWYKsuv63NSd/z2X6zrKV0WamKZPUkraw6ACdDJi l7CoAiyKVtSOHq6LP385lgXwbMD0lZrJygMGOYW95F3bPbWXCzA3OWZ1j/ejK4N067Fu nnrut7DDeZjrssHG9Nmepn5wK4PjktZAT9Anar5RnAkLXuXflU5jkFVYbrXBROIYDbpR 0FVg== X-Gm-Message-State: APjAAAUd3Cu+WoUJ/BN6FFxq79ySTyJ3PC8eiXkoi6aBSXy3GKn8cbG6 sIOD4kFrH3SfnlxwqyHqSi9huGvzn1ZVWhPeN44= X-Google-Smtp-Source: APXvYqyaUvFOAw1+JEHQTED1Wi7t/SeGY2pyuC2BXnwdI2Z48NhqDGnrCeTX99WPXslJgUjngnWv1WER/vp0UM+7tT8= X-Received: by 2002:a92:aa91:: with SMTP id p17mr38154154ill.25.1573570586533; Tue, 12 Nov 2019 06:56:26 -0800 (PST) MIME-Version: 1.0 In-Reply-To: References: <1573484293.4561.8.camel@samsung.com> From: Mikael Magnusson Date: Tue, 12 Nov 2019 15:56:25 +0100 Message-ID: Subject: Re: [BUG] Crash when accessing WIDGETSTYLE from SIGINT trap To: Roman Perepelitsa Cc: Zsh hackers list Content-Type: text/plain; charset="UTF-8" On 11/11/19, Roman Perepelitsa wrote: > On Mon, Nov 11, 2019 at 3:58 PM Peter Stephenson > wrote: >> >> On Mon, 2019-11-11 at 15:38 +0100, Roman Perepelitsa wrote: >> > Crash at zle_params.c:436 due to bindk being null: >> > >> > Widget widget = bindk->widget; >> >> Looks to me like returning the empty string in that case would be fine? > > I don't know. I haven't sent a patch because I'm not sure whether the > fix should be right there in get_widgetstyle or somewhere earlier so > that bindk is not null to begin with. > > I should've explained what I'm trying to do. I want to use a long > prompt for the current command line and a short prompt for complete > commands. Sort of like transient_rprompt option but instead of hiding > just right prompt I want to hide most of left prompt too. Here's a > short demo: > https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/transient-prompt.gif. > > Here's how I'm doing it: > > - Set long prompt in precmd. > - Set short prompt in zle-line-finish and on SIGINT. > > The code: > > set-long-prompt() { PROMPT='%~%# ' } > precmd_functions=(set-long-prompt) > > set-short-prompt() { > if [[ $PROMPT != '%# ' ]]; then > PROMPT='%# ' > zle .reset-prompt > fi > } > > zle-line-finish() { set-short-prompt } > zle -N zle-line-finish > > trap 'set-short-prompt; return 130' INT > > One issue with this code is that after hitting Ctrl-C, set-long-prompt > doesn't get called, so I end up with a short current prompt. Have you tried restoring the long prompt in zle-line-init instead? -- Mikael Magnusson