GNU bug report logs - #79776
[patch] Add dark-mode-toggle-hook

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Ahmed Khanzada <me@HIDDEN>; Keywords: patch; Done: Eli Zaretskii <eliz@HIDDEN>; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 79776-done <at> debbugs.gnu.org:


Received: (at 79776-done) by debbugs.gnu.org; 25 Nov 2025 20:31:37 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 25 15:31:36 2025
Received: from localhost ([127.0.0.1]:42297 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vNzhF-0004cm-4u
	for submit <at> debbugs.gnu.org; Tue, 25 Nov 2025 15:31:36 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:39828)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vMlLK-0007ge-F7
 for 79776-done <at> debbugs.gnu.org; Sat, 22 Nov 2025 05:59:51 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1vMlL7-0005QA-Uc; Sat, 22 Nov 2025 05:59:37 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=zAmXBY6re4cXtuE+0584qgEE/iiRyhMVO8Br/nP2b1o=; b=mPqeyYwd6Rg4
 BldoYo5aZyaynyP+Fjn08tF4IVBo2YVixUNoIJNAnMb9ntRtwqJIdpoZFHyxBX5gOiAB/PVrZhIbI
 ItTRXVz/PwYxpPlSViA+b01nzSQdQIpjTNEm8clTAv7NOTbriEjUi22Jz0+pD5GrxOzpIGN1WJ1ls
 8+S65HNiTxwinWdNHITz1PJMqJcrW6pQJRyIKH8i6cdi8rAspL58ANqypA1jjlfixCkhFhyE3GOoC
 oS+xt6Soj/20zAQZIpXGeaMuk+dm36cIgPjdlC3M00++DKX7ZCx6I+GQwwJdtHamXs0oeQTHhny8+
 woKErxh+WAI0Zb58oHa5nw==;
Date: Sat, 22 Nov 2025 12:59:28 +0200
Message-Id: <86h5umfi3z.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Ahmed Khanzada <me@HIDDEN>
In-Reply-To: <0f004754-f311-44e9-9fb6-3016ebd1c66a@HIDDEN> (message from
 Ahmed Khanzada on Sun, 16 Nov 2025 20:25:37 -0800)
Subject: Re: bug#79776: [patch] Add dark-mode-toggle-hook
References: <445273f7-311a-4067-8e8f-f90006b80b0a@HIDDEN>
 <86o6pfd1af.fsf@HIDDEN> <4a562e21-4c1e-4405-b3db-930b8e2469a4@HIDDEN>
 <86ldk7oah6.fsf@HIDDEN> <0f004754-f311-44e9-9fb6-3016ebd1c66a@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79776-done
Cc: 79776-done <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Sun, 16 Nov 2025 20:25:37 -0800
> Cc: 79776 <at> debbugs.gnu.org
> From: Ahmed Khanzada <me@HIDDEN>
> 
> New patch attached with updates.
> 
> I settled on changing "toggle" to "set" rather than "change" but if you
> prefer "change", I can do that as well.
> 
> In reality, what is happening is the desktop environment is choosing to
> set a theme for a specific window / application, so I find this more
> accurate.
> 
> However, one could make the argument that due to the "separation of
> concerns" that fundamentally how Emacs experiences this is a "change".
> 
> Although the very first time this occurs (albeit occurring before hooks
> are loaded) it is more of a "set" than a "change".

Thanks, I've now installed this on the master branch, and I'm closing
the bug.




Notification sent to Ahmed Khanzada <me@HIDDEN>:
bug acknowledged by developer. Full text available.
Reply sent to Eli Zaretskii <eliz@HIDDEN>:
You have taken responsibility. Full text available.

Message received at 79776 <at> debbugs.gnu.org:


Received: (at 79776) by debbugs.gnu.org; 17 Nov 2025 04:25:48 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Nov 16 23:25:48 2025
Received: from localhost ([127.0.0.1]:48297 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vKqoF-0006ln-Fg
	for submit <at> debbugs.gnu.org; Sun, 16 Nov 2025 23:25:48 -0500
Received: from fout-a5-smtp.messagingengine.com ([103.168.172.148]:55931)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <me@HIDDEN>) id 1vKqoC-0006lT-QK
 for 79776 <at> debbugs.gnu.org; Sun, 16 Nov 2025 23:25:45 -0500
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfout.phl.internal (Postfix) with ESMTP id 49859EC03AF;
 Sun, 16 Nov 2025 23:25:39 -0500 (EST)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-04.internal (MEProxy); Sun, 16 Nov 2025 23:25:39 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enzu.ru; h=cc:cc
 :content-type:content-type:date:date:from:from:in-reply-to
 :in-reply-to:message-id:mime-version:references:reply-to:subject
 :subject:to:to; s=fm1; t=1763353539; x=1763439939; bh=LmPghgggRX
 N0El6V6jwzIIOP0kZmZ4aKVD2t3oT2+2I=; b=iiuzKL6+f97HWKxHQ8broFSV5e
 OBT+7oUDYSFlojfuW4jSMfBM5HPfSoWYvI1nQtFmCDTlj/0TPN/tGOy1ZDhbKpJd
 E19ataYyuq+ySaiLvuEtx+jw/D/yoG4pXvaFGXlGMxZFExm+iRVIg/TF6hM58y6V
 I7IfY7rQnkPdqHZ9IjSSyw2UfPoGJyyj4Q4UUAPcl6KmpZ9aSN6XTUj4WT+bW717
 Kuf+rMtcDn5VTOuio+6EbW56sl2a2II9cUr/2aJ3hqdJWqKrQZ5fmQ9nLxv/vh8T
 MchBsxu20eN870OiTws2YSCcsYENxw4cuZQ1QMU548vYPQCtGYx62edC8hBw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-type:content-type:date:date
 :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
 :message-id:mime-version:references:reply-to:subject:subject:to
 :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=
 1763353539; x=1763439939; bh=LmPghgggRXN0El6V6jwzIIOP0kZmZ4aKVD2
 t3oT2+2I=; b=z0L0HvbjSEo3t0lndHUO53adwOLOKeshWjZqLk8e8suB48crQvO
 zproHam0d4dumXkT/VNnG7hXN3ZWF5ItOa41PnEvOAMBAzxgpxbpQo/HR2lqFCOC
 018+On7p9krfFPcUeZkiiBtKouqv5vEvHYUSySNsMcd62jcU6wuk+XF5Z7mY19rB
 E811/kCn5M6upWdVWTek6EQWZYpHwwlWj/1AbeSULN3vxOaTBjYeAnEC4b2p8Nu9
 TL3yS6oPWSO8koFJWBz9NpQ24yZz8E6AfcwsiZnQBnTAFEuunl/Gy8lApWocrj3V
 MoOkwjv/8qXgdBdgsh9+2yVQRrn34zR4dGg==
X-ME-Sender: <xms:wqMaaTn_BzKWwfnS4xcqp2blF3o96auHVpA_zcH_0HRUgn_MFMUyNQ>
 <xme:wqMaac2A1Auqc_BxIQP7ShSar2WHP98MbjFq-Pr35HXTFoNBjph_LLPViMTZ1B2wt
 CS_IYf60fb5NO8fW5aKcXCo99QUo8EfX2C2BcAbkuWBNvtF3AcCzO99>
X-ME-Received: <xmr:wqMaaXT7d6yFftSQv_KSYQIyJNhLvMez74711EFTj27M1GvZ5sPYD5bkxCSOmv8OLIE82Q>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvudejhedtucetufdoteggodetrf
 dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
 rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
 gurheptgfkffggfgfuvfevfhfhjgesmhdtreertddvjeenucfhrhhomheptehhmhgvugcu
 mfhhrghniigruggruceomhgvsegvnhiiuhdrrhhuqeenucggtffrrghtthgvrhhnpedtke
 evieeggfehteejledthffhgeefleelheehvdegjeelieelveefieethfevtdenucevlhhu
 shhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmvgesvghniihurd
 hruhdpnhgspghrtghpthhtohepvddpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohep
 vghlihiisehgnhhurdhorhhgpdhrtghpthhtohepjeeljeejieesuggvsggsuhhgshdrgh
 hnuhdrohhrgh
X-ME-Proxy: <xmx:wqMaaWuRyslyBpa7-5miLghcRh6EyssQu17KPIFaxg7sf5sk64GV5Q>
 <xmx:wqMaaUaKUKzZw3i87u_GB0_XvyEeokSt_ZxiLUI3nqZXwx5RoYUuGA>
 <xmx:wqMaaTuvpYRTLcmH0sjlCGEA6xxjXlVQNVnZpJlTFLcEDFen7DghXQ>
 <xmx:wqMaaeFQ8-XmPQN2JzexAz8qFsdapR9n-GGm3a4ag9hXQQbX7rLHPA>
 <xmx:w6MaaV63yMddl_M2lX5yXWJ2BWsA9t4hYD2sGhBEe5w_UoXb0lZO2-_U>
Feedback-ID: i93f64880:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun,
 16 Nov 2025 23:25:38 -0500 (EST)
Content-Type: multipart/mixed; boundary="------------VF59wp0HZhi89lrAoGuQNPHf"
Message-ID: <0f004754-f311-44e9-9fb6-3016ebd1c66a@HIDDEN>
Date: Sun, 16 Nov 2025 20:25:37 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#79776: [patch] Add dark-mode-toggle-hook
To: Eli Zaretskii <eliz@HIDDEN>
References: <445273f7-311a-4067-8e8f-f90006b80b0a@HIDDEN>
 <86o6pfd1af.fsf@HIDDEN> <4a562e21-4c1e-4405-b3db-930b8e2469a4@HIDDEN>
 <86ldk7oah6.fsf@HIDDEN>
Content-Language: en-US
From: Ahmed Khanzada <me@HIDDEN>
In-Reply-To: <86ldk7oah6.fsf@HIDDEN>
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 79776
Cc: 79776 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

This is a multi-part message in MIME format.
--------------VF59wp0HZhi89lrAoGuQNPHf
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

New patch attached with updates.

I settled on changing "toggle" to "set" rather than "change" but if you
prefer "change", I can do that as well.

In reality, what is happening is the desktop environment is choosing to
set a theme for a specific window / application, so I find this more
accurate.

However, one could make the argument that due to the "separation of
concerns" that fundamentally how Emacs experiences this is a "change".

Although the very first time this occurs (albeit occurring before hooks
are loaded) it is more of a "set" than a "change".

Ahmed

