From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id cttlOsSFX2rbhSAAWB0awg (envelope-from ) for ; Tue, 21 Jul 2026 10:44:20 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=skynet.be header.i=@skynet.be header.a=rsa-sha256 header.s=rmail2 header.b=vNMz3Zpe; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id DBB7C1E09E; Tue, 21 Jul 2026 10:44:20 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-5.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [IPv6:2620:52:6:3111::32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 8D3931E099 for ; Tue, 21 Jul 2026 10:44:18 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A79284BA2E0C for ; Tue, 21 Jul 2026 14:44:16 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A79284BA2E0C Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=skynet.be header.i=@skynet.be header.a=rsa-sha256 header.s=rmail2 header.b=vNMz3Zpe Received: from mailsec203.isp.belgacom.be (mailsec203.isp.belgacom.be [195.238.22.99]) by sourceware.org (Postfix) with ESMTPS id 313564BA543C for ; Tue, 21 Jul 2026 14:42:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 313564BA543C Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=skynet.be Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=skynet.be ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 313564BA543C Authentication-Results: sourceware.org; arc=none smtp.remote-ip=195.238.22.99 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1784644958; cv=none; b=XaoF4pH24QK70ZFUn7KBqaqaLM2vdKV6Jb5aNKOj/FKj1AXoKOVQI3I/X4uj97gcYfDACGJCjiirOmTFBVOBvI8K8/qpAZagj5q3zK8xbbTVgzKnni+6KB/xPkGgPP++hnasO0jziE0m2xsl/k57PnX/AWngldFaomfP1i2d3Ys= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1784644958; c=relaxed/simple; bh=cize5x7AkkN0H/ooK7w3hclmaQ3NJX1yjLvTA42IT2w=; h=DKIM-Signature:Message-ID:Subject:From:To:Date:MIME-Version; b=wV3/GrormPLmDxbDFmDoqcFVb2CzsnyDf+ONEAgeCTOdD1/WzkuPiTm+JmWh7kCO7IjJO5smxBQk2vcEvRQdHJ3G/LAQxPhEmgtWMif/d/Cgm/xT1+SpWw91sZTtA8VpzLPHiUx0HNYKRAEdZCsY5gZDrNCZW758K44jUbYvyjQ= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=skynet.be header.i=@skynet.be header.a=rsa-sha256 header.s=rmail2 header.b=vNMz3Zpe DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 313564BA543C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=skynet.be; i=@skynet.be; q=dns/txt; s=rmail2; t=1784644952; x=1816180952; h=message-id:subject:from:to:date:in-reply-to:references: content-transfer-encoding:mime-version; bh=zgRv3HcTItqfrne1L/Qm72lSYgnlCw8JcZffXLcwUME=; b=vNMz3ZpeL6NIXizeFJ2g+hGJ2yf5x7Mj15duZzxteW9STcS1Zb1tnNMU OIS5HznFY5V3eOPwhAvGJWFlkNVagAohjSmE2zeMXHmncGYtkR7XOZK21 XV9Q5H22kY8inqfY9Bglzo9vbVKylTUImW8HgNMzq7TYNdYwSnBh2Chi3 xr7v7CoqbCkhWf1hlwBesuEKVuNlJl90dWdg7BOkcf3csEf90hAWx58eL Y6/LwxAHBko8fOuYr1TdyJSOGGFx8GYTmkcCeoP4YeovZ5KLX8JOt4Dim pJ0/cXF1/TMUd8HjF2LViyuQXnp1PIFcVsiDYhhgdyfzmh7moustpnRSx Q==; X-CSE-ConnectionGUID: yhyupsUvSxKGjAn8+RPwrA== X-CSE-MsgGUID: Zaun3RXkQRGOSGVxMWpTcA== X-ExtLoop: 1 X-ThreatScanner-Verdict: Negative X-IPAS-Result: =?us-ascii?q?A2EOAQAuhF9q/1uGgG0NTYESgUeKDZF2nhuBfg8BAQEBA?= =?us-ascii?q?QEBAQEJUQQBAYUFAo1ZJzQJDgECBAMCAwEBAQEBAQEBAQEBCwEBAQUBAQEBA?= =?us-ascii?q?QEGBAEBAQKBHYYJgy6ECAEBAQMjBGILGAICJgICVscnen8zgQHeRYFyFAGBC?= =?us-ascii?q?i6FcYJrAYFwiQM2gVVEgRWCejE+hEODW4JqBIMugXiQDQlJeBwDWSwBVRMXC?= =?us-ascii?q?wcFgSNDA005Iw88BS0dgSMhHRcWHlgbBwUSICpBRSMDQz84C0IBBYFXAoF/T?= =?us-ascii?q?iMfAzl/gS91SnctagIQF0o4JCmBa4E6Ak4DC209NxQZBJFfBwGBDoFLpGGif?= =?us-ascii?q?DQHhCCBYAYMoAMzqmyZCKlDgWiCFm2DO1Iojl/PcYE2BwIHDwKSJ4FMAQE?= IronPort-PHdr: A9a23:/luQHBAUYOjp9yBZtd9/UyQUkkQY04WdBeb1wqQuh78GSKm/5ZOqZ BWZua4zygeQFtmAu6kMy7KP9fy7BSpYudfJmUtBWaIPfidNsd8RkQ0kDZzNImzAB9muQgoEW e9vbxtbxUy9KlVfA83kZlff8TWY5D8WHQjjZ0IufrymUoHdgN6q2O+s5pbdfxtHhCanYbN1M R66sRjdutMZjIZsK6s90AfFrmZHd+lZy25lJlyelAv46sus4ZJv6Stdtvwu+sJaTan2Y6E0R qFEATo7NGw4+MLkuR7fQAWV+3ASSH8Wkh1GAwjE6BH1QJL8uTbku+R+xSeXI9T4Qag7Vzq64 KhnUQHlhigaOTIh/27ZlsJ/jKRAoBK8vBN/2JLbYJuUNPVlYKzQe84RSHdbUcZQUyxBBZ68b 5cKAuEcM+tUs5Xxql0Tpha4GAKiBv7gyiVQi3H1wKM00/ovHw/E0wwuA90Av3rbo9ruOacOS OC41rXEwSnZYv5U3zr29YjGcgomofGJRb9+a8rRyUgrFwPEllWQsZLqNC6V2esXqWib6PNgV f+ui2E5sQFxuSWky8A0ionJh4IVzlHE9T1hwIkrP9G5RlR0YcSjEJtJqiGaNpV5Qtk5Q2xzo yY6yb0HuZilcygW0pgo3ADQZuWBfoOV7R3tSPyfLi1khHJ5Zr2/nRCy/FCix+DySMW51EhGo jRLnNTIuH4Byxzd58uZRvZz/kmv2TSC2x7O5+xFIU05lbfXJZEuz7M+lJcer1jOEzPqlUv2i qKda0Yq+vCw5uj6frnrooWQO5Jqhgz9KKgih8KyDOsiPgUKQmSW//m32qf58k3jWrpKi+U7k qzesJ/HO8sWvrW5AwpJ0oY77Ba/Eium3MwYnXYZKFJFfwqKgIz0N1zKPvz0F+qzjlWvnTtx2 vzKJLPsDZPVInjClrfuY6p95lZBxAYvyd1T/Y9YBq8CLf7pR0P8utPVAgU9PgCp2+rnDc9y1 oIaWWKBGK+ZN6bSvEeQ5uIvIumMYI4VuC7lK/c7/fLvg2U2mUUafamwwJsXaW63Hu59I0iCe nrsgdcAEWEUsQoiVuDlk0ONXSZJZ3muR6I8+i07CIW+AIfMW4+im6WN3D+hEZ1Kem9GCk6DE WzzeoWfXPcMdTiSLdN/nT0KT7ehUZEu2QuptA/gxLprNuzU9TYAupL5yNd1//HTlQ019TFsE siRy3uNQH9qnm0LXTE7xKRyrVFnxlue36V1jOVUGcFN6/5KSws2KILQwuhgB9/oRw3BZdOJR E+7TdSmBzE9VNMxw8QWY0pnANqtkBTD3yWwDLAJkLyLAYY4/bnC0HTpOsl9yHfG1Kw5glc+T cVAO3OoiLJj+gbVH4LGjkCZmLywdasAxCPD7H6Nw3KBsk1ASw5wSavFUGgHaEXPtdr36VvOT 6S2CbQpKgRBydCNKq9NatDxlVtIXe/tNtuNK162zmi8D1OQz6+HbIfxU34awT/WBVcNiQ1V+ myJZiYkASL0m2LfCD12DV+nXEr29vBjqX6hVQdg1wGLa0x5z7fz5RcPguWBSv4JxZofuzYnp ikyFlvrjIGeMMaJuwc0JPYUWtg6+loSjQrk IronPort-Data: A9a23:GeHzeKN43UWA5x/vrR2jlsFynXyQoLVcMsEvi/4bfWQNrUoggjJTz GMXXG3QP66JYWXxeYp2aYzk9R8E7JLcztYwTgZtpSBmQlt08seUXt7xwmUcns+xBpSdEx04t ZxAAjXkBJlsFhcwcz/3b+CJQUFUjP/OHvykTraZZkidfCc8IA85kxVvhuUltYBhhNm9Emult Mj7yyHlEAbNNwVcbCROtspvlDs15K6s4GxC5wRnDRx2lAa2e0c9Xcp3yZ6ZciOQrrl8RoaSW +vFxbelyWLVlz9FIs+liLvybnoRSbfUOwWU4lIOM0R1qkEfzsCa+v9T2Ms0MS+7uR3Q9zxC4 IwlWaiLdOscFvakdNI1CkcHTH4kZPMuFIjvehBTueTLp6HPnuCFL/9GVCnaNqVAkgp77P0nG VX151nhYzja799azo5XRcF9htU+NNLWIrgPmV5i5DeJTsweXorqFvCiCd9whF/ch+h9RKeEI ZNHOXw2Kk/1C/FNEg5PWdRnxrfu3yKjNWwBwL6WjfNfD2z71Axw1Ln1KNeTZdWQQtxIn0uCv Urd/HX/Dw1cPtH3JT+toyP23LGSxXiTtIQ6JrSl8KVQsF6q/EM0MzIoRX6EucWyoxvrMz5YA wlOksY0loA9+EbuVtDhVB21u1afuQMGUNdPGvc3rgaXxcLpDx2xVzFCF2UdLYV85IpvHW1s3 1OSm5blFDopsaaND3iQ8ridpjS3fyIYRYMfWRI5ocI+y4GLiOkOYtjnF76PzIbdYhbJ9f0cD txEQOXSR1nesCLT65iGwA== IronPort-HdrOrdr: A9a23:d5D8SKu4XfRG2KrLc3EF7kqJ7skDFdV00zEX/kB9WHVpm6uj+f xG/c5x6faaslcssR0b8+xoW5PhfZq/z/FICOAqVN+ftWLd1FdAQrsO0bff X-Talos-CUID: =?us-ascii?q?9a23=3Ao8/YdmuBY95DQjGDTco3zmax6Is0cmzA1GztPXS?= =?us-ascii?q?oKklrYbvFCmWo57lNxp8=3D?= X-Talos-MUID: 9a23:e7lPPQoL3RujsIjChkkezwNrKcEz2ZStMXoitq4phdmhCjRMMB7I2Q== X-IronPort-Anti-Spam-Filtered: true Received: from 91.134-128-109.adsl-dyn.isp.belgacom.be (HELO [192.168.1.3]) ([109.128.134.91]) by relay.proximus.be with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 21 Jul 2026 16:42:29 +0200 Message-ID: Subject: Re: [PATCH] Fix double apropos output when both alias name and command name match the pattern From: Philippe Waroquiers To: gdb-patches@sourceware.org Date: Tue, 21 Jul 2026 16:42:28 +0200 In-Reply-To: <3bebb7dc282cf8758b25a68e9463e5b09091756e.camel@skynet.be> References: <20260531163756.781643-1-philippe.waroquiers@skynet.be> <20260531163756.781643-2-philippe.waroquiers@skynet.be> <3bebb7dc282cf8758b25a68e9463e5b09091756e.camel@skynet.be> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.56.2-0+deb13u1 MIME-Version: 1.0 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org Ping ^ 2 ? Thanks Philippe On Tue, 2026-06-16 at 20:51 +0200, Philippe Waroquiers wrote: > Ping ? > Thanks > Philippe >=20 > On Sun, 2026-05-31 at 18:37 +0200, Philippe Waroquiers wrote: > > apropos_cmd first tries to match the command name with the pattern. > > If that succeeds, it prints the command and all its aliases not having > > a specific doc string. > > In this case, it should not try to match the command aliases names as > > the command has already been printed. > >=20 > > Without this patch, the behaviour is: > > (gdb) alias ter-exec =3D interpreter-exec > > (gdb) apropos er-exe > > interpreter-exec, ter-exec -- Execute a command in an interpreter. > > interpreter-exec, ter-exec -- Execute a command in an interpreter. > > (gdb) > > --- > > gdb/cli/cli-decode.c | 18 ++++++++++-------- > > gdb/testsuite/gdb.base/help.exp | 8 ++++++++ > > 2 files changed, 18 insertions(+), 8 deletions(-) > >=20 > > diff --git a/gdb/cli/cli-decode.c b/gdb/cli/cli-decode.c > > index de40faeed59..36f911c2cd6 100644 > > --- a/gdb/cli/cli-decode.c > > +++ b/gdb/cli/cli-decode.c > > @@ -1784,16 +1784,18 @@ apropos_cmd (struct ui_file *stream, > > returnvalue =3D regex.search (c->name, name_len, 0, name_len, NULL)= ; > > if (returnvalue >=3D 0) > > print_doc_of_command (*c, verbose, regex, stream); > > - > > - /* Try to match against the name of the aliases. */ > > - for (const cmd_list_element &alias : c->aliases) > > + else > > { > > - name_len =3D strlen (alias.name); > > - returnvalue =3D regex.search (alias.name, name_len, 0, name_len= , NULL); > > - if (returnvalue >=3D 0) > > + /* Try to match against the name of the aliases. */ > > + for (const cmd_list_element &alias : c->aliases) > > { > > - print_doc_of_command (*c, verbose, regex, stream); > > - break; > > + name_len =3D strlen (alias.name); > > + returnvalue =3D regex.search (alias.name, name_len, 0, name_len, N= ULL); > > + if (returnvalue >=3D 0) > > + { > > + print_doc_of_command (*c, verbose, regex, stream); > > + break; > > + } > > } > > } > > } > > diff --git a/gdb/testsuite/gdb.base/help.exp b/gdb/testsuite/gdb.base/h= elp.exp > > index a8c55721ef2..6a88c8d4db2 100644 > > --- a/gdb/testsuite/gdb.base/help.exp > > +++ b/gdb/testsuite/gdb.base/help.exp > > @@ -135,6 +135,14 @@ gdb_test_no_output "alias mybt10 =3D backtrace 10"= "define mybt10 alias" > > gdb_test "apropos Print backtrace of all stack frames, or innermost CO= UNT frames\." \ > > "backtrace, mybt10, mybt, where, bt -- Print backtrace of all stac= k frames, or innermost COUNT frames\.\[\r\n\]+ alias mybt10 =3D backtrace = 10" > > =20 > > +# Test apropos when both the alias name and the aliased command match = the pattern. > > +gdb_test_no_output "alias ter-exec =3D interpreter-exec" "define ter-e= xec alias" > > +gdb_test_multiple "apropos er-exe" "check we have a single output line= when alias and command name match" { > > + -re "^apropos er-exe\r\ninterpreter-exec, ter-exec -- Execute a co= mmand in an interpreter\.\r\n$gdb_prompt $" { > > + pass $gdb_test_name > > + } > > +} > > + > > # Test help for commands having aliases. > > gdb_test "help bt" "backtrace, mybt10, mybt, where, bt\[\r\n\]+ alias= mybt10 =3D backtrace 10\[\r\n\]+Print backtrace of all stack frames, or in= nermost COUNT frames\..*" > > =20