From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 12486 invoked from network); 4 Mar 2021 19:50:47 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 4 Mar 2021 19:50:47 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20200801; t=1614887447; b=ent55oBcV61jrMPu/wjFqki7zNnGF2SEEX5LfAx9FxF+mhJtGhX3o5jdv/Vyi8mJHuOqw2VwQf NRs8jRD1tinKFV3ynrtSvFUpJ4B62mqi/6Y1rPjf8hKCTv0XjFg3d9kJv9TRim8zxvARAL6bcj InYWEznLcdFt4HVmWfi1BFCDCPxwcEligdS3vLDSb4o/5UNuQ232HI0jsXfj1aSZoLKEWUBisQ gur4qiq2R7a6k8cEp9llw7W4DI9Q1L3F/QIwR+MGgxpFJnEJjZ5UVi9voFHwXwpySbkyx3LSSc /OQ7W8E8oFE/h/N7vp/hrAn+RwQUlOaDR1aNGNxaYnmk2w==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-lf1-f48.google.com) smtp.remote-ip=209.85.167.48; dkim=pass header.d=gmail.com header.s=20161025 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20200801; t=1614887447; bh=k7hjEWpoH67Rm5cv4PPg6+APisyJmzxHMSOhGx+sclY=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:To:Subject:Message-ID:Date:From:MIME-Version: DKIM-Signature:DKIM-Signature; b=dfX8XpCr4YWR7dvFn9jTiJHk+3nQ63NDzOU+vrKoTytC+71DTQYPde3lTUmlv6QPuTv+stFWbR pMFWJ4KFKaIqz6+SsXhN16Cw6s7EwkBTuY0rnIZuWSLndW9BZLWzFSlyyYB6X7aK00R3+6BO7Q hdB1UN4RtVZMltIGB7431KZpGJx81KusFhBceuh9Y+o2+EmENDtIlj4IbAwY2YUeZIGx2YDCCi Gwycoi8z9drH0QYSihTUvR9gV7Jys76Dv3A5l76/Ojl9+CYVprscAuFgZ6fbiMPrJ1pRQT8fxS EchB1xhJdED5zZPqXm+VzePlSunSQ/wUH66CNhOMY/kSOg==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20200801; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Type:To:Subject:Message-ID: Date:From:MIME-Version:Reply-To:Cc:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References; bh=9fRqw32Wvz4Nn19gpTUdHPYFczCOUofXKukfL5yoxH4=; b=nbGFobg3CDsRCjHo72XEv70UlQ xzxtkRJbwr5bQ1srYarv+OHgGgQj/DqSU6leV5n0zH9U4Wl9IZFujk1FKe9DHZ0yyOqEpcU7nlFZG KlWuZcZJTesKPZRzaTNAMtwYQM10Tqx8taOQJNc/b1giTIq+tTJdTwh67aQ/vTPVgfaYeH53wRS5O XmyIJht1JQqsetPwygzXWfiQ460Y3irI2v7S68yOchsei5BM5XD0eK5ArWTdxJxe5VuHIpLwXIOLG OlK4mWTAvPDKBMMVpi6jfXrukDb8J4U0NyHwVX1NmmXz2Kg1qlB/oXrpn5xA0MvjAjCF2BiRBqw6+ fbyxi87w==; Received: from authenticated user by zero.zsh.org with local id 1lHtzf-000J81-Dn; Thu, 04 Mar 2021 19:50:43 +0000 Authentication-Results: zsh.org; iprev=pass (mail-lf1-f48.google.com) smtp.remote-ip=209.85.167.48; dkim=pass header.d=gmail.com header.s=20161025 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none Received: from mail-lf1-f48.google.com ([209.85.167.48]:42811) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1lHtzM-000Izv-Vv; Thu, 04 Mar 2021 19:50:26 +0000 Received: by mail-lf1-f48.google.com with SMTP id z11so45193122lfb.9 for ; Thu, 04 Mar 2021 11:50:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=9fRqw32Wvz4Nn19gpTUdHPYFczCOUofXKukfL5yoxH4=; b=kV7dCE76iuf4dc0IbdikPvEn3uI1yB+VScyz5HwnlHPGpL0VL6GAIgxiAUVZQNrZDm XkUZBsrjZIM0sscku2PhB0d3azsZ0eVblhzFvovaUWdSOQvgtINBagclS+04CArCkqHn ZoTHpfQerAf96xFlN8fdEfNnn7rzhzOrtR6TOFMiOXwPKo6A0bD3aU1anV6H9XZXTIq5 RO/4NjyRhpTwIr+m9F3XVeU6GyAmPKYHhNcgnw/vDeIXiHulo/P52VN6o2UjD2GsfSVx +gESD0LjE8BsolKVAaLZzqqPOIfqydUWfpS1K77z8/8DcV3rDLsQ9pkaHMrCpTiND5g5 bRrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=9fRqw32Wvz4Nn19gpTUdHPYFczCOUofXKukfL5yoxH4=; b=NU5ioIOXM0PkI2Wvs4VlNw0g8k6HiTWCYYmpHeOZ6HxgyB2q0Ly1qwYlv7kudNZDLv rG6Ttt7+gzvN9rN5P9SwnfU33rX/DufdXys6awt6Xx8F6w77IbJEdc1pIeAFRinYk+nM rblLQ1r14iVGHyGE2X7LFSgfoabZDp2aP+nSDSBjTWpaeEJP0glMmQi8jROBMwqXrTri 4Rcn1tAojhC1ahT0A9P6XWwx1DCpn51RwnFh4UxMdsW7hwUDeyx918gh4SuQc4364DUP 4gwfDnVkrr6X6KZBHfw77Q+FPWxIwy8yU6NJQW2KSR0DhprFuC6DNpZ4oiOls9r/RmZN vaxQ== X-Gm-Message-State: AOAM530fqjiUvoLOno+i/pDaic9hbFNeY2I+7/rsyjihc+B8/9gIxMNs cypIqQZwv6+Y1r/zwvQ/gTo3/knN78S3ixLSs4n9Wyxq4l9sVg== X-Google-Smtp-Source: ABdhPJxnifblZYZA5L8nUv2fsyd8e/HxcYIEyF9tfNc0tJWJZOh19pWFdPEVeEif+2KRUTEfkKGj8cX2Szyi1ceJdNU= X-Received: by 2002:ac2:4555:: with SMTP id j21mr3132290lfm.463.1614887423669; Thu, 04 Mar 2021 11:50:23 -0800 (PST) MIME-Version: 1.0 From: Marlon Richert Date: Thu, 4 Mar 2021 21:49:47 +0200 Message-ID: Subject: Bug + patch: _expand() fails to insert unambiguous prefix To: Zsh hackers list Content-Type: text/plain; charset="UTF-8" X-Seq: 48141 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: List-Subscribe: List-Unsubscribe: List-Post: List-Owner: List-Archive: Archived-At: Test case: ``` cd $(mktemp -d) exec zsh -f autoload -Uz compinit; compinit zstyle ':completion:*' completer _expand _complete zstyle ':completion:*' tag-order '! original all-expansions' zstyle ':completion:*' show-ambiguity yes bindkey '^I' complete-word touch bar baz file ^I file *^I ``` Patch: ``` diff --git Completion/Base/Core/_main_complete Completion/Base/Core/_main_complete index 663f755..ec2d954 100644 --- Completion/Base/Core/_main_complete +++ Completion/Base/Core/_main_complete @@ -248,11 +248,10 @@ if [[ $compstate[old_list] = keep || nm -gt 1 ]]; then ( -n "$_menu_style[(r)select=long-list]" || -n "$_menu_style[(r)(yes|true|on|1)=long-list]" ) ]]; then compstate[insert]=menu - elif [[ "$compstate[insert]" = "$_saved_insert" ]]; then - if [[ -n "$compstate[insert]" && + elif [[ -n "$compstate[insert]" && -n "$_menu_style[(r)(yes|true|1|on)=long]" && tmp -gt LINES ]]; then compstate[insert]=menu - else + elif [[ -n "$_saved_insert" && -n "$compstate[insert]" ]]; then sel=( "${(@M)_menu_style:#(yes|true|1|on)*}" ) if (( $#sel )); then @@ -291,15 +290,18 @@ if [[ $compstate[old_list] = keep || nm -gt 1 ]]; then fi if [[ ( -n "$min" && nm -ge min && ( -z "$max" || nm -lt max ) ) || ( -n "$_menu_style[(r)auto*]" && - "$compstate[insert]" = automenu ) ]]; then + "$_saved_insert" = automenu ) ]]; then compstate[insert]=menu elif [[ -n "$max" && nm -ge max ]]; then compstate[insert]=unambiguous elif [[ -n "$_menu_style[(r)auto*]" && - "$compstate[insert]" != automenu ]]; then + "$_saved_insert" != automenu || + "$PREFIX$SUFFIX" != *"$compstate[unambiguous]"* ]]; then compstate[insert]=automenu-unambiguous + elif [[ -z "$compstate[old_list]" ]]; then + compstate[insert]= fi - fi + compstate[list]="${compstate[list]/ambiguous/list}" fi if [[ "$compstate[insert]" = *menu* ]]; then ```