On 11/15/25 2:29 AM, Eli Zaretskii wrote:
>> Date: Wed, 12 Nov 2025 20:16:23 -0800
>> Cc: 79776 <at> debbugs.gnu.org
>> From: Ahmed Khanzada <me@HIDDEN>
>>
>> I have made a few changes to the patch:
>>
>> - I have generalized this feature from dark-mode-p to toolkit-theme
>>
>> - I have added a variable that stores the last result of a toolkit theme
>> read, making this value available on boot
>>
>> - I have moved Elisp calling to the appropriate thread on Windows via a
>> new message
>>
>> I am OK if the first time the Windows hooks are called if there are no
>> hooks to be called.
> LGTM on first sight.  Could some users of Emacs on Windows please test
> this patch and report back any observations and comments?
>
>> Lastly, given that I do not have a Windows development environment, I
>> cannot test the Windows code. I am willing to drop the Windows code and
>> just worry about the PGTK code, but I did think it was worth a try to do
>> a first draft of it for a Windows contributor, so that our
>> implementations would be cross-platform.
> Yes, thanks.
>
>> +---
>> +** toolkit-theme-toggle-functions called when dark mode is toggled.
>> +When the theme is set on PGTK or Win32 builds,
>                                     ^^^^^
> Please use "MS-Windows" here.  We don't like calling Windows a "win".
>
>> +'toolkit-theme-toggle-functions' is called. Result is stored in var
>                                              ^^
> Our conventions are to leave 2 spaces between sentences in comments,
> doc strings, and other documentation.
>
>> +'toolkit-theme' as either symbol `dark' or `light', but may be
>                                     ^^^^^^^^^^^^^^^^^
> We quote 'like this' in NEWS, not `like this'.
>
>> +(defvar toolkit-theme-toggle-functions nil
>> +  "Abnormal hook run when the system theme is toggled.
> I'd prefer toolkit-theme-change-functions (and a suitable change to
> the doc string), because "toggle" presumes only two states, which
> might not be true some day.
>
>> +Functions on this hook are called with the theme name as a symbol:
>> +`light' or `dark'.")
> I think we should document here that when the hook is called, the
> variable toolkit-theme is already set to the updated value.
>
>> --- a/src/gtkutil.c
>> +++ b/src/gtkutil.c
>> @@ -1475,6 +1475,16 @@ xg_update_dark_mode_for_all_displays (bool dark_mode_p)
>>  	 = gtk_settings_get_for_screen (screen);
>>         xg_set_gtk_theme_dark_mode (dark_mode_p, settings);
>>       }
>> +
>> +   Vtoolkit_theme = intern (dark_mode_p ? "dark" : "light");
> Since you defined symbols for these two values, you don't need to use
> 'intern', you could use Qdark and Qlight directly.
>
>> --- a/src/w32term.c
>> +++ b/src/w32term.c
>> @@ -6083,6 +6083,20 @@ w32_read_socket (struct terminal *terminal,
>>  	  check_visibility = 1;
>>  	  break;
>>  
>> +	case WM_EMACS_TOGGLE_TOOLKIT_THEME:
>> +	  {
>> +	    Vtoolkit_theme = intern (msg.msg.wParam ? "dark" : "light");
> Same here.
>
> Thanks.
--------------VF59wp0HZhi89lrAoGuQNPHf
Content-Type: text/x-patch; charset=UTF-8;
 name="0002-Add-toolkit-theme-and-toolkit-theme-set-functions.patch"
Content-Disposition: attachment;
 filename*0="0002-Add-toolkit-theme-and-toolkit-theme-set-functions.patch"
Content-Transfer-Encoding: base64

RnJvbSBlMzcyNjVhYjgzOWY0MDdiMjdjMDQzNWVhNjI1MjFlZWNhYjJlMWZkIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBaG1lZCBLaGFuemFkYSA8bWVAZW56dS5ydT4KRGF0
ZTogU3VuLCAxNiBOb3YgMjAyNSAyMDowODo1OSAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIEFk
ZCBgdG9vbGtpdC10aGVtZScgYW5kICd0b29sa2l0LXRoZW1lLXNldC1mdW5jdGlvbnMnCgoq
IGV0Yy9ORVdTOiBEb2N1bWVudCBgdG9vbGtpdC10aGVtZScgYW5kCid0b29sa2l0LXRoZW1l
LXNldC1mdW5jdGlvbnMnCiogbGlzcC9mcmFtZS5lbDogQWRkICd0b29sa2l0LXRoZW1lLXNl
dC1mdW5jdGlvbnMnCiogc3JjL2ZyYW1lLmM6IEFkZCBgdG9vbGtpdC10aGVtZScgRWxpc3Ag
dmFyaWFibGUKKiBzcmMvZ3RrdXRpbC5jOiAoeGdfdXBkYXRlX2RhcmtfbW9kZV9mb3JfYWxs
X2Rpc3BsYXlzKTogU2V0CmB0b29sa2l0LXRoZW1lJyBhbmQgY2FsbCAndG9vbGtpdC10aGVt
ZS1zZXQtZnVuY3Rpb25zJwoqIHNyYy93MzJmbnMuYzogKHczMl9hcHBseXRoZW1lKTogU2Vu
ZCBXTV9FTUFDU19TRVRfVE9PTEtJVF9USEVNRQptZXNzYWdlIHRvIExpc3AgdGhyZWFkLgoq
IHNyYy93MzJ0ZXJtLmg6IERlY2xhcmUgV01fRU1BQ1NfU0VUX1RPT0xLSVRfVEhFTUUKKiBz
cmMvdzMydGVybS5jOiAodzMyX3JlYWRfc29ja2V0KTogUmVjZWl2ZQpXTV9FTUFDU19TRVRf
VE9PTEtJVF9USEVNRSBtZXNzYWdlIGFuZCBzZXQgYHRvb2xraXQtdGhlbWUnIGFuZCBjYWxs
Cid0b29sa2l0LXRoZW1lLXNldC1mdW5jdGlvbnMnCi0tLQogZXRjL05FV1MgICAgICB8ICA3
ICsrKysrKysKIGxpc3AvZnJhbWUuZWwgfCAgNiArKysrKysKIHNyYy9mcmFtZS5jICAgfCAx
MyArKysrKysrKysrKysrCiBzcmMvZ3RrdXRpbC5jIHwgMTAgKysrKysrKysrKwogc3JjL3cz
MmZucy5jICB8ICAzICsrKwogc3JjL3czMnRlcm0uYyB8IDE0ICsrKysrKysrKysrKysrCiBz
cmMvdzMydGVybS5oIHwgIDEgKwogNyBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCsp
CgpkaWZmIC0tZ2l0IGEvZXRjL05FV1MgYi9ldGMvTkVXUwppbmRleCBlZDUwNDExOGU2Ni4u
MjNhMWZjOTYzZjggMTAwNjQ0Ci0tLSBhL2V0Yy9ORVdTCisrKyBiL2V0Yy9ORVdTCkBAIC0z
NDU5LDYgKzM0NTksMTMgQEAgRW1hY3Mgd2hlbiBidWlsdCB3aXRoIHRoZSBwdXJlIEdUSyB0
b29sa2l0IG5vdyByZXNwZWN0cyBkZXNrdG9wCiBkYXJrIGFuZCBsaWdodCBtb2RlcyBmb3Ig
ZHJhd2luZyBhIEdUSyB0b29sYmFyIGFuZCB3aWRnZXRzLAogYXV0b21hdGljYWxseSB0b2dn
bGluZyBiZXR3ZWVuIHRoZW0uCiAKKy0tLQorKiogdG9vbGtpdC10aGVtZS1zZXQtZnVuY3Rp
b25zIGNhbGxlZCB3aGVuIHRoZSB0b29sa2l0IHRoZW1lIGlzIHNldCBmb3IgRW1hY3MuCitX
aGVuIHRoZSB0aGVtZSBpcyBzZXQgb24gUEdUSyBvciBNUy1XaW5kb3dzIGJ1aWxkcywKKyd0
b29sa2l0LXRoZW1lLXNldC1mdW5jdGlvbnMnIGlzIGNhbGxlZC4gIFJlc3VsdCBpcyBzdG9y
ZWQgaW4gdmFyCisndG9vbGtpdC10aGVtZScgYXMgZWl0aGVyIHN5bWJvbCAnZGFyaycgb3Ig
J2xpZ2h0JywgYnV0IG1heSBiZQorZXhwYW5kZWQgdG8gZnV0dXJlIHRvb2xraXQtc3BlY2lm
aWMgc3ltYm9scyBpbiB0aGUgZnV0dXJlLgorCiAMCiAqIENoYW5nZXMgaW4gRW1hY3MgMzEu
MSBvbiBOb24tRnJlZSBPcGVyYXRpbmcgU3lzdGVtcwogCmRpZmYgLS1naXQgYS9saXNwL2Zy
YW1lLmVsIGIvbGlzcC9mcmFtZS5lbAppbmRleCBjNDhiMmM0YWYxZS4uMzA3MzEyZWY3MWEg
MTAwNjQ0Ci0tLSBhL2xpc3AvZnJhbWUuZWwKKysrIGIvbGlzcC9mcmFtZS5lbApAQCAtMTUy
OCw2ICsxNTI4LDEyIEBAIGZyYW1lLXRlcm1pbmFsLWRlZmF1bHQtYmctbW9kZQogOzsgICAg
ICAgICAgICAgICAgICAgICAgICAgOmJhY2tncm91bmQgKGZhY2UtYXR0cmlidXRlICdkZWZh
dWx0IDpmb3JlZ3JvdW5kKSkKIDs7ICAgICAoZnJhbWUtc2V0LWJhY2tncm91bmQtbW9kZSAo
c2VsZWN0ZWQtZnJhbWUpKSkpCiAKKyhkZWZ2YXIgdG9vbGtpdC10aGVtZS1zZXQtZnVuY3Rp
b25zIG5pbAorICAiQWJub3JtYWwgaG9vayBydW4gd2hlbiB0aGUgc3lzdGVtIHRoZW1lIGlz
IGFwcGxpZWQgdG8gRW1hY3MuCitGdW5jdGlvbnMgb24gdGhpcyBob29rIGFyZSBjYWxsZWQg
d2l0aCB0aGUgdGhlbWUgbmFtZSBhcyBhIHN5bWJvbDoKK2BsaWdodCcgb3IgYGRhcmsnLiAg
QnkgdGhlIHRpbWUgdGhlIGhvb2sgaXMgY2FsbGVkLCBgdG9vbGtpdC10aGVtZScgd2lsbAor
YWxyZWFkeSBiZSBzZXQgdG8gb25lIG9mIHRoZXNlIHZhbHVlcyBhcyB3ZWxsLiIpCisKIAwK
IDs7OzsgRnJhbWUgY29uZmlndXJhdGlvbnMKIApkaWZmIC0tZ2l0IGEvc3JjL2ZyYW1lLmMg
Yi9zcmMvZnJhbWUuYwppbmRleCA4MTEyYWY1YWNiYS4uNjU5MDA2NjVkZDUgMTAwNjQ0Ci0t
LSBhL3NyYy9mcmFtZS5jCisrKyBiL3NyYy9mcmFtZS5jCkBAIC03NjE4LDQgKzc2MTgsMTcg
QEAgZm9jdXMgKHdoZXJlIGEgZnJhbWUgaW1tZWRpYXRlbHkgbG9zZXMgZm9jdXMgd2hlbiBp
dCdzIGxlZnQgYnkgdGhlIG1vdXNlCiAgIEZwcm92aWRlIChRbW92ZV90b29sYmFyLCBRbmls
KTsKICNlbmRpZiAvKiAhSEFWRV9FWFRfVE9PTF9CQVIgfHwgVVNFX0dUSyAqLwogI2VuZGlm
IC8qIEhBVkVfV0lORE9XX1NZU1RFTSAqLworCisjaWYgKGRlZmluZWQoSEFWRV9QR1RLKSAm
JiBkZWZpbmVkKEhBVkVfR1NFVFRJTkdTKSkgfHwgZGVmaW5lZCAoV0lORE9XU05UKQorICBE
RUZWQVJfTElTUCAoInRvb2xraXQtdGhlbWUiLCBWdG9vbGtpdF90aGVtZSwKKyAgICAgICAg
ICAgICAgIGRvYzogLyogVGhlIGN1cnJlbnQgdG9vbGtpdCB0aGVtZS4KK0VpdGhlciB0aGUg
c3ltYm9sIGBsaWdodCcgb3IgdGhlIHN5bWJvbCBgZGFyaycsIHJlZmxlY3RpbmcgdGhlIHN5
c3RlbSdzCitjdXJyZW50IHRoZW1lIHByZWZlcmVuY2UuICBUaGlzIHZhcmlhYmxlIGlzIHVw
ZGF0ZWQgYXV0b21hdGljYWxseSB3aGVuCit0aGUgc3lzdGVtIHRoZW1lIGNoYW5nZXMuCisK
K1RoaXMgdmFyaWFibGUgaXMgb25seSBhdmFpbGFibGUgb24gUEdUSyBhbmQgTVMtV2luZG93
cyBidWlsZHMuICAqLyk7CisgIFZ0b29sa2l0X3RoZW1lID0gUW5pbDsKKyAgREVGU1lNIChR
bGlnaHQsICJsaWdodCIpOworICBERUZTWU0gKFFkYXJrLCAiZGFyayIpOworI2VuZGlmCiB9
CmRpZmYgLS1naXQgYS9zcmMvZ3RrdXRpbC5jIGIvc3JjL2d0a3V0aWwuYwppbmRleCAzMjlh
ZDZjMzNiNS4uNWU5ZTgyNTQ1MDYgMTAwNjQ0Ci0tLSBhL3NyYy9ndGt1dGlsLmMKKysrIGIv
c3JjL2d0a3V0aWwuYwpAQCAtMTQ3NSw2ICsxNDc1LDE2IEBAIHhnX3VwZGF0ZV9kYXJrX21v
ZGVfZm9yX2FsbF9kaXNwbGF5cyAoYm9vbCBkYXJrX21vZGVfcCkKIAkgPSBndGtfc2V0dGlu
Z3NfZ2V0X2Zvcl9zY3JlZW4gKHNjcmVlbik7CiAgICAgICAgeGdfc2V0X2d0a190aGVtZV9k
YXJrX21vZGUgKGRhcmtfbW9kZV9wLCBzZXR0aW5ncyk7CiAgICAgIH0KKworICAgVnRvb2xr
aXRfdGhlbWUgPSBkYXJrX21vZGVfcCA/IFFkYXJrIDogUWxpZ2h0OworICAgTGlzcF9PYmpl
Y3QgaG9vayA9IGludGVybiAoInRvb2xraXQtdGhlbWUtc2V0LWZ1bmN0aW9ucyIpOworICAg
aWYgKCFOSUxQIChGYm91bmRwIChob29rKSkpCisgICAgIHsKKyAgICAgICBMaXNwX09iamVj
dCBhcmdzWzJdOworICAgICAgIGFyZ3NbMF0gPSBob29rOworICAgICAgIGFyZ3NbMV0gPSBW
dG9vbGtpdF90aGVtZTsKKyAgICAgICBGcnVuX2hvb2tfd2l0aF9hcmdzICgyLCBhcmdzKTsK
KyAgICAgfQogfQogCiAvKiBTZXQgaW5pdGlhbCBkYXJrIG1vZGUgZm9yIGEgbmV3IGZyYW1l
IChjYWxsZWQgZHVyaW5nIGZyYW1lCmRpZmYgLS1naXQgYS9zcmMvdzMyZm5zLmMgYi9zcmMv
dzMyZm5zLmMKaW5kZXggM2ZjMGY1NTI0NGYuLmYwNjAwOTljZDkzIDEwMDY0NAotLS0gYS9z
cmMvdzMyZm5zLmMKKysrIGIvc3JjL3czMmZucy5jCkBAIC0yNDQwLDYgKzI0NDAsOCBAQCB3
MzJfYXBwbHl0aGVtZSAoSFdORCBod25kKQogCQkJCSAgICAmdzMyX2Rhcmttb2RlLCBzaXpl
b2YgKHczMl9kYXJrbW9kZSkpOwogCX0KICAgICB9CisgIFdQQVJBTSBkYXJrX21vZGVfcCA9
IHczMl9kYXJrbW9kZSA/IDEgOiAwOworICBQb3N0VGhyZWFkTWVzc2FnZSAoZHdNYWluVGhy
ZWFkSWQsIFdNX0VNQUNTX1NFVF9UT09MS0lUX1RIRU1FLCBkYXJrX21vZGVfcCwgMCk7CiB9
CiAKIHN0YXRpYyBIV05ECkBAIC0zNjQ1LDYgKzM2NDcsNyBAQCAjZGVmaW5lIE0obXNnKSB7
IG1zZywgIyBtc2cgfQogICAgICAgTSAoV01fQ0hBUiksCiAgICAgICBNIChXTV9FTUFDU19E
UkFHT1ZFUiksCiAgICAgICBNIChXTV9FTUFDU19EUk9QKSwKKyAgICAgIE0gKFdNX0VNQUNT
X1NFVF9UT09MS0lUX1RIRU1FKSwKICN1bmRlZiBNCiAgICAgICB7IDAsIDAgfQogICB9Owpk
aWZmIC0tZ2l0IGEvc3JjL3czMnRlcm0uYyBiL3NyYy93MzJ0ZXJtLmMKaW5kZXggYzllN2Fj
MzkzNzkuLjU2ZTFmY2E5MzMzIDEwMDY0NAotLS0gYS9zcmMvdzMydGVybS5jCisrKyBiL3Ny
Yy93MzJ0ZXJtLmMKQEAgLTYwODMsNiArNjA4MywyMCBAQCB3MzJfcmVhZF9zb2NrZXQgKHN0
cnVjdCB0ZXJtaW5hbCAqdGVybWluYWwsCiAJICBjaGVja192aXNpYmlsaXR5ID0gMTsKIAkg
IGJyZWFrOwogCisJY2FzZSBXTV9FTUFDU19TRVRfVE9PTEtJVF9USEVNRToKKwkgIHsKKwkg
ICAgVnRvb2xraXRfdGhlbWUgPSBtc2cubXNnLndQYXJhbSA/IFFkYXJrIDogUWxpZ2h0Owor
CSAgICBMaXNwX09iamVjdCBob29rID0gaW50ZXJuICgidG9vbGtpdC10aGVtZS1zZXQtZnVu
Y3Rpb25zIik7CisJICAgIGlmICghTklMUCAoRmJvdW5kcCAoaG9vaykpKQorCSAgICAgIHsK
KwkJTGlzcF9PYmplY3QgYXJnc1syXTsKKwkJYXJnc1swXSA9IGhvb2s7CisJCWFyZ3NbMV0g
PSBWdG9vbGtpdF90aGVtZTsKKwkJRnJ1bl9ob29rX3dpdGhfYXJncyAoMiwgYXJncyk7CisJ
ICAgICAgfQorCSAgfQorCSAgYnJlYWs7CisKICNpZiBIQVZFX1czMk5PVElGWQogCWNhc2Ug
V01fRU1BQ1NfRklMRU5PVElGWToKIAkgIGYgPSB3MzJfd2luZG93X3RvX2ZyYW1lIChkcHlp
bmZvLCBtc2cubXNnLmh3bmQpOwpkaWZmIC0tZ2l0IGEvc3JjL3czMnRlcm0uaCBiL3NyYy93
MzJ0ZXJtLmgKaW5kZXggMTJhZGM3MmYwMWMuLmQwZDdkNzVmNWNkIDEwMDY0NAotLS0gYS9z
cmMvdzMydGVybS5oCisrKyBiL3NyYy93MzJ0ZXJtLmgKQEAgLTcxNSw2ICs3MTUsNyBAQCAj
ZGVmaW5lIFdNX0VNQUNTX0lNRV9TVEFUVVMgICAgICAgICAgICAoV01fRU1BQ1NfU1RBUlQg
KyAyNikKICNkZWZpbmUgV01fRU1BQ1NfRFJBR09WRVIgICAgICAgICAgICAgIChXTV9FTUFD
U19TVEFSVCArIDI3KQogI2RlZmluZSBXTV9FTUFDU19EUk9QICAgICAgICAgICAgICAgICAg
KFdNX0VNQUNTX1NUQVJUICsgMjgpCiAjZGVmaW5lIFdNX0VNQUNTX0VORCAgICAgICAgICAg
ICAgICAgICAoV01fRU1BQ1NfU1RBUlQgKyAyOSkKKyNkZWZpbmUgV01fRU1BQ1NfU0VUX1RP
T0xLSVRfVEhFTUUgICAgIChXTV9FTUFDU19TVEFSVCArIDMwKQogCiAjZGVmaW5lIFdORF9G
T05UV0lEVEhfSU5ERVggICAgKDApCiAjZGVmaW5lIFdORF9MSU5FSEVJR0hUX0lOREVYICAg
KDQpCi0tIAoyLjUwLjEKCg==

--------------VF59wp0HZhi89lrAoGuQNPHf--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79776; Package emacs. Full text available.

Message received at 79776 <at> debbugs.gnu.org:


Received: (at 79776) by debbugs.gnu.org; 15 Nov 2025 10:29:20 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Nov 15 05:29:20 2025
Received: from localhost ([127.0.0.1]:33915 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vKDWx-00080K-RU
	for submit <at> debbugs.gnu.org; Sat, 15 Nov 2025 05:29:20 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:34794)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vKDWv-0007zw-Sc
 for 79776 <at> debbugs.gnu.org; Sat, 15 Nov 2025 05:29:18 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1vKDWq-00051k-90; Sat, 15 Nov 2025 05:29:12 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From:
 Date; bh=uxtLvKpp6XeXy9eIzw5c/sJFmNajZZkZ7F0EhDYBOjI=; b=roHcr6WTlxFB3+vbqO87
 1A1sKm0Q0P2Ava+liftgnKXENiMU5P8g+NNuPb0tsnfmvbnjVJo59DInB2yXn5Svgxu0a6RvdAKey
 rh8kaPYgNhnO+jpxos6PTbwkTee30nG+BUwlTjva3eqMKIw/bCtbabc10J9rVWgkCjPxbsCFRHzhh
 HrUgpdO+BaZasnDhUH07jOVEiWvE4TNaO0zm/azP47X/Snvlvcl3bfGJL9MOxd/4WcGav3DUSBCrE
 zBeSCg/usvKCylJKVqKyymtX6OeS7tl8+jjGockiJy9zI+cnZKFGkOgr8X1W+qy0TU/D5xrq6lQSg
 aq43iXo2cy4Ipw==;
Date: Sat, 15 Nov 2025 12:29:09 +0200
Message-Id: <86ldk7oah6.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Ahmed Khanzada <me@HIDDEN>
In-Reply-To: <4a562e21-4c1e-4405-b3db-930b8e2469a4@HIDDEN> (message from
 Ahmed Khanzada on Wed, 12 Nov 2025 20:16:23 -0800)
Subject: Re: bug#79776: [patch] Add dark-mode-toggle-hook
References: <445273f7-311a-4067-8e8f-f90006b80b0a@HIDDEN>
 <86o6pfd1af.fsf@HIDDEN> <4a562e21-4c1e-4405-b3db-930b8e2469a4@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79776
Cc: 79776 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Wed, 12 Nov 2025 20:16:23 -0800
> Cc: 79776 <at> debbugs.gnu.org
> From: Ahmed Khanzada <me@HIDDEN>
> 
> I have made a few changes to the patch:
> 
> - I have generalized this feature from dark-mode-p to toolkit-theme
> 
> - I have added a variable that stores the last result of a toolkit theme
> read, making this value available on boot
> 
> - I have moved Elisp calling to the appropriate thread on Windows via a
> new message
> 
> I am OK if the first time the Windows hooks are called if there are no
> hooks to be called.

LGTM on first sight.  Could some users of Emacs on Windows please test
this patch and report back any observations and comments?

> Lastly, given that I do not have a Windows development environment, I
> cannot test the Windows code. I am willing to drop the Windows code and
> just worry about the PGTK code, but I did think it was worth a try to do
> a first draft of it for a Windows contributor, so that our
> implementations would be cross-platform.

Yes, thanks.

> +---
> +** toolkit-theme-toggle-functions called when dark mode is toggled.
> +When the theme is set on PGTK or Win32 builds,
                                    ^^^^^
Please use "MS-Windows" here.  We don't like calling Windows a "win".

> +'toolkit-theme-toggle-functions' is called. Result is stored in var
                                             ^^
Our conventions are to leave 2 spaces between sentences in comments,
doc strings, and other documentation.

> +'toolkit-theme' as either symbol `dark' or `light', but may be
                                    ^^^^^^^^^^^^^^^^^
We quote 'like this' in NEWS, not `like this'.

> +(defvar toolkit-theme-toggle-functions nil
> +  "Abnormal hook run when the system theme is toggled.

I'd prefer toolkit-theme-change-functions (and a suitable change to
the doc string), because "toggle" presumes only two states, which
might not be true some day.

> +Functions on this hook are called with the theme name as a symbol:
> +`light' or `dark'.")

I think we should document here that when the hook is called, the
variable toolkit-theme is already set to the updated value.

> --- a/src/gtkutil.c
> +++ b/src/gtkutil.c
> @@ -1475,6 +1475,16 @@ xg_update_dark_mode_for_all_displays (bool dark_mode_p)
>  	 = gtk_settings_get_for_screen (screen);
>         xg_set_gtk_theme_dark_mode (dark_mode_p, settings);
>       }
> +
> +   Vtoolkit_theme = intern (dark_mode_p ? "dark" : "light");

Since you defined symbols for these two values, you don't need to use
'intern', you could use Qdark and Qlight directly.

> --- a/src/w32term.c
> +++ b/src/w32term.c
> @@ -6083,6 +6083,20 @@ w32_read_socket (struct terminal *terminal,
>  	  check_visibility = 1;
>  	  break;
>  
> +	case WM_EMACS_TOGGLE_TOOLKIT_THEME:
> +	  {
> +	    Vtoolkit_theme = intern (msg.msg.wParam ? "dark" : "light");

Same here.

Thanks.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79776; Package emacs. Full text available.

Message received at 79776 <at> debbugs.gnu.org:


Received: (at 79776) by debbugs.gnu.org; 13 Nov 2025 04:16:36 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Nov 12 23:16:36 2025
Received: from localhost ([127.0.0.1]:53518 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vJOl9-00073d-EB
	for submit <at> debbugs.gnu.org; Wed, 12 Nov 2025 23:16:36 -0500
Received: from fhigh-b2-smtp.messagingengine.com ([202.12.124.153]:40567)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <me@HIDDEN>) id 1vJOl5-00073X-20
 for 79776 <at> debbugs.gnu.org; Wed, 12 Nov 2025 23:16:33 -0500
Received: from phl-compute-11.internal (phl-compute-11.internal [10.202.2.51])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 8C5CB7A016A;
 Wed, 12 Nov 2025 23:16:25 -0500 (EST)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-11.internal (MEProxy); Wed, 12 Nov 2025 23:16:25 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enzu.ru; h=cc:cc
 :content-type:content-type:date:date:from:from:in-reply-to
 :in-reply-to:message-id:mime-version:references:reply-to:subject
 :subject:to:to; s=fm1; t=1763007385; x=1763093785; bh=6Z0h2aI71s
 DYLsGwQW+AUsAqHvhqj4NKBaFfalyZSQk=; b=A7vje/owLKE3skuiGFyRcy1YqG
 nKoKGvQ9PgM5WApg1Qls7FvzMnSWyKjJ0gjHdYv0T0N2CQ4frHe7ENr8NSXL4xDm
 Tr/amFgpYtXSMq5G/srI9Ku8XOZB+xcb5KtOWS6NcbCQFY2U0byxR3aR3q9Xr/Rf
 tRJJm+czrvMk0By+7cx1Z3AP7lX9IVfc4YKJpX5oZh8KB2tvWcBDUyFuXO0XnrfE
 Ambx7ff7UY8yXPNPus6U/8PZQzJobAJm/tFoJMr7tLPL5Hu4rn1ltEaFy+31t9jd
 yTjBz47P3GkFljfXeZ5nHa/ThSAibJrXF88Q6CVDwZ0MSswmgcUENOtdJ2yQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-type:content-type:date:date
 :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
 :message-id:mime-version:references:reply-to:subject:subject:to
 :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=
 1763007385; x=1763093785; bh=6Z0h2aI71sDYLsGwQW+AUsAqHvhqj4NKBaF
 falyZSQk=; b=OYVZZisLwzFiKDRSfACylGFaGsIcZrmyUv090ksC8gSauTslPdr
 vVO4UfeeFVby8LzMSK+gvJwgSjFDmboWUcjyzb1sGwikaL5GL/sSIbx9SbsRfrHR
 y2Ano3xyRYgMygda3zqdaI+CXdG3xqG+FM3CzAK72onl1Qjs+UJOKlKox3UrxrQW
 O7UbTbwGhGxBXr8D3PH7xbfWgx+sc3fyZKSElZiVpWbsN6MHEKYr9ueHx4QWq43l
 FRLUAkOzC9ZqNXIIcmCt2Nl7WEl0DeL823SSi/dd7r1YkBp9zYAg9tc8a6MZuJ6M
 hQldZ2hsnW9mO42/wz1kxyNf0BzHC/9yg0w==
X-ME-Sender: <xms:mFsVaWxNxO1_KZ70Geun9pnbh6mSHlc7YAGlDqRQ8PRH-S7KmZEijA>
 <xme:mFsVaYSeR3qswpM-xfpF5BxMeLvtn41WwVyPgiX1HcWKB9eeD5wx5Lgn0TRtSFFI6
 P2yEAXWiQNW3i1OKHOQZCxDhX26s6tx3h9y0acWVzApCsA683H7Jzbi>
X-ME-Received: <xmr:mFsVaV8M4jZQ1nZBw7aXD84Za8J9JhbC8_x9QsrGKIiyQMjPEh_Gb2TqNldUrAWy87G5ow>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvtdehleejucetufdoteggodetrf
 dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
 rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
 gurheptgfkffggfgfuvfevfhfhjgesmhdtreertddvjeenucfhrhhomheptehhmhgvugcu
 mfhhrghniigruggruceomhgvsegvnhiiuhdrrhhuqeenucggtffrrghtthgvrhhnpedtke
 evieeggfehteejledthffhgeefleelheehvdegjeelieelveefieethfevtdenucevlhhu
 shhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmvgesvghniihurd
 hruhdpnhgspghrtghpthhtohepvddpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohep
 vghlihiisehgnhhurdhorhhgpdhrtghpthhtohepjeeljeejieesuggvsggsuhhgshdrgh
 hnuhdrohhrgh
X-ME-Proxy: <xmx:mFsVaXrnymaIe48coYXrQP7Ykw0KJBeYGsqsJKbPrlaQoFIfAhxJ1A>
 <xmx:mFsVaamomirfFTTUOUOY1XF6N3z_GTzsb65xZGGmnmJqKjbC3rqgpQ>
 <xmx:mFsVaWKRxb5ZS5KGzIXvuCOK0roVCCBKs8PgmVsTg0n_Mqcw55K8tA>
 <xmx:mFsVaXylqZh7lrz9WT6bPKCz8RR548e7SJpXu8Ddybx3ahYGGE9ZFQ>
 <xmx:mVsVabEDz7vwkPCnOhBin7mAoGM_jR5QQfTRGhFL6qBnwXZC_qbAj0TG>
Feedback-ID: i93f64880:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 12 Nov 2025 23:16:24 -0500 (EST)
Content-Type: multipart/mixed; boundary="------------0Id3cc6tVzhwUx1VJuTrxPjf"
Message-ID: <4a562e21-4c1e-4405-b3db-930b8e2469a4@HIDDEN>
Date: Wed, 12 Nov 2025 20:16:23 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: bug#79776: [patch] Add dark-mode-toggle-hook
To: Eli Zaretskii <eliz@HIDDEN>
References: <445273f7-311a-4067-8e8f-f90006b80b0a@HIDDEN>
 <86o6pfd1af.fsf@HIDDEN>
Content-Language: en-US
From: Ahmed Khanzada <me@HIDDEN>
In-Reply-To: <86o6pfd1af.fsf@HIDDEN>
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 79776
Cc: 79776 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

This is a multi-part message in MIME format.
--------------0Id3cc6tVzhwUx1VJuTrxPjf
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hi Eli,

I have made a few changes to the patch:

- I have generalized this feature from dark-mode-p to toolkit-theme

- I have added a variable that stores the last result of a toolkit theme
read, making this value available on boot

- I have moved Elisp calling to the appropriate thread on Windows via a
new message

I am OK if the first time the Windows hooks are called if there are no
hooks to be called.

Lastly, given that I do not have a Windows development environment, I
cannot test the Windows code. I am willing to drop the Windows code and
just worry about the PGTK code, but I did think it was worth a try to do
a first draft of it for a Windows contributor, so that our
implementations would be cross-platform.

Ahmed

On 11/6/25 12:15 AM, Eli Zaretskii wrote:
>> Date: Wed, 5 Nov 2025 22:21:20 -0800
>> From: Ahmed Khanzada <me@HIDDEN>
>>
>> After I told the community about my PGTK dark mode work, I had requests
>> to have a hook that they could use.
>>
>> This patch adds that hook. I also tried adding it to the Win32 code, but
>> I cannot test this as I do not have a Win32 dev environment.
> We cannot call Lisp from that place, see below.
>
>> Lastly, I was confused how I should name an abnormal hook, as the
>> document suggests that sometimes they won't have -hook in the name.
>> Guidance here would be appreciated.
> From the ELisp manual:
>
>      If the hook variable's name does not end with ‘-hook’, that indicates
>   it is probably an “abnormal hook”.  These differ from normal hooks in
>   two ways: they can be called with one or more arguments, and their
>   return values can be used in some way.  The hook's documentation says
>   how the functions are called and how their return values are used.  Any
>   functions added to an abnormal hook must follow the hook's calling
>   convention.  By convention, abnormal hook names end in ‘-functions’.
>
> Note the last sentence.
>
>> +---
>> +** emacs-dark-mode-toggle-hook called when dark mode is toggled.
>> +When dark mode is toggled on PGTK or Win32 builds,
>> +emacs-dark-mode-toggle-hook is called.
> Please quote symbols in NEWS 'like this'.
>
> Also, GNU coding standards frown on using "Win32"; we use "MS-Windows"
> instead.
>
>> --- a/src/w32fns.c
>> +++ b/src/w32fns.c
>> @@ -2440,6 +2440,15 @@ w32_applytheme (HWND hwnd)
>>  				    &w32_darkmode, sizeof (w32_darkmode));
>>  	}
>>      }
>> +
>> +   Lisp_Object hook = intern ("dark-mode-toggle-hook");
>> +   if (!NILP (Fboundp (hook)))
>> +     {
>> +       Lisp_Object args[2];
>> +       args[0] = hook;
>> +       args[1] = w32_darkmode ? Qt : Qnil;
>> +       Frun_hook_with_args (2, args);
>> +     }
> This cannot work in the w32 build, because w32_applytheme is called
> from a separate thread, which handles Windows GUI system messages.  We
> cannot call Lisp from that thread.  What is needed is to send a
> message to the main (a.k.a. "Lisp") thread, using my_post_msg, and
> then handle that message in w32_read_socket (which runs in the main
> thread).  You will probably need to invent a new WM_EMACS_* message
> for this purpose.
>
> Let me know if you need further help with this.
>
> Note that (at least on MS-Windows) the hook will be always called at
> startup, when Emacs sets the theme using the system theme -- is that
> what we want?
>
> Thanks.
--------------0Id3cc6tVzhwUx1VJuTrxPjf
Content-Type: text/x-patch; charset=UTF-8;
 name="0001-Add-toolkit-theme-var-and-toolkit-theme-toggle-funct.patch"
