From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: zsh-workers-return-43755-ml=inbox.vuxu.org@zsh.org X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,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 b9f6db4f for ; Sat, 3 Nov 2018 00:38:08 +0000 (UTC) Received: (qmail 27503 invoked by alias); 3 Nov 2018 00:37:55 -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: 43755 Received: (qmail 5844 invoked by uid 1010); 3 Nov 2018 00:37:55 -0000 X-Qmail-Scanner-Diagnostics: from mail-lj1-f174.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.208.174):SA:0(-1.9/5.0):. Processed in 2.958545 secs); 03 Nov 2018 00:37:55 -0000 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:references:in-reply-to:from:date:message-id:subject:to :cc; bh=i4i0JKa0528kBhhUpdQV4Z2SG7kM+QhYLzMfDvVzdIc=; b=TGS1hSXuwheG6k+VxvPmaENPYOlTgZ9JfsWkQ5/EFRtH4VG7ExkrNuEd1oA/kzGSBc 8r5P9BUXbSTjRnuqgm42twdGXenqkQe+8zqvZQ5nND+EOb6kHG082K//tabWXZo7NwLp mKDQZX/e+Tpy5mYSY7Q6RicASxjlEkU/CqUQG1ZjJwwKhUcs1iRIjACS4w6Pdw4Wc4l1 oglDH9Dwv9p05GBtFOCwdTLzU7/5inghOu62c1icskzanas255npF2Q/4kcQIz5tqVdY dlT9hBpHPI5eBr26qm0VKix/oEpxliI8joJxwNMU4cA72At+uQDR/AXFb2X4qZPW30b1 P9IQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=i4i0JKa0528kBhhUpdQV4Z2SG7kM+QhYLzMfDvVzdIc=; b=cpQ34JGkZ7r0YIqsJVp5BvV/CdiE9yu1vphOQ4wAc5oyV3qIh9UdcfD0FtiWBOk7U5 eCejG7eqRIoEYi1f77EFuUP55fcCcXHEPrpg9e+2roQUsKl1Ay9DIOESeYzpoQpSKgdz O7hJRGivVIRc+fMnOCI5XOWJHMMQgx4DBARDTfJCWtIs3TBHe4MNF8j39YaKUtm3aGah K++cuYh2jUovSUPldnJaeZNxIh8B30cpp8JyfQZaZ9Cz4Z3611C5hIgsqnWP/pIhZDO7 ymPHEPfAxlV+D+YpA7hL7jL3GNm1SZx7rLFASZNwehJEJIQXNur2P2GNwAu4KRy+7BDD vjAQ== X-Gm-Message-State: AGRZ1gKcPgHzAAl32cFAs3NCd61UbQgL45t4HS6yyw4/nAN0LC/w3oOE vRTuv6X92zI1vkxvCqF5A6SpvK9isDyuA1qmq3fSlWxiYhI= X-Google-Smtp-Source: AJdET5cv5Xt9+AfOL+WmnyOX/Y19WzasccMxsdCH3yanOiu6ZLIl3gI527Yf6zApGJ0L7XiqAt8MWmZ3zJHB2AveOws= X-Received: by 2002:a2e:630a:: with SMTP id x10-v6mr8397112ljb.11.1541205467722; Fri, 02 Nov 2018 17:37:47 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Bart Schaefer Date: Fri, 2 Nov 2018 17:37:34 -0700 Message-ID: Subject: Re: A weird smart-insert-last-word bug To: wayne@opencoder.net Cc: "zsh-workers@zsh.org" Content-Type: text/plain; charset="UTF-8" On Fri, Nov 2, 2018 at 5:03 PM Wayne Davison wrote: > > I make use of smart-insert-last-word like this: > > zlewidget '' insert-last-word smart-insert-last-word Sorry, what is "zlewidget" exactly? > Every now and then it destroys some part of the command line when starting > a new insert sequence. This seems to be caused by its simple conditional > at the start of its file being inadequate Does this help? (Apologies if lines wrap) diff --git a/Functions/Zle/smart-insert-last-word b/Functions/Zle/smart-insert-last-word index cf8715d..05f23cb 100644 --- a/Functions/Zle/smart-insert-last-word +++ b/Functions/Zle/smart-insert-last-word @@ -48,13 +48,14 @@ zle auto-suffix-retain # Not strictly necessary: # (($+_ilw_hist)) || integer -g _ilw_hist _ilw_count _ilw_cursor _ilw_lcursor _ilw_changeno +# (($+_ilw_result)) || typeset -g _ilw_result integer cursor=$CURSOR lcursor=$CURSOR local lastcmd pattern numeric=$NUMERIC # Save state for repeated calls if (( HISTNO == _ilw_hist && cursor == _ilw_cursor && - UNDO_CHANGE_NO == _ilw_changeno )) + UNDO_CHANGE_NO == _ilw_changeno )) && [[ $BUFFER == $_ilw_result ]] then NUMERIC=$[_ilw_count+1] lcursor=$_ilw_lcursor @@ -119,7 +120,7 @@ fi (( NUMERIC > $#lastcmd )) && return 1 LBUFFER[lcursor+1,cursor+1]=$lastcmd[-NUMERIC] -typeset -g _ilw_cursor=$CURSOR +typeset -g _ilw_cursor=$CURSOR _ilw_result=$BUFFER # This is necessary to update UNDO_CHANGE_NO immediately zle split-undo && typeset -g _ilw_changeno=$UNDO_CHANGE_NO