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, T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 29538 invoked from network); 26 Mar 2022 01:41:13 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 26 Mar 2022 01:41:13 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1648258873; b=BlCZDjBoZ7daTOBsRhd0/PN05TQYjsuBXl3jbgYsHIhVzMmrqQsnCbs1/H8+21OvkhgxL8iZRL Ssfj4mp6XLjHwFHPt9LSjXZfRYGofdwsYl5XhqJQvrwHkjBbz+69s49l2ixmRhLwQVNzudHyGd +VNf8Q8TphZpWrlDsNKIMyHGdDG7V8GyJ3S3fJFRL+WqJd6E7XVgp0jCzScjSgmsnYMZunQbZr 7NE+u7CHHEmGdgnhwC1Zdcj2X8Nkdh6aj1vDvsGvlgTSlxYz1yKkoErRviX3lxzN3o8SnLWk8Z u4O1x9wCfWmGXGtXcUqW0TQ++dxfnCfOn4KAhfUCqJ0ANw==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-lj1-f172.google.com) smtp.remote-ip=209.85.208.172; dkim=pass header.d=gmail.com header.s=20210112 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-20210803; t=1648258873; bh=i0PRLyPag47s/672I11O3tzMNksWM4uvYnzO9RLpd6E=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:References:In-Reply-To:Message-ID:Date:Subject:To:From: DKIM-Signature:DKIM-Signature; b=DqZ/s4Ja4K7T3zPKFnQGRBxUlFGFuczOmu71Aumsifg79GYD/H9ujiksf+2KQ/CuCCOoiawx35 svWWLcIUy2VuskpZPuKyBZjASQAncVfCffc2yoAKVN9WRFWLDzu3qZZ7yQNnTbYbfPK1gEz9pv IKvsAIW19DTd1oKq5/eHooCOmyd5oNvFEhPn416fq1VghLkstFnq+ybhzPb3gWo0Wxuvqht1Vs RUSC7RBJoqDc7Hnn7KgeNu6+mqrsJh4XxoB7aLAyOmfMGJnHmGoAU9US/xVBy0w5tST7lzApfx SBpWYXbkkRm+XxBmHOGkKRDhCB0XwI1s2AUlM1l4NrbPFg==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:References:In-Reply-To:Message-Id: Date:Subject:To:From:Reply-To:Cc:MIME-Version:Content-Type: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=qAM07Aqgsv6U+vRvQg3TRjZgIT3mTHlxBLAG4UqYO0I=; b=EO+sfU1/OEgcvS2ndhHLUTm0T3 vL/RXs0uv1S01QUSx1F1cY+IJ28Wk2VglhQJdB6Rj3oqrGW6FYofOIBdojt9Oq+GAo/8C+640FEVN iAqrAbm/hw20Iu9FtQG7W+PCu2C99x4NpPXi1iYr+OqIS8M8zeFgMHqPVbgbmrkrSw8C9/4KgDVjX VM89SyYaunEzoF1DFQZ5krgHm78yHCt6gU/GtmfN3kYfy6Vajsrs1oFewtXHA9dbeUEDGO7Luga6r tHEZeku4oKnqprVQIDtekhG3an+CzRHDFkvj9FOU9BjxFpJdiK+XvFkKRzCoI7GXdqPGpFriN2hOa lQrtktjw==; Received: from authenticated user by zero.zsh.org with local id 1nXvQW-0007cn-9F; Sat, 26 Mar 2022 01:41:12 +0000 Authentication-Results: zsh.org; iprev=pass (mail-lj1-f172.google.com) smtp.remote-ip=209.85.208.172; dkim=pass header.d=gmail.com header.s=20210112 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none Received: from mail-lj1-f172.google.com ([209.85.208.172]:36807) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1nXvPz-0007HX-7Y; Sat, 26 Mar 2022 01:40:39 +0000 Received: by mail-lj1-f172.google.com with SMTP id o6so12400655ljp.3 for ; Fri, 25 Mar 2022 18:40:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references; bh=qAM07Aqgsv6U+vRvQg3TRjZgIT3mTHlxBLAG4UqYO0I=; b=go82g5p4WzUErJubfAy23SR/arlZReSx/LmPMkw3HIAPRFqiHfBCI3y52euh62//EG AS0/gp5qSYZ4E1XwfeacJDkpdaBpBrmlenehwb8PSp45WE9E0wrcpr0fiKRkGs9Kw5Pp IkstR8An6zAN1QNXITTh+NmLlSCy0wCN7m39Wt4yPeFX4FMPWN5J0I+d/DUBzX8gnP1v ieZn9vh8aNvkkNofKGd/XEpKXkrnfZJx96R9N02HEBytFGRJeRwsO2OTHzIqV/qftSos LLhmkpV9GZhMcVvQbxvYZGJNlb60j3QiYBk5iIiLiZ+mWsglDhZwfCpB3j8DkbIQy0KQ kopg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=qAM07Aqgsv6U+vRvQg3TRjZgIT3mTHlxBLAG4UqYO0I=; b=iit+botxeUIcZbJHPwl4jGdCVZ8CD4PU1Qa6PDY1rGnCQGMvZGVdm8vnp4rkbJXD0T NuFXE7tocqKqcXnUDel7cjv6f8NoVKvpPP1VXVfcQUPLjvBGfdPpOWLwCgwL3zV1oN+l xNlXL7V4PKPGtGGoCJccbHW0s/+Wj0JQVooIp8E1UDg8iutBghib6aANM6dHDpzrcHXq UKrppKzHjZ0NXCTlnuhLE59ui7JQeWM9jYl6Gbq31pOoqRWqa6yUdDKpMcan5N2/xjeR P9+JNmlKai1aky9kxOMpYOFrb76Z/NvJXfA+qRXFidDtJGTn85eLmYWs8WLGR6g9ToJ1 TY+g== X-Gm-Message-State: AOAM531s2uwwWZADVLL6y5ZTFU3Do4RYUOHzuYlAQx8l9WAQc62Vrm9c mX3VCROgLn50WOuCkJZU5LoHGS4HPaU= X-Google-Smtp-Source: ABdhPJzJESHpPU3+OglxAfgZDo2xRwfutcyQW5ZZD1ujAn9owOchCXiCVFPGQnvv8G9V6ju9eG1nnA== X-Received: by 2002:a2e:b88d:0:b0:249:86c0:fbd8 with SMTP id r13-20020a2eb88d000000b0024986c0fbd8mr10247040ljp.247.1648258838105; Fri, 25 Mar 2022 18:40:38 -0700 (PDT) Received: from localhost.localdomain (h-212-85-88-110.A230.priv.bahnhof.se. [212.85.88.110]) by smtp.gmail.com with ESMTPSA id t2-20020a05651c204200b00249324dd50bsm865835ljo.71.2022.03.25.18.40.37 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 25 Mar 2022 18:40:37 -0700 (PDT) From: Mikael Magnusson To: zsh-workers@zsh.org Subject: PATCH 1/2: Fix comments for UNIQCON/ALL Date: Sat, 26 Mar 2022 02:40:30 +0100 Message-Id: <20220326014030.2802-1-mikachu@gmail.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: References: X-Seq: 49893 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: Hopefully this can save future generations some confusion. --- Src/Zle/comp.h | 6 +++--- Src/Zle/compcore.c | 8 +++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Src/Zle/comp.h b/Src/Zle/comp.h index 0c5fbd4f00..a8480c2bac 100644 --- a/Src/Zle/comp.h +++ b/Src/Zle/comp.h @@ -85,8 +85,8 @@ struct cmgroup { #define CGF_NOSORT 1 /* don't sort this group */ #define CGF_LINES 2 /* these are to be printed on different lines */ #define CGF_HASDL 4 /* has display strings printed on separate lines */ -#define CGF_UNIQALL 8 /* remove all duplicates */ -#define CGF_UNIQCON 16 /* remove consecutive duplicates */ +#define CGF_UNIQALL 8 /* remove consecutive duplicates (if neither are set, */ +#define CGF_UNIQCON 16 /* don't deduplicate */ /* remove all dupes) */ #define CGF_PACKED 32 /* LIST_PACKED for this group */ #define CGF_ROWS 64 /* LIST_ROWS_FIRST for this group */ #define CGF_FILES 128 /* contains file names */ @@ -299,7 +299,7 @@ struct menuinfo { #define CAF_NOSORT 2 /* compadd -V: don't sort */ #define CAF_MATCH 4 /* compadd without -U: do matching */ #define CAF_UNIQCON 8 /* compadd -2: don't deduplicate */ -#define CAF_UNIQALL 16 /* compadd -1: deduplicate */ +#define CAF_UNIQALL 16 /* compadd -1: deduplicate consecutive only */ #define CAF_ARRAYS 32 /* compadd -a or -k: array/assoc parameter names */ #define CAF_KEYS 64 /* compadd -k: assoc parameter names */ #define CAF_ALL 128 /* compadd -C: _all_matches */ diff --git a/Src/Zle/compcore.c b/Src/Zle/compcore.c index c6deff7568..a9ace5587b 100644 --- a/Src/Zle/compcore.c +++ b/Src/Zle/compcore.c @@ -3254,10 +3254,13 @@ makearray(LinkList l, int type, int flags, int *np, int *nlp, int *llp) qsort((void *) rp, n, sizeof(Cmatch), (int (*) _((const void *, const void *)))matchcmp); + /* since the matches are sorted and the default is to remove + * all duplicates, -1 (remove only consecutive dupes) is a no-op, + * so this condition only checks for -2 */ if (!(flags & CGF_UNIQCON)) { int dup; - /* And delete the ones that occur more than once. */ + /* we did not pass -2 so go ahead and remove those dupes */ for (ap = cp = rp; *ap; ap++) { *cp++ = *ap; for (bp = ap; bp[1] && matcheq(*ap, bp[1]); bp++, n--); @@ -3279,7 +3282,9 @@ makearray(LinkList l, int type, int flags, int *np, int *nlp, int *llp) if ((*ap)->flags & (CMF_NOLIST | CMF_MULT)) nl++; } + /* used -O nosort or -V, don't sort */ } else { + /* didn't use -1 or -2, so remove all duplicates (inefficient) */ if (!(flags & CGF_UNIQALL) && !(flags & CGF_UNIQCON)) { int dup; @@ -3303,6 +3308,7 @@ makearray(LinkList l, int type, int flags, int *np, int *nlp, int *llp) (*ap)->flags |= CMF_FMULT; } } + /* passed -1 but not -2, so remove consecutive duplicates (efficient) */ } else if (!(flags & CGF_UNIQCON)) { int dup; -- 2.15.1