Content-Disposition: attachment;
 filename*0="0001-Add-toolkit-theme-var-and-toolkit-theme-toggle-funct.pa";
 filename*1="tch"
Content-Transfer-Encoding: base64

RnJvbSA3ZWVjNTRjY2YxNDk4ZDc4NTdkODIwY2I4MWE1NmQ3ZDAwNWRlYmJiIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBaG1lZCBLaGFuemFkYSA8bWVAZW56dS5ydT4KRGF0
ZTogV2VkLCAxMiBOb3YgMjAyNSAyMDowODoxNiAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIEFk
ZCBgdG9vbGtpdC10aGVtZScgdmFyIGFuZCAndG9vbGtpdC10aGVtZS10b2dnbGUtZnVuY3Rp
b25zJwogaG9vawoKKiBldGMvTkVXUzogRG9jdW1lbnQgYHRvb2xraXQtdGhlbWUnIGFuZAon
dG9vbGtpdC10aGVtZS10b2dnbGUtZnVuY3Rpb25zJwoqIGxpc3AvZnJhbWUuZWw6IEFkZCAn
dG9vbGtpdC10aGVtZS10b2dnbGUtZnVuY3Rpb25zJwoqIHNyYy9mcmFtZS5jOiBBZGQgYHRv
b2xraXQtdGhlbWUnIEVsaXNwIHZhcmlhYmxlCiogc3JjL2d0a3V0aWwuYzogKHhnX3VwZGF0
ZV9kYXJrX21vZGVfZm9yX2FsbF9kaXNwbGF5cyk6IFNldApgdG9vbGtpdC10aGVtZScgYW5k
IGNhbGwgJ3Rvb2xraXQtdGhlbWUtdG9nZ2xlLWZ1bmN0aW9ucycKKiBzcmMvdzMyZm5zLmM6
ICh3MzJfYXBwbHl0aGVtZSk6IFNlbmQgV01fRU1BQ1NfVE9HR0xFX1RPT0xLSVRfVEhFTUUK
bWVzc2FnZSB0byBMaXNwIHRocmVhZC4KKiBzcmMvdzMydGVybS5oOiBEZWNsYXJlIFdNX0VN
QUNTX1RPR0dMRV9UT09MS0lUX1RIRU1FCiogc3JjL3czMnRlcm0uYzogKHczMl9yZWFkX3Nv
Y2tldCk6IFJlY2VpdmUKV01fRU1BQ1NfVE9HR0xFX1RPT0xLSVRfVEhFTUUgbWVzc2FnZSBh
bmQgc2V0IGB0b29sa2l0LXRoZW1lJyBhbmQgY2FsbAondG9vbGtpdC10aGVtZS10b2dnbGUt
ZnVuY3Rpb25zJwotLS0KIGV0Yy9ORVdTICAgICAgfCAgNyArKysrKysrCiBsaXNwL2ZyYW1l
LmVsIHwgIDUgKysrKysKIHNyYy9mcmFtZS5jICAgfCAxMyArKysrKysrKysrKysrCiBzcmMv
Z3RrdXRpbC5jIHwgMTAgKysrKysrKysrKwogc3JjL3czMmZucy5jICB8ICAzICsrKwogc3Jj
L3czMnRlcm0uYyB8IDE0ICsrKysrKysrKysrKysrCiBzcmMvdzMydGVybS5oIHwgIDEgKwog
NyBmaWxlcyBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZXRjL05F
V1MgYi9ldGMvTkVXUwppbmRleCBlZDUwNDExOGU2Ni4uNTU2NGFkMmU3OTcgMTAwNjQ0Ci0t
LSBhL2V0Yy9ORVdTCisrKyBiL2V0Yy9ORVdTCkBAIC0zNDU5LDYgKzM0NTksMTMgQEAgRW1h
Y3Mgd2hlbiBidWlsdCB3aXRoIHRoZSBwdXJlIEdUSyB0b29sa2l0IG5vdyByZXNwZWN0cyBk
ZXNrdG9wCiBkYXJrIGFuZCBsaWdodCBtb2RlcyBmb3IgZHJhd2luZyBhIEdUSyB0b29sYmFy
IGFuZCB3aWRnZXRzLAogYXV0b21hdGljYWxseSB0b2dnbGluZyBiZXR3ZWVuIHRoZW0uCiAK
Ky0tLQorKiogdG9vbGtpdC10aGVtZS10b2dnbGUtZnVuY3Rpb25zIGNhbGxlZCB3aGVuIGRh
cmsgbW9kZSBpcyB0b2dnbGVkLgorV2hlbiB0aGUgdGhlbWUgaXMgc2V0IG9uIFBHVEsgb3Ig
V2luMzIgYnVpbGRzLAorJ3Rvb2xraXQtdGhlbWUtdG9nZ2xlLWZ1bmN0aW9ucycgaXMgY2Fs
bGVkLiBSZXN1bHQgaXMgc3RvcmVkIGluIHZhcgorJ3Rvb2xraXQtdGhlbWUnIGFzIGVpdGhl
ciBzeW1ib2wgYGRhcmsnIG9yIGBsaWdodCcsIGJ1dCBtYXkgYmUKK2V4cGFuZGVkIHRvIGZ1
dHVyZSB0b29sa2l0LXNwZWNpZmljIHN5bWJvbHMgaW4gdGhlIGZ1dHVyZS4KKwogDAogKiBD
aGFuZ2VzIGluIEVtYWNzIDMxLjEgb24gTm9uLUZyZWUgT3BlcmF0aW5nIFN5c3RlbXMKIApk
aWZmIC0tZ2l0IGEvbGlzcC9mcmFtZS5lbCBiL2xpc3AvZnJhbWUuZWwKaW5kZXggYzQ4YjJj
NGFmMWUuLmJjNTRiZjY2MjUyIDEwMDY0NAotLS0gYS9saXNwL2ZyYW1lLmVsCisrKyBiL2xp
c3AvZnJhbWUuZWwKQEAgLTE1MjgsNiArMTUyOCwxMSBAQCBmcmFtZS10ZXJtaW5hbC1kZWZh
dWx0LWJnLW1vZGUKIDs7ICAgICAgICAgICAgICAgICAgICAgICAgIDpiYWNrZ3JvdW5kIChm
YWNlLWF0dHJpYnV0ZSAnZGVmYXVsdCA6Zm9yZWdyb3VuZCkpCiA7OyAgICAgKGZyYW1lLXNl
dC1iYWNrZ3JvdW5kLW1vZGUgKHNlbGVjdGVkLWZyYW1lKSkpKQogCisoZGVmdmFyIHRvb2xr
aXQtdGhlbWUtdG9nZ2xlLWZ1bmN0aW9ucyBuaWwKKyAgIkFibm9ybWFsIGhvb2sgcnVuIHdo
ZW4gdGhlIHN5c3RlbSB0aGVtZSBpcyB0b2dnbGVkLgorRnVuY3Rpb25zIG9uIHRoaXMgaG9v
ayBhcmUgY2FsbGVkIHdpdGggdGhlIHRoZW1lIG5hbWUgYXMgYSBzeW1ib2w6CitgbGlnaHQn
IG9yIGBkYXJrJy4iKQorCiAMCiA7Ozs7IEZyYW1lIGNvbmZpZ3VyYXRpb25zCiAKZGlmZiAt
LWdpdCBhL3NyYy9mcmFtZS5jIGIvc3JjL2ZyYW1lLmMKaW5kZXggODExMmFmNWFjYmEuLjY1
OTAwNjY1ZGQ1IDEwMDY0NAotLS0gYS9zcmMvZnJhbWUuYworKysgYi9zcmMvZnJhbWUuYwpA
QCAtNzYxOCw0ICs3NjE4LDE3IEBAIGZvY3VzICh3aGVyZSBhIGZyYW1lIGltbWVkaWF0ZWx5
IGxvc2VzIGZvY3VzIHdoZW4gaXQncyBsZWZ0IGJ5IHRoZSBtb3VzZQogICBGcHJvdmlkZSAo
UW1vdmVfdG9vbGJhciwgUW5pbCk7CiAjZW5kaWYgLyogIUhBVkVfRVhUX1RPT0xfQkFSIHx8
IFVTRV9HVEsgKi8KICNlbmRpZiAvKiBIQVZFX1dJTkRPV19TWVNURU0gKi8KKworI2lmIChk
ZWZpbmVkKEhBVkVfUEdUSykgJiYgZGVmaW5lZChIQVZFX0dTRVRUSU5HUykpIHx8IGRlZmlu
ZWQgKFdJTkRPV1NOVCkKKyAgREVGVkFSX0xJU1AgKCJ0b29sa2l0LXRoZW1lIiwgVnRvb2xr
aXRfdGhlbWUsCisgICAgICAgICAgICAgICBkb2M6IC8qIFRoZSBjdXJyZW50IHRvb2xraXQg
dGhlbWUuCitFaXRoZXIgdGhlIHN5bWJvbCBgbGlnaHQnIG9yIHRoZSBzeW1ib2wgYGRhcmsn
LCByZWZsZWN0aW5nIHRoZSBzeXN0ZW0ncworY3VycmVudCB0aGVtZSBwcmVmZXJlbmNlLiAg
VGhpcyB2YXJpYWJsZSBpcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgd2hlbgordGhlIHN5c3Rl
bSB0aGVtZSBjaGFuZ2VzLgorCitUaGlzIHZhcmlhYmxlIGlzIG9ubHkgYXZhaWxhYmxlIG9u
IFBHVEsgYW5kIE1TLVdpbmRvd3MgYnVpbGRzLiAgKi8pOworICBWdG9vbGtpdF90aGVtZSA9
IFFuaWw7CisgIERFRlNZTSAoUWxpZ2h0LCAibGlnaHQiKTsKKyAgREVGU1lNIChRZGFyaywg
ImRhcmsiKTsKKyNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvc3JjL2d0a3V0aWwuYyBiL3NyYy9n
dGt1dGlsLmMKaW5kZXggMzI5YWQ2YzMzYjUuLmI5NTJjMTllZTU4IDEwMDY0NAotLS0gYS9z
cmMvZ3RrdXRpbC5jCisrKyBiL3NyYy9ndGt1dGlsLmMKQEAgLTE0NzUsNiArMTQ3NSwxNiBA
QCB4Z191cGRhdGVfZGFya19tb2RlX2Zvcl9hbGxfZGlzcGxheXMgKGJvb2wgZGFya19tb2Rl
X3ApCiAJID0gZ3RrX3NldHRpbmdzX2dldF9mb3Jfc2NyZWVuIChzY3JlZW4pOwogICAgICAg
IHhnX3NldF9ndGtfdGhlbWVfZGFya19tb2RlIChkYXJrX21vZGVfcCwgc2V0dGluZ3MpOwog
ICAgICB9CisKKyAgIFZ0b29sa2l0X3RoZW1lID0gaW50ZXJuIChkYXJrX21vZGVfcCA/ICJk
YXJrIiA6ICJsaWdodCIpOworICAgTGlzcF9PYmplY3QgaG9vayA9IGludGVybiAoInRvb2xr
aXQtdGhlbWUtdG9nZ2xlLWZ1bmN0aW9ucyIpOworICAgaWYgKCFOSUxQIChGYm91bmRwICho
b29rKSkpCisgICAgIHsKKyAgICAgICBMaXNwX09iamVjdCBhcmdzWzJdOworICAgICAgIGFy
Z3NbMF0gPSBob29rOworICAgICAgIGFyZ3NbMV0gPSBWdG9vbGtpdF90aGVtZTsKKyAgICAg
ICBGcnVuX2hvb2tfd2l0aF9hcmdzICgyLCBhcmdzKTsKKyAgICAgfQogfQogCiAvKiBTZXQg
aW5pdGlhbCBkYXJrIG1vZGUgZm9yIGEgbmV3IGZyYW1lIChjYWxsZWQgZHVyaW5nIGZyYW1l
CmRpZmYgLS1naXQgYS9zcmMvdzMyZm5zLmMgYi9zcmMvdzMyZm5zLmMKaW5kZXggM2ZjMGY1
NTI0NGYuLmQ3MmEyZDk2ZWMzIDEwMDY0NAotLS0gYS9zcmMvdzMyZm5zLmMKKysrIGIvc3Jj
L3czMmZucy5jCkBAIC0yNDQwLDYgKzI0NDAsOCBAQCB3MzJfYXBwbHl0aGVtZSAoSFdORCBo
d25kKQogCQkJCSAgICAmdzMyX2Rhcmttb2RlLCBzaXplb2YgKHczMl9kYXJrbW9kZSkpOwog
CX0KICAgICB9CisgIFdQQVJBTSBkYXJrX21vZGVfcCA9IHczMl9kYXJrbW9kZSA/IDEgOiAw
OworICBQb3N0VGhyZWFkTWVzc2FnZSAoZHdNYWluVGhyZWFkSWQsIFdNX0VNQUNTX1RPR0dM
RV9UT09MS0lUX1RIRU1FLCBkYXJrX21vZGVfcCwgMCk7CiB9CiAKIHN0YXRpYyBIV05ECkBA
IC0zNjQ1LDYgKzM2NDcsNyBAQCAjZGVmaW5lIE0obXNnKSB7IG1zZywgIyBtc2cgfQogICAg
ICAgTSAoV01fQ0hBUiksCiAgICAgICBNIChXTV9FTUFDU19EUkFHT1ZFUiksCiAgICAgICBN
IChXTV9FTUFDU19EUk9QKSwKKyAgICAgIE0gKFdNX0VNQUNTX1RPR0dMRV9UT09MS0lUX1RI
RU1FKSwKICN1bmRlZiBNCiAgICAgICB7IDAsIDAgfQogICB9OwpkaWZmIC0tZ2l0IGEvc3Jj
L3czMnRlcm0uYyBiL3NyYy93MzJ0ZXJtLmMKaW5kZXggYzllN2FjMzkzNzkuLmY4MTcwMTE4
M2I3IDEwMDY0NAotLS0gYS9zcmMvdzMydGVybS5jCisrKyBiL3NyYy93MzJ0ZXJtLmMKQEAg
LTYwODMsNiArNjA4MywyMCBAQCB3MzJfcmVhZF9zb2NrZXQgKHN0cnVjdCB0ZXJtaW5hbCAq
dGVybWluYWwsCiAJICBjaGVja192aXNpYmlsaXR5ID0gMTsKIAkgIGJyZWFrOwogCisJY2Fz
ZSBXTV9FTUFDU19UT0dHTEVfVE9PTEtJVF9USEVNRToKKwkgIHsKKwkgICAgVnRvb2xraXRf
dGhlbWUgPSBpbnRlcm4gKG1zZy5tc2cud1BhcmFtID8gImRhcmsiIDogImxpZ2h0Iik7CisJ
ICAgIExpc3BfT2JqZWN0IGhvb2sgPSBpbnRlcm4gKCJ0b29sa2l0LXRoZW1lLXRvZ2dsZS1m
dW5jdGlvbnMiKTsKKwkgICAgaWYgKCFOSUxQIChGYm91bmRwIChob29rKSkpCisJICAgICAg
eworCQlMaXNwX09iamVjdCBhcmdzWzJdOworCQlhcmdzWzBdID0gaG9vazsKKwkJYXJnc1sx
XSA9IFZ0b29sa2l0X3RoZW1lOworCQlGcnVuX2hvb2tfd2l0aF9hcmdzICgyLCBhcmdzKTsK
KwkgICAgICB9CisJICB9CisJICBicmVhazsKKwogI2lmIEhBVkVfVzMyTk9USUZZCiAJY2Fz
ZSBXTV9FTUFDU19GSUxFTk9USUZZOgogCSAgZiA9IHczMl93aW5kb3dfdG9fZnJhbWUgKGRw
eWluZm8sIG1zZy5tc2cuaHduZCk7CmRpZmYgLS1naXQgYS9zcmMvdzMydGVybS5oIGIvc3Jj
L3czMnRlcm0uaAppbmRleCAxMmFkYzcyZjAxYy4uZGE2ZjM3ZWMyNDQgMTAwNjQ0Ci0tLSBh
L3NyYy93MzJ0ZXJtLmgKKysrIGIvc3JjL3czMnRlcm0uaApAQCAtNzE1LDYgKzcxNSw3IEBA
ICNkZWZpbmUgV01fRU1BQ1NfSU1FX1NUQVRVUyAgICAgICAgICAgIChXTV9FTUFDU19TVEFS
VCArIDI2KQogI2RlZmluZSBXTV9FTUFDU19EUkFHT1ZFUiAgICAgICAgICAgICAgKFdNX0VN
QUNTX1NUQVJUICsgMjcpCiAjZGVmaW5lIFdNX0VNQUNTX0RST1AgICAgICAgICAgICAgICAg
ICAoV01fRU1BQ1NfU1RBUlQgKyAyOCkKICNkZWZpbmUgV01fRU1BQ1NfRU5EICAgICAgICAg
ICAgICAgICAgIChXTV9FTUFDU19TVEFSVCArIDI5KQorI2RlZmluZSBXTV9FTUFDU19UT0dH
TEVfVE9PTEtJVF9USEVNRSAgKFdNX0VNQUNTX1NUQVJUICsgMzApCiAKICNkZWZpbmUgV05E
X0ZPTlRXSURUSF9JTkRFWCAgICAoMCkKICNkZWZpbmUgV05EX0xJTkVIRUlHSFRfSU5ERVgg
ICAoNCkKLS0gCjIuNTAuMQoK

