Received: (at 80283) by debbugs.gnu.org; 1 Feb 2026 12:26:37 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 01 07:26:37 2026 Received: from localhost ([127.0.0.1]:37980 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vmWXE-0000Xx-Sx for submit <at> debbugs.gnu.org; Sun, 01 Feb 2026 07:26:37 -0500 Received: from mail-vs1-xe29.google.com ([2607:f8b0:4864:20::e29]:61520) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>) id 1vmWXC-0000Xk-AT for 80283 <at> debbugs.gnu.org; Sun, 01 Feb 2026 07:26:35 -0500 Received: by mail-vs1-xe29.google.com with SMTP id ada2fe7eead31-5f526c39718so2147405137.2 for <80283 <at> debbugs.gnu.org>; Sun, 01 Feb 2026 04:26:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1769948793; cv=none; d=google.com; s=arc-20240605; b=AOwf94ki9nKN8nmIAqiK7tp8vVTQjNw3xwfN5QbPQPW5g1vbh9FlMYxAHNAZQHIQFt j2yk6bIy5xp8RUdAgZv9I6VmOWTSarN9CQHvU2UVutVwjz5wQg15WmVLLER3wQRGsesf RCHap1a77dkqMiSjtPCXaEVcZmMdUQJv+svz4CeFZknJeRFNDdCpiCowas5ud1jL1jzF 9v1Ix3LLekgdPnBOC8J6JBg6/TA4oMHQo96bEuh/k3cvLciiS9Z3O5S9pnoewH84ckMn UkXP0eEcG0vjyLcFBMbsbpMXnuBA+DE6hBFAK9iuX/7hczUnO6R3TkmA2MvnakpLxag2 ENpw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=HkY4Iz8mq7g2BKHwiSh4XGPWzYJtdMLY6jpJhaK8490=; fh=YDUMVpC2/rm0VkTytaZ4krjb3bffP7Zzww8IypRgzmk=; b=Ya6hQrhhj2OLau8bgsPvkdt5hSMlL8AAT2+Q2pkhAE+VNmDq6ZlVrVngtxbvNqk9TC GCnkrSeq7+ZlJj1MzrW2Z1AE7hWUNpmDLxS4pLwzzG/Aqg2c68hZrmmAAZhMgLCkX4X3 FL3aOocziLyd3fsqiuf/Lu+l3fB3hqKBRxcFY9xTmu2hEBwVafGU9Qm8l1UNcqGcnFEJ E6rdLLZLKIWvkHzUGJAie5uU/c0FjMF7O2L8UrG1Am6aEJ4iPeGVTyhQNh5tuJJ7WdVR ln/6twipmwDuLszZAzoW/T2smRUIHcaXXAKGXAeveOmBk4LqxBp3LbDk+r++Hm54Jq9B pkRA==; darn=debbugs.gnu.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769948793; x=1770553593; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=HkY4Iz8mq7g2BKHwiSh4XGPWzYJtdMLY6jpJhaK8490=; b=JE+g3G+P4Pj/rsaB27xv4lZ4HNpNGVTrzmMoFdQKYfl2OqqAdjTTYCInVTbAZsyK1q 224PgJ7+Q0E+hS8alAbGYqnIX4T3PzsQJOr1Qa8FfnYBGqiwdsaOBLHavHjLwTx0ezbt cq9pb13WUyJSijDPexsEixp7wdEPMdBqm2hagE5ENqA3AFct6lP/J0I8W9Qi+80LFsX3 o4xCfh7ID4FPAd2GvT+Gbk3PqjIkSOgK+kGaJVBej94y8jQ5/p9HVJGLuk/01vAorJR/ uyYmGKOtyVhbsgKvoAasXOioE2OMlyqNyzAFVKDTRdEf8e6bmfqdPNWVVLzLYx8LhNCY 2vqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769948793; x=1770553593; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=HkY4Iz8mq7g2BKHwiSh4XGPWzYJtdMLY6jpJhaK8490=; b=bHbaKXppzpoS2vZELf+bUvQKhjR7Cewr/pW1qDsiGLFxNDlqAgAFtE2h8JWPDzfB0D F3/8UutN5fbNEhuKbYbRDIby1dZyoM0boVricy/u3S4ZOwjTfhbM9kBmmbb/VUbfyqci R5bodVxz0it6R2CmMlFRXRbZzyNQZOhEEQzcCyV8a0B/tdArUUkEy2S5Ude4ZhbeQqww bTG3gbx+4C3Bypa7Aafb/z0w+8G3IffAaCu8A3KErTuzVGlaQPscV6vyCSmeLqbreO2E NWzC/Sk1ntpB/AK4DQacLN4hGfzKgCuFqPN3KQTpjvmSJ/Za+EE7h1Mx9hjgxKDg3MUd 6tBQ== X-Gm-Message-State: AOJu0Ywy8DeyznTaxeCpHHUePJa9MXwErvUO49G3O1sn/N1ksbwGId2w bmZkceQ4tgfIPhMOhANKutj0VnfKuVMrwcwXjayEYLzo8JziE796vSPtinXFtpJn/KfSVzXapTD hPBqWrtLlmtAxTcZiUobrr3LAkXPoVHhm7NvK X-Gm-Gg: AZuq6aIGhK3bgpD2fSIAS+eOC4pVoDEBTLKhdWArYdaC2054GH0/Uc8fktiP7gybbR4 yKb1mdaLNiEE7cO4RcZ9E36HDDjX1Xm6TcqcB6sl7zE1l4Mgccpo6n2/ApimkGsNAOSNLERqVb+ nbPw71LKMrzutc5PYKcLLVcgc2j7beV2Rt25p6kNIjsHTBtxgccIDqD90grJlNwX/r3lBrL4w0f z5WHPBJtMkwQRfUCUAWjd7PV5uP1ObcROQLHZBRHi+YAFlKcyuYShMy5k13z3J5rxKQyrikVqNt 1ApLEibzb74goZuadO78FB0HgWr3c5PQgGHW9cKOebvIBcu6wP8= X-Received: by 2002:a05:6102:6d3:b0:5f7:2419:e94d with SMTP id ada2fe7eead31-5f8e2463a66mr2393723137.9.1769948793429; Sun, 01 Feb 2026 04:26:33 -0800 (PST) MIME-Version: 1.0 References: <CAN+1Hbp35XuJrMCN3ns9EDNueEODtvw5rjfM_MEcd_sKdiTGtw@HIDDEN> <87pl6ogao5.fsf@HIDDEN> In-Reply-To: <87pl6ogao5.fsf@HIDDEN> From: =?UTF-8?Q?St=C3=A9phane_Marks?= <shipmints@HIDDEN> Date: Sun, 1 Feb 2026 07:26:22 -0500 X-Gm-Features: AZwV_Qh65MM6ZQ3enSl5QtYftIRI87z91qfjeTu15_oBFuMq8avNku_AFo98Wwg Message-ID: <CAN+1HboPOESWL=81OgBzYezu07ceQbPMzCYWQC6ykjd3=KYJwA@HIDDEN> Subject: Re: bug#80283: [PATCH] Add functions uniquify-strings and uniquify-alist-keys To: Juri Linkov <juri@HIDDEN> Content-Type: multipart/alternative; boundary="0000000000001a64600649c25182" X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 80283 Cc: 80283 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 0.0 (/) --0000000000001a64600649c25182 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, Feb 1, 2026 at 3:00=E2=80=AFAM Juri Linkov <juri@HIDDEN> wrote: > > These functions are similar to 'generate-new-buffer-name'. > > They look more similar to 'create-file-buffer' that uses > 'uniquify--create-file-buffer-advice'. > > Or '(uniquify-get-unique-names buffers)'. > > OTOH, they don't belong to uniquify.el, because > 'uniquify-strings' uniquifies strings, but not buffer names. > Their behavior matches 'generate-new-buffer-name' more than it does the various 'uniquify-buffer-name-style' options. > 'uniquify-strings' returns a copy of a string list with "<NUMBER>" > > appended to duplicates. 'uniquify-alist-keys' returns a copy of an > > alist with "<NUMBER>" appended to its duplicate keys. All non-string > > keys are first converted to strings. > > It seems 'uniquify-alist-keys' is much more useful since it preserves > the original string identities. > In 'uniquify-strings', the list order is maintained and the index into it and the original is a useful identity. > > I've been using similar functions to assist with `completing-read` > > cases with duplicate candidates and I'd prefer to use core functions. > > Juri and I will use these in forthcoming tab-bar.el and frame.el > > `completing-read` enhancements. > > Thanks, we need such function in imenu.el as well. > > > Despite the name prefixes being 'uniquify-', I put these into subr-x.el= . > > subr-x.el looks like the right place since there are other string-related > functions. > Cool. Let's see what others have to say. --0000000000001a64600649c25182 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon= t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">= On Sun, Feb 1, 2026 at 3:00=E2=80=AFAM Juri Linkov <<a href=3D"mailto:ju= ri@HIDDEN">juri@HIDDEN</a>> wrote:</span></div></div><div class= =3D"gmail_quote gmail_quote_container"><blockquote class=3D"gmail_quote" st= yle=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padd= ing-left:1ex">> These functions are similar to 'generate-new-buffer-= name'.<br> <br> They look more similar to 'create-file-buffer' that uses<br> 'uniquify--create-file-buffer-advice'.<br> <br> Or '(uniquify-get-unique-names buffers)'.<br> <br> OTOH, they don't belong to uniquify.el, because<br> 'uniquify-strings' uniquifies strings, but not buffer names.<br></b= lockquote><div><br></div><div><div class=3D"gmail_default" style=3D"font-fa= mily:monospace">Their behavior matches 'generate-new-buffer-name' m= ore than it does the various 'uniquify-buffer-name-style' options.<= /div></div><div><br></div><blockquote class=3D"gmail_quote" style=3D"margin= :0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"= > > 'uniquify-strings' returns a copy of a string list with "= <NUMBER>"<br> > appended to duplicates. 'uniquify-alist-keys' returns a copy o= f an<br> > alist with "<NUMBER>" appended to its duplicate keys.= =C2=A0 All non-string<br> > keys are first converted to strings.<br> <br> It seems 'uniquify-alist-keys' is much more useful since it preserv= es<br> the original string identities.<br></blockquote><div><br></div><div><div cl= ass=3D"gmail_default" style=3D"font-family:monospace">In 'uniquify-stri= ngs', the list order is maintained and the index into it and the origin= al is a useful identity.</div></div><div>=C2=A0</div><blockquote class=3D"g= mail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204= ,204,204);padding-left:1ex"> > I've been using similar functions to assist with `completing-read`= <br> > cases with duplicate candidates and I'd prefer to use core functio= ns.<br> > Juri and I will use these in forthcoming tab-bar.el and frame.el<br> > `completing-read` enhancements.<br> <br> Thanks, we need such function in imenu.el as well.<br> <br> > Despite the name prefixes being 'uniquify-', I put these into = subr-x.el.<br> <br> subr-x.el looks like the right place since there are other string-related<b= r> functions.<br></blockquote><div><br></div><div class=3D"gmail_default" styl= e=3D"font-family:monospace">Cool.=C2=A0 Let's see what others have to s= ay.</div></div></div> --0000000000001a64600649c25182--
bug-gnu-emacs@HIDDEN:bug#80283; Package emacs.
Full text available.Received: (at 80283) by debbugs.gnu.org; 1 Feb 2026 07:59:12 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 01 02:59:12 2026 Received: from localhost ([127.0.0.1]:35586 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vmSMR-0004pk-Ph for submit <at> debbugs.gnu.org; Sun, 01 Feb 2026 02:59:12 -0500 Received: from mout-p-103.mailbox.org ([2001:67c:2050:0:465::103]:43346) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1vmSMO-0004oz-Ny for 80283 <at> debbugs.gnu.org; Sun, 01 Feb 2026 02:59:10 -0500 Received: from smtp102.mailbox.org (smtp102.mailbox.org [10.196.197.102]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-103.mailbox.org (Postfix) with ESMTPS id 4f3hw16qLdz9tkC; Sun, 1 Feb 2026 08:58:57 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; t=1769932738; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=LRSRMwCOcwy6+PW35DKVImogKBz08TVKULsf5zi/nZM=; b=y8oCVZIwTcWz3lCAAMkCd1ryj0aaMbq6vEAu8GPEza/XJSdPb7a6BQ+aBcIO7f0oJwbEY+ IsT7csnTI6zX3Jx17HvFYst5fYQQHjGUdDlrsAGEF1iIZGtGIjDGRQbb5TJqPC1RQAdsfe kCq5XdEaMam2nEMgAaARUMDs/FBghcmxUVOgtCVREwXKY23qb+xZYKCbjrkd00QKEujH8Z og81cPwhQrGHA1y3GOoynhxzqgRe4fjGpDVVw4H7AB3K3cohi2/2gzjCM32PGhcgxFvnyZ aq6aBFE22gHdM6YFAH1nqOceCMG9f0LfrQdEBeQ4f/ztwZmEyHdvPRiFxoBHXw== From: Juri Linkov <juri@HIDDEN> To: =?iso-8859-1?Q?St=E9phane?= Marks <shipmints@HIDDEN> Subject: Re: [PATCH] Add functions uniquify-strings and uniquify-alist-keys In-Reply-To: <CAN+1Hbp35XuJrMCN3ns9EDNueEODtvw5rjfM_MEcd_sKdiTGtw@HIDDEN> Organization: LINKOV.NET References: <CAN+1Hbp35XuJrMCN3ns9EDNueEODtvw5rjfM_MEcd_sKdiTGtw@HIDDEN> Date: Sun, 01 Feb 2026 09:55:38 +0200 Message-ID: <87pl6ogao5.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 80283 Cc: 80283 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > These functions are similar to 'generate-new-buffer-name'. They look more similar to 'create-file-buffer' that uses 'uniquify--create-file-buffer-advice'. Or '(uniquify-get-unique-names buffers)'. OTOH, they don't belong to uniquify.el, because 'uniquify-strings' uniquifies strings, but not buffer names. > 'uniquify-strings' returns a copy of a string list with "<NUMBER>" > appended to duplicates. 'uniquify-alist-keys' returns a copy of an > alist with "<NUMBER>" appended to its duplicate keys. All non-string > keys are first converted to strings. It seems 'uniquify-alist-keys' is much more useful since it preserves the original string identities. > I've been using similar functions to assist with `completing-read` > cases with duplicate candidates and I'd prefer to use core functions. > Juri and I will use these in forthcoming tab-bar.el and frame.el > `completing-read` enhancements. Thanks, we need such function in imenu.el as well. > Despite the name prefixes being 'uniquify-', I put these into subr-x.el. subr-x.el looks like the right place since there are other string-related functions.
bug-gnu-emacs@HIDDEN:bug#80283; Package emacs.
Full text available.Received: (at 80283) by debbugs.gnu.org; 29 Jan 2026 18:17:39 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jan 29 13:17:39 2026 Received: from localhost ([127.0.0.1]:59887 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vlWaJ-0003rn-2u for submit <at> debbugs.gnu.org; Thu, 29 Jan 2026 13:17:39 -0500 Received: from mail-vs1-xe30.google.com ([2607:f8b0:4864:20::e30]:56734) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>) id 1vlWaG-0003rf-NB for 80283 <at> debbugs.gnu.org; Thu, 29 Jan 2026 13:17:37 -0500 Received: by mail-vs1-xe30.google.com with SMTP id ada2fe7eead31-5f530da3a07so778559137.1 for <80283 <at> debbugs.gnu.org>; Thu, 29 Jan 2026 10:17:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1769710656; cv=none; d=google.com; s=arc-20240605; b=LgyBm/gL+MXTbD3BN1qts2OSCh4Eal01TDxptFB7bCVxXRgvv92zkz1c+bZFanv6mQ +T5RTInLZJFWig/HcQzkU/O1YLXQXMjpyq2NDwV7Qmsw4wEqjf9AfytmRwaN683rsAlW 3RCDUNQ33K3erzP+IoAABTD2Rpg6UbkM1DlR4mW3SHcY47oOBnZ72mmcy9HGvgvdkPYi rpEgYClhAbxYHnYngNStqWePOklELP0CDlJ1fI/FimYlDmNh9CYn5vSypkGqry9MSuB4 QmiMxXIh1wz9MDUyK9NhmNX9YbxNPRIlYUmLIJNAHObPvwDe2kToYbQeN1j3FNkjvjKv AnHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=KApbzPoC+M2PbUugkcGeNHKDM8KLaoAJJnx9FQJeJ2c=; fh=sowby+vjIC6KHxjycDU7jQPw+njs716RwimpXGm7hoY=; b=VFYSB82sk3XGeiGn49ciYF9rrvPDa8imshyb1sNy3Dhbt5i10PauEy7z5kOJnQTJb3 M4gB/CDVVfHV3q1xWta3I2vtgZok2r15qgvCWHls0HD232hUH02VRLOuy+JkynuBGXli H2BJWDMkbVGymzQHkGbb8bWhlePsaT1UfEh/rIP5RVzZwIXELSZ59Bxq6TwBIAvYhM7F 7Ul14of49RiYEeDvlcjf20MkGWnLrO6U0naegnqYvdrLIobHKSG4nwdtzLWdUcrIvWEX wDdNb3njOKJAPJa73vjJR1e+okSk8VbegUEvHpSjCQBXF++jxSCFEJ01suznQRUrrkvt NLrQ==; darn=debbugs.gnu.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769710656; x=1770315456; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=KApbzPoC+M2PbUugkcGeNHKDM8KLaoAJJnx9FQJeJ2c=; b=BchoTFzlrJVtXH0/CIVsdyvFC0/VmPhPz+NbXjbCUOyt630fJPC8C03vhBj/eEKo/n qZfMX0MgE1TazJh+RsbggAhaoac4IlgBM6LBbyLVgpVy6L/yGseWABvjN0VeBtCtk/x4 TGWZqXiOuvFLUxaFiy9ftr2Ap0zITeqh54xhG/8m/RlEmjc0b/y5kYe5dU1vXB56SSmO MhuMsILORCg29xQnbou5vwWqagK4k7V9M9YM77VqLEljLwNpf1hOcEDXwejJGkXGJq5f vCqyJnnlAT0XdjDE6HWfybuz4z6eEw1RRnboTPc0QjrxlS4GJsZSOqiYCUOF0GoNzbrs j0gA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769710656; x=1770315456; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=KApbzPoC+M2PbUugkcGeNHKDM8KLaoAJJnx9FQJeJ2c=; b=RalzyR1FfObK8oM9omw+7Gq15TTH6GlQI5x1hg9neVNqCGXEDfC4wRVaYlCHTTsT/S 3aWBu9Ekiqrvsf8aPHKTCk2AuqsM3IMlqnqBfyGB0Jkw283ttHOJ+NldN7lpaq1Rr2GD eNbm1dj/2q5vcGoJ2/9KuJ6/pSAmvmGNw7fhliz1UGHuDDqkU/2ShD84UiIyjXY+0EiB dyPJtV8NI1YD45ACOTbFAa4nf3+ByN0s6aLTU4cQRshPfLJ99u1zkDizpMSGrFdv2w1z /8Cax6U7ksN+tiPLgelLtzWC8kV4/nOReuLqUPgVLbL5SsMKSAz8AmYmO5eGRPiCvZaz HhiA== X-Gm-Message-State: AOJu0YxrvtK/BqAzN72rOyyAt9Yr7kwnPItbX8SD60uffTrRU6XIqksO 6jOsNz58spcBthK/JoZ+TrUdP/5wwQNg0xzMwvpInwH+pYDh9xg0/LbCmvUM5gU/GA/vtAHhf7q IuCnpAEsu5aBb4ZgRvIu6q2T/E52JbrllZQ== X-Gm-Gg: AZuq6aKO0g2XouQ4aICjx0ctuccSi2da1puEhhZ6K4gvLj7FRBOOMCT+qPkl1YIvUXu yRrg0JxwoGAcWA/TSPX/pzUdy5GbsURVBptf+JhPWDHAPc3Rva9zCDoPsQwkYM4MoyWg7y49jOr 14CWLtmlvl7djELLEO+ZlPq5H9aGXQZNQEuyr+EtMMUwAZV/gslkazOEXKKwB22LATV/m2bB3IQ ZkVRNNku2f8GLOjf6iDdVYNSSyUi1EOtGRJEBqoe/JHz95UyUYS+cO6Xwc78+f/QVEenltzanTv lJXGsai3Rl9oA7tfgciD12cyBA68zHdfqx6bDrXE2OHPIei0lZSb3cLbBRKZEw== X-Received: by 2002:a05:6102:3054:b0:5f5:33c9:c9b7 with SMTP id ada2fe7eead31-5f8e26c44ecmr142766137.41.1769710655728; Thu, 29 Jan 2026 10:17:35 -0800 (PST) MIME-Version: 1.0 References: <CAN+1Hbp35XuJrMCN3ns9EDNueEODtvw5rjfM_MEcd_sKdiTGtw@HIDDEN> In-Reply-To: <CAN+1Hbp35XuJrMCN3ns9EDNueEODtvw5rjfM_MEcd_sKdiTGtw@HIDDEN> From: =?UTF-8?Q?St=C3=A9phane_Marks?= <shipmints@HIDDEN> Date: Thu, 29 Jan 2026 13:17:21 -0500 X-Gm-Features: AZwV_QjLkfc38zBMbBfJaDR08Uw216Z6zYsR4_DXuw48EDZoaIkB7uvns53eH4g Message-ID: <CAN+1Hbr6kc5Ph7HBKEnN07iTxy_oSvUYpRApKPxYOXxVBzhgxA@HIDDEN> Subject: Re: bug#80283: [PATCH] Add functions uniquify-strings and uniquify-alist-keys To: 80283 <at> debbugs.gnu.org Content-Type: multipart/mixed; boundary="000000000000fdc1a206498ade62" X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 80283 Cc: Juri Linkov <juri@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 0.0 (/) --000000000000fdc1a206498ade62 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Jan 29, 2026 at 1:16=E2=80=AFPM St=C3=A9phane Marks <shipmints@gmai= l.com> wrote: > > These functions are similar to 'generate-new-buffer-name'. > 'uniquify-strings' returns a copy of a string list with "<NUMBER>" > appended to duplicates. 'uniquify-alist-keys' returns a copy of an > alist with "<NUMBER>" appended to its duplicate keys. All non-string > keys are first converted to strings. > > I've been using similar functions to assist with `completing-read` > cases with duplicate candidates and I'd prefer to use core functions. > Juri and I will use these in forthcoming tab-bar.el and frame.el > `completing-read` enhancements. > > Despite the name prefixes being 'uniquify-', I put these into subr-x.el. > > Patch incoming as soon as a bug number is assigned. Patch attached. --000000000000fdc1a206498ade62 Content-Type: application/octet-stream; name="0001-Add-functions-uniquify-strings-and-uniquify-alist-ke.patch" Content-Disposition: attachment; filename="0001-Add-functions-uniquify-strings-and-uniquify-alist-ke.patch" Content-Transfer-Encoding: base64 Content-ID: <f_mkzs0t3l0> X-Attachment-Id: f_mkzs0t3l0 RnJvbSA4OTUxNjk1OTQzYWQ3OGI4NGQ3YTE0ZWFkYWJmODU2NDgzNmJkOGQyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/U3Q9QzM9QTlwaGFuZT0yME1hcmtzPz0gPHNo aXBtaW50c0BnbWFpbC5jb20+CkRhdGU6IFRodSwgMjkgSmFuIDIwMjYgMTM6MDg6MTQgLTA1MDAK U3ViamVjdDogW1BBVENIXSBBZGQgZnVuY3Rpb25zIHVuaXF1aWZ5LXN0cmluZ3MgYW5kIHVuaXF1 aWZ5LWFsaXN0LWtleXMKIChidWcjODAyODMpCgoqIGxpc3AvZW1hY3MtbGlzcC9zdWJyLXguZWwg KHVuaXF1aWZ5LXN0cmluZ3MpOgoodW5pcXVpZnktYWxpc3Qta2V5cyk6IE5ldyBkZWZ1bnMuCiog dGVzdC9saXNwL21pc2MtdGVzdHMuZWwgKG1pc2MtdGVzdC11bmlxdWlmeS1zdHJpbmdzKToKKG1p c2MtdGVzdC11bmlxdWlmeS1hbGlzdC1rZXlzKTogTmV3IHRlc3RzLgoqIGV0Yy9ORVdTOiBBbm5v dW5jZSB0aGUgbmV3IGZ1bmN0aW9ucy4KLS0tCiBldGMvTkVXUyAgICAgICAgICAgICAgICAgIHwg IDggKysrKysrKwogbGlzcC9lbWFjcy1saXNwL3N1YnIteC5lbCB8IDQ1ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwogdGVzdC9saXNwL21pc2MtdGVzdHMuZWwgICB8IDM1 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA4OCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZXRjL05FV1MgYi9ldGMvTkVXUwppbmRleCA5ZDM2ZjZj M2Q5Ni4uOWU2NThjMmVmMDQgMTAwNjQ0Ci0tLSBhL2V0Yy9ORVdTCisrKyBiL2V0Yy9ORVdTCkBA IC0zMDg4LDYgKzMwODgsMTQgQEAgZGV0ZXJtaW5lZCBieSB0aGUgbmV3IHVzZXIgb3B0aW9uICdw dWxzZS1mYWNlLWR1cmF0aW9uJy4KIAogKiogTWlzY2VsbGFuZW91cwogCistLS0KKyoqKiBOZXcg ZnVuY3Rpb25zICd1bmlxdWlmeS1zdHJpbmdzJyBhbmQgJ3VuaXF1aWZ5LWFsaXN0LWtleXMnLgor VGhlc2UgZnVuY3Rpb25zIGFyZSBzaW1pbGFyIHRvICdnZW5lcmF0ZS1uZXctYnVmZmVyLW5hbWUn LgorJ3VuaXF1aWZ5LXN0cmluZ3MnIHJldHVybnMgYSBjb3B5IG9mIGEgc3RyaW5nIGxpc3Qgd2l0 aCAiPE5VTUJFUj4iCithcHBlbmRlZCB0byBkdXBsaWNhdGVzLiAgJ3VuaXF1aWZ5LWFsaXN0LWtl eXMnIHJldHVybnMgYSBjb3B5IG9mIGFuCithbGlzdCB3aXRoICI8TlVNQkVSPiIgYXBwZW5kZWQg dG8gaXRzIGR1cGxpY2F0ZSBrZXlzLiAgQWxsIG5vbi1zdHJpbmcKK2tleXMgYXJlIGZpcnN0IGNv bnZlcnRlZCB0byBzdHJpbmdzLgorCiAtLS0KICoqKiBUaGUgZmlyc3QgY2xpZW50IGZyYW1lIG5v dyBzaG93cyB3YXJuaW5ncyBmcm9tIGRhZW1vbiBzdGFydHVwLgogV2hlbiB0aGVyZSBhcmUgd2Fy bmluZ3MgZW1pdHRlZCBkdXJpbmcgRW1hY3Mgc3RhcnR1cCwgdXN1YWxseSBkdWUgdG8KZGlmZiAt LWdpdCBhL2xpc3AvZW1hY3MtbGlzcC9zdWJyLXguZWwgYi9saXNwL2VtYWNzLWxpc3Avc3Vici14 LmVsCmluZGV4IDhkMDQ5NTg0ODdmLi44N2Q0ZTNjMTNmNiAxMDA2NDQKLS0tIGEvbGlzcC9lbWFj cy1saXNwL3N1YnIteC5lbAorKysgYi9saXNwL2VtYWNzLWxpc3Avc3Vici14LmVsCkBAIC01ODUs NiArNTg1LDUxIEBAIGVtYWNzLWV0Yy0taGlkZS1sb2NhbC12YXJpYWJsZXMKICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHByb2duIChmb3J3YXJkLWxpbmUgLTEpIChwb2ludCkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAocG9pbnQtbWF4KSkpKSkKIAorOzs7IyMjYXV0b2xvYWQKKyhkZWZ1 biB1bmlxdWlmeS1zdHJpbmdzIChzdHJpbmdzKQorICAiUmV0dXJuIGEgY29weSBvZiBTVFJJTkdT IHdpdGggXCI8TlVNQkVSPlwiIGFwcGVuZGVkIHRvIGR1cGxpY2F0ZXMuCitTVFJJTkdTIHNob3Vs ZCBiZSBhIGxpc3QgYW5kIG1heSBoYXZlIHRleHQgcHJvcGVydGllcyB3aGljaCByZW1haW4KK2lu dGFjdC4KK05VTUJFUiBpcyBhIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZyBpbnRlZ2VyIHN0YXJ0 aW5nIGF0IDIgZm9yIHRoZSBmaXJzdAorZHVwbGljYXRlLgorVGhpcyBmdW5jdGlvbiBpcyBzaW1p bGFyIHRvIGBnZW5lcmF0ZS1uZXctYnVmZmVyLW5hbWUnIGJ1dCBmb3Igc3RyaW5nCitsaXN0cy4i CisgIChsZXQgKCh1bmlxdWVzKQorICAgICAgICAoaHQgKG1ha2UtaGFzaC10YWJsZSA6c2l6ZSAo bGVuZ3RoIHN0cmluZ3MpIDp0ZXN0ICMnZXF1YWwpKSkKKyAgICAoZG9saXN0IChzdHJpbmcgc3Ry aW5ncykKKyAgICAgIChsZXQqICgodW5pcXVlLWtleSBzdHJpbmcpIDsgTGVhdmUgcHJvcGVydGll cyBpbnRhY3QuCisgICAgICAgICAgICAgKGtleSAoc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgc3Ry aW5nKSkKKyAgICAgICAgICAgICAoY291bnQgKGdldGhhc2gga2V5IGh0KSkpCisgICAgICAgICh3 aGVuIGNvdW50CisgICAgICAgICAgKHNldHEgY291bnQgKDErIGNvdW50KSkKKyAgICAgICAgICAo c2V0cSB1bmlxdWUta2V5IChmb3JtYXQgIiVzPCVkPiIgdW5pcXVlLWtleSBjb3VudCkpKQorICAg ICAgICAocHVzaCB1bmlxdWUta2V5IHVuaXF1ZXMpCisgICAgICAgIChwdXRoYXNoIGtleSAob3Ig Y291bnQgMSkgaHQpKSkKKyAgICAobnJldmVyc2UgdW5pcXVlcykpKQorCis7OzsjIyNhdXRvbG9h ZAorKGRlZnVuIHVuaXF1aWZ5LWFsaXN0LWtleXMgKGFsaXN0KQorICAiUmV0dXJuIGEgY29weSBv ZiBBTElTVCB3aXRoIFwiPE5VTUJFUj5cIiBhcHBlbmRlZCB0byBkdXBsaWNhdGUga2V5cy4KK0FM SVNUIGtleXMgc2hvdWxkIGJlIHN0cmluZ3MgYW5kIG1heSBoYXZlIHRleHQgcHJvcGVydGllcyB3 aGljaCByZW1haW4KK2ludGFjdC4gIE5vbi1zdHJpbmcga2V5cyBhcmUgY29udmVydGVkIHRvIHN0 cmluZ3MuCitOVU1CRVIgaXMgYSBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcgaW50ZWdlciBzdGFy dGluZyBhdCAyIGZvciB0aGUgZmlyc3QKK2R1cGxpY2F0ZS4KK1RoaXMgZnVuY3Rpb24gaXMgc2lt aWxhciB0byBgZ2VuZXJhdGUtbmV3LWJ1ZmZlci1uYW1lJyBidXQgZm9yIGFsaXN0cy4iCisgIChs ZXQgKCh1bmlxdWVzKQorICAgICAgICAoaHQgKG1ha2UtaGFzaC10YWJsZSA6c2l6ZSAobGVuZ3Ro IGFsaXN0KSA6dGVzdCAjJ2VxdWFsKSkpCisgICAgKGRvbGlzdCAoZWx0IGFsaXN0KQorICAgICAg KGxldCogKChrZXkgKGNhciBlbHQpKQorICAgICAgICAgICAgIChrZXkgKGlmIChzdHJpbmdwIGtl eSkga2V5IChmb3JtYXQgIiVTIiBrZXkpKSkKKyAgICAgICAgICAgICAodW5pcXVlLWtleSBrZXkp IDsgTGVhdmUgcHJvcGVydGllcyBpbnRhY3QuCisgICAgICAgICAgICAgKGtleSAoc3Vic3RyaW5n LW5vLXByb3BlcnRpZXMga2V5KSkKKyAgICAgICAgICAgICAoY291bnQgKGdldGhhc2gga2V5IGh0 KSkpCisgICAgICAgICh3aGVuIGNvdW50CisgICAgICAgICAgKHNldHEgY291bnQgKDErIGNvdW50 KSkKKyAgICAgICAgICAoc2V0cSB1bmlxdWUta2V5IChmb3JtYXQgIiVzPCVkPiIgdW5pcXVlLWtl eSBjb3VudCkpKQorICAgICAgICAocHVzaCAoY29ucyB1bmlxdWUta2V5IChjZHIgZWx0KSkgdW5p cXVlcykKKyAgICAgICAgKHB1dGhhc2gga2V5IChvciBjb3VudCAxKSBodCkpKQorICAgIChucmV2 ZXJzZSB1bmlxdWVzKSkpCisKIChwcm92aWRlICdzdWJyLXgpCiAKIDs7OyBzdWJyLXguZWwgZW5k cyBoZXJlCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvbWlzYy10ZXN0cy5lbCBiL3Rlc3QvbGlzcC9t aXNjLXRlc3RzLmVsCmluZGV4IGI2ZjVmMDFhZDJhLi44NjA3MGI0Zjc1YyAxMDA2NDQKLS0tIGEv dGVzdC9saXNwL21pc2MtdGVzdHMuZWwKKysrIGIvdGVzdC9saXNwL21pc2MtdGVzdHMuZWwKQEAg LTI0Myw1ICsyNDMsNDAgQEAgbWlzYy10ZXN0LXN0cmluZy1waXhlbC13aWR0aC1kaXNwbGF5LWxp bmUtbnVtYmVycwogICAgICAgKHNldHEtZGVmYXVsdCBkaXNwbGF5LWxpbmUtbnVtYmVycyBkbG4p KQogICAgIChzaG91bGQgKD0gdzAgdzEpKSkpCiAKKyhlcnQtZGVmdGVzdCBtaXNjLXRlc3QtdW5p cXVpZnktc3RyaW5ncyAoKQorICAoc2hvdWxkIChlcXVhbCAodW5pcXVpZnktc3RyaW5ncworICAg ICAgICAgICAgICAgICAgJygpKQorICAgICAgICAgICAgICAgICAnKCkpKQorICAoc2hvdWxkIChl cXVhbCAodW5pcXVpZnktc3RyaW5ncworICAgICAgICAgICAgICAgICAgJygiYSIgImIiICJjIiAi ZCIgImUiKSkKKyAgICAgICAgICAgICAgICAgICcoImEiICJiIiAiYyIgImQiICJlIikpKQorICAo c2hvdWxkIChlcXVhbCAodW5pcXVpZnktc3RyaW5ncworICAgICAgICAgICAgICAgICAgJygiYSIg ImEiICJiIiAiYyIgImQiICJkIiAiZCIgImUiKSkKKyAgICAgICAgICAgICAgICAgJygiYSIgImE8 Mj4iICJiIiAiYyIgImQiICJkPDI+IiAiZDwzPiIgImUiKSkpCisgIChzaG91bGQgKGVxdWFsICh1 bmlxdWlmeS1zdHJpbmdzCisgICAgICAgICAgICAgICAgICBgKCwocHJvcGVydGl6ZSAiYSIgJ2lk IDEpICwocHJvcGVydGl6ZSAiYSIgJ2lkIDIpICJhIgorICAgICAgICAgICAgICAgICAgICAiYiIg ImMiICJkIiAiZCIgImQiICJlIikpCisgICAgICAgICAgICAgICAgIGAoLChwcm9wZXJ0aXplICJh IiAnaWQgMSkgLChwcm9wZXJ0aXplICJhPDI+IiAnaWQgMikgImE8Mz4iCisgICAgICAgICAgICAg ICAgICAgImIiICJjIiAiZCIgImQ8Mj4iICJkPDM+IiAiZSIpKSkpCisKKyhlcnQtZGVmdGVzdCBt aXNjLXRlc3QtdW5pcXVpZnktYWxpc3Qta2V5cyAoKQorICAoc2hvdWxkIChlcXVhbCAodW5pcXVp ZnktYWxpc3Qta2V5cworICAgICAgICAgICAgICAgICAgJygpKQorICAgICAgICAgICAgICAgICAn KCkpKQorICAoc2hvdWxkIChlcXVhbCAodW5pcXVpZnktYWxpc3Qta2V5cworICAgICAgICAgICAg ICAgICAgJygoImEiICJBIikgKCJiIiAiQiIpICgiYyIgIkMiKSAoImQiICJEIikgKCJlIiAiRSIp KSkKKyAgICAgICAgICAgICAgICAgJygoImEiICJBIikgKCJiIiAiQiIpICgiYyIgIkMiKSAoImQi ICJEIikgKCJlIiAiRSIpKSkpCisgIChzaG91bGQgKGVxdWFsICh1bmlxdWlmeS1hbGlzdC1rZXlz CisgICAgICAgICAgICAgICAgICAnKCgiYSIgIkEiKSAoImEiICJBMiIpICgiYiIgIkIiKSAoImMi ICJDIikgKCJkIiAiRCIpICgiZCIgIkQyIikgKCJkIiAiRDMiKSAoImUiICJFIikpKQorICAgICAg ICAgICAgICAgICAnKCgiYSIgIkEiKSAoImE8Mj4iICJBMiIpICgiYiIgIkIiKSAoImMiICJDIikg KCJkIiAiRCIpICgiZDwyPiIgIkQyIikgKCJkPDM+IiAiRDMiKSAoImUiICJFIikpKSkKKyAgKHNo b3VsZCAoZXF1YWwgKHVuaXF1aWZ5LWFsaXN0LWtleXMKKyAgICAgICAgICAgICAgICAgIGAoKCwo cHJvcGVydGl6ZSAiYSIgJ2lkIDEpICJBIikgKCwocHJvcGVydGl6ZSAiYSIgJ2lkIDIpICJBMiIp CisgICAgICAgICAgICAgICAgICAgICgiYiIgIkIiKSAoImMiICJDIikgKCJkIiAiRCIpICgiZCIg IkQyIikgKCJkIiAiRDMiKSAoImUiICJFIikpKQorICAgICAgICAgICAgICAgICBgKCgsKHByb3Bl cnRpemUgImEiICdpZCAxKSAiQSIpICgsKHByb3BlcnRpemUgImE8Mj4iICdpZCAyKSAiQTIiKQor ICAgICAgICAgICAgICAgICAgICgiYiIgIkIiKSAoImMiICJDIikgKCJkIiAiRCIpICgiZDwyPiIg IkQyIikgKCJkPDM+IiAiRDMiKSAoImUiICJFIikpKSkKKyAgKHNob3VsZCAoZXF1YWwgKHVuaXF1 aWZ5LWFsaXN0LWtleXMKKyAgICAgICAgICAgICAgICAgICcoKDEgIkEiKSAoMSAiQTIiKSAoMiAi QiIpICgiYyIgIkMiKSAoImQiICJEIikgKCJkIiAiRDIiKSAoImQiICJEMyIpICgiZSIgIkUiKSkp CisgICAgICAgICAgICAgICAgICcoKCIxIiAiQSIpICgiMTwyPiIgIkEyIikgKCIyIiAiQiIpICgi YyIgIkMiKSAoImQiICJEIikgKCJkPDI+IiAiRDIiKSAoImQ8Mz4iICJEMyIpICgiZSIgIkUiKSkp KSkKKwogKHByb3ZpZGUgJ21pc2MtdGVzdHMpCiA7OzsgbWlzYy10ZXN0cy5lbCBlbmRzIGhlcmUK LS0gCjIuNTIuMAoK --000000000000fdc1a206498ade62--
bug-gnu-emacs@HIDDEN:bug#80283; Package emacs.
Full text available.Received: (at submit) by debbugs.gnu.org; 29 Jan 2026 18:15:14 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jan 29 13:15:14 2026 Received: from localhost ([127.0.0.1]:59874 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vlWXy-0003iV-Bf for submit <at> debbugs.gnu.org; Thu, 29 Jan 2026 13:15:14 -0500 Received: from lists.gnu.org ([2001:470:142::17]:58038) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>) id 1vlWXw-0003gO-CJ for submit <at> debbugs.gnu.org; Thu, 29 Jan 2026 13:15:12 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <shipmints@HIDDEN>) id 1vlWXr-0001mU-1c for bug-gnu-emacs@HIDDEN; Thu, 29 Jan 2026 13:15:07 -0500 Received: from mail-ua1-x92c.google.com ([2607:f8b0:4864:20::92c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from <shipmints@HIDDEN>) id 1vlWXp-000085-BB for bug-gnu-emacs@HIDDEN; Thu, 29 Jan 2026 13:15:06 -0500 Received: by mail-ua1-x92c.google.com with SMTP id a1e0cc1a2514c-94803734b11so756642241.2 for <bug-gnu-emacs@HIDDEN>; Thu, 29 Jan 2026 10:15:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1769710503; cv=none; d=google.com; s=arc-20240605; b=V+1I6xAwIF4aD/qv0fU3ynoaJDmCeLMTHA7pXXXuz0KFkOzmva1XAwgST+cqKUNlfT 7IK7z/4Gdgyvnzhj5mLg2oSw4Hp6WT5vII28OjL5kofYItNIcm3iTCFlKpZEYqp6ePC+ LE1bw0ovjwKcY/KRqb/X08bwyShoA8MfLaTNJiAmCVpcHgGY6TOu7RzTBzpi/P4h55+X 34MKbtK5eG32ow9LxlbhkDrw2fG/8v+A5HhowJ9RjbPfck9XKyMJm5Z5YZurx3KMNp3u EcN+nB1SPCzC/9ctRrdxFGyDY2jn/YVG6yXTuIHZmOMixaXreFh6s62cJc9exijxn2l1 f7Ng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :mime-version:dkim-signature; bh=KuLyHn0qQQX46IlVQkPj2TMlz7eV8ecOGad31EXS/6c=; fh=UIKK90k7p1oPIzh1RMmZ8KusZ36xSeJZiCePbLMzw+o=; b=R6iteWBVLYqpon/ThX6efB/iSHNOwC0mOacHpcj6lkz7bvDjOS2BYfWwBEyMZLCsWu VaoHvG+xvwGdQg+2gIJIAk0AVnDNpEYUN6blHQS3MwNqJ+gOyZk1ONEW96ejz06FOWHY ntQ11JRzL9lDcmwUpbU9oh7sv7uXb1xeyN3uLBT/Rmvmeb/WJozz//qYd7HyevEwhvUk ol4hMAj8ltaDPopXprm5JhotcWQHIhNWMIzlgd6EYhrcmZH8ZixJOww+1GqLJvA1jsBX ZLaaEDsBUhpHqXTmasIcgJB/5ynfEF7920t1Ed0xGwvUqZsLeaGuRVpDlyEAqAg8mT3S Sn0Q==; darn=gnu.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769710503; x=1770315303; darn=gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=KuLyHn0qQQX46IlVQkPj2TMlz7eV8ecOGad31EXS/6c=; b=lnRLCHgZyNRJsBJrbYcEWg/aq8cT9f9eWBiHxfDO3EpRqM9VjK5f1qFb1xK2GP1KhS xIKRA7oxZFxk6gLxGr7fBrrLEdoG77pRb5U5h++gM9B1mZ6Hm0noXFj9A+TpebLgbLcc hdGVjT2cc9C68ea1b7X8ER5AGY6B9A/NQqSFp5xA7mqL7RJE0KTl3FV8RuReoKJ/fWe0 G43qF2Hztc8jAgH+64TCzlBmIP8erKk1NmAr4Va/ATplYJT4oUX+qnfeZtMkpqjknIZT azNk5iLtysabZMQaqYssVJPKCs6Nmj+Xu4ZsqSw+aX+9v6++SY7RXlEm8WCryPIxiLct w2tQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769710503; x=1770315303; h=content-transfer-encoding:cc:to:subject:message-id:date:from :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=KuLyHn0qQQX46IlVQkPj2TMlz7eV8ecOGad31EXS/6c=; b=MFgU+TA0aDllqDy9FOCVZw2nbEEblOaz1DoSKNrhLKzzccD/G2iW7DKbxebaPVCupC E6vAYdVmz2/DU+u7h2OEcSTWWAmESQkYIhRlx1y0fIZNqmdFuFGE9JJiXGKRk85csHKN va23w8tBCoo3ZHWh3N/qHBMlq2YDkJFNo3qrI9U3XGxCwaX8KjAPMbVH5+AKYThlITKm YjiGHnXeh7zSw7AoQ42ZVlTZQ7gfgmCPSH5laaMmm1XhrF0L+ygRij2AVCE7KI6eeltf gAm8xUOlV2hZ/nH29Tj03DKK2KFlchm5oygd5RQdB5X0Y8X6Q95a+IHhzs9qPnDOG3By /VTw== X-Gm-Message-State: AOJu0YwP4/8k7MSXO+xFgqMPcGPF6waT0n0QJSRATh97DIvM4az2ZmuD un6kTu/J/tZ0gA7NqFoU02u+tR2TMv1CmOzpMatH4BtyrdhCftMqzAKxK/Z6XE3J9see6sgjKyD T39oOiOAjkX5DjM71zXcqALeuYBZkR+I1mWIS X-Gm-Gg: AZuq6aL0FdWXb/RYgHqbOh0fXUVvMHzAOTOtfcGh0Xrdobfcj5nJxRA1LxdMTydNZq1 S06NCPhgQCmZcvAB8ghfvwK4nhNR1R7CGVILBLVz9K0EEbvSM6gBn/8DEhRycScU1uUsuxbEFQG +Lf/jH29nA0OgfDpfgg0iu+Xl6QuB6VQ58MNN+m1Mq4/K3Xk/tFqhSZLAVBdN3Q8nMq96KMM9T9 sjEhxIAnUmbDbf7ydh1Xp5VZT9JAL+4Rn6HZzipvQYydp36DN6qgOs+5jcNL6O5b9DrhMF05swb lhraqvWwi28yPTYaIfeqS/o+DIi+k9TOV7YTRVfvwtz3WvIN6MY= X-Received: by 2002:a05:6102:a46:b0:5db:ca9e:b57c with SMTP id ada2fe7eead31-5f8e25eb665mr136535137.27.1769710498649; Thu, 29 Jan 2026 10:14:58 -0800 (PST) MIME-Version: 1.0 From: =?UTF-8?Q?St=C3=A9phane_Marks?= <shipmints@HIDDEN> Date: Thu, 29 Jan 2026 13:14:44 -0500 X-Gm-Features: AZwV_Qi4RQDZobYi1bcJYyVsL1wEwDXOt-jgGR84rYxMy1VUz5sDixq6CM0KCoI Message-ID: <CAN+1Hbp35XuJrMCN3ns9EDNueEODtvw5rjfM_MEcd_sKdiTGtw@HIDDEN> Subject: [PATCH] Add functions uniquify-strings and uniquify-alist-keys To: bug-gnu-emacs@HIDDEN Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2607:f8b0:4864:20::92c; envelope-from=shipmints@HIDDEN; helo=mail-ua1-x92c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: These functions are similar to 'generate-new-buffer-name'. 'uniquify-strings' returns a copy of a string list with "<NUMBER>" appended to duplicates. 'uniquify-alist-keys' returns a copy of an alist w [...] Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2001:470:142:0:0:0:0:17 listed in] [list.dnswl.org] 1.0 FORGED_GMAIL_RCVD 'From' gmail.com does not match 'Received' headers -0.0 SPF_HELO_PASS SPF: HELO matches SPF record 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (shipmints[at]gmail.com) X-Debbugs-Envelope-To: submit Cc: Juri Linkov <juri@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 1.0 (+) These functions are similar to 'generate-new-buffer-name'. 'uniquify-strings' returns a copy of a string list with "<NUMBER>" appended to duplicates. 'uniquify-alist-keys' returns a copy of an alist with "<NUMBER>" appended to its duplicate keys. All non-string keys are first converted to strings. I've been using similar functions to assist with `completing-read` cases with duplicate candidates and I'd prefer to use core functions. Juri and I will use these in forthcoming tab-bar.el and frame.el `completing-read` enhancements. Despite the name prefixes being 'uniquify-', I put these into subr-x.el. Patch incoming as soon as a bug number is assigned. -St=C3=A9phane
Stéphane Marks <shipmints@HIDDEN>:bug-gnu-emacs@HIDDEN.
Full text available.bug-gnu-emacs@HIDDEN:bug#80283; Package emacs.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.