From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jim Porter Newsgroups: gmane.emacs.bugs Subject: bug#52293: [External] : bug#52293: 29.0.50; [PATCH v3] Prevent further cases of duplicated separators in context menus Date: Fri, 31 Dec 2021 23:13:21 -0800 Message-ID: References: <86h7bkhlo7.fsf@mail.linkov.net> <37047ada-fa33-88dd-5237-769611fec61b@gmail.com> <83wnkfw8ud.fsf@gnu.org> <86ilvysyq3.fsf@mail.linkov.net> <834k7ix4ij.fsf@gnu.org> <86pmq6taeb.fsf@mail.linkov.net> <83czm6unfs.fsf@gnu.org> <414be477-34d4-c777-f623-3e0e59c0dd08@gmail.com> <83o85mpaqb.fsf@gnu.org> <8e9b29cd-8700-1a60-1d91-b6995d8f433a@gmail.com> <86czm0eue5.fsf@mail.linkov.net> <8c440269-262a-ba78-6630-d3f90c2fcc19@gmail.com> <86fsqwmig7.fsf@mail.linkov.net> <1c1995a2-c033-51c8-4aa6-7458ad07c75c@gmail.com> <86mtl3629t.fsf@mail.linkov.net> <723c8965-31be-b636-beee-478fb77423ec@gmail.com> <86ee6egs8b.fsf@mail.linkov.net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------0AA3EC602B9B39855CC18D99" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="33225"; mail-complaints-to="usenet@ciao.gmane.io" Cc: "52293@debbugs.gnu.org" <52293@debbugs.gnu.org> To: Juri Linkov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Jan 01 08:14:24 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1n3Yat-0008Tx-Ft for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 01 Jan 2022 08:14:23 +0100 Original-Received: from localhost ([::1]:41562 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n3Yar-000706-IO for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 01 Jan 2022 02:14:21 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:48026) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n3YaY-0006zg-K7 for bug-gnu-emacs@gnu.org; Sat, 01 Jan 2022 02:14:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:46180) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n3YaY-0006uF-A9 for bug-gnu-emacs@gnu.org; Sat, 01 Jan 2022 02:14:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1n3YaY-0001hW-27 for bug-gnu-emacs@gnu.org; Sat, 01 Jan 2022 02:14:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 01 Jan 2022 07:14:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 52293 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 52293-submit@debbugs.gnu.org id=B52293.16410212096480 (code B ref 52293); Sat, 01 Jan 2022 07:14:02 +0000 Original-Received: (at 52293) by debbugs.gnu.org; 1 Jan 2022 07:13:29 +0000 Original-Received: from localhost ([127.0.0.1]:57726 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1n3Ya1-0001gS-FD for submit@debbugs.gnu.org; Sat, 01 Jan 2022 02:13:29 -0500 Original-Received: from mail-pf1-f179.google.com ([209.85.210.179]:41578) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1n3YZz-0001gA-PA for 52293@debbugs.gnu.org; Sat, 01 Jan 2022 02:13:28 -0500 Original-Received: by mail-pf1-f179.google.com with SMTP id m1so25182162pfk.8 for <52293@debbugs.gnu.org>; Fri, 31 Dec 2021 23:13:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:cc:references:from:message-id:date:mime-version :in-reply-to:content-language; bh=rGfH7YRXGSgd+8mebuueqj5lM4yRKJw2Utm2uujgNdw=; b=peCWsPPYsOvO85DVb1fPbs1F42aUA9ELxH0AJzH0pewV2frPbaNVSk3lCDld2LASTR tJGLemc8n4nd+/XExtrNc9hrAGahXDUKMdhyFcuuRtKDlT6sONzhS2MADNKwfXH00pdo V1ZQvqDI9TJ5U8q0xE41NFdOnO0EpEb2t5N/0zLNJfLf6g1n8JP9d/+ZUKOwMWGGMd/P cPdfF+7pyFmLmf4cYQc7akdsSYx7p6ljgEw7j+6SbsLuX7CvoMySt0AoSA6/tlu0gvDv ED+o6egtMyJ8637GojNtF71FGdTok1HIkPIL467SBrvK1U5te88dO0cUIq2GFav6x3Bd 3Kig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :mime-version:in-reply-to:content-language; bh=rGfH7YRXGSgd+8mebuueqj5lM4yRKJw2Utm2uujgNdw=; b=DzODuDCljg3fsDzWirbXoAoFf9SpJtoM469Pypa5Y4vlkLU+m76iEo1rvkRQukkULs DIU060CG9P4c9J1F7sbq07vBZoYAFLz4xdyysfWZlaXLe9aYXMOEYveUnszfb7h2MRmV WOG5T2Th0vRaLQti1l5s2wSiHbXo9POi1lFxE8mBF3lXSfbhI0OG/aIZ6WVV96YPzCX3 m7ota6R1ASjmv9XR+SNfJsIFn/dLnJrtUdu+UGPy9yW/AZVDi2+geajTdQP7iFiY1I6E vVoksRChSw9N9Zv1S55mVMtF8nTUTJq19wqj354pGt1TfTThpFgM5uXrsjMIfbAbz1qF dPKQ== X-Gm-Message-State: AOAM532JMeFWgaNcKdEJao0kJ/Yjo3uHIVfwEe1DHmTkxRjQjaqclYuC KxvWMaaX9wdewIQb1lArgqLd3m923cU= X-Google-Smtp-Source: ABdhPJyNLUH1zGzM446VPuzegwvu56pR2A4ThzD2TURHT1pIP7XonGa42wS3CfmCelu+3BndX8JdRQ== X-Received: by 2002:a65:5b4b:: with SMTP id y11mr33731696pgr.59.1641021201919; Fri, 31 Dec 2021 23:13:21 -0800 (PST) Original-Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id c13sm32745357pfv.20.2021.12.31.23.13.20 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 31 Dec 2021 23:13:21 -0800 (PST) In-Reply-To: <86ee6egs8b.fsf@mail.linkov.net> Content-Language: en-US X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:223494 Archived-At: This is a multi-part message in MIME format. --------------0AA3EC602B9B39855CC18D99 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 12/15/2021 12:57 AM, Juri Linkov wrote: > I'm not sure if de-duplication is needed for other menus. Currently > de-duplication is used only to simplify creation of context menus. > But there is no indication that someone needed this for other menus. > Otherwise, they would report duplicate separators in other menus as a bug. Ok, we can worry about that another time. I've attached an updated patch that lets context-menu-functions add items to the beginning of the keymap as they currently do, while still removing consecutive separators correctly. Since this logic is a bit tricky, it could probably use an automated test or two, but before I write some, I wanted to check that the strategy I'm using seems reasonable. It's probably easiest to explain the logic by just pointing to the patch; I added several comments describing the behavior so that reviewers (and future readers) should be able to make sense of it. --------------0AA3EC602B9B39855CC18D99 Content-Type: text/plain; charset=UTF-8; name="0001-Prevent-further-cases-of-duplicated-separators-in-co.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Prevent-further-cases-of-duplicated-separators-in-co.pa"; filename*1="tch" RnJvbSAwMzEwZjkyNmI2MmZkNzQ5MzJlMzc2NmMwM2JkN2EzOTk3NGM0NTdiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IEZyaSwgMzEgRGVjIDIwMjEgMjM6MDQ6NTcgLTA4MDAKU3ViamVjdDogW1BB VENIXSBQcmV2ZW50IGZ1cnRoZXIgY2FzZXMgb2YgZHVwbGljYXRlZCBzZXBhcmF0b3JzIGlu IGNvbnRleHQKIG1lbnVzCgpJbiBzb21lIGNhc2VzLCBjb250ZXh0IG1lbnUgaXRlbXMgYXJl IGFkZGVkIGJlZm9yZSB0aGUgb3ZlcmFsbCBwcm9tcHQKc3RyaW5nLiAgVGhpcyBjb3VsZCBj YXVzZSBtdWx0aXBsZSBjb25zZWN1dGl2ZSBzZXBhcmF0b3JzIHRvIGFwcGVhciBpZgp0aGV5 ICJzdXJyb3VuZCIgdGhlIHByb21wdCBzdHJpbmcuCgoqIGxpc3AvbW91c2UuZWwgKGNvbnRl eHQtbWVudS1tYXApOiBJbXByb3ZlIHRoZSBkZS1kdXBsaWNhdGlvbiBsb2dpYwp0byBpZ25v cmUgbm9uLW1lbnUtaXRlbXMgd2hlbiBjaGVja2luZyBmb3IgY29uc2VjdXRpdmUgc2VwYXJh dG9ycy4KLS0tCiBsaXNwL21vdXNlLmVsIHwgMzEgKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2xpc3AvbW91c2UuZWwgYi9saXNwL21vdXNlLmVsCmluZGV4 IDExZmRkM2Y2MzkuLjQxY2ZmZjhkODIgMTAwNjQ0Ci0tLSBhL2xpc3AvbW91c2UuZWwKKysr IGIvbGlzcC9tb3VzZS5lbApAQCAtMzI5LDIwICszMjksMjcgQEAgY29udGV4dC1tZW51LW1h cAogCiAgICAgOzsgUmVtb3ZlIGR1cGxpY2F0ZSBzZXBhcmF0b3JzIGFzIHdlbGwgYXMgb25l cyBhdCB0aGUgYmVnaW5uaW5nIG9yCiAgICAgOzsgZW5kIG9mIHRoZSBtZW51LgotICAgIChs ZXQgKChsIG1lbnUpIHNhdy1maXJzdC1pdGVtKQorICAgIChsZXQgKChsIG1lbnUpIChyZW1v dmUtbmV4dC1zZXBhcmF0b3IgdCkpCiAgICAgICAod2hpbGUgKGFuZCAoY29uc3AgbCkKICAg ICAgICAgICAgICAgICAgIChjb25zcCAoY2RyIGwpKSkKLSAgICAgICAgOzsgSWYgdGhlIG5l eHQgaXRlbSBpcyBhIHNlcGFyYXRvciwgcmVtb3ZlIGl0IGlmIDEpIHdlIGhhdmVuJ3QKLSAg ICAgICAgOzsgc2VlbiBhbnkgb3RoZXIgaXRlbXMgeWV0LCBvciAyKSBpdCdzIGZvbGxvd2Vk IGJ5IGVpdGhlcgotICAgICAgICA7OyBhbm90aGVyIHNlcGFyYXRvciBvciB0aGUgZW5kIG9m IHRoZSBsaXN0LgotICAgICAgICAoaWYgKGFuZCAoZXF1YWwgKGNkci1zYWZlIChjYWRyIGwp KSBtZW51LWJhci1zZXBhcmF0b3IpCi0gICAgICAgICAgICAgICAgIChvciAobm90IHNhdy1m aXJzdC1pdGVtKQotICAgICAgICAgICAgICAgICAgICAgKG51bGwgKGNhZGRyIGwpKQotICAg ICAgICAgICAgICAgICAgICAgKGVxdWFsIChjZHItc2FmZSAoY2FkZHIgbCkpIG1lbnUtYmFy LXNlcGFyYXRvcikpKQotICAgICAgICAgICAgKHNldGNkciBsIChjZGRyIGwpKQotICAgICAg ICAgIDs7IFRoZSAiZmlyc3QgaXRlbSIgaXMgYW55IGNvbnMgY2VsbDsgdGhpcyBleGNsdWRl cyB0aGUKLSAgICAgICAgICA7OyBga2V5bWFwJyBzeW1ib2wgYW5kIHRoZSBtZW51IG5hbWUu Ci0gICAgICAgICAgKHdoZW4gKGNvbnNwIChjYWRyIGwpKSAoc2V0cSBzYXctZmlyc3QtaXRl bSB0KSkKKyAgICAgICAgKGlmIChlcXVhbCAoY2RyLXNhZmUgKGNhZHIgbCkpIG1lbnUtYmFy LXNlcGFyYXRvcikKKyAgICAgICAgICAgIChwcm9nbgorICAgICAgICAgICAgICA7OyBUaGUg bmV4dCBpdGVtIGlzIGEgc2VwYXJhdG9yLiAgUmVtb3ZlIGl0IGlmIHJlcXVlc3RlZAorICAg ICAgICAgICAgICA7OyBieSByZW1vdmUtbmV4dC1zZXBhcmF0b3Igb3IgaWYgaXQncyB0aGUg bGFzdCBpdGVtIGluCisgICAgICAgICAgICAgIDs7IHRoZSBsaXN0LgorICAgICAgICAgICAg ICAoaWYgKG9yIHJlbW92ZS1uZXh0LXNlcGFyYXRvcgorICAgICAgICAgICAgICAgICAgICAg IChudWxsIChjYWRkciBsKSkpCisgICAgICAgICAgICAgICAgICAoc2V0Y2RyIGwgKGNkZHIg bCkpCisgICAgICAgICAgICAgICAgKHNldHEgbCAoY2RyIGwpKSkKKyAgICAgICAgICAgICAg OzsgV2UganVzdCBzYXcgYSBzZXBhcmF0b3IuICBSZW1vdmUgYW55IGltbWVkaWF0ZWx5Cisg ICAgICAgICAgICAgIDs7IGZvbGxvd2luZyB0aGlzLgorICAgICAgICAgICAgICAoc2V0cSBy ZW1vdmUtbmV4dC1zZXBhcmF0b3IgdCkpCisgICAgICAgICAgOzsgSWYgdGhlIG5leHQgaXRl bSBpcyBhIGNvbnMgY2VsbCwgd2UgZm91bmQgYSBub24tc2VwYXJhdG9yCisgICAgICAgICAg OzsgaXRlbS4gIERvbid0IHJlbW92ZSB0aGUgbmV4dCBzZXBhcmF0b3Igd2Ugc2VlLiAgV2UK KyAgICAgICAgICA7OyBzcGVjaWZpY2FsbHkgY2hlY2sgZm9yIGNvbnMgY2VsbHMgdG8gYXZv aWQgdHJlYXRpbmcgdGhlCisgICAgICAgICAgOzsgb3ZlcmFsbCBwcm9tcHQgc3RyaW5nIGFz IGEgbWVudSBpdGVtLgorICAgICAgICAgICh3aGVuIChjb25zcCAoY2FkciBsKSkKKyAgICAg ICAgICAgIChzZXRxIHJlbW92ZS1uZXh0LXNlcGFyYXRvciBuaWwpKQogICAgICAgICAgIChz ZXRxIGwgKGNkciBsKSkpKSkKIAogICAgICh3aGVuIChmdW5jdGlvbnAgY29udGV4dC1tZW51 LWZpbHRlci1mdW5jdGlvbikKLS0gCjIuMjUuMQoK --------------0AA3EC602B9B39855CC18D99--