--------------0Id3cc6tVzhwUx1VJuTrxPjf--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79776; Package emacs. Full text available.

Message received at 79776 <at> debbugs.gnu.org:


Received: (at 79776) by debbugs.gnu.org; 6 Nov 2025 08:16:04 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Nov 06 03:16:04 2025
Received: from localhost ([127.0.0.1]:36385 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vGvA3-0007C3-KY
	for submit <at> debbugs.gnu.org; Thu, 06 Nov 2025 03:16:04 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:53608)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vGvA1-0007BQ-Bd
 for 79776 <at> debbugs.gnu.org; Thu, 06 Nov 2025 03:16:01 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1vGv9v-00042W-Ri; Thu, 06 Nov 2025 03:15:55 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From:
 Date; bh=v7j44Bf7d+eQC1zjFR/O03j03JDcr6GJPSliuHJPUdI=; b=WMKVbD2ii2nAqmGd7Kdu
 DQVphTIceoeBXBZv9BvGxYo09WJgsFhMI1IeIKDj1pi9z7VZEP/JUogzwVMw5oKuOn71fO/IUi17/
 DOfARb9/2WstL9U39JG4IzvCoe3p5k82D0XU65lz9lBpaZ80KrpdafIbj5CVjgGp4IrLMR1K09wzM
 SO0KDqnPM8A+hoEAtTPLfdgs1SszAAgyyXM8Nnfx/yAeA1HpRPku6LZpJitl/qYL4WB/ykEUUzQWg
 t3VAZU9HPubonsJXZ+hyO0H455kxJju6a4GvAUFCVKNmzCv4oc9yFV5RTLDr50rN3Hep3wBH0x5eh
 lP5IfX4Flc0p6g==;
