From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 30 16:26:51 2020 Received: (at submit) by debbugs.gnu.org; 30 Nov 2020 21:26:51 +0000 Received: from localhost ([127.0.0.1]:56903 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kjqh8-0003TC-WC for submit@debbugs.gnu.org; Mon, 30 Nov 2020 16:26:51 -0500 Received: from lists.gnu.org ([209.51.188.17]:55196) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kjqJE-0002ro-Vv for submit@debbugs.gnu.org; Mon, 30 Nov 2020 16:02:09 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:47416) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kjqJE-00012c-OB for bug-gnu-emacs@gnu.org; Mon, 30 Nov 2020 16:02:08 -0500 Received: from mail-ot1-x331.google.com ([2607:f8b0:4864:20::331]:46837) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kjqJC-0005lr-Iw for bug-gnu-emacs@gnu.org; Mon, 30 Nov 2020 16:02:08 -0500 Received: by mail-ot1-x331.google.com with SMTP id z23so9064665oti.13 for ; Mon, 30 Nov 2020 13:02:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mremus.net; s=google; h=mime-version:from:date:message-id:subject:to; bh=NJ4glx7VlGPq2c3EpNNC51mRRos1MDNDSbaTCRnUZYg=; b=XpyGDBOGOvqJcegRdqqpEt/eFyOLMzTtGZvPwy/9Gnhgof4MMNcxIZCnmC6INis9ka S5mL3ETksCpTB0AufDLY5Ea5kPYkr/VwD0zG9jWbFxWeUrdFORKVD61qjJD4SUv0bc/p 99d+MA29EQRBfPQRrmFV6SC4vhw2jTUaVKPQvrbZAGNBpjxH+BYuDg17Da3hhO8dk85/ jHD5FQWo54u0KkIJ9J/VqOS9/J4Akwyv727r3JGt++EY/1JsLGG0/1iLDQmJys+rS/aR Hip8Z+VfgbG80Ur6ga/fC84v8RNKQ62T8usAjPWTSCAly47BcvGl6KriHxhC+moDeM04 JU6A== 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=NJ4glx7VlGPq2c3EpNNC51mRRos1MDNDSbaTCRnUZYg=; b=iPsAlUFsJQSpNX59HlgbKkt8Xd1tEnnyNkzQMi8Jp45WcuCwjWnXFic/E8Ki+wzEqX /pWpgeqKB3DribU/cGBTs2Hqg627M8imxKgclAXhwgoVeb52RXzG+Lbuci9mTGAPPaLi Z1udaEiz5DLeXJzntJ6A3pZVNVf00p98iUxuGqXGllDL+eCFUchDxmhGeulZO5KbRape nBzI47iL6Pb62+lrhH7WG03fL3dQ6FW0GO9h3O0ySu4udwkLvMYp7hYPSfdfG3NnJXiD Xlrx5zLiD2xchX1ZaqzGLCL1YeaONkY7X/ZAiV+f2toBbIbOpI3Snu6GzVljt1RfHVrV OvSg== X-Gm-Message-State: AOAM532peNORpMmNoMharlGc43AD6yqDjTB1bDv3c66T40u8A0OkfXzL yFLSKiqR1izXjM6Pawz3JkH5qHrM8IpKflSdxrWqIGZKi+bnbnDM X-Google-Smtp-Source: ABdhPJxOuL9ra6jUJF8Q/av2EtkYMjER6XT3eqbmXi3KHIIMffTFqQYhJ8JqZnXHeqfbyaIWopGBi4FjiFcYhUbga2c= X-Received: by 2002:a9d:346:: with SMTP id 64mr19076307otv.4.1606770123774; Mon, 30 Nov 2020 13:02:03 -0800 (PST) MIME-Version: 1.0 From: j@mremus.net Date: Mon, 30 Nov 2020 13:01:52 -0800 Message-ID: Subject: Add a macOS global hotkey function To: bug-gnu-emacs@gnu.org Content-Type: multipart/alternative; boundary="00000000000076afde05b559520b" Received-SPF: pass client-ip=2607:f8b0:4864:20::331; envelope-from=jbalk@mremus.net; helo=mail-ot1-x331.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, HTML_MESSAGE=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: -1.3 (-) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Mon, 30 Nov 2020 16:26:49 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) --00000000000076afde05b559520b Content-Type: text/plain; charset="UTF-8" MacOS makes it very difficult to assign global hotkeys to focus Emacs. For example, if I'm in another program, and I want to launch/focus Emacs with "Alt-SPC", it can't just be set in the system preferences; I'd need to use a 3rd-party program like skhd. Would it be possible to add a function or hook to Emacs which registers one or more global hotkeys (using addGlobalMonitorForEventsMatchingMask), and then when the hotkey is pressed, run an elisp function? For example, by creating a "ns-register-global hotkey" function, where the user could choose a keybinding (maybe "ALT-SPC"), and letting the user provide a hook function (maybe "org-capture-stuff") I intend this feature to be used for something like an Alfred replacement, as described here: https://www.mattduck.com/emacs-fuzzy-launcher.html . Even if it's rare for Emacs to implement an OS-specific feature, there is some precedent on Windows. If you look at w32-register-hot-keys, it's similar to, but different from my request. The implementation in nsterm.m should be simple, but it requires Obj-C and Emacs-specific development knowledge. Thanks! --00000000000076afde05b559520b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

MacOS makes it very difficult to assign global hotkeys to focus Emacs. Fo= r=C2=A0example, if I'm in another program, and I want to launch/focus E= macs with "Alt-SPC", it can't just be set in the system prefe= rences; I'd need to use a 3rd-party program like skhd.

Would it be possible to add a function or hook to Emacs which regi= sters one or more global hotkeys (using addGlobalMonitorForEventsMatchingMa= sk), and then when the hotkey is pressed, run an elisp function?
=
For example, by creating a "ns-register-global hotkey&q= uot; function, where the user could choose a keybinding (maybe "ALT-SP= C"), and letting the user provide a hook function (maybe "org-cap= ture-stuff")

I intend=C2=A0this feature to be= used for something like an Alfred replacement, as described here: https://www.mattduc= k.com/emacs-fuzzy-launcher.html .

Even if it&#= 39;s rare for Emacs to implement an OS-specific feature, there is some prec= edent on Windows. If you look at=C2=A0w32-= register-hot-keys, it's similar to, but different from my request.=C2= =A0

The implementation in nsterm.m should be simple, but it requires Obj-C and= Emacs-specific development knowledge.

Thanks!
--00000000000076afde05b559520b-- From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 08 15:39:56 2020 Received: (at 44973) by debbugs.gnu.org; 8 Dec 2020 20:39:56 +0000 Received: from localhost ([127.0.0.1]:59959 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kmjm8-0000Os-8J for submit@debbugs.gnu.org; Tue, 08 Dec 2020 15:39:56 -0500 Received: from quimby.gnus.org ([95.216.78.240]:56380) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kmjm6-0000Od-DK for 44973@debbugs.gnu.org; Tue, 08 Dec 2020 15:39:55 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=Y3CvQW7Zbd3LHmYqcgnutOPWM8fdeAQt31o8uGECIpA=; b=Z/ZdSb9/7UhxvTkh+OXa6uKLDF TUlVN3t7TSvnAfZ5r6Bk+GeI3Vb1r+eak8+dXhyAOvMX1bS3TQkj+d9QZoGHabG/qJjeF9Siu74HX EP66Puv/LDcTdmpMlcii10lH4ugltYzUkqvQe3gUWWSLXRizF3vHMJtyaQxzGCXG7tr4=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kmjlu-0007i2-PG; Tue, 08 Dec 2020 21:39:47 +0100 From: Lars Ingebrigtsen To: j@mremus.net Subject: Re: bug#44973: Add a macOS global hotkey function References: X-Now-Playing: Oneohtrix Point Never's _Magic Oneohtrix Point Never_: "Lost But Never Alone" Date: Tue, 08 Dec 2020 21:39:41 +0100 In-Reply-To: (j.'s message of "Mon, 30 Nov 2020 13:01:52 -0800") Message-ID: <874kkw9gmq.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.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 @@CONTACT_ADDRESS@@ for details. Content preview: j@mremus.net writes: > MacOS makes it very difficult to assign global hotkeys to focus > Emacs. For example, if I'm in another program, and I want to > launch/focus Emacs with "Alt-SPC", it can't just be set in the system [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 44973 Cc: 44973@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) j@mremus.net writes: > MacOS makes it very difficult to assign global hotkeys to focus > Emacs. For example, if I'm in another program, and I want to > launch/focus Emacs with "Alt-SPC", it can't just be set in the system > preferences; I'd need to use a 3rd-party program like skhd. > > Would it be possible to add a function or hook to Emacs which registers one or > more global hotkeys (using addGlobalMonitorForEventsMatchingMask), and then > when the hotkey is pressed, run an elisp function? [...] > Even if it's rare for Emacs to implement an OS-specific feature, there > is some precedent on Windows. If you look at w32-register-hot-keys, > it's similar to, but different from my request. Sure, I think that makes sense. Would it be possible for you to work up a patch that adds this functionality? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 20 20:17:22 2020 Received: (at 44973) by debbugs.gnu.org; 21 Dec 2020 01:17:22 +0000 Received: from localhost ([127.0.0.1]:45845 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kr9pB-0002GG-Om for submit@debbugs.gnu.org; Sun, 20 Dec 2020 20:17:22 -0500 Received: from mail-ot1-f48.google.com ([209.85.210.48]:37193) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kr9Fu-0001Pk-3S for 44973@debbugs.gnu.org; Sun, 20 Dec 2020 19:40:54 -0500 Received: by mail-ot1-f48.google.com with SMTP id o11so7448345ote.4 for <44973@debbugs.gnu.org>; Sun, 20 Dec 2020 16:40:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mremus.net; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=r5SBEhyOs0kGJ3E2ie4iSFTfRcSa1371ZPUrDrAiIhc=; b=RxR4aLl6l1Vh9iQOKrvIn6/zc000ZamJClBL9LXKg3aoW5Wyt1X0ZTQkv8jc88WBd+ Uobn3k9Ct2ROVAl/Mo0F9KUg/oARGNInhTs0DGAwlrHf5+3NgUT69E0hn4sBltqajH9Z oEMbytQtpMRePkNy4Fovk0KySlyd41oRSDucOPhrmcZPzcJV0nyG2CFjlLWH7pz2FHb0 UOE4aWGlcyu7Fq9E4mbJG4deFWnTD1qNPlAugRk3liEC1FCqbmyOZ8rrOYu5hLhuCVnO vZajwMeJdeJ+4CnmOvyelvEN7rrcht3Uitl9kPAwOzsYNvJLiueDgIVaL9T89VfXI8+F P1Tw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=r5SBEhyOs0kGJ3E2ie4iSFTfRcSa1371ZPUrDrAiIhc=; b=HxThWl6gkt4wUcMd9voZ9JoCyWOi2f66QhAxpz3Wky/zH/6zqlP+azvMcFEl43Capo izCbspyhLN7KeFpmlVElG2KbgMPlx9rNfMhxPB9uX+kcBhD81sajKORD+M5T5HXam4TF byFfHtrhFLM510YCjC9bsIh3oXo7zgvkSFLTbjC+kKNL2RPOrWLJy+t730hn+KtJYybH fc7iFgfEy+f62garoWfdFzKcQMxv079apgAiEVxooCmdLC9gy5HCviqUyHjWSqWzl2kE uS3Zyc7IyF40YswSnnm+cSfbSvFdxNJuFjrnZbjo4zNYgO7/5BRE1SO+w1hROloBoAWE PHCA== X-Gm-Message-State: AOAM530qS5viOGWfrh27uqHpG7IMSGovrirhmpp+QA9WeQvVxG9hyffP qZubYX2R6u6Gfb2huRRidv3KQb/cMM9DLqrZpJj74w== X-Google-Smtp-Source: ABdhPJxdf9qn86YYw5Y1QIh1kUDyiZjekXGinXTsFOqACksAxlNjVRobsBgJec3izgODheop95TVmyhZz34oCwzF79c= X-Received: by 2002:a9d:4b03:: with SMTP id q3mr10270954otf.88.1608511248358; Sun, 20 Dec 2020 16:40:48 -0800 (PST) MIME-Version: 1.0 References: <874kkw9gmq.fsf@gnus.org> In-Reply-To: <874kkw9gmq.fsf@gnus.org> From: j@mremus.net Date: Sun, 20 Dec 2020 16:40:37 -0800 Message-ID: Subject: Re: bug#44973: Add a macOS global hotkey function To: Lars Ingebrigtsen Content-Type: multipart/alternative; boundary="000000000000936d6105b6eeb5a5" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 44973 X-Mailman-Approved-At: Sun, 20 Dec 2020 20:17:20 -0500 Cc: 44973@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --000000000000936d6105b6eeb5a5 Content-Type: text/plain; charset="UTF-8" Hi Lars, I'm pretty close to having a patch ready, but I'm stuck in one key spot. I don't know if anyone on the list could help? After the user registers a hotkey, and when they press the hotkey, MacOS will run the code below. On the line "RUN_SOME_ELISP_FUNCTION", I would expect some elisp function to be run (e.g. 'emacs-version'). But no matter what I do, it always crashes the program. I think my first problem is not knowing how to call elisp (run_hooks, safe_call, etc?) correctly, but second, I suspect if this is crashing due to a threading issue. handler = [NSEvent addGlobalMonitorForEventsMatchingMask:(NSEventMaskKeyDown) handler:^(NSEvent *event){ if (event.modifierFlags & modifier) if([event.charactersIgnoringModifiers characterAtIndex:0] == vkey) { RUN_SOME_ELISP_FUNCTION [[NSApp mainWindow] makeKeyAndOrderFront:NSApp]; } } }]; Is there anyone who might know how to fill in this piece? Thanks On Tue, Dec 8, 2020 at 12:39 PM Lars Ingebrigtsen wrote: > j@mremus.net writes: > > > MacOS makes it very difficult to assign global hotkeys to focus > > Emacs. For example, if I'm in another program, and I want to > > launch/focus Emacs with "Alt-SPC", it can't just be set in the system > > preferences; I'd need to use a 3rd-party program like skhd. > > > > Would it be possible to add a function or hook to Emacs which registers > one or > > more global hotkeys (using addGlobalMonitorForEventsMatchingMask), and > then > > when the hotkey is pressed, run an elisp function? > > [...] > > > Even if it's rare for Emacs to implement an OS-specific feature, there > > is some precedent on Windows. If you look at w32-register-hot-keys, > > it's similar to, but different from my request. > > Sure, I think that makes sense. Would it be possible for you to work up > a patch that adds this functionality? > > -- > (domestic pets only, the antidote for overdose, milk.) > bloggy blog: http://lars.ingebrigtsen.no > --000000000000936d6105b6eeb5a5 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Lars= ,

I'm pretty close to having a patch ready, but I= 9;m stuck in one key spot. I don't know if anyone on the list could hel= p?

After the user registers a hotkey, and when the= y press the hotkey, MacOS will run the code below. On the line "RUN_SO= ME_ELISP_FUNCTION", I would expect some elisp function to be run (e.g.= 'emacs-version').=C2=A0

But no matter what = I do, it always crashes the program. I think my first problem is not knowin= g how to call elisp (run_hooks, safe_call, etc?) correctly, but second, I s= uspect if this is crashing due to a threading issue.

<= /div>
=C2=A0 =C2=A0 handler =3D [NSEven= t addGlobalMonitorForEventsMatchingMask:(NSEventMaskKeyDown) handler:^(NSEv= ent *event){
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 if (event.modifierFlags & modifier)=C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if([event.charactersIgnoring= Modifiers characterAtIndex:0] =3D=3D vkey) {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0RUN_SOME_ELISP_FUNCTION
=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 [[NSApp mainWindow] makeKeyAndOrderFront:NSApp];
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }
=C2=A0 =C2=A0 =C2=A0 =C2=A0 }
=C2=A0 =C2=A0 =C2=A0 }];

Is there anyone who might = know how to fill in this piece?

Thanks

On Tue, Dec 8, 2020 at 12:39 PM Lars= Ingebrigtsen <larsi@gnus.org> = wrote:
j@mremus.net writes:

> MacOS makes it very difficult to assign global hotkeys to focus
> Emacs. For example, if I'm in another program, and I want to
> launch/focus Emacs with "Alt-SPC", it can't just be set = in the system
> preferences; I'd need to use a 3rd-party program like skhd.
>
> Would it be possible to add a function or hook to Emacs which register= s one or
> more global hotkeys (using addGlobalMonitorForEventsMatchingMask), and= then
> when the hotkey is pressed, run an elisp function?

[...]

> Even if it's rare for Emacs to implement an OS-specific feature, t= here
> is some precedent on Windows. If you look at w32-register-hot-keys, > it's similar to, but different from my request.

Sure, I think that makes sense.=C2=A0 Would it be possible for you to work = up
a patch that adds this functionality?