Date: Thu, 06 Nov 2025 10:15:52 +0200
Message-Id: <86o6pfd1af.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Ahmed Khanzada <me@HIDDEN>
In-Reply-To: <445273f7-311a-4067-8e8f-f90006b80b0a@HIDDEN> (message from
 Ahmed Khanzada on Wed, 5 Nov 2025 22:21:20 -0800)
Subject: Re: bug#79776: [patch] Add dark-mode-toggle-hook
References: <445273f7-311a-4067-8e8f-f90006b80b0a@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79776
Cc: 79776 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Wed, 5 Nov 2025 22:21:20 -0800
> From: Ahmed Khanzada <me@HIDDEN>
> 
> After I told the community about my PGTK dark mode work, I had requests
> to have a hook that they could use.
> 
> This patch adds that hook. I also tried adding it to the Win32 code, but
> I cannot test this as I do not have a Win32 dev environment.

We cannot call Lisp from that place, see below.

> Lastly, I was confused how I should name an abnormal hook, as the
> document suggests that sometimes they won't have -hook in the name.
> Guidance here would be appreciated.

From the ELisp manual:

     If the hook variable's name does not end with ‘-hook’, that indicates
  it is probably an “abnormal hook”.  These differ from normal hooks in
  two ways: they can be called with one or more arguments, and their
  return values can be used in some way.  The hook's documentation says
  how the functions are called and how their return values are used.  Any
  functions added to an abnormal hook must follow the hook's calling
  convention.  By convention, abnormal hook names end in ‘-functions’.

Note the last sentence.

> +---
> +** emacs-dark-mode-toggle-hook called when dark mode is toggled.
> +When dark mode is toggled on PGTK or Win32 builds,
> +emacs-dark-mode-toggle-hook is called.

Please quote symbols in NEWS 'like this'.

Also, GNU coding standards frown on using "Win32"; we use "MS-Windows"
instead.

> --- a/src/w32fns.c
> +++ b/src/w32fns.c
> @@ -2440,6 +2440,15 @@ w32_applytheme (HWND hwnd)
>  				    &w32_darkmode, sizeof (w32_darkmode));
>  	}
>      }
> +
> +   Lisp_Object hook = intern ("dark-mode-toggle-hook");
> +   if (!NILP (Fboundp (hook)))
> +     {
> +       Lisp_Object args[2];
> +       args[0] = hook;
> +       args[1] = w32_darkmode ? Qt : Qnil;
> +       Frun_hook_with_args (2, args);
> +     }

This cannot work in the w32 build, because w32_applytheme is called
from a separate thread, which handles Windows GUI system messages.  We
cannot call Lisp from that thread.  What is needed is to send a
message to the main (a.k.a. "Lisp") thread, using my_post_msg, and
then handle that message in w32_read_socket (which runs in the main
thread).  You will probably need to invent a new WM_EMACS_* message
for this purpose.