--
(domestic pets only, the antidote for overdose, milk.)
=C2=A0 =C2=A0bloggy blog: http://lars.ingebrigtsen.no
--000000000000936d6105b6eeb5a5-- From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 20 23:35:12 2020 Received: (at 44973) by debbugs.gnu.org; 21 Dec 2020 04:35:12 +0000 Received: from localhost ([127.0.0.1]:45920 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krCue-0006ze-Iv for submit@debbugs.gnu.org; Sun, 20 Dec 2020 23:35:12 -0500 Received: from quimby.gnus.org ([95.216.78.240]:36812) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krCub-0006zJ-Dt for 44973@debbugs.gnu.org; Sun, 20 Dec 2020 23:35:10 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=k0Bw6OB7MHwKBlc9mfBwROvu0FGqSy/+cv2yd/S5wRA=; b=tS+Ltb9YQHW0ytnglhm99j3eV9 UiQc/oj8kac6vD8LXMn1aXUdZPITS57vjLWOuaxbKhgykSE0fz93TVCeKb0cWpKsG3Kr/fc3hXRdL kPsm0TYAmK6TkL9PtQKXwbq9NxL2IKTtoop28fg7RROMlQuRlUDooltoeSiffKvkkzxs=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1krCuR-0000zy-1p; Mon, 21 Dec 2020 05:35:02 +0100 From: Lars Ingebrigtsen To: j@mremus.net Subject: Re: bug#44973: Add a macOS global hotkey function References: <874kkw9gmq.fsf@gnus.org> Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAD1BMVEXHxciAfIBcV1sh Gx3///+wXviLAAAAAWJLR0QEj2jZUQAAAAd0SU1FB+QMFQQhCRF8vAMAAAG6SURBVDjLbZSLoYMg DEWDXQDiAiRZQMP+u72bIK32lbZWOOTLVaIYpdL/0TAYvxtsLa7jMc4dF9HRb8AtwUn77g9QSwJR xpY76LSlq876BC41gey5awLOGGTjtNHsDc5wIq6047bkrgQnxa0IEwuKGfS6gOPLiFg8iqtMpFbT lY9KG2Jv6E3prcz6M7ggirsU9EXKdgNDsrqYc2kLRHpHgIMOKtzkbnFEVUV7ZZY7cIWhN+fO7LW+ QazPDhwoqarrTHcoPh42dLzGGeEC1GKWEFvpQLteE5BNL5otOGImCVCwxmHaOztrw8MVUik4mjzZ aYFS61TJVEbc1Y1rY+1TPqXl8peu4DOP7CmjrIMbYP0BItOfFh7oCXoCtIN0ycigk+EhZOehcZrn pVPPMsOijIpkl0WPFD1k4XmyW8bAYrMVXEOHVmgC/wBMdi2XK0NR6StcuSN0WaDxtU6i8fcBesXO yhew9URMoNZoe/bqAtix3Vsi9a0rtQ/w6WkF7Wt1CDLw+USp8gI4fAsKULXlSyN6hyJMVDWeC6I+ Xyfj0gwBWABewFUb29UsidLmkEtHkAurfkvm8/75A2bej0bIpovfAAAAJXRFWHRkYXRlOmNyZWF0 ZQAyMDIwLTEyLTIxVDA0OjMzOjA5KzAwOjAwQO+oVAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMC0x Mi0yMVQwNDozMzowOSswMDowMDGyEOgAAAAASUVORK5CYII= X-Now-Playing: Steven Brown's _Music for Film & Theatre (2)_: "The Labyrinth" Date: Mon, 21 Dec 2020 05:34:57 +0100 In-Reply-To: (j.'s message of "Sun, 20 Dec 2020 16:40:37 -0800") Message-ID: <87lfdrhj4e.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.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 @@CONTACT_ADDRESS@@ for details. Content preview: j@mremus.net writes: > But no matter what I do, it always crashes the program. I think my > first problem is not knowing how to call elisp (run_hooks, safe_call, > etc?) correctly, but second, I suspect if this is crashin [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 44973 Cc: 44973@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) j@mremus.net writes: > But no matter what I do, it always crashes the program. I think my > first problem is not knowing how to call elisp (run_hooks, safe_call, > etc?) correctly, but second, I suspect if this is crashing due to a > threading issue. I am not at all familiar with the ns functions, but looking at the other .m files, it looks like you should be able to just say call0 (intern ("some-function")); or something like that? (Modulo threading stuff.) -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 21 03:12:19 2020 Received: (at 44973) by debbugs.gnu.org; 21 Dec 2020 08:12:19 +0000 Received: from localhost ([127.0.0.1]:46136 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krGIl-0000S8-Ax for submit@debbugs.gnu.org; Mon, 21 Dec 2020 03:12:19 -0500 Received: from outbound.soverin.net ([116.202.65.218]:37265) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krGIj-0000Rs-LP for 44973@debbugs.gnu.org; Mon, 21 Dec 2020 03:12:18 -0500 Received: from smtp.soverin.net (unknown [10.10.3.28]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by outbound.soverin.net (Postfix) with ESMTPS id 872F46008F; Mon, 21 Dec 2020 08:12:11 +0000 (UTC) Received: from smtp.soverin.net (smtp.soverin.net [159.69.232.142]) by soverin.net DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=idiocy.org; s=soverin; t=1608538330; bh=RiEhHs9/flO7jqOJQOLDGn2DC9Kio9tEjIfLEjzNRtw=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=TIN5djEDS1u4YWLYmNXMZ7e6lZFec5kg8GbMxwz0ucvWL7fLC2sms/1Av8MHb54EB WpHPVBplDOdrMH0osrr2JumUZiDxb+uCGfYqZ5lvagg7jbYjnMcr7SjS88qstONYHb TlUPTxMBq5sGBE03sNBT9CBfLWIkvYFN2oLOyeEgkVvzmi1uLtoAqwqJhroduId0Ta rVycF9EwGM4ffFUzASbphwOqcxYoUX9QBDMkPh29DxFNNq0lu+/caG6tMYWAwOAVqx hnYYTmq1zlBiz01kevafZai6sQxDsCZ+flHHNUbUVlhRSyun/PR2LGdNmqte9kDlKC 2NaKtXnt4OIVw== Received: by breton.holly.idiocy.org (Postfix, from userid 501) id 430F7202908E27; Mon, 21 Dec 2020 08:12:05 +0000 (GMT) Date: Mon, 21 Dec 2020 08:12:04 +0000 From: Alan Third To: j@mremus.net Subject: Re: bug#44973: Add a macOS global hotkey function Message-ID: Mail-Followup-To: Alan Third , j@mremus.net, Lars Ingebrigtsen , 44973@debbugs.gnu.org References: <874kkw9gmq.fsf@gnus.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 44973 Cc: 44973@debbugs.gnu.org, Lars Ingebrigtsen X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) On Sun, Dec 20, 2020 at 04:40:37PM -0800, j@mremus.net wrote: > Hi Lars, > > I'm pretty close to having a patch ready, but I'm stuck in one key spot. I > don't know if anyone on the list could help? > > After the user registers a hotkey, and when they press the hotkey, MacOS > will run the code below. On the line "RUN_SOME_ELISP_FUNCTION", I would > expect some elisp function to be run (e.g. 'emacs-version'). > > But no matter what I do, it always crashes the program. I think my first > problem is not knowing how to call elisp (run_hooks, safe_call, etc?) > correctly, but second, I suspect if this is crashing due to a threading > issue. > > handler = [NSEvent > addGlobalMonitorForEventsMatchingMask:(NSEventMaskKeyDown) > handler:^(NSEvent *event){ > if (event.modifierFlags & modifier) > if([event.charactersIgnoringModifiers characterAtIndex:0] == > vkey) { > RUN_SOME_ELISP_FUNCTION > [[NSApp mainWindow] makeKeyAndOrderFront:NSApp]; > } > } > }]; I think you probably want to send an event to Emacs, that way a user can bind it to anything they like. Look at, say, [EmacsApp openFile:] for how do that. One potential problem with your approach is that we don't accept code using Objective C blocks as it's incompatible with GCC. Unless that policy has changed? -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 21 11:19:22 2020 Received: (at 44973) by debbugs.gnu.org; 21 Dec 2020 16:19:22 +0000 Received: from localhost ([127.0.0.1]:48102 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krNu6-0005zn-0i for submit@debbugs.gnu.org; Mon, 21 Dec 2020 11:19:22 -0500 Received: from eggs.gnu.org ([209.51.188.92]:43324) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krNu4-0005zZ-74 for 44973@debbugs.gnu.org; Mon, 21 Dec 2020 11:19:21 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:40073) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1krNty-0005xh-8X; Mon, 21 Dec 2020 11:19:14 -0500 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:3733 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1krNtx-00082J-LB; Mon, 21 Dec 2020 11:19:14 -0500 Date: Mon, 21 Dec 2020 18:18:58 +0200 Message-Id: <83im8vrv2l.fsf@gnu.org> From: Eli Zaretskii To: Alan Third In-Reply-To: (message from Alan Third on Mon, 21 Dec 2020 08:12:04 +0000) Subject: Re: bug#44973: Add a macOS global hotkey function References: <874kkw9gmq.fsf@gnus.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 44973 Cc: 44973@debbugs.gnu.org, alan@idiocy.org, larsi@gnus.org, j@mremus.net X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Mon, 21 Dec 2020 08:12:04 +0000 > From: Alan Third > Cc: 44973@debbugs.gnu.org, Lars Ingebrigtsen > > One potential problem with your approach is that we don't accept code > using Objective C blocks as it's incompatible with GCC. Unless that > policy has changed? It hasn't changed, but does this code really need to use that feature? The last time we had a much more grave problem: the system header used for some code itself used ObjC blocks, and thus couldn't be compiled by GCC. It looks like this case is not that problematic? From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 21 11:34:59 2020 Received: (at 44973) by debbugs.gnu.org; 21 Dec 2020 16:35:00 +0000 Received: from localhost ([127.0.0.1]:48122 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krO9D-0006S8-Lj for submit@debbugs.gnu.org; Mon, 21 Dec 2020 11:34:59 -0500 Received: from outbound.soverin.net ([116.202.65.218]:56107) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1krO9A-0006Ro-St for 44973@debbugs.gnu.org; Mon, 21 Dec 2020 11:34:58 -0500 Received: from smtp.soverin.net (unknown [10.10.3.28]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by outbound.soverin.net (Postfix) with ESMTPS id 3EBFB6008F; Mon, 21 Dec 2020 16:34:50 +0000 (UTC) Received: from smtp.soverin.net (smtp.soverin.net [159.69.232.142]) by soverin.net DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=idiocy.org; s=soverin; t=1608568489; bh=2G9WqrMx0kTTTK8SBvq1834Ct7AXfKVK7d98FvjsyiA=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=dqeKxD5RS/g7m5jvgyILdkRxp+td48SM9rofY01nnOkeQy2/1RGJpSHYTanC87ivm wErRWcTJBSJ8N5Detp0BOS3cCW/U0sjh7c0RxLY69H5A7kh4Qr4mf355P4Ov/wxlFO lfSWyUQ27R21vq1t17PrecsH57moRgk5vYt0vmQWzPw0+0DxSP1/EPRREc1e7q1AdD oKA/pFu/61hTS0n447+UOFiubd71VB695Rm9saH3HrVthIOka8vJLUvGT8XpKYilK8 RfeJUwv3hQFqSGjqM21wW2Zq9WtKHshFZ119cn73ZeMn7wojCKzDr8urVkomGiH0tF qbbQQWhsynQtA== Received: by breton.holly.idiocy.org (Postfix, from userid 501) id 582732029096DF; Mon, 21 Dec 2020 16:34:45 +0000 (GMT) Date: Mon, 21 Dec 2020 16:34:45 +0000 From: Alan Third To: Eli Zaretskii Subject: Re: bug#44973: Add a macOS global hotkey function Message-ID: Mail-Followup-To: Alan Third , Eli Zaretskii , 44973@debbugs.gnu.org, larsi@gnus.org, j@mremus.net References: <874kkw9gmq.fsf@gnus.org> <83im8vrv2l.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <83im8vrv2l.fsf@gnu.org> X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 44973 Cc: 44973@debbugs.gnu.org, larsi@gnus.org, j@mremus.net X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) On Mon, Dec 21, 2020 at 06:18:58PM +0200, Eli Zaretskii wrote: > > Date: Mon, 21 Dec 2020 08:12:04 +0000 > > From: Alan Third > > Cc: 44973@debbugs.gnu.org, Lars Ingebrigtsen > > > > One potential problem with your approach is that we don't accept code > > using Objective C blocks as it's incompatible with GCC. Unless that > > policy has changed? > > It hasn't changed, but does this code really need to use that feature? > The last time we had a much more grave problem: the system header used > for some code itself used ObjC blocks, and thus couldn't be compiled > by GCC. It looks like this case is not that problematic? The class method used takes a block as an argument. I don't think there are any work-arounds. The GCC work to support blocks appears to be progressing, but slowly: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78352 -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 22 00:20:14 2020 Received: (at 44973) by debbugs.gnu.org; 22 Dec 2020 05:20:14 +0000 Received: from localhost ([127.0.0.1]:48742 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kra5l-0000ER-Qx for submit@debbugs.gnu.org; Tue, 22 Dec 2020 00:20:14 -0500 Received: from eggs.gnu.org ([209.51.188.92]:45710) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kra5k-0000E9-7t for 44973@debbugs.gnu.org; Tue, 22 Dec 2020 00:20:12 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:52396) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kra5e-0002sT-Ls; Tue, 22 Dec 2020 00:20:06 -0500 Received: from rms by fencepost.gnu.org with local (Exim 4.82) (envelope-from ) id 1kra5d-00053h-Bb; Tue, 22 Dec 2020 00:20:05 -0500 Content-Type: text/plain; charset=Utf-8 From: Richard Stallman To: Alan Third In-Reply-To: (message from Alan Third on Mon, 21 Dec 2020 16:34:45 +0000) Subject: Re: bug#44973: Add a macOS global hotkey function References: <874kkw9gmq.fsf@gnus.org> <83im8vrv2l.fsf@gnu.org> Message-Id: Date: Tue, 22 Dec 2020 00:20:05 -0500 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 44973 Cc: 44973@debbugs.gnu.org, larsi@gnus.org, alan@idiocy.org, eliz@gnu.org, j@mremus.net X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: rms@gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > The GCC work to support blocks appears to be progressing, but slowly: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78352 I am glad it is making progress. We will get there eventually. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 29 23:10:20 2020 Received: (at 44973) by debbugs.gnu.org; 30 Dec 2020 04:10:20 +0000 Received: from localhost ([127.0.0.1]:40702 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kuSoW-0006vT-2d for submit@debbugs.gnu.org; Tue, 29 Dec 2020 23:10:20 -0500 Received: from mail-oi1-f177.google.com ([209.85.167.177]:34522) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kuSoS-0006vC-Ma for 44973@debbugs.gnu.org; Tue, 29 Dec 2020 23:10:17 -0500 Received: by mail-oi1-f177.google.com with SMTP id s75so17604608oih.1 for <44973@debbugs.gnu.org>; Tue, 29 Dec 2020 20:10:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mremus.net; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=aqYaQ3e6amuqZ+9oJH3/xrJ+FOIbI4kP3gjBR6uJF70=; b=bnMhQk4Y0ZyKNbMkhI6hwt/PWdKjefnLqkAamH7QClw3Q+Zaw7f34V4x9tD7S1Tcw9 vEObswHGnXbjjHtogVOvJ8a4WfbAz+PQUhl2vezRrsTYgWknxQHfgaX4XhSb+v3iM27a hVBKObQG0f/RIQxTDldwYv01Sl61MP4SPGP+/igm5LqgAk7Ar0cUdUFseLG4tebV+h60 lvjVv1CEIdc6k81sxpfK/Tjnm0GJdsVGViItCSjyMI9UqlAPaQH8OEJK5XfaTszgUmlq bHusUqHw/p/XMoVyV1AEQuHZrM/6cl3TI78X1hMpb4IHUo7nikZstLh5H4gJWRq4EDLj tpaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=aqYaQ3e6amuqZ+9oJH3/xrJ+FOIbI4kP3gjBR6uJF70=; b=aQi0xRrsJwrKMnYIzytBK94n2N+DCgrzpRV5TcOuMvaI0MpR6sZC4HQPOFx7lWCpsC zvLXOFtkc3HtjoJGwIlIjS5UlhizDmzXKs+dv1PnuZ9WdjtbLPcPw8tpZHG1Vs8tAWdT /4R+Fcj2La5UKTqUB7RhWaBVGQmuTIjTtCUXYsk2T4/esUPJgoPCcqzIFWvrmeyRSVeZ YmrVKAyU/dMR0StzaGiwRsYTL1ZVotudnm9XqJCcL2oBnOvallksjA2pJy7ue40kWwia q3imEm97yYVFbE/FbliZ1QD5PTJWtMwszULPmNgzhfn6PuBMx1hRdMh4WRuRlqoLsvp6 3BfA== X-Gm-Message-State: AOAM531WzYITeqqPv/d3t6/0lM9Uq962P+5V+++Sq5/POiEbVYU3eSMp Zk/ETsmPNZ+QIQdnAQj/TvYipkdAtj+M01DB0aBSMQ== X-Google-Smtp-Source: ABdhPJxhdYeYlPtsb8wlUZnvMmhngprY5ffE6KrHeeFPOnkRDBhF96S0oVa1Ll6tRFKe7owar3bBobNU3lbzvvsNzRY= X-Received: by 2002:a05:6808:49a:: with SMTP id z26mr4004457oid.137.1609301410977; Tue, 29 Dec 2020 20:10:10 -0800 (PST) MIME-Version: 1.0 References: <874kkw9gmq.fsf@gnus.org> <87lfdrhj4e.fsf@gnus.org> In-Reply-To: <87lfdrhj4e.fsf@gnus.org> From: j@mremus.net Date: Tue, 29 Dec 2020 20:10:00 -0800 Message-ID: Subject: Re: bug#44973: Add a macOS global hotkey function To: Lars Ingebrigtsen Content-Type: multipart/mixed; boundary="000000000000f044b905b7a6aec4" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 44973 Cc: 44973@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --000000000000f044b905b7a6aec4 Content-Type: multipart/alternative; boundary="000000000000f044b805b7a6aec2" --000000000000f044b805b7a6aec2 Content-Type: text/plain; charset="UTF-8" Hi Lars, Here is the patch to bind a global hotkey in mac. As long as Emacs is set as "trusted" in macOS preferences, the user can bind a two-key hotkey of the form [modifier-key] or a single-key modifier [function key], for example (mac-bind-global-hotkey [f1] 'tetris). Binding a three-key combo is left to a future patch. The code is copied from w32-register-hot-key as much as possible. The routine intentionally does not focus the window after the hotkey is hit; the user must call a function like (x-focus-frame nil) to focus the frame. I also wanted to mention that after discovering x-focus-frame, and testing my patch and shkd more, I realized that my patch is in fact very similar to shkd in functionality. The main differences are that my patch allows hotkeys to be declared directly in emacs (which I like), and that this patch acts directly on an open window (e.g. making it easier to make a hotkey to yank into an already-open buffer). On the other hand skhd would call emacsclient, which interacts with the server, even if no frame is open, offering its own advantages. Anyways, I'll leave this patch for your consideration as to whether it's the right thing to include in emacs! P.S. I looked into what other code in emacs might be using blocks. I believe nsxwidget.m also has a block in nsxwidget_webkit_execute_script. I'm guessing it's working in our cases because we're ultimately building with the Xcode C compiler. Thanks On Sun, Dec 20, 2020 at 8:35 PM Lars Ingebrigtsen wrote: > j@mremus.net writes: > > > But no matter what I do, it always crashes the program. I think my > > first problem is not knowing how to call elisp (run_hooks, safe_call, > > etc?) correctly, but second, I suspect if this is crashing due to a > > threading issue. > > I am not at all familiar with the ns functions, but looking at the other > .m files, it looks like you should be able to just say > > call0 (intern ("some-function")); > > or something like that? (Modulo threading stuff.) > > -- > (domestic pets only, the antidote for overdose, milk.) > bloggy blog: http://lars.ingebrigtsen.no > --000000000000f044b805b7a6aec2 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Lars,

He= re is the patch to bind a global hotkey in mac. As long as Emacs is set as<= /div>
"trusted" in macOS preferences, the user can bind a two= -key hotkey of the
form [modifier-key] or a single-key modifier [= function key], for example
(mac-bind-global-hotkey [f1] 'tetr= is). Binding a three-key
combo is left to a future patch.=C2=A0

The code is copied from w32-register-hot-key as muc= h as possible.

The routine intentionally does not = focus the window after the hotkey is hit; the
user must call a fu= nction like (x-focus-frame nil) to focus the frame.

I also wanted to mention that after discovering x-focus-frame, and testin= g my
patch and shkd more, I realized that my patch is in fact ver= y similar to shkd in
functionality. The main differences are that= my patch allows hotkeys to be
declared directly in emacs (which = I like), and that this patch acts directly on
an open window (e.g= . making it easier to make a hotkey to yank into an
already-open = buffer). On the other hand skhd would call emacsclient, which
int= eracts with the server, even if no frame is open, offering its own
advantages.

Anyways, I'll leave this patch f= or your consideration as to whether it's the right
thing to i= nclude in emacs!

P.S. I looked into what other cod= e in emacs might be using blocks. I believe
nsxwidget.m also has = a block in nsxwidget_webkit_execute_script. I'm guessing
it&#= 39;s working in our cases because we're ultimately building with the Xc= ode C
compiler.

Thanks
=
On Sun= , Dec 20, 2020 at 8:35 PM Lars Ingebrigtsen <larsi@gnus.org> wrote:
j@mremus.net writes:

> But no matter what I do, it always crashes the program. I think my
> first problem is not knowing how to call elisp (run_hooks, safe_call,<= br> > etc?) correctly, but second, I suspect if this is crashing due to a > threading issue.

I am not at all familiar with the ns functions, but looking at the other .m files, it looks like you should be able to just say

=C2=A0 call0 (intern ("some-function"));

or something like that?=C2=A0 (Modulo threading stuff.)

--
(domestic pets only, the antidote for overdose, milk.)
=C2=A0 =C2=A0bloggy blog: http://lars.ingebrigtsen.no
--000000000000f044b805b7a6aec2-- --000000000000f044b905b7a6aec4 Content-Type: application/octet-stream; name="mac_bind_global_hotkey.diff" Content-Disposition: attachment; filename="mac_bind_global_hotkey.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kjawacx60 ZGlmZiAtLWdpdCBhL2xpc3AvbG9hZHVwLmVsIGIvbGlzcC9sb2FkdXAuZWwKaW5kZXggNTY4Yjlm ZTQwZC4uZjliZTBmMzY0NSAxMDA2NDQKLS0tIGEvbGlzcC9sb2FkdXAuZWwKKysrIGIvbGlzcC9s b2FkdXAuZWwKQEAgLTMzNSw2ICszMzUsNyBAQAogICAgICAgKHdoZW4gKGZlYXR1cmVwICdjaGFy cHJvcCkKICAgICAgICAgKGxvYWQgImludGVybmF0aW9uYWwvbXVsZS11dGlsIikKICAgICAgICAg KGxvYWQgImludGVybmF0aW9uYWwvdWNzLW5vcm1hbGl6ZSIpCisgICAgICAgIChsb2FkICJucy1m bnMiKQogICAgICAgICAobG9hZCAidGVybS9ucy13aW4iKSkpKQogKGlmIChmYm91bmRwICd4LWNy ZWF0ZS1mcmFtZSkKICAgICA7OyBEbyBpdCBhZnRlciBsb2FkaW5nIHRlcm0vZm9vLXdpbi5lbCBz aW5jZSB0aGUgdmFsdWUgb2YgdGhlCmRpZmYgLS1naXQgYS9saXNwL25zLWZucy5lbCBiL2xpc3Av bnMtZm5zLmVsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjU0YWVmYzhj YjAKLS0tIC9kZXYvbnVsbAorKysgYi9saXNwL25zLWZucy5lbApAQCAtMCwwICsxLDQwIEBACis7 OzsgbnMtZm5zLmVsIC0tLSBMaXNwIHJvdXRpbmVzIGZvciBOZVhUL09wZW4vR05Vc3RlcC9tYWNP UyB3aW5kb3cgc3lzdGVtICAtKi0gbGV4aWNhbC1iaW5kaW5nOiB0OyAtKi0KKworOzsgQ29weXJp Z2h0IChDKSAxOTkzLTE5OTQsIDIwMDUtMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKworOzsgS2V5d29yZHM6IGludGVybmFsCis7OyBQYWNrYWdlOiBlbWFjcworCis7OyBUaGlz IGZpbGUgaXMgcGFydCBvZiBHTlUgRW1hY3MuCisKKzs7IEdOVSBFbWFjcyBpcyBmcmVlIHNvZnR3 YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cis7OyBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQorOzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0 aGUgTGljZW5zZSwgb3IKKzs7IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisK Kzs7IEdOVSBFbWFjcyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAorOzsgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKKzs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKzs7IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisKKzs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCis7OyBhbG9uZyB3aXRoIEdOVSBFbWFj cy4gIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKzs7Cis7 OzsgQ29tbWVudGFyeToKKworCis7OzsgQ29kZToKKyhkZWZncm91cCBucyBuaWwKKyAgIkdOVXN0 ZXAvbWFjT1Mgc3BlY2lmaWMgZmVhdHVyZXMuIgorICA6Z3JvdXAgJ2Vudmlyb25tZW50KQorCiso ZGVmdW4gbWFjLWhhbmRsZS1nbG9iYWwtaG90a2V5IChldmVudCkKKyAgIkhhbmRsZXMgZ2xvYmFs IGhvdGtleSBwcmVzc2VzLCBydW5uaW5nIEVWRU5ULgorTm90IGludGVuZGVkIHRvIGJlIGNhbGxl ZCBkaXJlY3RseSIKKyAgKGludGVyYWN0aXZlICJlIikKKworICAoYXBwbHkgKGNkciBldmVudCkp KQorCisocHJvdmlkZSAnbnMtZm5zKQorOzs7IG5zLWZucy5lbCBlbmRzIGhlcmUKZGlmZiAtLWdp dCBhL3NyYy9rZXlib2FyZC5jIGIvc3JjL2tleWJvYXJkLmMKaW5kZXggMmUwMTQzMzc5YS4uNTlh MTdkNGU0OCAxMDA2NDQKLS0tIGEvc3JjL2tleWJvYXJkLmMKKysrIGIvc3JjL2tleWJvYXJkLmMK QEAgLTYwMTAsNiArNjAxMCwxMSBAQCBtYWtlX2xpc3B5X2V2ZW50IChzdHJ1Y3QgaW5wdXRfZXZl bnQgKmV2ZW50KQogCXJldHVybiBsaXN0MiAocmVzLCBsaXN0MiAoZXZlbnQtPmZyYW1lX29yX3dp bmRvdywgbG9jYXRpb24pKTsKICAgICAgIH0KIAorI2lmZGVmIE5TX0lNUExfQ09DT0EKKyAgICAg IGNhc2UgR0xPQkFMX0hPVEtFWV9FVkVOVDoKKyAgICAgICAgICByZXR1cm4gbGlzdDIgKFFtYWNf Z2xvYmFsX2hvdGtleSwgZXZlbnQtPmFyZyk7CisjZW5kaWYKKwogICAgIGNhc2UgVVNFUl9TSUdO QUxfRVZFTlQ6CiAgICAgICAvKiBBIHVzZXIgc2lnbmFsLiAgKi8KICAgICAgIHsKQEAgLTExNzU5 LDYgKzExNzY0LDEwIEBAIHN5bXNfb2Zfa2V5Ym9hcmQgKHZvaWQpCiAgIERFRlNZTSAoUWNvbW1h bmRfZXhlY3V0ZSwgImNvbW1hbmQtZXhlY3V0ZSIpOwogICBERUZTWU0gKFFpbnRlcm5hbF9lY2hv X2tleXN0cm9rZXNfcHJlZml4LCAiaW50ZXJuYWwtZWNoby1rZXlzdHJva2VzLXByZWZpeCIpOwog CisjaWZkZWYgTlNfSU1QTF9DT0NPQQorICBERUZTWU0gKFFtYWNfZ2xvYmFsX2hvdGtleSwgIm1h Yy1nbG9iYWwtaG90a2V5Iik7CisjZW5kaWYKKwogICBhY2NlbnRfa2V5X3N5bXMgPSBRbmlsOwog ICBzdGF0aWNwcm8gKCZhY2NlbnRfa2V5X3N5bXMpOwogCkBAIC0xMjQ1OSw2ICsxMjQ2OCwxMSBA QCBrZXlzX29mX2tleWJvYXJkICh2b2lkKQogCiAgIGluaXRpYWxfZGVmaW5lX2xpc3B5X2tleSAo VnNwZWNpYWxfZXZlbnRfbWFwLCAiZGVsZXRlLWZyYW1lIiwKIAkJCSAgICAiaGFuZGxlLWRlbGV0 ZS1mcmFtZSIpOworCisjaWZkZWYgTlNfSU1QTF9DT0NPQQorICBpbml0aWFsX2RlZmluZV9saXNw eV9rZXkgKFZzcGVjaWFsX2V2ZW50X21hcCwgIm1hYy1nbG9iYWwtaG90a2V5IiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAibWFjLWhhbmRsZS1nbG9iYWwtaG90a2V5Iik7CisjZW5kaWYK ICNpZmRlZiBIQVZFX05UR1VJCiAgIGluaXRpYWxfZGVmaW5lX2xpc3B5X2tleSAoVnNwZWNpYWxf ZXZlbnRfbWFwLCAiZW5kLXNlc3Npb24iLAogCQkJICAgICJraWxsLWVtYWNzIik7CmRpZmYgLS1n aXQgYS9zcmMvbnNmbnMubSBiL3NyYy9uc2Zucy5tCmluZGV4IGM3OTU2NDk3YzQuLjdhZWI4NGU4 ODAgMTAwNjQ0Ci0tLSBhL3NyYy9uc2Zucy5tCisrKyBiL3NyYy9uc2Zucy5tCkBAIC02Nyw2ICs2 NywxNjkgQEAgVXBkYXRlZCBieSBDaHJpc3RpYW4gTGltcGFjaCAoY2hyaXNAbmljZS5jaCkKIAog ICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0gKi8KIAorI2lmZGVmIE5TX0lNUExfQ09DT0EKK2NvbnN0IGNo YXIgKmNvbnN0IGxpc3B5X3RvX21hY19mdW5jdGlvbl9rZXlzW10gPQorICB7CisgICAgInVwIiwg ImRvd24iLCAibGVmdCIsICJyaWdodCIsICAgICAgICAgIC8qIE5TVXBBcnJvd2Z1bmN0aW9uS2V5 ICAgIDB4RjcwMCAqLworICAgICJmMSIsICJmMiIsICJmMyIsICJmNCIsICJmNSIsICAgICAgICAg ICAvKiBOU0YxRnVuY3Rpb25LZXkgICAgICAgICAweEY3MDQgKi8KKyAgICAiZjYiLCAiZjciLCAi ZjgiLCAiZjkiLCAiZjEwIiwKKyAgICAiZjExIiwgImYxMiIsICJmMTMiLCAiZjE0IiwgImYxNSIs CisgICAgImYxNiIsICJmMTciLCAiZjE4IiwgImYxOSIsICJmMjAiLAorICAgICJmMjEiLCAiZjIy IiwgImYyMyIsICJmMjQiLCAiZjI1IiwKKyAgICAiZjI2IiwgImYyNyIsICJmMjgiLCAiZjI5Iiwg ImYzMCIsCisgICAgImYzMSIsICJmMzIiLCAiZjMzIiwgImYzNCIsICJmMzUiLCAgICAgIC8qIE5T RjM1RnVuY3Rpb25LZXkgICAgICAgIDB4RjcyNiAqLworICAgICJpbnNlcnQiLCAiZGVsZXRlIiwg ImhvbWUiLCAgICAgICAgICAgICAvKiBOU0luc2VydGZ1bmN0aW9uS2V5ICAgICAweEY3MjcgKi8K KyAgICAiYmVnaW4iLCAiZW5kIiwgInByaW9yIiwgIm5leHQiLAorICAgICJwcmludCIsICJzY3Jv bGwiLCAicGF1c2UiLAorICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiBOU1N5c1JlcUZ1bmN0aW9uS2V5ICAgICAweEY3MzEgKi8KKyAgICAiYnJlYWsiLCAicmVz ZXQiLAorICAgIDAsCisgICAgIm1lbnUiLAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs IDAsIDAsCisgICAgInNlbGVjdCIsICJleGVjdXRlIiwgInVuZG8iLCAicmVkbyIsCisgICAgImZp bmQiLCAiaGVscCIsICJtb2RlLWNoYW5nZSIgICAgICAgICAgIC8qIE5TTW9kZVN3aXRjaEZ1bmN0 aW9uS2V5IDB4Rjc0NyAqLworICB9OworCisvKiBMb29rdXAgdmlydHVhbCBrZXljb2RlIGZyb20g c3RyaW5nIHJlcHJlc2VudGluZyB0aGUgbmFtZSBvZiBhCisgICBub24tYXNjaWkga2V5c3Ryb2tl IGludG8gdGhlIGNvcnJlc3BvbmRpbmcgdmlydHVhbCBrZXksIHVzaW5nCisgICBsaXNweV9mdW5j dGlvbl9rZXlzLiAgKi8KKy8qIEFkYXB0ZWQgZnJvbSB3MzJmbnMuYyAqLworc3RhdGljIHVuc2ln bmVkCitsb29rdXBfdmtfY29kZSAoY2hhciAqa2V5KQoreworICB1bnNpZ25lZCBpOworCisgIGZv ciAoaSA9IDA7IGkgPCA3MTsgaSsrKQorICAgIGlmIChsaXNweV90b19tYWNfZnVuY3Rpb25fa2V5 c1tpXQorCSYmIHN0cmNtcCAobGlzcHlfdG9fbWFjX2Z1bmN0aW9uX2tleXNbaV0sIGtleSkgPT0g MCkKKyAgICAgIHJldHVybiAoaSB8IDB4RjcwMCk7CisKKyAgLyogQWxwaGFudW1lcmljcyBtYXAg dG8gdGhlbXNlbHZlcy4gICovCisgIGlmIChrZXlbMV0gPT0gMCkKKyAgICB7CisgICAgICBpZiAo KGtleVswXSA+PSAnQScgJiYga2V5WzBdIDw9ICdaJykKKyAgICAgICAgICB8fCAoa2V5WzBdID49 ICcwJyAmJiBrZXlbMF0gPD0gJzknKSkKKyAgICAgICAgcmV0dXJuIGtleVswXTsKKyAgICAgIGlm IChrZXlbMF0gPj0gJ2EnICYmIGtleVswXSA8PSAneicpCisgICAgICAgIHJldHVybiB0b3VwcGVy KGtleVswXSk7CisgICAgfQorCisgIC8vIHRhYiwgZW50ZXIsIGFuZCBiYWNrc3BhY2UgYXJlIHNw ZWNpYWwgY2FzZXMKKyAgaWYgKHN0cmNtcCAoa2V5LCAidGFiIikgPT0gMCkKKyAgICByZXR1cm4g OTsKKyAgaWYgKHN0cmNtcCAoa2V5LCAiZW50ZXIiKSA9PSAwKQorICAgIHJldHVybiAxMzsKKyAg IGlmIChzdHJjbXAgKGtleSwgImVzY2FwZSIpID09IDApCisgICAgcmV0dXJuIDI3OworICBpZiAo c3RyY21wIChrZXksICJiYWNrc3BhY2UiKSA9PSAwKQorICAgIHJldHVybiAxMjc7CisKKyAgcmV0 dXJuIC0xOworfQorCitzdGF0aWMgTGlzcF9PYmplY3QKK21hY19wYXJzZV9hbmRfYWRkX2hvdGtl eSAoTGlzcF9PYmplY3Qga2V5LCBMaXNwX09iamVjdCBsaXNwZm4sIGludCBob29rKQoreworICAv KiBDb3BpZWQgZnJvbSBGZGVmaW5lX2tleSBhbmQgc3RvcmVfaW5fa2V5bWFwLiAgKi8KKyAgcmVn aXN0ZXIgTGlzcF9PYmplY3QgYzsKKyAgdW5zaWduZWQgdmtfY29kZSA9IDA7CisgIGludCBsaXNw X21vZGlmaWVycyA9IDA7CisgIE5TRXZlbnRNb2RpZmllckZsYWdzIG1hY19tb2RpZmllcnMgPSAw OworICBMaXNwX09iamVjdCByZXMgPSBRbmlsOworICBjaGFyKiB2a25hbWU7CisKKyAgQ0hFQ0tf VkVDVE9SIChrZXkpOworCisgIGlmIChBU0laRSAoa2V5KSAhPSAxKQorICAgIHJldHVybiBRbmls OworCisgIGMgPSBBUkVGIChrZXksIDApOworCisgIGlmIChDT05TUCAoYykgJiYgbHVjaWRfZXZl bnRfdHlwZV9saXN0X3AgKGMpKQorICAgIGMgPSBGZXZlbnRfY29udmVydF9saXN0IChjKTsKKwor ICBpZiAoISBGSVhOVU1QIChjKSAmJiAhIFNZTUJPTFAgKGMpKQorICAgIGVycm9yICgiS2V5IGRl ZmluaXRpb24gaXMgaW52YWxpZCIpOworCisgIGlmICghIEZVTkNUSU9OUChsaXNwZm4pKQorICAg IGVycm9yICgiSE9PSyBhcmd1bWVudCBpcyBub3QgYSBmdW5jdGlvbiIpOworCisgIC8qIFdvcmsg b3V0IHRoZSBiYXNlIGtleSBhbmQgdGhlIG1vZGlmaWVycy4gICovCisgIGlmIChTWU1CT0xQIChj KSkKKyAgICB7CisKKyAgICAgIGMgPSBwYXJzZV9tb2RpZmllcnMgKGMpOworICAgICAgbGlzcF9t b2RpZmllcnMgPSBYRklYTlVNIChGY2FyIChGY2RyIChjKSkpOworICAgICAgYyA9IEZjYXIgKGMp OworICAgICAgaWYgKCFTWU1CT0xQIChjKSkKKwllbWFjc19hYm9ydCAoKTsKKworICAgICAgdmtu YW1lID0gU1NEQVRBIChTWU1CT0xfTkFNRSAoYykpOworICAgICAgaWYgKHZrbmFtZVswXSA9PSAw KQorICAgICAgICBlcnJvcigiS2V5IGRlZmluaXRpb24gaXMgaW52YWxpZCIpOworICAgICAgZWxz ZQorICAgICAgICB2a19jb2RlID0gbG9va3VwX3ZrX2NvZGUgKHZrbmFtZSk7CisgICAgfQorICBl bHNlIGlmIChGSVhOVU1QIChjKSkKKyAgICB7CisgICAgICBsaXNwX21vZGlmaWVycyA9IFhGSVhO VU0gKGMpICYgfkNIQVJBQ1RFUkJJVFM7CisgICAgICAvKiBNYW55IGFzY2lpIGNoYXJhY3RlcnMg YXJlIHRoZWlyIG93biB2aXJ0dWFsIGtleSBjb2RlLiAgKi8KKyAgICAgIHZrX2NvZGUgPSBYRklY TlVNIChjKSAmIENIQVJBQ1RFUkJJVFM7CisgICAgfQorCisgIGlmICh2a19jb2RlIDwgMCB8fCB2 a19jb2RlID4gMHhGNzQ3KQorICAgIHJldHVybiBRbmlsOworICBlbHNlIGlmICgodmtfY29kZSA+ PSAweEY3MDApICYmICh2a19jb2RlIDw9IDB4Rjc0NykpCisgICAgbWFjX21vZGlmaWVycyA9IG1h Y19tb2RpZmllcnMgfCBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247CisKKyAgLyogQmluZCBr ZXkgY29tYmluYXRpb25zIGJhc2VkIG9uIG1vZGlmaWVyIG1hcHBpbmdzLiAgKi8KKyAgaWYgKCgo bGlzcF9tb2RpZmllcnMgJiBoeXBlcl9tb2RpZmllcikKKyAgICAgICAmJiBFUSAobnNfY29tbWFu ZF9tb2RpZmllciwgUWh5cGVyKSkKKyAgICAgIHx8ICgobGlzcF9tb2RpZmllcnMgJiBzdXBlcl9t b2RpZmllcikKKyAgICAgICAgICAmJiBFUSAobnNfY29tbWFuZF9tb2RpZmllciwgUXN1cGVyKSkK KyAgICAgIHx8ICgobGlzcF9tb2RpZmllcnMgJiBtZXRhX21vZGlmaWVyKQorICAgICAgICAgICYm IEVRIChuc19jb21tYW5kX21vZGlmaWVyLCBRbWV0YSkpCisgICAgICB8fCAoKGxpc3BfbW9kaWZp ZXJzICYgY3RybF9tb2RpZmllcikKKyAgICAgICAgICAmJiBFUSAobnNfY29tbWFuZF9tb2RpZmll ciwgUWNvbnRyb2wpKQorICAgICAgKQorICAgIHsKKyAgICAgIG1hY19tb2RpZmllcnMgPSBtYWNf bW9kaWZpZXJzIHwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQ7CisgICAgfQorCisgIGlmICgo KGxpc3BfbW9kaWZpZXJzICYgaHlwZXJfbW9kaWZpZXIpCisgICAgICAgJiYgRVEgKG5zX2FsdGVy bmF0ZV9tb2RpZmllciwgUWh5cGVyKSkKKyAgICAgIHx8ICgobGlzcF9tb2RpZmllcnMgJiBzdXBl cl9tb2RpZmllcikKKyAgICAgICAgICAmJiBFUSAobnNfYWx0ZXJuYXRlX21vZGlmaWVyLCBRc3Vw ZXIpKQorICAgICAgfHwgKChsaXNwX21vZGlmaWVycyAmIG1ldGFfbW9kaWZpZXIpCisgICAgICAg ICAgJiYgRVEgKG5zX2FsdGVybmF0ZV9tb2RpZmllciwgUW1ldGEpKQorICAgICAgfHwgKChsaXNw X21vZGlmaWVycyAmIGN0cmxfbW9kaWZpZXIpCisgICAgICAgICAgJiYgRVEgKG5zX2FsdGVybmF0 ZV9tb2RpZmllciwgUWNvbnRyb2wpKQorICAgICAgKQorICAgIHsKKyAgICAgIG1hY19tb2RpZmll cnMgPSBtYWNfbW9kaWZpZXJzIHwgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKKyAgICB9CisK KyAgaWYgKCgobGlzcF9tb2RpZmllcnMgJiBoeXBlcl9tb2RpZmllcikKKyAgICAgICAmJiBFUSAo bnNfY29udHJvbF9tb2RpZmllciwgUWh5cGVyKSkKKyAgICAgIHx8ICgobGlzcF9tb2RpZmllcnMg JiBzdXBlcl9tb2RpZmllcikKKyAgICAgICAgICAmJiBFUSAobnNfY29udHJvbF9tb2RpZmllciwg UXN1cGVyKSkKKyAgICAgIHx8ICgobGlzcF9tb2RpZmllcnMgJiBtZXRhX21vZGlmaWVyKQorICAg ICAgICAgICYmIEVRIChuc19jb250cm9sX21vZGlmaWVyLCBRbWV0YSkpCisgICAgICB8fCAoKGxp c3BfbW9kaWZpZXJzICYgY3RybF9tb2RpZmllcikKKyAgICAgICAgICAmJiBFUSAobnNfY29udHJv bF9tb2RpZmllciwgUWNvbnRyb2wpKQorICAgICAgKQorICAgIHsKKyAgICAgIG1hY19tb2RpZmll cnMgPSBtYWNfbW9kaWZpZXJzIHwgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2w7CisgICAgfQor CisgIC8vIEJpbmQgZnVuY3Rpb24ga2V5CisgIGlmICgobWFjX21vZGlmaWVycyAmIE5TRXZlbnRN b2RpZmllckZsYWdEZXZpY2VJbmRlcGVuZGVudEZsYWdzTWFzaykgPiAwKQorICAgIG1hY19iaW5k X2tleShtYWNfbW9kaWZpZXJzLCB2a19jb2RlLCBsaXNwZm4pOworCisgIHJldHVybiBrZXk7Cit9 CisjZW5kaWYKKwogLyogTGV0IHRoZSB1c2VyIHNwZWNpZnkgYSBOZXh0c3RlcCBkaXNwbGF5IHdp dGggYSBMaXNwIG9iamVjdC4KICAgIE9CSkVDVCBtYXkgYmUgbmlsLCBhIGZyYW1lIG9yIGEgdGVy bWluYWwgb2JqZWN0LgogICAgbmlsIHN0YW5kcyBmb3IgdGhlIHNlbGVjdGVkIGZyYW1lLS1vciwg aWYgdGhhdCBpcyBub3QgYSBOZXh0c3RlcCBmcmFtZSwKQEAgLTI5ODQsNiArMzE0Nyw1NiBAQCBU aGUgcG9zaXRpb24gaXMgcmV0dXJuZWQgYXMgYSBjb25zIGNlbGwgKFggLiBZKSBvZiB0aGUKICAg cmV0dXJuIFFuaWw7CiB9CiAKKyNpZmRlZiBOU19JTVBMX0NPQ09BCitzdGF0aWMgTGlzcF9PYmpl Y3QgbWFjX3JlZ2lzdGVyZWRfaG90a2V5czsKKworREVGVU4gKCJtYWMtYmluZC1nbG9iYWwtaG90 a2V5IiwKKyAgICAgICBGbWFjX2JpbmRfZ2xvYmFsX2hvdGtleSwKKyAgICAgICBTbWFjX2JpbmRf Z2xvYmFsX2hvdGtleSwgMiwgMiwgMCwKKyAgICAgICBkb2M6IC8qIEJpbmQgS0VZIGNvbWJpbmF0 aW9uIGFzIGEgZ2xvYmFsIGhvdGtleSwgYW5kIHJ1biBIT09LIHVwb24KK2ludm9rYXRpb24uIFRo aXMgZnVuY3Rpb24gYXNzaWducyBhIGhvdGtleSB0aGF0IHdpbGwgcnVuIGFuIGVsaXNwIGZ1bmN0 aW9uCitmcm9tIGFueXdoZXJlIGluIE1hY09TIG91dHNpZGUgRW1hY3MuICBUaGUgcmV0dXJuIHZh bHVlIGlzIHQgaWYgcmVnaXN0ZXJpbmcKK3RoZSBob3RrZXkgd2FzIHN1Y2Nlc3NmdWwsIG90aGVy d2lzZSBuaWwuICAqLykKKyAoTGlzcF9PYmplY3Qga2V5LCBMaXNwX09iamVjdCBob29rKQorewor ICBpZCBoYW5kbGVyOworCisgIGtleSA9IG1hY19wYXJzZV9hbmRfYWRkX2hvdGtleSAoa2V5LCBo b29rLCAxKTsKKworICBpZiAoIU5JTFAgKGtleSkgJiYgTklMUCAoRm1lbXEgKEZjb25zKGtleSxo b29rKSwgbWFjX3JlZ2lzdGVyZWRfaG90a2V5cykpKQorICAgIHsKKyAgICAgIExpc3BfT2JqZWN0 IGl0ZW0gPSBGbWVtcSAoUW5pbCwgbWFjX3JlZ2lzdGVyZWRfaG90a2V5cyk7CisKKyAgICAgIGlm IChOSUxQIChpdGVtKSkKKyAgICAgICAgbWFjX3JlZ2lzdGVyZWRfaG90a2V5cyA9IEZjb25zIChG Y29ucyhrZXksaG9vayksIG1hY19yZWdpc3RlcmVkX2hvdGtleXMpOworICAgICAgZWxzZQorICAg ICAgICBYU0VUQ0FSIChpdGVtLCBGY29ucyhrZXksaG9vaykpOworICAgIH0KKworICByZXR1cm4g a2V5OworfQorCitERUZVTiAoIm1hYy1zaG93LWJvdW5kLWhvdGtleXMiLCBGbWFjX3Nob3dfYm91 bmRfaG90a2V5cywKKyAgICAgICBTbWFjX3Nob3dfYm91bmRfaG90a2V5cywgMCwgMCwgMCwKKyAg ICAgICBkb2M6IC8qIFJldHVybiBsaXN0IG9mIHJlZ2lzdGVyZWQgaG90LWtleSBJRHMuICAqLykK KyAgKHZvaWQpCit7CisgIHJldHVybiBtYWNfcmVnaXN0ZXJlZF9ob3RrZXlzOworfQorCitERUZV TiAoIm1hYy1jbGVhci1ob3RrZXlzIiwgRm1hY19jbGVhcl9ob3RrZXlzLAorICAgICAgIFNtYWNf Y2xlYXJfaG90a2V5cywgMCwgMCwgMCwKKyAgICAgICBkb2M6IC8qIFVuYmluZCBhbGwgZ2xvYmFs IGhvdGtleXMgKi8pCisgICh2b2lkKQoreworICBtYWNfcmVnaXN0ZXJlZF9ob3RrZXlzID0gUW5p bDsKKworICBtYWNfY2xlYXJfaG90a2V5cygpOworCisgIHJldHVybiBRdDsKK30KKyNlbmRpZgor CiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogCiAgICAgQ2xhc3MgaW1wbGVtZW50YXRpb25zCkBAIC0z MTM2LDYgKzMzNDksMTEgQEAgLSAoTGlzcF9PYmplY3QpbGlzcFN0cmluZwogICBkZWZzdWJyICgm U25zX3NldF9tb3VzZV9hYnNvbHV0ZV9waXhlbF9wb3NpdGlvbik7CiAgIGRlZnN1YnIgKCZTbnNf bW91c2VfYWJzb2x1dGVfcGl4ZWxfcG9zaXRpb24pOwogICBkZWZzdWJyICgmU25zX3Nob3dfY2hh cmFjdGVyX3BhbGV0dGUpOworI2lmZGVmIE5TX0lNUExfQ09DT0EKKyAgZGVmc3ViciAoJlNtYWNf YmluZF9nbG9iYWxfaG90a2V5KTsKKyAgZGVmc3ViciAoJlNtYWNfc2hvd19ib3VuZF9ob3RrZXlz KTsKKyAgZGVmc3ViciAoJlNtYWNfY2xlYXJfaG90a2V5cyk7CisjZW5kaWYKICAgZGVmc3ViciAo JlN4X2Rpc3BsYXlfbW1fd2lkdGgpOwogICBkZWZzdWJyICgmU3hfZGlzcGxheV9tbV9oZWlnaHQp OwogICBkZWZzdWJyICgmU3hfZGlzcGxheV9zY3JlZW5zKTsKQEAgLTMxNjAsNiArMzM3OCwxMCBA QCAtIChMaXNwX09iamVjdClsaXNwU3RyaW5nCiAgIGRlZnN1YnIgKCZTeF9zaG93X3RpcCk7CiAg IGRlZnN1YnIgKCZTeF9oaWRlX3RpcCk7CiAKKyNpZmRlZiBOU19JTVBMX0NPQ09BCisgIHN0YXRp Y3BybyAoJm1hY19yZWdpc3RlcmVkX2hvdGtleXMpOworICBtYWNfcmVnaXN0ZXJlZF9ob3RrZXlz ID0gUW5pbDsKKyNlbmRpZgogICBhc19zdGF0dXMgPSAwOwogICBhc19zY3JpcHQgPSBRbmlsOwog ICBzdGF0aWNwcm8gKCZhc19zY3JpcHQpOwpkaWZmIC0tZ2l0IGEvc3JjL25zdGVybS5oIGIvc3Jj L25zdGVybS5oCmluZGV4IGYyOTI5OTNkOGYuLmRmYWRlOTAwNGIgMTAwNjQ0Ci0tLSBhL3NyYy9u c3Rlcm0uaAorKysgYi9zcmMvbnN0ZXJtLmgKQEAgLTM3OSw2ICszNzksNyBAQCAjZGVmaW5lIE5T X0RSQVdfVE9fQlVGRkVSIDEKICNpZmRlZiBOU19JTVBMX0NPQ09BCiAgIEJPT0wgc2hvdWxkS2Vl cFJ1bm5pbmc7CiAgIEJPT0wgaXNGaXJzdDsKKyAgTlNTdGF0dXNJdGVtICp0aGVJdGVtOwogI2Vu ZGlmCiAjaWZkZWYgTlNfSU1QTF9HTlVTVEVQCiAgIEJPT0wgYXBwbGljYXRpb25EaWRGaW5pc2hM YXVuY2hpbmdDYWxsZWQ7CkBAIC0xMjMwLDYgKzEyMzEsMTEgQEAgI2RlZmluZSBOU0FQUF9EQVRB Ml9SVU5GSUxFRElBTE9HIDExCiBleHRlcm4gdm9pZCBuc19pbml0X2V2ZW50cyAoc3RydWN0IGlu cHV0X2V2ZW50ICopOwogZXh0ZXJuIHZvaWQgbnNfZmluaXNoX2V2ZW50cyAodm9pZCk7CiAKKyNp ZmRlZiBOU19JTVBMX0NPQ09BCit0eXBlZGVmIGVudW0gTlNFdmVudE1vZGlmaWVyRmxhZ3MgTlNF dmVudE1vZGlmaWVyRmxhZ3M7CitleHRlcm4gdm9pZCBtYWNfYmluZF9rZXkgKGVudW0gTlNFdmVu dE1vZGlmaWVyRmxhZ3MgbW9kaWZpZXIsIHVuc2lnbmVkIHZrZXksIExpc3BfT2JqZWN0IGxpc3Bm bik7CitleHRlcm4gdm9pZCBtYWNfY2xlYXJfaG90a2V5cyAodm9pZCk7CisjZW5kaWYKIAogI2lm ZGVmIE5TX0lNUExfR05VU1RFUAogZXh0ZXJuIGNoYXIgZ251c3RlcF9iYXNlX3ZlcnNpb25bXTsg IC8qIHZlcnNpb24gdHJhY2tpbmcgKi8KZGlmZiAtLWdpdCBhL3NyYy9uc3Rlcm0ubSBiL3NyYy9u c3Rlcm0ubQppbmRleCBmYTM4MzUwYTJmLi5jNTU2ZWIzYTA1IDEwMDY0NAotLS0gYS9zcmMvbnN0 ZXJtLm0KKysrIGIvc3JjL25zdGVybS5tCkBAIC05NzIxLDYgKzk3MjEsNTggQEAgQ29udmVydCBh biBYIGZvbnQgbmFtZSAoWExGRCkgdG8gYW4gTlMgZm9udCBuYW1lLgogICByZXR1cm4gcmV0Owog fQogCisjaWZkZWYgTlNfSU1QTF9DT0NPQQorLy8gU3RvcmUgZXZlbnQgaGFuZGxlciBldmVudCBp ZHMuCitOU011dGFibGVBcnJheSAqaG90a2V5X2lkczsKKwordm9pZAorbWFjX2JpbmRfa2V5IChO U0V2ZW50TW9kaWZpZXJGbGFncyBtb2RpZmllciwgdW5zaWduZWQgdmtleSwKKyAgICAgICAgICAg ICAgICAgICAgICAgTGlzcF9PYmplY3QgbGlzcGZuKQoreworICBpZCBoYW5kbGVyOworCisgIC8v IENoZWNrIGlmIEVtYWNzIGlzIHRydXN0ZWQuCisgIE5TRGljdGlvbmFyeSAqb3B0aW9ucyA9IEB7 KF9fYnJpZGdlIGlkKSBrQVhUcnVzdGVkQ2hlY2tPcHRpb25Qcm9tcHQ6IEBZRVN9OworICBCb29s ZWFuIHRydXN0ZWQgPSBBWElzUHJvY2Vzc1RydXN0ZWRXaXRoT3B0aW9ucygoQ0ZEaWN0aW9uYXJ5 UmVmKW9wdGlvbnMpOworCisgIGlmIChob3RrZXlfaWRzID09IG5pbCkKKyAgICBob3RrZXlfaWRz ID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTogMV07CisKKyAgaWYg KHRydXN0ZWQpIHsKKyAgICBoYW5kbGVyID0gW05TRXZlbnQKKyAgICAgICAgICAgICAgICBhZGRH bG9iYWxNb25pdG9yRm9yRXZlbnRzTWF0Y2hpbmdNYXNrOiAoTlNFdmVudE1hc2tLZXlEb3duKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXI6XihO U0V2ZW50ICpldmVudCkgeworICAgICAgICBpZiAoKGV2ZW50Lm1vZGlmaWVyRmxhZ3MgJiBOU0V2 ZW50TW9kaWZpZXJGbGFnRGV2aWNlSW5kZXBlbmRlbnRGbGFnc01hc2spID09IG1vZGlmaWVyKSB7 CisgICAgICAgICAgaWYoW1tldmVudC5jaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnMgY2FwaXRh bGl6ZWRTdHJpbmddCisgICAgICAgICAgICAgICBjaGFyYWN0ZXJBdEluZGV4OjBdID09IHZrZXkp IHsKKyAgICAgICAgICAgIHN0cnVjdCBmcmFtZSAqZW1hY3NmcmFtZSA9IFNFTEVDVEVEX0ZSQU1F ICgpOworICAgICAgICAgICAgTlNFdmVudCAqdGhlRXZlbnQgPSBbTlNBcHAgY3VycmVudEV2ZW50 XTsKKworICAgICAgICAgICAgZW1hY3NfZXZlbnQtPmtpbmQgPSBHTE9CQUxfSE9US0VZX0VWRU5U OworICAgICAgICAgICAgZW1hY3NfZXZlbnQtPmFyZyA9IGxpc3BmbjsKKyAgICAgICAgICAgIEVW X1RSQUlMRVIodGhlRXZlbnQpOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfV07CisK KyAgICBbaG90a2V5X2lkcyBhZGRPYmplY3Q6IGhhbmRsZXJdOworICB9CisgIGVsc2UgeworICAg IGVycm9yKCJFbWFjcyBhcHAgaXNuJ3QgdHJ1c3RlZC4gRW5hYmxlIGluIHN5c3RlbSBzZXR0aW5n cy4iKTsKKyAgfQorfQorCit2b2lkCittYWNfY2xlYXJfaG90a2V5cyAodm9pZCkKK3sKKworICBm b3IgKGlkIGhvdGtleSBpbiBob3RrZXlfaWRzKSB7CisgICAgW05TRXZlbnQgcmVtb3ZlTW9uaXRv cjogaG90a2V5XTsKKyAgfQorCisgIFtob3RrZXlfaWRzIHJlbW92ZUFsbE9iamVjdHNdOworfQor I2VuZGlmCiAKIHZvaWQKIHN5bXNfb2ZfbnN0ZXJtICh2b2lkKQpAQCAtOTkzNSw2ICs5OTg3LDcg QEAgTmlsIG1lYW5zIHVzZSBmdWxsc2NyZWVuIHRoZSBvbGQgKDwgMTAuNykgd2F5LiAgVGhlIG9s ZCB3YXkgd29ya3MgYmV0dGVyIHdpdGgKICAgREVGU1lNIChRQ21vdXNlLCAiOm1vdXNlIik7CiAK ICNpZmRlZiBOU19JTVBMX0NPQ09BCisgIERFRlNZTSAoUWdsb2JhbF9ob3RrZXlfaG9vaywgImds b2JhbC1ob3RrZXktaG9vayIpOwogICBGcHJvdmlkZSAoUWNvY29hLCBRbmlsKTsKICAgc3ltc19v Zl9tYWNmb250ICgpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL3NyYy90ZXJtaG9va3MuaCBiL3NyYy90 ZXJtaG9va3MuaAppbmRleCBkMThiNzUwYzNhLi5iOWMzMmExY2NkIDEwMDY0NAotLS0gYS9zcmMv dGVybWhvb2tzLmgKKysrIGIvc3JjL3Rlcm1ob29rcy5oCkBAIC0xODgsNiArMTg4LDExIEBAICNk ZWZpbmUgRU1BQ1NfVEVSTUhPT0tTX0gKICAgVVNFUl9TSUdOQUxfRVZFTlQsCQkvKiBBIHVzZXIg c2lnbmFsLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlIGlzIGEgbnVt YmVyIGlkZW50aWZ5aW5nIGl0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bmRleCBpbnRvIGxpc3B5X3VzZXJfc2lnbmFscy4gICovCisjaWZkZWYgTlNfSU1QTF9DT0NPQQor ICBHTE9CQUxfSE9US0VZX0VWRU5ULCAgICAgICAgICAvKiBBbiBldmVudCBmb3Igd2hlbiBhIGhv dGtleSBpcyBwcmVzc2VkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHNp ZGUgb2YgZW1hY3MgdGhhdCBpcyBzZXR1cCB0byBleGVjdXRlCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFuIGVsaXNwIGZ1bmN0aW9uLiAgKi8KKyNlbmRpZgogCiAgIC8qIEhl bHAgZXZlbnRzLiAgTWVtYmVyIGBmcmFtZV9vcl93aW5kb3cnIG9mIHRoZSBpbnB1dF9ldmVudCBp cyB0aGUKICAgICAgZnJhbWUgb24gd2hpY2ggdGhlIGV2ZW50IG9jY3VycmVkLCBhbmQgbWVtYmVy IGBhcmcnIGNvbnRhaW5zCg== --000000000000f044b905b7a6aec4-- From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 30 06:01:22 2020 Received: (at 44973) by debbugs.gnu.org; 30 Dec 2020 11:01:22 +0000 Received: from localhost ([127.0.0.1]:41986 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kuZEH-0006Kk-Sj for submit@debbugs.gnu.org; Wed, 30 Dec 2020 06:01:22 -0500 Received: from outbound.soverin.net ([116.202.65.218]:37561) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kuZEF-0006DC-5i for 44973@debbugs.gnu.org; Wed, 30 Dec 2020 06:01:20 -0500 Received: from smtp.soverin.net (unknown [10.10.3.28]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by outbound.soverin.net (Postfix) with ESMTPS id 461056008F; Wed, 30 Dec 2020 11:01:12 +0000 (UTC) Received: from smtp.soverin.net (smtp.soverin.net [159.69.232.142]) by soverin.net DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=idiocy.org; s=soverin; t=1609326071; bh=F6tzm8I1E+JhFz0OtbEfGjbRkTeK6a/7JdfbuoB0VAE=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=GVjaEkqv+fPUEpVWHKV1fH/YEt4SwioeD6PgpvpxaXtoH5DDTEydH5DXqcFP5VtgO c2EHuHFV+w748R742q2QtaggwoQHGKS0WPTgUrS1aUcQP2dJVTKTVx7coM+1iYrHXQ neCArSZYxiffN08D24ijfoHxkdhU5q6XC9QoGympl1Ue4YccYcBAzQq0MsYlycXoGI VS1NGICE99OEQnB8qS2z75RJj0MB4E6ScmDw01I+mdQ9YAKeVKDRg+Sm54eZPvQgNT R42eSMfdJDeCqJoGIdDKbp/6P0uV4cPG9/hN3QL+tTQ/wRitzRIfI3NwaDc6dBVjtd mU1pug3PsGW6g== Received: by breton.holly.idiocy.org (Postfix, from userid 501) id 86F66202952A37; Wed, 30 Dec 2020 11:01:09 +0000 (GMT) Date: Wed, 30 Dec 2020 11:01:09 +0000 From: Alan Third To: j@mremus.net Subject: Re: bug#44973: Add a macOS global hotkey function Message-ID: Mail-Followup-To: Alan Third , j@mremus.net, Lars Ingebrigtsen , 44973@debbugs.gnu.org References: <874kkw9gmq.fsf@gnus.org> <87lfdrhj4e.fsf@gnus.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 44973 Cc: 44973@debbugs.gnu.org, Lars Ingebrigtsen X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) On Tue, Dec 29, 2020 at 08:10:00PM -0800, j@mremus.net wrote: > Here is the patch to bind a global hotkey in mac. As long as Emacs is set as > "trusted" in macOS preferences, the user can bind a two-key hotkey of the > form [modifier-key] or a single-key modifier [function key], for example > (mac-bind-global-hotkey [f1] 'tetris). Binding a three-key > combo is left to a future patch. Hi, thanks for this. I'll leave it up to Lars and Eli whether this gets to go in, but I've got a few comments: +;; Copyright (C) 1993-1994, 2005-2020 Free Software Foundation, Inc. Since this is a new file I'm pretty sure we just specify 2020 for copyright. +const char *const lispy_to_mac_function_keys[] = + { + "up", "down", "left", "right", /* NSUpArrowfunctionKey 0xF700 */ + "f1", "f2", "f3", "f4", "f5", /* NSF1FunctionKey 0xF704 */ + "f6", "f7", "f8", "f9", "f10", I take it's not possible to use the existing keyboard IO stuff for this? Like convert_ns_to_X_keysym? +mac_parse_and_add_hotkey (Lisp_Object key, Lisp_Object lispfn, int hook) ^^^ We don't use mac_ in the NS port, we use ns_. I realise this code is mac specific, but I'd rather not add a new function name prefix, not least because it's possible it will interfere with the Mac port's code, but also we may want to extend this functionality to GNUstep in the future (although that seems unlikely right now). It also means it's easy to see all the lisp functions that relate to the NS port by doing something like M-x ns-. If you're copying functionality from the Mac port feel free to set up an alias, but please use ns for the function names. + || ((lisp_modifiers & ctrl_modifier) + && EQ (ns_command_modifier, Qcontrol)) + ) ^^^ I don't think we leave closing parens hanging like that, just stick it on the end of the previous line, please. doc: /* Bind KEY combination as a global hotkey, and run HOOK upon +invokation. This function assigns a hotkey that will run an elisp function ^^^^^^^^^^ invocation +mac_bind_key (NSEventModifierFlags modifier, unsigned vkey, You might want to call this something like ns_bind_global_hotkey so it's clearer what it does, and a short descriptive comment wouldn't go amiss. + hotkey_ids = [[NSMutableArray alloc] initWithCapacity: 1]; You're allocing this array, but not releasing it anywhere. + if (trusted) { ^^^ Opening brace should be on a new line. This function (mac_bind_key) needs this fix in a few places. + if([[event.charactersIgnoringModifiers capitalizedString] ^^^ Missing space. We could also do with some documentation. One thing I'm unsure about is that we allow users to map the left and right modifier keys separately but I think your code only allows for matching with left key settings. Is that intentional? It would seem unlikely that macOS would let us map global hotkeys to the left and right keys separately, so I understand if it's not possible. -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 30 12:09:00 2020 Received: (at 44973) by debbugs.gnu.org; 30 Dec 2020 17:09:00 +0000 Received: from localhost ([127.0.0.1]:50857 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kuey3-0000af-Pg for submit@debbugs.gnu.org; Wed, 30 Dec 2020 12:09:00 -0500 Received: from eggs.gnu.org ([209.51.188.92]:47602) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kuey1-0000aS-C1 for 44973@debbugs.gnu.org; Wed, 30 Dec 2020 12:08:57 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:58401) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kuext-0006P2-W4; Wed, 30 Dec 2020 12:08:51 -0500 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:3672 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kuexs-0000o1-QK; Wed, 30 Dec 2020 12:08:49 -0500 Date: Wed, 30 Dec 2020 19:08:46 +0200 Message-Id: <83mtxvi5lt.fsf@gnu.org> From: Eli Zaretskii To: j@mremus.net In-Reply-To: Subject: Re: bug#44973: Add a macOS global hotkey function References: <874kkw9gmq.fsf@gnus.org> <87lfdrhj4e.fsf@gnus.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 44973 Cc: 44973@debbugs.gnu.org, larsi@gnus.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: j@mremus.net > Date: Tue, 29 Dec 2020 20:10:00 -0800 > Cc: 44973@debbugs.gnu.org > > Here is the patch to bind a global hotkey in mac. As long as Emacs is set as > "trusted" in macOS preferences, the user can bind a two-key hotkey of the > form [modifier-key] or a single-key modifier [function key], for example > (mac-bind-global-hotkey [f1] 'tetris). Binding a three-key > combo is left to a future patch. > > The code is copied from w32-register-hot-key as much as possible. Hmm... w32-register-hot-key is not for binding Emacs commands to platform-specific keys, it is so that the OS doesn't catch some key combinations ahead of Emacs. That is, by using w32-register-hot-key you make the key combination available for binding to a command using global-set-key and the likes. By contrast, it sounds like your patch is for letting users bind platform-specific key sequences to Emacs commands, which is something quite different. What is the rationale for adding this functionality to Emacs? From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 04 00:14:05 2021 Received: (at 44973) by debbugs.gnu.org; 4 Jan 2021 05:14:05 +0000 Received: from localhost ([127.0.0.1]:39193 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kwIBx-0001CB-62 for submit@debbugs.gnu.org; Mon, 04 Jan 2021 00:14:05 -0500 Received: from mail-oi1-f177.google.com ([209.85.167.177]:39289) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kwIBv-0001BY-E9 for 44973@debbugs.gnu.org; Mon, 04 Jan 2021 00:14:04 -0500 Received: by mail-oi1-f177.google.com with SMTP id w124so30967216oia.6 for <44973@debbugs.gnu.org>; Sun, 03 Jan 2021 21:14:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mremus.net; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=QKQn60egcmkrhHMXCdcwaLK6k4K998nQCGAeqmwFFRc=; b=VgMflmTJGRbxwzQzZ03RnTTCCRdCkgPkiIGyNr7IhapbQY14wpznkQ742am85pCtiD evH53w2ErDmCitMvsY2ucKHBZjeUwMv2ICjReOf3CiAcJAUktbZsbgRbCdufx2pu4Caw LdsT0kSwx+SaYv3WG/+toVJfayHSVWKyP9EWOZzxjISn2lkjgNIamWlSme4Yx7G/Wuk2 eu5gPm+yScoBTY53lIaslY0XpTtrwPrjxCMQMrI0VmVQ+6WlYgAYws4fDJvxWkwIAXFQ I61l315UcuOkI+ah6w/+ZHNBrfi7DtDr86dnFD80F0sgYofiCP4Yv61Nk5thPD8FCCZz dHrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=QKQn60egcmkrhHMXCdcwaLK6k4K998nQCGAeqmwFFRc=; b=DWYUu9PBUHw+rcbqdJIXWzKv3bAchmzJmKi06enDpYg81oViyF7yfUyIwP0tAaT5f4 +OqkNHdCE1m25ZECCo4TPTYlIDIi8ytv39H9dcHL7j4iEhHSipj2FM8bSsmQZq0rVYgW K4oZNF8uTLHs1Ggz6Q3izjWayXM7epAye8wmafmR6SHlzBkaFqJKNkjuGpHU5Zin1DnP vhb8ZoDPMAKprBt3/sEvpFxDZr6JfLy3HoC7c4ljaJbxcrV2DWwrS+2xAFj+oqYP6i1g dGvvDTVtWCAjoSeD7tSdktm7Dg7yA67KTUHcsSsSoNQH1lnfkpSRy5UIkAd5vjL84UcS e31Q== X-Gm-Message-State: AOAM533L5daBhK/KKIm7D+li8gGYeY80Uj92li6btJ7AQ8wxK9xM3oNV JhGGttwSOMWYDC8E3so9Edk6CeRWddj8EH/tUB9f6A== X-Google-Smtp-Source: ABdhPJx/njKjhVU62/7TgPNnu43wMoY9lxMb+g0p84yYTZCaXBrmAp39xMBXyVp7dSBOsfkVejYr90L6Gi5lqe7VQgs= X-Received: by 2002:a05:6808:49a:: with SMTP id z26mr16130376oid.137.1609737237650; Sun, 03 Jan 2021 21:13:57 -0800 (PST) MIME-Version: 1.0 References: <874kkw9gmq.fsf@gnus.org> <87lfdrhj4e.fsf@gnus.org> <83mtxvi5lt.fsf@gnu.org> In-Reply-To: <83mtxvi5lt.fsf@gnu.org> From: j@mremus.net Date: Sun, 3 Jan 2021 21:13:47 -0800 Message-ID: Subject: Re: bug#44973: Add a macOS global hotkey function To: Eli Zaretskii Content-Type: multipart/mixed; boundary="0000000000003bd51e05b80c28ce" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 44973 Cc: 44973@debbugs.gnu.org, Lars Ingebrigtsen X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --0000000000003bd51e05b80c28ce Content-Type: multipart/alternative; boundary="0000000000003bd51d05b80c28cc" --0000000000003bd51d05b80c28cc Content-Type: text/plain; charset="UTF-8" Hi Eli, Alan, Here's a new patch incorporating all of Alan's feedback, with two notes: 1. This implementation is unable to differentiate between left and right modifier keys, because it depends upon NSEventModifierFlags, which doesn't differentiate between left and right. 2. hotkey_ids is a global variable, so it should not be released. To address Eli's feedback, this patch is inspired by https://www.mattduck.com/emacs-fuzzy-launcher.html , where Matt uses emacs to create a launcher like Spotlight or Alfred. Since he's using GNU/Linux and i3 wm, he simply assigned a global hotkey in his window manager config to run emacsclient and run the launcher. I believe this is also easy to do in Windows. In macOS this is much more difficult, because assigning a global hotkey can only be done in code. So a user would have to rely on a utility like skhd or Hammerspoon. My proposal is to add this patch to emacs, so that a user can assign a global hotkey in emacs without relying on a 3rd-party program. I used w32-register-hot-key as an example of another instance where emacs added an OS-specific feature in order to provide a consistent user experience across platforms. Also, even though the behavior is totally different, the actual implementation of that routine and mine are very similar. Thanks for all of your time and feedback. On Wed, Dec 30, 2020 at 9:08 AM Eli Zaretskii wrote: > > From: j@mremus.net > > Date: Tue, 29 Dec 2020 20:10:00 -0800 > > Cc: 44973@debbugs.gnu.org > > > > Here is the patch to bind a global hotkey in mac. As long as Emacs is > set as > > "trusted" in macOS preferences, the user can bind a two-key hotkey of the > > form [modifier-key] or a single-key modifier [function key], for example > > (mac-bind-global-hotkey [f1] 'tetris). Binding a three-key > > combo is left to a future patch. > > > > The code is copied from w32-register-hot-key as much as possible. > > Hmm... w32-register-hot-key is not for binding Emacs commands to > platform-specific keys, it is so that the OS doesn't catch some key > combinations ahead of Emacs. That is, by using w32-register-hot-key > you make the key combination available for binding to a command using > global-set-key and the likes. > > By contrast, it sounds like your patch is for letting users bind > platform-specific key sequences to Emacs commands, which is something > quite different. What is the rationale for adding this functionality > to Emacs? > --0000000000003bd51d05b80c28cc Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Eli, Alan,

Here's a new patch incorporating all of Alan's feedback, with tw= o notes:
1. This implementation is unable to differentiate betwee= n left and right
=C2=A0 =C2=A0modifier keys, because it depends u= pon NSEventModifierFlags, which doesn't
=C2=A0 =C2=A0differen= tiate between left and right.
2. hotkey_ids is a global variable,= so it should not be released.

To address Eli'= s feedback, this patch is inspired by
create a launcher like= Spotlight or Alfred. Since he's using GNU/Linux and i3 wm, he
simply assigned a global hotkey in his window manager config to run emacs= client
and run the launcher. I believe this is also easy to do in= Windows.

In macOS this is much more difficult, be= cause assigning a global hotkey can only
be done in code. So a us= er would have to rely on a utility like skhd or
Hammerspoon.

My proposal is to add this patch to emacs, so that a u= ser can assign a global
hotkey in emacs without relying on a 3rd-= party program.

I used w32-register-hot-key as an e= xample of another instance where emacs added
an OS-specific featu= re in order to provide a consistent user experience across
platfo= rms. Also, even though the behavior is totally different, the actual
<= div>implementation of that routine and mine are very similar.
Thanks for all of your time and feedback.

=
On Wed, De= c 30, 2020 at 9:08 AM Eli Zaretskii <eli= z@gnu.org> wrote:
> From: j@mremus.net
> Date: Tue, 29 Dec 2020 20:10:00 -0800
> Cc: 44973@d= ebbugs.gnu.org
>
> Here is the patch to bind a global hotkey in mac. As long as Emacs is = set as
> "trusted" in macOS preferences, the user can bind a two-key = hotkey of the
> form [modifier-key] or a single-key modifier [function key], for examp= le
> (mac-bind-global-hotkey [f1] 'tetris). Binding a three-key
> combo is left to a future patch.
>
> The code is copied from w32-register-hot-key as much as possible.

Hmm...=C2=A0 w32-register-hot-key is not for binding Emacs commands to
platform-specific keys, it is so that the OS doesn't catch some key
combinations ahead of Emacs.=C2=A0 That is, by using w32-register-hot-key you make the key combination available for binding to a command using
global-set-key and the likes.

By contrast, it sounds like your patch is for letting users bind
platform-specific key sequences to Emacs commands, which is something
quite different.=C2=A0 What is the rationale for adding this functionality<= br> to Emacs?
--0000000000003bd51d05b80c28cc-- --0000000000003bd51e05b80c28ce Content-Type: application/octet-stream; name="ns_bind_global_hotkey.diff" Content-Disposition: attachment; filename="ns_bind_global_hotkey.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kji3ti8k0 ZGlmZiAtLWdpdCBhL2xpc3AvbG9hZHVwLmVsIGIvbGlzcC9sb2FkdXAuZWwKaW5kZXggNTY4Yjlm ZTQwZC4uYTgzYjViOWJhZSAxMDA2NDQKLS0tIGEvbGlzcC9sb2FkdXAuZWwKKysrIGIvbGlzcC9s b2FkdXAuZWwKQEAgLTEsNiArMSw2IEBACiA7OzsgbG9hZHVwLmVsIC0tLSBsb2FkIHVwIHN0YW5k YXJkbHkgbG9hZGVkIExpc3AgZmlsZXMgZm9yIEVtYWNzCiAKLTs7IENvcHlyaWdodCAoQykgMTk4 NS0xOTg2LCAxOTkyLCAxOTk0LCAyMDAxLTIwMjAgRnJlZSBTb2Z0d2FyZQorOzsgQ29weXJpZ2h0 IChDKSAxOTg1LTE5ODYsIDE5OTIsIDE5OTQsIDIwMDEtMjAyMSBGcmVlIFNvZnR3YXJlCiA7OyBG b3VuZGF0aW9uLCBJbmMuCiAKIDs7IE1haW50YWluZXI6IGVtYWNzLWRldmVsQGdudS5vcmcKQEAg LTMzNSw2ICszMzUsNyBAQAogICAgICAgKHdoZW4gKGZlYXR1cmVwICdjaGFycHJvcCkKICAgICAg ICAgKGxvYWQgImludGVybmF0aW9uYWwvbXVsZS11dGlsIikKICAgICAgICAgKGxvYWQgImludGVy bmF0aW9uYWwvdWNzLW5vcm1hbGl6ZSIpCisgICAgICAgIChsb2FkICJucy1mbnMiKQogICAgICAg ICAobG9hZCAidGVybS9ucy13aW4iKSkpKQogKGlmIChmYm91bmRwICd4LWNyZWF0ZS1mcmFtZSkK ICAgICA7OyBEbyBpdCBhZnRlciBsb2FkaW5nIHRlcm0vZm9vLXdpbi5lbCBzaW5jZSB0aGUgdmFs dWUgb2YgdGhlCmRpZmYgLS1naXQgYS9saXNwL25zLWZucy5lbCBiL2xpc3AvbnMtZm5zLmVsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmNmNzM1OGEwODMKLS0tIC9kZXYv bnVsbAorKysgYi9saXNwL25zLWZucy5lbApAQCAtMCwwICsxLDQwIEBACis7OzsgbnMtZm5zLmVs IC0tLSBMaXNwIHJvdXRpbmVzIGZvciBOZVhUL09wZW4vR05Vc3RlcC9tYWNPUyB3aW5kb3cgc3lz dGVtICAtKi0gbGV4aWNhbC1iaW5kaW5nOiB0OyAtKi0KKworOzsgQ29weXJpZ2h0IChDKSAyMDIw LTIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKzs7IEtleXdvcmRzOiBpbnRl cm5hbAorOzsgUGFja2FnZTogZW1hY3MKKworOzsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEVt YWNzLgorCis7OyBHTlUgRW1hY3MgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQorOzsgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKzs7IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCis7OyAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCis7OyBHTlUgRW1hY3MgaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKzs7IGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCis7OyBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlCis7OyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCis7 OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQorOzsgYWxvbmcgd2l0aCBHTlUgRW1hY3MuICBJZiBub3QsIHNlZSA8aHR0cHM6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCis7OworOzs7IENvbW1lbnRhcnk6CisKKworOzs7 IENvZGU6CisoZGVmZ3JvdXAgbnMgbmlsCisgICJHTlVzdGVwL21hY09TIHNwZWNpZmljIGZlYXR1 cmVzLiIKKyAgOmdyb3VwICdlbnZpcm9ubWVudCkKKworKGRlZnVuIG5zLWhhbmRsZS1nbG9iYWwt aG90a2V5IChldmVudCkKKyAgIkhhbmRsZXMgZ2xvYmFsIGhvdGtleSBwcmVzc2VzLCBydW5uaW5n IEVWRU5ULgorTm90IGludGVuZGVkIHRvIGJlIGNhbGxlZCBkaXJlY3RseSIKKyAgKGludGVyYWN0 aXZlICJlIikKKworICAoYXBwbHkgKGNkciBldmVudCkpKQorCisocHJvdmlkZSAnbnMtZm5zKQor Ozs7IG5zLWZucy5lbCBlbmRzIGhlcmUKZGlmZiAtLWdpdCBhL3NyYy9rZXlib2FyZC5jIGIvc3Jj L2tleWJvYXJkLmMKaW5kZXggMmUwMTQzMzc5YS4uMzA2OTE1NTJiNiAxMDA2NDQKLS0tIGEvc3Jj L2tleWJvYXJkLmMKKysrIGIvc3JjL2tleWJvYXJkLmMKQEAgLTEsNiArMSw2IEBACiAvKiBLZXli b2FyZCBhbmQgbW91c2UgaW5wdXQ7IGVkaXRvciBjb21tYW5kIGxvb3AuCiAKLUNvcHlyaWdodCAo QykgMTk4NS0xOTg5LCAxOTkzLTE5OTcsIDE5OTktMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sCitDb3B5cmlnaHQgKEMpIDE5ODUtMTk4OSwgMTk5My0xOTk3LCAxOTk5LTIwMjEgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLAogSW5jLgogCiBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgRW1h Y3MuCkBAIC00ODY4LDcgKzQ4NjgsNyBAQCAjZGVmaW5lIEZVTkNUSU9OX0tFWV9PRkZTRVQgMHhm ZjAwCiAKIC8qIFlvdSdsbCBub3RpY2UgdGhhdCB0aGlzIHRhYmxlIGlzIGFycmFuZ2VkIHRvIGJl IGNvbnZlbmllbnRseQogICAgaW5kZXhlZCBieSBYIFdpbmRvd3Mga2V5c3ltIHZhbHVlcy4gICov Ci1zdGF0aWMgY29uc3QgY2hhciAqY29uc3QgbGlzcHlfZnVuY3Rpb25fa2V5c1tdID0KK2NvbnN0 IGNoYXIgKmNvbnN0IGxpc3B5X2Z1bmN0aW9uX2tleXNbXSA9CiAgIHsKICAgICAvKiBYIEtleXN5 bSB2YWx1ZSAqLwogCkBAIC02MDEwLDYgKzYwMTAsMTEgQEAgbWFrZV9saXNweV9ldmVudCAoc3Ry dWN0IGlucHV0X2V2ZW50ICpldmVudCkKIAlyZXR1cm4gbGlzdDIgKHJlcywgbGlzdDIgKGV2ZW50 LT5mcmFtZV9vcl93aW5kb3csIGxvY2F0aW9uKSk7CiAgICAgICB9CiAKKyNpZmRlZiBOU19JTVBM X0NPQ09BCisgICAgICBjYXNlIEdMT0JBTF9IT1RLRVlfRVZFTlQ6CisgICAgICAgICAgcmV0dXJu IGxpc3QyIChRbnNfZ2xvYmFsX2hvdGtleSwgZXZlbnQtPmFyZyk7CisjZW5kaWYKKwogICAgIGNh c2UgVVNFUl9TSUdOQUxfRVZFTlQ6CiAgICAgICAvKiBBIHVzZXIgc2lnbmFsLiAgKi8KICAgICAg IHsKQEAgLTExNzU5LDYgKzExNzY0LDEwIEBAIHN5bXNfb2Zfa2V5Ym9hcmQgKHZvaWQpCiAgIERF RlNZTSAoUWNvbW1hbmRfZXhlY3V0ZSwgImNvbW1hbmQtZXhlY3V0ZSIpOwogICBERUZTWU0gKFFp bnRlcm5hbF9lY2hvX2tleXN0cm9rZXNfcHJlZml4LCAiaW50ZXJuYWwtZWNoby1rZXlzdHJva2Vz LXByZWZpeCIpOwogCisjaWZkZWYgTlNfSU1QTF9DT0NPQQorICBERUZTWU0gKFFuc19nbG9iYWxf aG90a2V5LCAibnMtZ2xvYmFsLWhvdGtleSIpOworI2VuZGlmCisKICAgYWNjZW50X2tleV9zeW1z ID0gUW5pbDsKICAgc3RhdGljcHJvICgmYWNjZW50X2tleV9zeW1zKTsKIApAQCAtMTI0NTksNiAr MTI0NjgsMTEgQEAga2V5c19vZl9rZXlib2FyZCAodm9pZCkKIAogICBpbml0aWFsX2RlZmluZV9s aXNweV9rZXkgKFZzcGVjaWFsX2V2ZW50X21hcCwgImRlbGV0ZS1mcmFtZSIsCiAJCQkgICAgImhh bmRsZS1kZWxldGUtZnJhbWUiKTsKKworI2lmZGVmIE5TX0lNUExfQ09DT0EKKyAgaW5pdGlhbF9k ZWZpbmVfbGlzcHlfa2V5IChWc3BlY2lhbF9ldmVudF9tYXAsICJucy1nbG9iYWwtaG90a2V5IiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAibnMtaGFuZGxlLWdsb2JhbC1ob3RrZXkiKTsK KyNlbmRpZgogI2lmZGVmIEhBVkVfTlRHVUkKICAgaW5pdGlhbF9kZWZpbmVfbGlzcHlfa2V5IChW c3BlY2lhbF9ldmVudF9tYXAsICJlbmQtc2Vzc2lvbiIsCiAJCQkgICAgImtpbGwtZW1hY3MiKTsK ZGlmZiAtLWdpdCBhL3NyYy9rZXlib2FyZC5oIGIvc3JjL2tleWJvYXJkLmgKaW5kZXggNDFkYTNh NmJmNC4uYjg1OWViMzRjOCAxMDA2NDQKLS0tIGEvc3JjL2tleWJvYXJkLmgKKysrIGIvc3JjL2tl eWJvYXJkLmgKQEAgLTEsNSArMSw1IEBACiAvKiBEZWNsYXJhdGlvbnMgdXNlZnVsIHdoZW4gcHJv Y2Vzc2luZyBpbnB1dC4KLSAgIENvcHlyaWdodCAoQykgMTk4NS0xOTg3LCAxOTkzLCAyMDAxLTIw MjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorICAgQ29weXJpZ2h0IChDKSAxOTg1LTE5ODcs IDE5OTMsIDIwMDEtMjAyMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCiAgICBJbmMuCiAKIFRo aXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBFbWFjcy4KQEAgLTQ5NSw2ICs0OTUsOSBAQCBrYmRfYnVm ZmVyX3N0b3JlX2V2ZW50X2hvbGQgKHN0cnVjdCBpbnB1dF9ldmVudCAqZXZlbnQsCiAjaWZkZWYg SEFWRV9OVEdVSQogZXh0ZXJuIGNvbnN0IGNoYXIgKmNvbnN0IGxpc3B5X2Z1bmN0aW9uX2tleXNb XTsKICNlbmRpZgorI2lmZGVmIE5TX0lNUExfQ09DT0EKK2V4dGVybiBjb25zdCBjaGFyICpjb25z dCBsaXNweV9mdW5jdGlvbl9rZXlzW107CisjZW5kaWYKIAogZXh0ZXJuIGNoYXIgY29uc3QgREVW X1RUWVtdOwogCmRpZmYgLS1naXQgYS9zcmMvbnNmbnMubSBiL3NyYy9uc2Zucy5tCmluZGV4IGM3 OTU2NDk3YzQuLmQzNjFlNzZmMDcgMTAwNjQ0Ci0tLSBhL3NyYy9uc2Zucy5tCisrKyBiL3NyYy9u c2Zucy5tCkBAIC0xLDYgKzEsNiBAQAogLyogRnVuY3Rpb25zIGZvciB0aGUgTmVYVC9PcGVuL0dO VXN0ZXAgYW5kIG1hY09TIHdpbmRvdyBzeXN0ZW0uCiAKLUNvcHlyaWdodCAoQykgMTk4OSwgMTk5 Mi0xOTk0LCAyMDA1LTIwMDYsIDIwMDgtMjAyMCBGcmVlIFNvZnR3YXJlCitDb3B5cmlnaHQgKEMp IDE5ODksIDE5OTItMTk5NCwgMjAwNS0yMDA2LCAyMDA4LTIwMjEgRnJlZSBTb2Z0d2FyZQogRm91 bmRhdGlvbiwgSW5jLgogCiBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgRW1hY3MuCkBAIC02Nyw2 ICs2NywxMTIgQEAgVXBkYXRlZCBieSBDaHJpc3RpYW4gTGltcGFjaCAoY2hyaXNAbmljZS5jaCkK IAogICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0gKi8KIAorI2lmZGVmIE5TX0lNUExfQ09DT0EKKworLyog Q29udmVydCBhIGhvdGtleSBvZiB0aGUgZm9ybSBbTS1rZXldIGludG8gYSBmb3JtIHRoYXQgdGhl IE9TIGNhbiByZWNvZ25pemUuCisgICBJZiBzdWNjZXNzZnVsLCBjYWxsIG5zX2JpbmRfZ2xvYmFs X2hvdGtleSB0byByZWdpc3RlciB0aGUga2V5IGNvbWJpbmF0aW9uCisgICB3aXRoIHRoZSBPUywg YW5kIHNldCB0aGUgY2FsbGJhY2sgdG8gdHJpZ2dlciBhbiBlbWFjcyBldmVudC4KKyAgICovCitz dGF0aWMgTGlzcF9PYmplY3QKK25zX3BhcnNlX2FuZF9hZGRfaG90a2V5IChMaXNwX09iamVjdCBr ZXksIExpc3BfT2JqZWN0IGxpc3BmbikKK3sKKyAgcmVnaXN0ZXIgTGlzcF9PYmplY3QgYzsKKyAg dW5zaWduZWQgdmtfY29kZSA9IDA7CisgIGludCBsaXNwX21vZGlmaWVycyA9IDA7CisgIE5TRXZl bnRNb2RpZmllckZsYWdzIG5zX21vZGlmaWVycyA9IDA7CisgIExpc3BfT2JqZWN0IHJlcyA9IFFu aWw7CisgIGNoYXIqIHZrbmFtZTsKKworICBDSEVDS19WRUNUT1IgKGtleSk7CisKKyAgaWYgKEFT SVpFIChrZXkpICE9IDEpCisgICAgcmV0dXJuIFFuaWw7CisKKyAgYyA9IEFSRUYgKGtleSwgMCk7 CisKKyAgaWYgKENPTlNQIChjKSAmJiBsdWNpZF9ldmVudF90eXBlX2xpc3RfcCAoYykpCisgICAg YyA9IEZldmVudF9jb252ZXJ0X2xpc3QgKGMpOworCisgIGlmICghIEZJWE5VTVAgKGMpICYmICEg U1lNQk9MUCAoYykpCisgICAgZXJyb3IgKCJLZXkgZGVmaW5pdGlvbiBpcyBpbnZhbGlkIik7CisK KyAgaWYgKCEgRlVOQ1RJT05QKGxpc3BmbikpCisgICAgZXJyb3IgKCJIT09LIGFyZ3VtZW50IGlz IG5vdCBhIGZ1bmN0aW9uIik7CisKKyAgLyogV29yayBvdXQgdGhlIGJhc2Uga2V5IGFuZCB0aGUg bW9kaWZpZXJzLiAgKi8KKyAgaWYgKFNZTUJPTFAgKGMpKQorICAgIHsKKyAgICAgIGMgPSBwYXJz ZV9tb2RpZmllcnMgKGMpOworICAgICAgbGlzcF9tb2RpZmllcnMgPSBYRklYTlVNIChGY2FyIChG Y2RyIChjKSkpOworICAgICAgYyA9IEZjYXIgKGMpOworICAgICAgaWYgKCFTWU1CT0xQIChjKSkK KyAgICAgICAgZW1hY3NfYWJvcnQgKCk7CisKKyAgICAgIHZrbmFtZSA9IFNTREFUQSAoU1lNQk9M X05BTUUgKGMpKTsKKyAgICAgIGlmICh2a25hbWVbMF0gPT0gMCkKKyAgICAgICAgZXJyb3IoIktl eSBkZWZpbml0aW9uIGlzIGludmFsaWQiKTsKKyAgICAgIGVsc2UKKyAgICAgICAgdmtfY29kZSA9 IG5zX2xvb2t1cF92a19jb2RlICh2a25hbWUpOworICAgIH0KKyAgZWxzZSBpZiAoRklYTlVNUCAo YykpCisgICAgeworICAgICAgbGlzcF9tb2RpZmllcnMgPSBYRklYTlVNIChjKSAmIH5DSEFSQUNU RVJCSVRTOworICAgICAgLyogTWFueSBhc2NpaSBjaGFyYWN0ZXJzIGFyZSB0aGVpciBvd24gdmly dHVhbCBrZXkgY29kZS4gICovCisgICAgICB2a19jb2RlID0gWEZJWE5VTSAoYykgJiBDSEFSQUNU RVJCSVRTOworICAgIH0KKworICBpZiAodmtfY29kZSA8IDAgfHwgdmtfY29kZSA+IDB4Rjc0NykK KyAgICByZXR1cm4gUW5pbDsKKyAgZWxzZSBpZiAoKHZrX2NvZGUgPj0gMHhGNzAwKSAmJiAodmtf Y29kZSA8PSAweEY3NDcpKQorICAgIG5zX21vZGlmaWVycyA9IG5zX21vZGlmaWVycyB8IE5TRXZl bnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKworICAvKiBCaW5kIGtleSBjb21iaW5hdGlvbnMgYmFz ZWQgb24gbW9kaWZpZXIgbWFwcGluZ3MuICAqLworICBpZiAoKChsaXNwX21vZGlmaWVycyAmIGh5 cGVyX21vZGlmaWVyKQorICAgICAgICYmIEVRIChuc19jb21tYW5kX21vZGlmaWVyLCBRaHlwZXIp KQorICAgICAgfHwgKChsaXNwX21vZGlmaWVycyAmIHN1cGVyX21vZGlmaWVyKQorICAgICAgICAg ICYmIEVRIChuc19jb21tYW5kX21vZGlmaWVyLCBRc3VwZXIpKQorICAgICAgfHwgKChsaXNwX21v ZGlmaWVycyAmIG1ldGFfbW9kaWZpZXIpCisgICAgICAgICAgJiYgRVEgKG5zX2NvbW1hbmRfbW9k aWZpZXIsIFFtZXRhKSkKKyAgICAgIHx8ICgobGlzcF9tb2RpZmllcnMgJiBjdHJsX21vZGlmaWVy KQorICAgICAgICAgICYmIEVRIChuc19jb21tYW5kX21vZGlmaWVyLCBRY29udHJvbCkpKQorICAg IHsKKyAgICAgIG5zX21vZGlmaWVycyA9IG5zX21vZGlmaWVycyB8IE5TRXZlbnRNb2RpZmllckZs YWdDb21tYW5kOworICAgIH0KKworICBpZiAoKChsaXNwX21vZGlmaWVycyAmIGh5cGVyX21vZGlm aWVyKQorICAgICAgICYmIEVRIChuc19hbHRlcm5hdGVfbW9kaWZpZXIsIFFoeXBlcikpCisgICAg ICB8fCAoKGxpc3BfbW9kaWZpZXJzICYgc3VwZXJfbW9kaWZpZXIpCisgICAgICAgICAgJiYgRVEg KG5zX2FsdGVybmF0ZV9tb2RpZmllciwgUXN1cGVyKSkKKyAgICAgIHx8ICgobGlzcF9tb2RpZmll cnMgJiBtZXRhX21vZGlmaWVyKQorICAgICAgICAgICYmIEVRIChuc19hbHRlcm5hdGVfbW9kaWZp ZXIsIFFtZXRhKSkKKyAgICAgIHx8ICgobGlzcF9tb2RpZmllcnMgJiBjdHJsX21vZGlmaWVyKQor ICAgICAgICAgICYmIEVRIChuc19hbHRlcm5hdGVfbW9kaWZpZXIsIFFjb250cm9sKSkKKyAgICAg ICkKKyAgICB7CisgICAgICBuc19tb2RpZmllcnMgPSBuc19tb2RpZmllcnMgfCBOU0V2ZW50TW9k aWZpZXJGbGFnT3B0aW9uOworICAgIH0KKworICBpZiAoKChsaXNwX21vZGlmaWVycyAmIGh5cGVy X21vZGlmaWVyKQorICAgICAgICYmIEVRIChuc19jb250cm9sX21vZGlmaWVyLCBRaHlwZXIpKQor ICAgICAgfHwgKChsaXNwX21vZGlmaWVycyAmIHN1cGVyX21vZGlmaWVyKQorICAgICAgICAgICYm IEVRIChuc19jb250cm9sX21vZGlmaWVyLCBRc3VwZXIpKQorICAgICAgfHwgKChsaXNwX21vZGlm aWVycyAmIG1ldGFfbW9kaWZpZXIpCisgICAgICAgICAgJiYgRVEgKG5zX2NvbnRyb2xfbW9kaWZp ZXIsIFFtZXRhKSkKKyAgICAgIHx8ICgobGlzcF9tb2RpZmllcnMgJiBjdHJsX21vZGlmaWVyKQor ICAgICAgICAgICYmIEVRIChuc19jb250cm9sX21vZGlmaWVyLCBRY29udHJvbCkpCisgICAgICAp CisgICAgeworICAgICAgbnNfbW9kaWZpZXJzID0gbnNfbW9kaWZpZXJzIHwgTlNFdmVudE1vZGlm aWVyRmxhZ0NvbnRyb2w7CisgICAgfQorCisgIC8vIEJpbmQgZnVuY3Rpb24ga2V5CisgIGlmICgo bnNfbW9kaWZpZXJzICYgTlNFdmVudE1vZGlmaWVyRmxhZ0RldmljZUluZGVwZW5kZW50RmxhZ3NN YXNrKSA+IDApCisgICAgbnNfYmluZF9nbG9iYWxfaG90a2V5KG5zX21vZGlmaWVycywgdmtfY29k ZSwgbGlzcGZuKTsKKworICByZXR1cm4ga2V5OworfQorI2VuZGlmCisKIC8qIExldCB0aGUgdXNl ciBzcGVjaWZ5IGEgTmV4dHN0ZXAgZGlzcGxheSB3aXRoIGEgTGlzcCBvYmplY3QuCiAgICBPQkpF Q1QgbWF5IGJlIG5pbCwgYSBmcmFtZSBvciBhIHRlcm1pbmFsIG9iamVjdC4KICAgIG5pbCBzdGFu ZHMgZm9yIHRoZSBzZWxlY3RlZCBmcmFtZS0tb3IsIGlmIHRoYXQgaXMgbm90IGEgTmV4dHN0ZXAg ZnJhbWUsCkBAIC0yOTg0LDYgKzMwOTAsNjYgQEAgVGhlIHBvc2l0aW9uIGlzIHJldHVybmVkIGFz IGEgY29ucyBjZWxsIChYIC4gWSkgb2YgdGhlCiAgIHJldHVybiBRbmlsOwogfQogCisjaWZkZWYg TlNfSU1QTF9DT0NPQQorc3RhdGljIExpc3BfT2JqZWN0IG5zX3JlZ2lzdGVyZWRfaG90a2V5czsK KworREVGVU4gKCJucy1iaW5kLWdsb2JhbC1ob3RrZXkiLAorICAgICAgIEZuc19iaW5kX2dsb2Jh bF9ob3RrZXksCisgICAgICAgU25zX2JpbmRfZ2xvYmFsX2hvdGtleSwgMiwgMiwgMCwKKyAgICAg ICBkb2M6IC8qIEJpbmQgS0VZIGNvbWJpbmF0aW9uIGFzIGEgZ2xvYmFsIGhvdGtleSwgYW5kIHJ1 biBIT09LIHVwb24gaW52b2NhdGlvbi4KK0Fzc2lnbnMgYSBob3RrZXkgdGhhdCB3aWxsIHJ1biBh biBlbGlzcCBmdW5jdGlvbiBmcm9tIGFueXdoZXJlIGluIE1hY09TCitvdXRzaWRlIEVtYWNzLgor CitLRVkgbXVzdCBiZSBlaXRoZXIgYSB0d28ta2V5IHZlY3RvciBvZiB0aGUgZm9ybSBbbW9kLWtl eV0gb3IgYSBzaW5nbGUKK2Z1bmN0aW9uIGtleSB2ZWN0b3IgW2ZuXS4gRm9yIEV4YW1wbGU6CisK KyAgKG5zLWJpbmQtZ2xvYmFsLWhvdGtleSBbTS0xXSAndGV0cmlzKQorICAobnMtYmluZC1nbG9i YWwtaG90a2V5IFtmMV0gICdtYWtlLWZyYW1lKQorCitIT09LIG11c3QgYmUgYSBmdW5jdGlvbi4K KworVGhlIHJldHVybiB2YWx1ZSBpcyB0IGlmIHJlZ2lzdGVyaW5nIHRoZSBob3RrZXkgd2FzIHN1 Y2Nlc3NmdWwsIG90aGVyd2lzZSBuaWwuCisqLykKKyAoTGlzcF9PYmplY3Qga2V5LCBMaXNwX09i amVjdCBob29rKQoreworICBpZCBoYW5kbGVyOworCisgIGtleSA9IG5zX3BhcnNlX2FuZF9hZGRf aG90a2V5IChrZXksIGhvb2spOworCisgIGlmICghTklMUCAoa2V5KSAmJiBOSUxQIChGbWVtcSAo RmNvbnMoa2V5LGhvb2spLCBuc19yZWdpc3RlcmVkX2hvdGtleXMpKSkKKyAgICB7CisgICAgICBM aXNwX09iamVjdCBpdGVtID0gRm1lbXEgKFFuaWwsIG5zX3JlZ2lzdGVyZWRfaG90a2V5cyk7CisK KyAgICAgIGlmIChOSUxQIChpdGVtKSkKKyAgICAgICAgbnNfcmVnaXN0ZXJlZF9ob3RrZXlzID0g RmNvbnMgKEZjb25zKGtleSxob29rKSwgbnNfcmVnaXN0ZXJlZF9ob3RrZXlzKTsKKyAgICAgIGVs c2UKKyAgICAgICAgWFNFVENBUiAoaXRlbSwgRmNvbnMoa2V5LGhvb2spKTsKKyAgICB9CisKKyAg cmV0dXJuIGtleTsKK30KKworREVGVU4gKCJucy1zaG93LWJvdW5kLWhvdGtleXMiLCBGbnNfc2hv d19ib3VuZF9ob3RrZXlzLAorICAgICAgIFNuc19zaG93X2JvdW5kX2hvdGtleXMsIDAsIDAsIDAs CisgICAgICAgZG9jOiAvKiBSZXR1cm4gbGlzdCBvZiByZWdpc3RlcmVkIGhvdGtleSB2ZWN0b3Jz IGFuZCBmdW5jdGlvbnMgICovKQorICAodm9pZCkKK3sKKyAgcmV0dXJuIG5zX3JlZ2lzdGVyZWRf aG90a2V5czsKK30KKworREVGVU4gKCJucy1jbGVhci1ob3RrZXlzIiwgRm5zX2NsZWFyX2hvdGtl eXMsCisgICAgICAgU25zX2NsZWFyX2hvdGtleXMsIDAsIDAsIDAsCisgICAgICAgZG9jOiAvKiBV bmJpbmQgYWxsIGdsb2JhbCBob3RrZXlzICovKQorICAodm9pZCkKK3sKKyAgbnNfcmVnaXN0ZXJl ZF9ob3RrZXlzID0gUW5pbDsKKworICBuc19jbGVhcl9ob3RrZXlzKCk7CisKKyAgcmV0dXJuIFF0 OworfQorI2VuZGlmCisKIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKICAgICBDbGFzcyBpbXBsZW1l bnRhdGlvbnMKQEAgLTMxMzYsNiArMzMwMiwxMSBAQCAtIChMaXNwX09iamVjdClsaXNwU3RyaW5n CiAgIGRlZnN1YnIgKCZTbnNfc2V0X21vdXNlX2Fic29sdXRlX3BpeGVsX3Bvc2l0aW9uKTsKICAg ZGVmc3ViciAoJlNuc19tb3VzZV9hYnNvbHV0ZV9waXhlbF9wb3NpdGlvbik7CiAgIGRlZnN1YnIg KCZTbnNfc2hvd19jaGFyYWN0ZXJfcGFsZXR0ZSk7CisjaWZkZWYgTlNfSU1QTF9DT0NPQQorICBk ZWZzdWJyICgmU25zX2JpbmRfZ2xvYmFsX2hvdGtleSk7CisgIGRlZnN1YnIgKCZTbnNfc2hvd19i b3VuZF9ob3RrZXlzKTsKKyAgZGVmc3ViciAoJlNuc19jbGVhcl9ob3RrZXlzKTsKKyNlbmRpZgog ICBkZWZzdWJyICgmU3hfZGlzcGxheV9tbV93aWR0aCk7CiAgIGRlZnN1YnIgKCZTeF9kaXNwbGF5 X21tX2hlaWdodCk7CiAgIGRlZnN1YnIgKCZTeF9kaXNwbGF5X3NjcmVlbnMpOwpAQCAtMzE2MCw2 ICszMzMxLDEwIEBAIC0gKExpc3BfT2JqZWN0KWxpc3BTdHJpbmcKICAgZGVmc3ViciAoJlN4X3No b3dfdGlwKTsKICAgZGVmc3ViciAoJlN4X2hpZGVfdGlwKTsKIAorI2lmZGVmIE5TX0lNUExfQ09D T0EKKyAgc3RhdGljcHJvICgmbnNfcmVnaXN0ZXJlZF9ob3RrZXlzKTsKKyAgbnNfcmVnaXN0ZXJl ZF9ob3RrZXlzID0gUW5pbDsKKyNlbmRpZgogICBhc19zdGF0dXMgPSAwOwogICBhc19zY3JpcHQg PSBRbmlsOwogICBzdGF0aWNwcm8gKCZhc19zY3JpcHQpOwpkaWZmIC0tZ2l0IGEvc3JjL25zdGVy bS5oIGIvc3JjL25zdGVybS5oCmluZGV4IGYyOTI5OTNkOGYuLjJmOTE5ODc1M2MgMTAwNjQ0Ci0t LSBhL3NyYy9uc3Rlcm0uaAorKysgYi9zcmMvbnN0ZXJtLmgKQEAgLTEsNSArMSw1IEBACiAvKiBE ZWZpbml0aW9ucyBhbmQgaGVhZGVycyBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIE5lWFQvT3Blbi9H TlVzdGVwIEFQSS4KLSAgIENvcHlyaWdodCAoQykgMTk4OSwgMTk5MywgMjAwNSwgMjAwOC0yMDIw IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKyAgIENvcHlyaWdodCAoQykgMTk4OSwgMTk5Mywg MjAwNSwgMjAwOC0yMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKICAgIEluYy4KIAogVGhp cyBmaWxlIGlzIHBhcnQgb2YgR05VIEVtYWNzLgpAQCAtMzc5LDYgKzM3OSw3IEBAICNkZWZpbmUg TlNfRFJBV19UT19CVUZGRVIgMQogI2lmZGVmIE5TX0lNUExfQ09DT0EKICAgQk9PTCBzaG91bGRL ZWVwUnVubmluZzsKICAgQk9PTCBpc0ZpcnN0OworICBOU1N0YXR1c0l0ZW0gKnRoZUl0ZW07CiAj ZW5kaWYKICNpZmRlZiBOU19JTVBMX0dOVVNURVAKICAgQk9PTCBhcHBsaWNhdGlvbkRpZEZpbmlz aExhdW5jaGluZ0NhbGxlZDsKQEAgLTEyMzAsNiArMTIzMSwxMiBAQCAjZGVmaW5lIE5TQVBQX0RB VEEyX1JVTkZJTEVESUFMT0cgMTEKIGV4dGVybiB2b2lkIG5zX2luaXRfZXZlbnRzIChzdHJ1Y3Qg aW5wdXRfZXZlbnQgKik7CiBleHRlcm4gdm9pZCBuc19maW5pc2hfZXZlbnRzICh2b2lkKTsKIAor I2lmZGVmIE5TX0lNUExfQ09DT0EKK2V4dGVybiB1bnNpZ25lZCBuc19sb29rdXBfdmtfY29kZSAo Y2hhciAqa2V5KTsKK3R5cGVkZWYgZW51bSBOU0V2ZW50TW9kaWZpZXJGbGFncyBOU0V2ZW50TW9k aWZpZXJGbGFnczsKK2V4dGVybiB2b2lkIG5zX2JpbmRfZ2xvYmFsX2hvdGtleSAoZW51bSBOU0V2 ZW50TW9kaWZpZXJGbGFncyBtb2RpZmllciwgdW5zaWduZWQgdmtleSwgTGlzcF9PYmplY3QgbGlz cGZuKTsKK2V4dGVybiB2b2lkIG5zX2NsZWFyX2hvdGtleXMgKHZvaWQpOworI2VuZGlmCiAKICNp ZmRlZiBOU19JTVBMX0dOVVNURVAKIGV4dGVybiBjaGFyIGdudXN0ZXBfYmFzZV92ZXJzaW9uW107 ICAvKiB2ZXJzaW9uIHRyYWNraW5nICovCmRpZmYgLS1naXQgYS9zcmMvbnN0ZXJtLm0gYi9zcmMv bnN0ZXJtLm0KaW5kZXggZmEzODM1MGEyZi4uMDNhODFlY2IwYSAxMDA2NDQKLS0tIGEvc3JjL25z dGVybS5tCisrKyBiL3NyYy9uc3Rlcm0ubQpAQCAtMSw2ICsxLDYgQEAKIC8qIE5lWFQvT3Blbi9H TlVzdGVwIC8gbWFjT1MgY29tbXVuaWNhdGlvbiBtb2R1bGUuICAgICAgLSotIGNvZGluZzogdXRm LTggLSotCiAKLUNvcHlyaWdodCAoQykgMTk4OSwgMTk5My0xOTk0LCAyMDA1LTIwMDYsIDIwMDgt MjAyMCBGcmVlIFNvZnR3YXJlCitDb3B5cmlnaHQgKEMpIDE5ODksIDE5OTMtMTk5NCwgMjAwNS0y MDA2LCAyMDA4LTIwMjEgRnJlZSBTb2Z0d2FyZQogRm91bmRhdGlvbiwgSW5jLgogCiBUaGlzIGZp bGUgaXMgcGFydCBvZiBHTlUgRW1hY3MuCkBAIC05NzIxLDYgKzk3MjEsMTA2IEBAIENvbnZlcnQg YW4gWCBmb250IG5hbWUgKFhMRkQpIHRvIGFuIE5TIGZvbnQgbmFtZS4KICAgcmV0dXJuIHJldDsK IH0KIAorI2lmZGVmIE5TX0lNUExfQ09DT0EKKworLyogTG9va3VwIHZpcnR1YWwga2V5Y29kZSBm cm9tIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIG5hbWUgb2YgYQorICAgbm9uLWFzY2lpIGtleXN0 cm9rZSBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIHZpcnR1YWwga2V5LCB1c2luZworICAgbGlzcHlf ZnVuY3Rpb25fa2V5cy4gICovCisvKiBBZGFwdGVkIGZyb20gdzMyZm5zLmMgKi8KK3Vuc2lnbmVk Cituc19sb29rdXBfdmtfY29kZSAoY2hhciAqa2V5KQoreworICB1bnNpZ25lZCBpOworICBjb25z dCB1bnNpZ25lZCBsYXN0X2tleXN5bSA9IEFSUkFZRUxUUyAoY29udmVydF9uc190b19YX2tleXN5 bSk7CisgIHVuc2lnbmVkIGtleXN5bTsKKworICAvLyBhZGFwdGVkIGZyb20gbnNfY29udmVydF9r ZXkKKyAgZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKQorICAgIGlmIChsaXNweV9mdW5jdGlvbl9r ZXlzW2ldCisgICAgICAgICYmIHN0cmNtcCAobGlzcHlfZnVuY3Rpb25fa2V5c1tpXSwga2V5KSA9 PSAwKQorICAgICAgZm9yIChrZXlzeW0gPSAxOyBrZXlzeW0gPCBsYXN0X2tleXN5bTsga2V5c3lt ICs9IDIpCisgICAgICAgIGlmIChpID09IGNvbnZlcnRfbnNfdG9fWF9rZXlzeW1ba2V5c3ltXSkK KyAgICAgICAgICByZXR1cm4gY29udmVydF9uc190b19YX2tleXN5bVtrZXlzeW0tMV07CisKKyAg LyogQWxwaGFudW1lcmljcyBtYXAgdG8gdGhlbXNlbHZlcy4gICovCisgIGlmIChrZXlbMV0gPT0g MCkKKyAgICB7CisgICAgICBpZiAoKGtleVswXSA+PSAnQScgJiYga2V5WzBdIDw9ICdaJykKKyAg ICAgICAgICB8fCAoa2V5WzBdID49ICcwJyAmJiBrZXlbMF0gPD0gJzknKSkKKyAgICAgICAgcmV0 dXJuIGtleVswXTsKKyAgICAgIGlmIChrZXlbMF0gPj0gJ2EnICYmIGtleVswXSA8PSAneicpCisg ICAgICAgIHJldHVybiB0b3VwcGVyKGtleVswXSk7CisgICAgfQorCisgIHJldHVybiAtMTsKK30K KworLy8gU3RvcmUgZXZlbnQgaGFuZGxlciBldmVudCBpZHMuCitOU011dGFibGVBcnJheSAqaG90 a2V5X2lkczsKKworLyogbnNfYmluZF9nbG9iYWxfaG90a2V5IHJlZ2lzdGVycyB0aGUga2V5IGNv bWJvIHdpdGggdGhlIE9TLCBhbmQgd2hlbiB0aGUKKyAgIGtleSBjb21iaW5hdGlvbiBpcyBwcmVz c2VkLCBzZW5kcyBhIEdMT0JBTF9IT1RLRVlfRVZFTlQuCisgICBBZnRlciByZWdpc3RlcmluZyB0 aGUgaG90a2V5LCB0aGUgaG90a2V5IGFuZCBmdW5jdGlvbiBhcmUgYWRkZWQgdG8KKyAgIGhvdGtl eV9pZHMuCisgICBUaGUga2V5IGNvbWJvIGVpdGhlciBiZSBhIHR3by1rZXkgY29tYm8sIGJlZ2lu aW5pbmcgd2l0aCBvbmUgb2YKKyAgIE5TRXZlbnRNb2RpZmllckZsYWdzLCBvciBhIHNpbmdsZSBm dW5jdGlvbiBrZXkuCisgICBJZiBFbWFjcyBpcyBub3Qgc2V0IGFzICJ0cnVzdGVkIiBpbiBQcml2 YWN5IHNldHRpbmdzLCByZXR1cm4gYW4gZXJyb3IuCisgICAqLwordm9pZAorbnNfYmluZF9nbG9i YWxfaG90a2V5IChOU0V2ZW50TW9kaWZpZXJGbGFncyBtb2RpZmllciwgdW5zaWduZWQgdmtleSwK KyAgICAgICAgICAgICAgICAgICAgICAgTGlzcF9PYmplY3QgbGlzcGZuKQoreworICBpZCBoYW5k bGVyOworCisgIC8vIENoZWNrIGlmIEVtYWNzIGlzIHRydXN0ZWQuCisgIE5TRGljdGlvbmFyeSAq b3B0aW9ucyA9IEB7KF9fYnJpZGdlIGlkKSBrQVhUcnVzdGVkQ2hlY2tPcHRpb25Qcm9tcHQ6IEBZ RVN9OworICBCb29sZWFuIHRydXN0ZWQgPSBBWElzUHJvY2Vzc1RydXN0ZWRXaXRoT3B0aW9ucygo Q0ZEaWN0aW9uYXJ5UmVmKW9wdGlvbnMpOworCisgIGlmIChob3RrZXlfaWRzID09IG5pbCkKKyAg ICBob3RrZXlfaWRzID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTog MV07CisKKyAgaWYgKHRydXN0ZWQpCisgICAgeworICAgICAgaGFuZGxlciA9IFtOU0V2ZW50Cisg ICAgICAgICAgICAgICAgICBhZGRHbG9iYWxNb25pdG9yRm9yRXZlbnRzTWF0Y2hpbmdNYXNrOiAo TlNFdmVudE1hc2tLZXlEb3duKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaGFuZGxlcjpeKE5TRXZlbnQgKmV2ZW50KQorICAgICAgICAgICAgICAgICAg eworICAgICAgICAgICAgICAgICAgICBpZiAoKGV2ZW50Lm1vZGlmaWVyRmxhZ3MgJgorICAgICAg ICAgICAgICAgICAgICAgICAgIE5TRXZlbnRNb2RpZmllckZsYWdEZXZpY2VJbmRlcGVuZGVudEZs YWdzTWFzaykgPT0gbW9kaWZpZXIpCisgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKFtbZXZlbnQuY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcGl0YWxpemVkU3RyaW5nXQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcmFjdGVyQXRJbmRleDowXSA9PSB2a2V5KQor ICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IGZyYW1lICplbWFjc2ZyYW1lID0gU0VMRUNURURfRlJBTUUgKCk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTlNFdmVudCAqdGhlRXZlbnQgPSBbTlNBcHAgY3VycmVudEV2ZW50 XTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtYWNzX2V2ZW50LT5raW5kID0gR0xP QkFMX0hPVEtFWV9FVkVOVDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbWFjc19ldmVu dC0+YXJnID0gbGlzcGZuOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWX1RSQUlMRVIo dGhlRXZlbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgICAgfV07CisKKyAgICAgIFtob3RrZXlfaWRzIGFkZE9i amVjdDogaGFuZGxlcl07CisgICAgfQorICBlbHNlCisgICAgZXJyb3IoIkVtYWNzIGFwcCBpc24n dCB0cnVzdGVkLiBFbmFibGUgaW4gc3lzdGVtIHNldHRpbmdzLiIpOworfQorCisvKiBDbGVhciBs aXN0IG9mIGdsb2JhbCBob3RrZXlzLiBSZW1vdmUgdGhlbSB3aXRoIHRoZSBPUyBhbmQgY2xlYXIg dGhlbQorICAgd2l0aGluIEVtYWNzLiAqLwordm9pZAorbnNfY2xlYXJfaG90a2V5cyAodm9pZCkK K3sKKworICBmb3IgKGlkIGhvdGtleSBpbiBob3RrZXlfaWRzKSB7CisgICAgW05TRXZlbnQgcmVt b3ZlTW9uaXRvcjogaG90a2V5XTsKKyAgfQorCisgIFtob3RrZXlfaWRzIHJlbW92ZUFsbE9iamVj dHNdOworfQorI2VuZGlmCiAKIHZvaWQKIHN5bXNfb2ZfbnN0ZXJtICh2b2lkKQpAQCAtOTkzNSw2 ICsxMDAzNSw3IEBAIE5pbCBtZWFucyB1c2UgZnVsbHNjcmVlbiB0aGUgb2xkICg8IDEwLjcpIHdh eS4gIFRoZSBvbGQgd2F5IHdvcmtzIGJldHRlciB3aXRoCiAgIERFRlNZTSAoUUNtb3VzZSwgIjpt b3VzZSIpOwogCiAjaWZkZWYgTlNfSU1QTF9DT0NPQQorICBERUZTWU0gKFFnbG9iYWxfaG90a2V5 X2hvb2ssICJnbG9iYWwtaG90a2V5LWhvb2siKTsKICAgRnByb3ZpZGUgKFFjb2NvYSwgUW5pbCk7 CiAgIHN5bXNfb2ZfbWFjZm9udCAoKTsKICNlbHNlCmRpZmYgLS1naXQgYS9zcmMvdGVybWhvb2tz LmggYi9zcmMvdGVybWhvb2tzLmgKaW5kZXggZDE4Yjc1MGMzYS4uZGI1MGE4OWY2ZCAxMDA2NDQK LS0tIGEvc3JjL3Rlcm1ob29rcy5oCisrKyBiL3NyYy90ZXJtaG9va3MuaApAQCAtMSw2ICsxLDYg QEAKIC8qIFBhcmFtZXRlcnMgYW5kIGRpc3BsYXkgaG9va3MgZm9yIHRlcm1pbmFsIGRldmljZXMu CiAKLUNvcHlyaWdodCAoQykgMTk4NS0xOTg2LCAxOTkzLTE5OTQsIDIwMDEtMjAyMCBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sCitDb3B5cmlnaHQgKEMpIDE5ODUtMTk4NiwgMTk5My0xOTk0LCAy MDAxLTIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAogSW5jLgogCiBUaGlzIGZpbGUgaXMg cGFydCBvZiBHTlUgRW1hY3MuCkBAIC0xODgsNiArMTg4LDExIEBAICNkZWZpbmUgRU1BQ1NfVEVS TUhPT0tTX0gKICAgVVNFUl9TSUdOQUxfRVZFTlQsCQkvKiBBIHVzZXIgc2lnbmFsLgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlIGlzIGEgbnVtYmVyIGlkZW50aWZ5aW5n IGl0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCBpbnRvIGxpc3B5 X3VzZXJfc2lnbmFscy4gICovCisjaWZkZWYgTlNfSU1QTF9DT0NPQQorICBHTE9CQUxfSE9US0VZ X0VWRU5ULCAgICAgICAgICAvKiBBbiBldmVudCBmb3Igd2hlbiBhIGhvdGtleSBpcyBwcmVzc2Vk CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHNpZGUgb2YgZW1hY3MgdGhh dCBpcyBzZXR1cCB0byBleGVjdXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFuIGVsaXNwIGZ1bmN0aW9uLiAgKi8KKyNlbmRpZgogCiAgIC8qIEhlbHAgZXZlbnRzLiAgTWVt YmVyIGBmcmFtZV9vcl93aW5kb3cnIG9mIHRoZSBpbnB1dF9ldmVudCBpcyB0aGUKICAgICAgZnJh bWUgb24gd2hpY2ggdGhlIGV2ZW50IG9jY3VycmVkLCBhbmQgbWVtYmVyIGBhcmcnIGNvbnRhaW5z Cg== --0000000000003bd51e05b80c28ce-- From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 04 12:09:48 2021 Received: (at 44973) by debbugs.gnu.org; 4 Jan 2021 17:09:48 +0000 Received: from localhost ([127.0.0.1]:60092 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kwTMa-0003ZG-IO for submit@debbugs.gnu.org; Mon, 04 Jan 2021 12:09:48 -0500 Received: from eggs.gnu.org ([209.51.188.92]:34718) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kwTMY-0003Yz-4G for 44973@debbugs.gnu.org; Mon, 04 Jan 2021 12:09:46 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:38713) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kwTMS-0001nN-Fh; Mon, 04 Jan 2021 12:09:40 -0500 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:2345 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kwTMI-000773-Sh; Mon, 04 Jan 2021 12:09:34 -0500 Date: Mon, 04 Jan 2021 19:09:19 +0200 Message-Id: <83h7nwbpds.fsf@gnu.org> From: Eli Zaretskii To: j@mremus.net In-Reply-To: Subject: Re: bug#44973: Add a macOS global hotkey function References: <874kkw9gmq.fsf@gnus.org> <87lfdrhj4e.fsf@gnus.org> <83mtxvi5lt.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 44973 Cc: 44973@debbugs.gnu.org, larsi@gnus.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: j@mremus.net > Date: Sun, 3 Jan 2021 21:13:47 -0800 > Cc: Lars Ingebrigtsen , 44973@debbugs.gnu.org > > I used w32-register-hot-key as an example of another instance where emacs added > an OS-specific feature in order to provide a consistent user experience across > platforms. w32-register-hot-key allows a consistent UX across platforms _inside_Emacs_. Your changes, AFAIU, aims at using Emacs as a way to work around problems in the OS WM, not in Emacs running on that OS. So I'm still not sure we should install this. Lars, do you have an opinion on this? From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 05 03:25:38 2021 Received: (at 44973) by debbugs.gnu.org; 5 Jan 2021 08:25:38 +0000 Received: from localhost ([127.0.0.1]:40708 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kwhes-0004sH-BB for submit@debbugs.gnu.org; Tue, 05 Jan 2021 03:25:38 -0500 Received: from quimby.gnus.org ([95.216.78.240]:40870) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kwhep-0004s2-OD for 44973@debbugs.gnu.org; Tue, 05 Jan 2021 03:25:36 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=exy8rqYqiY3sLC7nlxvQQfQ4iyE66mqVrNFJL0KDEkA=; b=RT6FAfFR9vUnt7vm6cIkzzTMy2 dKz/am04za/RYMsxBZLyGnJYJ1p+AW6EaTmZYYA1WcCJ8ikElq+ld+VIGuJcdOoLn9GCOQCl9t4Pf AZZhRp1SvfeJq2gj3W1YerdTza3nha9yzIRd4x0tYBEdVyhOnhHzUuGINhBZfq7f0nd0=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kwhef-0006Wr-Ht; Tue, 05 Jan 2021 09:25:28 +0100 From: Lars Ingebrigtsen To: Eli Zaretskii Subject: Re: bug#44973: Add a macOS global hotkey function References: <874kkw9gmq.fsf@gnus.org> <87lfdrhj4e.fsf@gnus.org> <83mtxvi5lt.fsf@gnu.org> <83h7nwbpds.fsf@gnu.org> X-Now-Playing: Prince's _Around The World In A Day_: "The Ladder" Date: Tue, 05 Jan 2021 09:25:24 +0100 In-Reply-To: <83h7nwbpds.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 04 Jan 2021 19:09:19 +0200") Message-ID: <8735zf4wp7.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.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 @@CONTACT_ADDRESS@@ for details. Content preview: Eli Zaretskii writes: > w32-register-hot-key allows a consistent UX across platforms > _inside_Emacs_. Your changes, AFAIU, aims at using Emacs as a way to > work around problems in the OS WM, not in Emacs running on that [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 44973 Cc: 44973@debbugs.gnu.org, j@mremus.net X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: > w32-register-hot-key allows a consistent UX across platforms > _inside_Emacs_. Your changes, AFAIU, aims at using Emacs as a way to > work around problems in the OS WM, not in Emacs running on that OS. > > So I'm still not sure we should install this. > > Lars, do you have an opinion on this? Since this brings up the Macos version of Emacs into feature parity with what you can do in GNU/Linux and Windows, I don't have any objections to including it. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 05 03:27:07 2021 Received: (at 44973) by debbugs.gnu.org; 5 Jan 2021 08:27:07 +0000 Received: from localhost ([127.0.0.1]:40712 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kwhgI-0004ue-PP for submit@debbugs.gnu.org; Tue, 05 Jan 2021 03:27:06 -0500 Received: from quimby.gnus.org ([95.216.78.240]:40894) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kwhgH-0004u8-T5 for 44973@debbugs.gnu.org; Tue, 05 Jan 2021 03:27:06 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=Oj6ZUYMGnElR23OfvGOtcdq2FHiF3tM/ukMgEh3ocqE=; b=oykhFARZQ4Eb8SRGNHzqSwRZuS JSP4PoxRn0JPLxcwK20GpNMYqvTbydWCmAlwUoKA7YKrxmbXyI3ydt0OAu0ElvvbGNoPvcVNIVqeI J+i2yq8Vm/xIro8C6JtSPVWVExsZnk8WoH5g3wgq71ABEw9/49bYIrfGLDRwck2qbZrw=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kwhg9-0006XD-H0; Tue, 05 Jan 2021 09:26:59 +0100 From: Lars Ingebrigtsen To: Eli Zaretskii Subject: Re: bug#44973: Add a macOS global hotkey function References: <874kkw9gmq.fsf@gnus.org> <87lfdrhj4e.fsf@gnus.org> <83mtxvi5lt.fsf@gnu.org> <83h7nwbpds.fsf@gnu.org> <8735zf4wp7.fsf@gnus.org> Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAD1BMVEWEfIC6u78+ZphW S0b///8R7sS6AAAAAWJLR0QEj2jZUQAAAAd0SU1FB+UBBQgDAzzUqtIAAAGpSURBVDjLjZTtlesg DEQHaAA2DWBoAFv99/ZmBNjOO/tjlThgXST0AQFKDvrGRgm5NU1KKVhP+Wnt0DhXtEplRpCiVR9K qU5Qbsl8iQ3S/twgy9WWPoIJxEM+2wtcZ49oBYrlLWkEgf/lyGZIw8HaknkoBwKDgxUVZ5nhZ4Fx 4dYz3FY52CC4BuIDaMTkcQOvBSJqAViEhAcwz6rRa4Ji2oSLPLsaApgsn4GUBOQcWPXTUqaXmcas 1a6YnORMgyNvVasVrvdoTV7YPez3LeypLGIXGH1irYJLbAq8RzuTe1nA0KbnqzOYBYIANd0dw/YQ UASsD+v3vinQ6MPN5+sfwICNCa4+weX662i3xbNacvQvV49UxnPiF6ACneEBaVcrfAYh8/gqHrvG j6kR365GtKsmKyG/wUg6BFFdzaM8II0xk2FXQYB0++fUwVkSzXTnuu3mREKeW2MqKfqNw+4O1fxl 5f2WNrijMVsqk7KAE22ngf0TwLq+i+iocaLD3F7EofYK2+JFuIeafoP2AD+1D3iI/lvwuuHbWSh+ 3F5XfwMafL7AIkEt/wcFRn+kRWTuRAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMS0wMS0wNVQwODow MzowMiswMDowMJCkJjsAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjEtMDEtMDVUMDg6MDM6MDIrMDA6 MDDh+Z6HAAAAAElFTkSuQmCC X-Now-Playing: Prince's _Around The World In A Day_: "Temptation" Date: Tue, 05 Jan 2021 09:26:56 +0100 In-Reply-To: <8735zf4wp7.fsf@gnus.org> (Lars Ingebrigtsen's message of "Tue, 05 Jan 2021 09:25:24 +0100") Message-ID: <87y2h73i27.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.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 @@CONTACT_ADDRESS@@ for details. Content preview: Lars Ingebrigtsen writes: > Since this brings up the Macos version of Emacs into feature parity with > what you can do in GNU/Linux and Windows, I don't have any objections to > including it. Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 44973 Cc: 44973@debbugs.gnu.org, j@mremus.net X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Lars Ingebrigtsen writes: > Since this brings up the Macos version of Emacs into feature parity with > what you can do in GNU/Linux and Windows, I don't have any objections to > including it. (There's still the issue of code blocks, though -- we're not accepting those until gcc supports those, I think?) -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 05 10:19:37 2021 Received: (at 44973) by debbugs.gnu.org; 5 Jan 2021 15:19:38 +0000 Received: from localhost ([127.0.0.1]:42436 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kwo7V-0008QT-KZ for submit@debbugs.gnu.org; Tue, 05 Jan 2021 10:19:37 -0500 Received: from eggs.gnu.org ([209.51.188.92]:59896) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kwo7U-0008QD-9R for 44973@debbugs.gnu.org; Tue, 05 Jan 2021 10:19:36 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:35244) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kwo7O-0002I4-VD; Tue, 05 Jan 2021 10:19:30 -0500 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:3216 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kwnt9-0002hR-U3; Tue, 05 Jan 2021 10:04:50 -0500 Date: Tue, 05 Jan 2021 17:04:42 +0200 Message-Id: <83mtxna0hh.fsf@gnu.org> From: Eli Zaretskii To: Lars Ingebrigtsen In-Reply-To: <87y2h73i27.fsf@gnus.org> (message from Lars Ingebrigtsen on Tue, 05 Jan 2021 09:26:56 +0100) Subject: Re: bug#44973: Add a macOS global hotkey function References: <874kkw9gmq.fsf@gnus.org> <87lfdrhj4e.fsf@gnus.org> <83mtxvi5lt.fsf@gnu.org> <83h7nwbpds.fsf@gnu.org> <8735zf4wp7.fsf@gnus.org> <87y2h73i27.fsf@gnus.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 44973 Cc: 44973@debbugs.gnu.org, j@mremus.net X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Lars Ingebrigtsen > Cc: j@mremus.net, 44973@debbugs.gnu.org > Date: Tue, 05 Jan 2021 09:26:56 +0100 > > Lars Ingebrigtsen writes: > > > Since this brings up the Macos version of Emacs into feature parity with > > what you can do in GNU/Linux and Windows, I don't have any objections to > > including it. > > (There's still the issue of code blocks, though -- we're not accepting > those until gcc supports those, I think?) Right. From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 05 10:19:43 2021 Received: (at 44973) by debbugs.gnu.org; 5 Jan 2021 15:19:43 +0000 Received: from localhost ([127.0.0.1]:42439 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kwo7a-0008Qk-Ux for submit@debbugs.gnu.org; Tue, 05 Jan 2021 10:19:43 -0500 Received: from eggs.gnu.org ([209.51.188.92]:59948) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kwo7Z-0008QM-2J for 44973@debbugs.gnu.org; Tue, 05 Jan 2021 10:19:41 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:35343) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kwo7T-0004kL-TN; Tue, 05 Jan 2021 10:19:35 -0500 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:3194 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kwnsp-0001of-9b; Tue, 05 Jan 2021 10:04:29 -0500 Date: Tue, 05 Jan 2021 17:04:21 +0200 Message-Id: <83o8i3a0i2.fsf@gnu.org> From: Eli Zaretskii To: Lars Ingebrigtsen In-Reply-To: <8735zf4wp7.fsf@gnus.org> (message from Lars Ingebrigtsen on Tue, 05 Jan 2021 09:25:24 +0100) Subject: Re: bug#44973: Add a macOS global hotkey function References: <874kkw9gmq.fsf@gnus.org> <87lfdrhj4e.fsf@gnus.org> <83mtxvi5lt.fsf@gnu.org> <83h7nwbpds.fsf@gnu.org> <8735zf4wp7.fsf@gnus.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 44973 Cc: 44973@debbugs.gnu.org, j@mremus.net X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Lars Ingebrigtsen > Cc: j@mremus.net, 44973@debbugs.gnu.org > Date: Tue, 05 Jan 2021 09:25:24 +0100 > > Eli Zaretskii writes: > > > w32-register-hot-key allows a consistent UX across platforms > > _inside_Emacs_. Your changes, AFAIU, aims at using Emacs as a way to > > work around problems in the OS WM, not in Emacs running on that OS. > > > > So I'm still not sure we should install this. > > > > Lars, do you have an opinion on this? > > Since this brings up the Macos version of Emacs into feature parity with > what you can do in GNU/Linux and Windows, I don't have any objections to > including it. Then I guess we can install it (once the other problem is solved). From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 06 00:02:39 2021 Received: (at 44973) by debbugs.gnu.org; 6 Jan 2021 05:02:39 +0000 Received: from localhost ([127.0.0.1]:43208 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kx0xz-0002iD-Er for submit@debbugs.gnu.org; Wed, 06 Jan 2021 00:02:39 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35954) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kx0xx-0002i0-Jo for 44973@debbugs.gnu.org; Wed, 06 Jan 2021 00:02:38 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:52636) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kx0xs-0004W6-4u; Wed, 06 Jan 2021 00:02:32 -0500 Received: from rms by fencepost.gnu.org with local (Exim 4.82) (envelope-from ) id 1kx0xp-0004AU-8y; Wed, 06 Jan 2021 00:02:29 -0500 Content-Type: text/plain; charset=Utf-8 From: Richard Stallman To: Eli Zaretskii In-Reply-To: <83h7nwbpds.fsf@gnu.org> (message from Eli Zaretskii on Mon, 04 Jan 2021 19:09:19 +0200) Subject: Re: bug#44973: Add a macOS global hotkey function References: <874kkw9gmq.fsf@gnus.org> <87lfdrhj4e.fsf@gnus.org> <83mtxvi5lt.fsf@gnu.org> <83h7nwbpds.fsf@gnu.org> Message-Id: Date: Wed, 06 Jan 2021 00:02:29 -0500 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 44973 Cc: 44973@debbugs.gnu.org, larsi@gnus.org, j@mremus.net X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: rms@gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > w32-register-hot-key allows a consistent UX across platforms > _inside_Emacs_. Your changes, AFAIU, aims at using Emacs as a way to > work around problems in the OS WM, not in Emacs running on that OS. That sure sounds like a MacOS-specific feature. If so, we should not include it in a GNU program. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 06 00:15:33 2021 Received: (at 44973) by debbugs.gnu.org; 6 Jan 2021 05:15:34 +0000 Received: from localhost ([127.0.0.1]:43217 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kx1AT-00030S-Lr for submit@debbugs.gnu.org; Wed, 06 Jan 2021 00:15:33 -0500 Received: from eggs.gnu.org ([209.51.188.92]:39068) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kx1AT-00030G-0b for 44973@debbugs.gnu.org; Wed, 06 Jan 2021 00:15:33 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:53308) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kx1AN-0002Q3-DK; Wed, 06 Jan 2021 00:15:27 -0500 Received: from rms by fencepost.gnu.org with local (Exim 4.82) (envelope-from ) id 1kx1AG-0005pC-HL; Wed, 06 Jan 2021 00:15:21 -0500 Content-Type: text/plain; charset=Utf-8 From: Richard Stallman To: Lars Ingebrigtsen In-Reply-To: <8735zf4wp7.fsf@gnus.org> (message from Lars Ingebrigtsen on Tue, 05 Jan 2021 09:25:24 +0100) Subject: Re: bug#44973: Add a macOS global hotkey function References: <874kkw9gmq.fsf@gnus.org> <87lfdrhj4e.fsf@gnus.org> <83mtxvi5lt.fsf@gnu.org> <83h7nwbpds.fsf@gnu.org> <8735zf4wp7.fsf@gnus.org> Message-Id: Date: Wed, 06 Jan 2021 00:15:20 -0500 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 44973 Cc: 44973@debbugs.gnu.org, eliz@gnu.org, j@mremus.net X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: rms@gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] You and Eli gave two analyses of the nature of this change: Eli: > w32-register-hot-key allows a consistent UX across platforms > _inside_Emacs_. Your changes, AFAIU, aims at using Emacs as a way to > work around problems in the OS WM, not in Emacs running on that OS. Lars: > Since this brings up the Macos version of Emacs into feature parity with > what you can do in GNU/Linux and Windows, If Lars is right, it is ok to install. If Eli is right, it should not be installed. So it's a matter of which of those two is right. I have no idea. But you can compare notes and figure out. Is it possible that, in some way, both are right? If so, this is a strange situation and worth deeper study. -- Dr Richard Stallman Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org)