Let me know if you need further help with this.

Note that (at least on MS-Windows) the hook will be always called at
startup, when Emacs sets the theme using the system theme -- is that
what we want?

Thanks.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79776; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 6 Nov 2025 06:21:36 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Nov 06 01:21:36 2025
Received: from localhost ([127.0.0.1]:35639 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vGtNH-0001Ht-GO
	for submit <at> debbugs.gnu.org; Thu, 06 Nov 2025 01:21:35 -0500
Received: from lists.gnu.org ([2001:470:142::17]:34140)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <me@HIDDEN>) id 1vGtNE-0001HS-O4
 for submit <at> debbugs.gnu.org; Thu, 06 Nov 2025 01:21:33 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <me@HIDDEN>) id 1vGtN9-0004d9-5I
 for bug-gnu-emacs@HIDDEN; Thu, 06 Nov 2025 01:21:27 -0500
Received: from fhigh-b4-smtp.messagingengine.com ([202.12.124.155])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <me@HIDDEN>) id 1vGtN7-0003QT-6w
 for bug-gnu-emacs@HIDDEN; Thu, 06 Nov 2025 01:21:26 -0500
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 86CBB7A005A
 for <bug-gnu-emacs@HIDDEN>; Thu,  6 Nov 2025 01:21:22 -0500 (EST)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-06.internal (MEProxy); Thu, 06 Nov 2025 01:21:22 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enzu.ru; h=cc
 :content-type:content-type:date:date:from:from:in-reply-to
 :message-id:mime-version:reply-to:subject:subject:to:to; s=fm1;
 t=1762410082; x=1762496482; bh=PbLtt1dHJNuSu3695iup2fVdX3MXeNoZ
 cRb883UmBcs=; b=E4iT7zT/fXnpaJHrfkN82MiSeOnsjrW6yTVOgBoWg8Zi6hxS
 Pyywfn7kvs6onlDZKkqbNAniQUgC4h8Ht3QsgBd+bUrE8f4RcQaokXoXlIezdCoc
 y6A+m2KewIO3ck0dKxQDQMbvTLhpnc9oaX/ypQQQ1xsxHMBV9G8CQRRTJygUQr+q
 eDl30feEyGnHdLbFpMWZgiJFqR+tDtpwEGogYXxnj+qs1HGya4cDr8bRL98XRBmY
 PJR2Yul0NnOgeYJlgWzTPuqmqDe0tp8D6V7t9A4bTBPJhcvg8PWPa7itJvZwCPm1
 0CLxG7NoJ6z708b/hYzAyOp8Ytq1oAemScikAg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:content-type:content-type:date:date
 :feedback-id:feedback-id:from:from:in-reply-to:message-id
 :mime-version:reply-to:subject:subject:to:to:x-me-proxy
 :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1762410082; x=
 1762496482; bh=PbLtt1dHJNuSu3695iup2fVdX3MXeNoZcRb883UmBcs=; b=v
 p70XYr7yGikxkJwbUSRiOMxPPqfmzIcJGWolqHdaszgaEMzWm0TbYkupZtCp7s/+
 EbBLMBu40hV2p5uQCP0ZgLh5mnP1Gyh5tJllLKtj3fNKivft/E/6SN/kBTs4nX5d
 C6mOWyl9bBwLaXmoqj8AL8seXugEN6/8VDFZV9PN1tY5+pV2RuN9vaPiSdG59JWf
 wsRCSxDNiFXyP4wRY89Vz9JLEg3OwZuHPYscrW2sXMlzOWxcMMUohWHGZqaxcI+B
 jyByaC1S5xoIsIoBHmz3YVg82Vni2QEn64ECzW3Y2Zaj6gTBtM/TJzziOeDDdfpp
 u8TM8YGV7h4Dt1B/vzIZg==
X-ME-Sender: <xms:YT4MaYWAxrtYWn0qmn2NYlrJdrTXXso0llU3pZBi8kUvrzGS81FReA>
 <xme:YT4MaSfINY54mKEjU8-dy4Z2sO7HYAlRJAB7l1qQsBUpkezE7rR2B2gW_o0BHptYr
 KRyuO5bUoXCRsZAdTMkmt7LLbkcUTY1otDDRROwTdyZGesqzNg85Rg>
X-ME-Received: <xmr:YT4MaXcPXj2ub63gt5-C52mSG3dwkn5JQAY1mkmOIqRuC_jpeyU4Ek7sPF-Hi40l9_4ncg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddukeeitdegucetufdoteggodetrf
 dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
 rghilhhouhhtmecufedttdenucenucfjughrpegtkfffgggfvffhufesmhdtreertddvje
 enucfhrhhomheptehhmhgvugcumfhhrghniigruggruceomhgvsegvnhiiuhdrrhhuqeen
 ucggtffrrghtthgvrhhnpeehfeetvefhudeuheehhffhhfefueeuueejhfdutdekfffhje
 eifeeggfdtffejvdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhl
 fhhrohhmpehmvgesvghniihurdhruhdpnhgspghrtghpthhtohepuddpmhhouggvpehsmh
 htphhouhhtpdhrtghpthhtohepsghughdqghhnuhdqvghmrggtshesghhnuhdrohhrgh
X-ME-Proxy: <xmx:Yj4MaUKURb2FeDKVfTmVLCD-NWCwd8lC-nownj8P8UGlFcrVoage2A>
 <xmx:Yj4MaWLXzX6ePQDlWRnBnbgub1Pt4yFbvjBQ0rmf2CpCFTDh2G5bKw>
 <xmx:Yj4MaeFB9N-fcrTCMdJ3jCOD7qhkygNf_IEEd_B0ZzVHwVJWeShDUQ>
 <xmx:Yj4MaTkowUi7RxK-hixR-sbQVlx5u5H2qMsZ1ph8trguADsvWEN18g>
 <xmx:Yj4MaUUgkH-Mtd5CgSjamWZKHqZyrnPF3-Al0QHTx5XtdPOHdL9eBiAE>
Feedback-ID: i93f64880:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA for
 <bug-gnu-emacs@HIDDEN>; Thu, 6 Nov 2025 01:21:21 -0500 (EST)
Content-Type: multipart/mixed; boundary="------------ku6lY6skjYH0PAUF0ICVOKia"
Message-ID: <445273f7-311a-4067-8e8f-f90006b80b0a@HIDDEN>
Date: Wed, 5 Nov 2025 22:21:20 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
To: bug-gnu-emacs@HIDDEN
Content-Language: en-US
From: Ahmed Khanzada <me@HIDDEN>
Subject: [patch] Add dark-mode-toggle-hook
Received-SPF: pass client-ip=202.12.124.155; envelope-from=me@HIDDEN;
 helo=fhigh-b4-smtp.messagingengine.com
X-Spam_score_int: -27
X-Spam_score: -2.8
X-Spam_bar: --
X-Spam_report: (-2.8 / 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,
 RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001,
 RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 0.7 (/)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.3 (/)

This is a multi-part message in MIME format.
--------------ku6lY6skjYH0PAUF0ICVOKia
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

After I told the community about my PGTK dark mode work, I had requests
to have a hook that they could use.

This patch adds that hook. I also tried adding it to the Win32 code, but
I cannot test this as I do not have a Win32 dev environment.

Lastly, I was confused how I should name an abnormal hook, as the
document suggests that sometimes they won't have -hook in the name.
Guidance here would be appreciated.

--------------ku6lY6skjYH0PAUF0ICVOKia
Content-Type: text/x-patch; charset=UTF-8;
 name="0001-Add-abnormal-dark-mode-toggle-hook.patch"
Content-Disposition: attachment;
 filename="0001-Add-abnormal-dark-mode-toggle-hook.patch"
Content-Transfer-Encoding: base64

RnJvbSA2ZmZkMTBlYTJmZTVkZTYxOGY4MTU1NTNmMDFlN2RmNjIxMjQ4ZDk4IE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBaG1lZCBLaGFuemFkYSA8bWVAZW56dS5ydT4KRGF0
ZTogV2VkLCA1IE5vdiAyMDI1IDIyOjA2OjIzIC0wODAwClN1YmplY3Q6IFtQQVRDSF0gQWRk
IGFibm9ybWFsIGRhcmstbW9kZS10b2dnbGUtaG9vawoKKiBzcmMvZnJhbWUuZWwgZGFyay1t
b2RlLXRvZ2dsZS1ob29rOgpBZGQgYWJub3JtYWwgaG9vayB0aGF0IGlzIGNhbGxlZCB3aGVu
IGRhcmsgbW9kZSBpcyB0b2dnbGVkLgoqIHNyYy9ndGt1dGlsLmMgKHhnX3VwZGF0ZV9kYXJr
X21vZGVfZm9yX2FsbF9kaXNwbGF5cyk6CkNhbGwgZGFyay1tb2RlLXRvZ2dsZS1ob29rLgoq
IHNyYy93MzJmbnMuYyAodzMyX2FwcGx5dGhlbWUpOiBDYWxsIGRhcmstbW9kZS10b2dnbGUt
aG9vay4KKiBldGMvTkVXUzogRG9jdW1lbnQgZGFyay1tb2RlLXRvZ2dsZS1ob29rLgotLS0K
IGV0Yy9ORVdTICAgICAgfCA1ICsrKysrCiBsaXNwL2ZyYW1lLmVsIHwgNyArKysrKysrCiBz
cmMvZ3RrdXRpbC5jIHwgOSArKysrKysrKysKIHNyYy93MzJmbnMuYyAgfCA5ICsrKysrKysr
KwogNCBmaWxlcyBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZXRj
L05FV1MgYi9ldGMvTkVXUwppbmRleCBlZDUwNDExOGU2Ni4uMDZmNTg3ZjZjNzQgMTAwNjQ0
Ci0tLSBhL2V0Yy9ORVdTCisrKyBiL2V0Yy9ORVdTCkBAIC0zNDU5LDYgKzM0NTksMTEgQEAg
RW1hY3Mgd2hlbiBidWlsdCB3aXRoIHRoZSBwdXJlIEdUSyB0b29sa2l0IG5vdyByZXNwZWN0
cyBkZXNrdG9wCiBkYXJrIGFuZCBsaWdodCBtb2RlcyBmb3IgZHJhd2luZyBhIEdUSyB0b29s
YmFyIGFuZCB3aWRnZXRzLAogYXV0b21hdGljYWxseSB0b2dnbGluZyBiZXR3ZWVuIHRoZW0u
CiAKKy0tLQorKiogZW1hY3MtZGFyay1tb2RlLXRvZ2dsZS1ob29rIGNhbGxlZCB3aGVuIGRh
cmsgbW9kZSBpcyB0b2dnbGVkLgorV2hlbiBkYXJrIG1vZGUgaXMgdG9nZ2xlZCBvbiBQR1RL
IG9yIFdpbjMyIGJ1aWxkcywKK2VtYWNzLWRhcmstbW9kZS10b2dnbGUtaG9vayBpcyBjYWxs
ZWQuCisKIAwKICogQ2hhbmdlcyBpbiBFbWFjcyAzMS4xIG9uIE5vbi1GcmVlIE9wZXJhdGlu
ZyBTeXN0ZW1zCiAKZGlmZiAtLWdpdCBhL2xpc3AvZnJhbWUuZWwgYi9saXNwL2ZyYW1lLmVs
CmluZGV4IGM0OGIyYzRhZjFlLi5hZWY5MTNiMjA0NyAxMDA2NDQKLS0tIGEvbGlzcC9mcmFt
ZS5lbAorKysgYi9saXNwL2ZyYW1lLmVsCkBAIC0xNTI4LDYgKzE1MjgsMTMgQEAgZnJhbWUt
dGVybWluYWwtZGVmYXVsdC1iZy1tb2RlCiA7OyAgICAgICAgICAgICAgICAgICAgICAgICA6
YmFja2dyb3VuZCAoZmFjZS1hdHRyaWJ1dGUgJ2RlZmF1bHQgOmZvcmVncm91bmQpKQogOzsg
ICAgIChmcmFtZS1zZXQtYmFja2dyb3VuZC1tb2RlIChzZWxlY3RlZC1mcmFtZSkpKSkKIAor
KGRlZnZhciBkYXJrLW1vZGUtdG9nZ2xlLWhvb2sgbmlsCisgICJBYm5vcm1hbCBob29rIHJ1
biB3aGVuIHRoZSBzeXN0ZW0gZGFyayBtb2RlIHNldHRpbmcgY2hhbmdlcy4KK1RoaXMgaG9v
ayBpcyBjYWxsZWQgd2hlbiB0aGUgc3lzdGVtLXdpZGUgZGFyayBtb2RlCitwcmVmZXJlbmNl
IGNoYW5nZXMuICBGdW5jdGlvbnMgb24gdGhpcyBob29rIGFyZSBjYWxsZWQgd2l0aCBvbmUK
K2FyZ3VtZW50OiBub24tbmlsIGlmIGRhcmsgbW9kZSBpcyBlbmFibGVkLCBuaWwgaWYgbGln
aHQgbW9kZQoraXMgZW5hYmxlZC4iKQorCiAMCiA7Ozs7IEZyYW1lIGNvbmZpZ3VyYXRpb25z
CiAKZGlmZiAtLWdpdCBhL3NyYy9ndGt1dGlsLmMgYi9zcmMvZ3RrdXRpbC5jCmluZGV4IDMy
OWFkNmMzM2I1Li41MzEwZmEyOGEyOCAxMDA2NDQKLS0tIGEvc3JjL2d0a3V0aWwuYworKysg
Yi9zcmMvZ3RrdXRpbC5jCkBAIC0xNDc1LDYgKzE0NzUsMTUgQEAgeGdfdXBkYXRlX2Rhcmtf
bW9kZV9mb3JfYWxsX2Rpc3BsYXlzIChib29sIGRhcmtfbW9kZV9wKQogCSA9IGd0a19zZXR0
aW5nc19nZXRfZm9yX3NjcmVlbiAoc2NyZWVuKTsKICAgICAgICB4Z19zZXRfZ3RrX3RoZW1l
X2RhcmtfbW9kZSAoZGFya19tb2RlX3AsIHNldHRpbmdzKTsKICAgICAgfQorCisgICBMaXNw
X09iamVjdCBob29rID0gaW50ZXJuICgiZGFyay1tb2RlLXRvZ2dsZS1ob29rIik7CisgICBp
ZiAoIU5JTFAgKEZib3VuZHAgKGhvb2spKSkKKyAgICAgeworICAgICAgIExpc3BfT2JqZWN0
IGFyZ3NbMl07CisgICAgICAgYXJnc1swXSA9IGhvb2s7CisgICAgICAgYXJnc1sxXSA9IGRh
cmtfbW9kZV9wID8gUXQgOiBRbmlsOworICAgICAgIEZydW5faG9va193aXRoX2FyZ3MgKDIs
IGFyZ3MpOworICAgICB9CiB9CiAKIC8qIFNldCBpbml0aWFsIGRhcmsgbW9kZSBmb3IgYSBu
ZXcgZnJhbWUgKGNhbGxlZCBkdXJpbmcgZnJhbWUKZGlmZiAtLWdpdCBhL3NyYy93MzJmbnMu
YyBiL3NyYy93MzJmbnMuYwppbmRleCAzZmMwZjU1MjQ0Zi4uZTliNjE3MDQ3NzAgMTAwNjQ0
Ci0tLSBhL3NyYy93MzJmbnMuYworKysgYi9zcmMvdzMyZm5zLmMKQEAgLTI0NDAsNiArMjQ0
MCwxNSBAQCB3MzJfYXBwbHl0aGVtZSAoSFdORCBod25kKQogCQkJCSAgICAmdzMyX2Rhcmtt
b2RlLCBzaXplb2YgKHczMl9kYXJrbW9kZSkpOwogCX0KICAgICB9CisKKyAgIExpc3BfT2Jq
ZWN0IGhvb2sgPSBpbnRlcm4gKCJkYXJrLW1vZGUtdG9nZ2xlLWhvb2siKTsKKyAgIGlmICgh
TklMUCAoRmJvdW5kcCAoaG9vaykpKQorICAgICB7CisgICAgICAgTGlzcF9PYmplY3QgYXJn
c1syXTsKKyAgICAgICBhcmdzWzBdID0gaG9vazsKKyAgICAgICBhcmdzWzFdID0gdzMyX2Rh
cmttb2RlID8gUXQgOiBRbmlsOworICAgICAgIEZydW5faG9va193aXRoX2FyZ3MgKDIsIGFy
Z3MpOworICAgICB9CiB9CiAKIHN0YXRpYyBIV05ECi0tIAoyLjUwLjEKCg==

--------------ku6lY6skjYH0PAUF0ICVOKia--




Acknowledgement sent to Ahmed Khanzada <me@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#79776; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Tue, 25 Nov 2025 20:45:01 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.