From unknown Thu Aug 14 17:26:09 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#69079 <69079@debbugs.gnu.org> To: bug#69079 <69079@debbugs.gnu.org> Subject: Status: [PATCH] Add 'customize-toggle-option' command Reply-To: bug#69079 <69079@debbugs.gnu.org> Date: Fri, 15 Aug 2025 00:26:09 +0000 retitle 69079 [PATCH] Add 'customize-toggle-option' command reassign 69079 emacs submitter 69079 Philip Kaludercic severity 69079 normal tag 69079 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 12 12:33:18 2024 Received: (at submit) by debbugs.gnu.org; 12 Feb 2024 17:33:18 +0000 Received: from localhost ([127.0.0.1]:44436 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rZaB8-00046F-RR for submit@debbugs.gnu.org; Mon, 12 Feb 2024 12:33:18 -0500 Received: from lists.gnu.org ([2001:470:142::17]:52534) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rZaB2-00045C-7s for submit@debbugs.gnu.org; Mon, 12 Feb 2024 12:33:13 -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 ) id 1rZaAg-0004La-0l for bug-gnu-emacs@gnu.org; Mon, 12 Feb 2024 12:32:46 -0500 Received: from mout02.posteo.de ([185.67.36.66]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rZaAd-0000Jl-2T for bug-gnu-emacs@gnu.org; Mon, 12 Feb 2024 12:32:45 -0500 Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id 8EF16240101 for ; Mon, 12 Feb 2024 18:32:38 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1707759158; bh=XJyG2QJoKqNoZoJwxLr2YAkZUV2I7KCd4nLlO5ws0us=; h=From:To:Subject:Autocrypt:OpenPGP:Date:Message-ID:MIME-Version: Content-Type:From; b=jTp92fFmvKORMD0smvqNqCPIt98K7wpJrPtdQWIdVzgOfV2bflDLmbRPJtVHXe96/ 1eLLQ1GQJN9JqZTKqaRognV0i0W50+vqex0sj4I2aDuwaPz0HcQi9A6zB1bDLEZzSw YjQA2ktZ0YJeroVhaleKv8xsKtD/GrEYZMJBq92nzqxSR4YhcshIxy71uFdSv6VaRG /ZbswH5BaVKNb9Jqx0Ggi4VniQnhVMnSkaiaqHSVyAJC6TbOnIM07VTep4IlqIRzSF HaLcldqmnYnyKj1bEn06cGImeI1HbQGnsNcB5Q+umbzaDM0Nftwftc8qWULXzsZ80O 8f5JNM+iScy6w== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4TYWkG0dK9z6txp for ; Mon, 12 Feb 2024 18:32:37 +0100 (CET) From: Philip Kaludercic To: bug-gnu-emacs@gnu.org Subject: [PATCH] Add 'customize-toggle-option' command Autocrypt: addr=philipk@posteo.net; keydata= mDMEZBBQQhYJKwYBBAHaRw8BAQdAHJuofBrfqFh12uQu0Yi7mrl525F28eTmwUDflFNmdui0QlBo aWxpcCBLYWx1ZGVyY2ljIChnZW5lcmF0ZWQgYnkgYXV0b2NyeXB0LmVsKSA8cGhpbGlwa0Bwb3N0 ZW8ubmV0PoiWBBMWCAA+FiEEDg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwMFCQHhM4AFCwkI BwIGFQoJCAsCBBYCAwECHgECF4AACgkQ8xYDWXahwulikAEA77hloUiSrXgFkUVJhlKBpLCHUjA0 mWZ9j9w5d08+jVwBAK6c4iGP7j+/PhbkxaEKa4V3MzIl7zJkcNNjHCXmvFcEuDgEZBBQQhIKKwYB BAGXVQEFAQEHQI5NLiLRjZy3OfSt1dhCmFyn+fN/QKELUYQetiaoe+MMAwEIB4h+BBgWCAAmFiEE Dg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwwFCQHhM4AACgkQ8xYDWXahwukm+wEA8cml4JpK NeAu65rg+auKrPOP6TP/4YWRCTIvuYDm0joBALw98AMz7/qMHvSCeU/hw9PL6u6R2EScxtpKnWof z4oM OpenPGP: id=7126E1DE2F0CE35C770BED01F2C3CC513DB89F66; url="https://keys.openpgp.org/vks/v1/by-fingerprint/7126E1DE2F0CE35C770BED01F2C3CC513DB89F66"; preference=signencrypt Date: Mon, 12 Feb 2024 17:32:37 +0000 Message-ID: <87frxx37wq.fsf@posteo.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=185.67.36.66; envelope-from=philipk@posteo.net; helo=mout02.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit 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: -0.0 (/) --=-=-= Content-Type: text/plain I have had this option in my own init.el for a while, and think it would be nice to upstream it. Any comments: --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Add-'custom-variable'-command.patch Content-Description: [PATCH] Add 'custom-variable' command. >From 65cbe5deb81bd5b3bc7ebcc52a98952497dbe1a6 Mon Sep 17 00:00:00 2001 From: Philip Kaludercic Date: Mon, 12 Feb 2024 18:29:50 +0100 Subject: [PATCH] Add 'custom-variable' command. * lisp/cus-edit.el (customize-toggle-option): Add command. (toggle-option): Add shorter alias for 'customize-toggle-option'. * etc/NEWS: Document it. --- etc/NEWS | 4 ++++ lisp/cus-edit.el | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/etc/NEWS b/etc/NEWS index afc2c22e68b..6fae64728f2 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1329,6 +1329,10 @@ in Buffer menu mode. *** New command 'customize-dirlocals'. This command pops up a buffer to edit the settings in ".dir-locals.el". +--- +** New command 'customize-toggle-option'. +This command can toggle boolean options for the duration of a session. + ** Calc +++ diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index 38b6ec984ab..2f08ffc8ba6 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el @@ -1227,6 +1227,26 @@ customize-option (unless (eq symbol basevar) (message "`%s' is an alias for `%s'" symbol basevar)))) +;;;###autoload +(defun customize-toggle-option (opt) + "Toggle the value of boolean option OPT for this session." + (interactive (let (opts) + (mapatoms + (lambda (sym) + (when (eq (get sym 'custom-type) 'boolean) + (push sym opts)))) + (list (intern (completing-read "Option: " opts))))) + (message "%s user options '%s'." + (if (funcall (or (get opt 'custom-set) #'set-default) + opt (not (funcall (or (get opt 'custom-get) + #'symbol-value) + opt))) + "Enabled" "Disabled") + opt)) + +;;;###autoload +(defalias 'toggle-option #'customize-toggle-option) + ;;;###autoload (defalias 'customize-variable-other-window 'customize-option-other-window) -- 2.43.0 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 12 12:56:57 2024 Received: (at 69079) by debbugs.gnu.org; 12 Feb 2024 17:56:57 +0000 Received: from localhost ([127.0.0.1]:45892 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rZaY2-0005wF-8b for submit@debbugs.gnu.org; Mon, 12 Feb 2024 12:56:57 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:45792) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rZaXy-0005vp-RF for 69079@debbugs.gnu.org; Mon, 12 Feb 2024 12:56:53 -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 ) id 1rZaPU-0003Ip-Ch; Mon, 12 Feb 2024 12:48:04 -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=2TRmSWPCRUS07/3sSLsyOSwYauqTQ3SlTlhG1dZwKSY=; b=byBM0Ef5S0B2 N8T9wZ1kVfl4B1C3L6LGbG96nroJMhw0wwMyICqZpzgepC377hfU5XbQUGzAr2ssQ438seMcVsAbh NkDU9V5L41Ryy4XGyFSUko1PEsRX6af6gFntzngqEMmeKVXaPidjMRvCSyogGGGNspRF2EFHIFcYT HN7fwrRSwE7rQLak7g4hfFQ0JuF9ICtMaFwm/Cw0T63QbCcPRM0U7Ew/7ythfWq5mpqL5KbvJihzU wWLt8EsDgBa/LFxCsGYRGHe+Ij20B0+IfLPNiwyBQkWk1zhmjuxygnlZaEdDFi+cfb8TKw0woymcm LMK8n1BpTXWH46asxgXzUQ==; Date: Mon, 12 Feb 2024 19:47:57 +0200 Message-Id: <86plx1r2uq.fsf@gnu.org> From: Eli Zaretskii To: Philip Kaludercic In-Reply-To: <87frxx37wq.fsf@posteo.net> (message from Philip Kaludercic on Mon, 12 Feb 2024 17:32:37 +0000) Subject: Re: bug#69079: [PATCH] Add 'customize-toggle-option' command References: <87frxx37wq.fsf@posteo.net> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 69079 Cc: 69079@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: -3.3 (---) > From: Philip Kaludercic > Date: Mon, 12 Feb 2024 17:32:37 +0000 > > +;;;###autoload > +(defun customize-toggle-option (opt) > + "Toggle the value of boolean option OPT for this session." > + (interactive (let (opts) > + (mapatoms > + (lambda (sym) > + (when (eq (get sym 'custom-type) 'boolean) > + (push sym opts)))) > + (list (intern (completing-read "Option: " opts))))) > + (message "%s user options '%s'." > + (if (funcall (or (get opt 'custom-set) #'set-default) > + opt (not (funcall (or (get opt 'custom-get) > + #'symbol-value) > + opt))) > + "Enabled" "Disabled") > + opt)) Shouldn't this have some validation? what if the argument OPT is not a boolean? And the prompt should IMO say "Toggle boolean option: ". From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 12 13:42:04 2024 Received: (at 69079) by debbugs.gnu.org; 12 Feb 2024 18:42:04 +0000 Received: from localhost ([127.0.0.1]:48791 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rZbFj-0000qr-FS for submit@debbugs.gnu.org; Mon, 12 Feb 2024 13:42:03 -0500 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:7790) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rZbFg-0000qB-Vl for 69079@debbugs.gnu.org; Mon, 12 Feb 2024 13:42:01 -0500 Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 41CITwOC026774; Mon, 12 Feb 2024 18:41:43 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2023-11-20; bh=tyQECWMISCp2rpqII/KLK2yXAuc/wv49vWOYa/+wWD0=; b=XP2n3IHtAQ+VmUxLnVJFpuUM9aCC/slfDyrWV8uJE+cze6ItKrJVyT0GgFyYsEwnRq8X yDQtuTHqqKlhGbztypVHng3fRvFPT2nLK1FJTWlJC8jT7aE3hskQjbpX1b+MctcHGqwv sDqwxmTW6sjYsBPExwoKCul3uKqHASP1bQZPbImB78pytqTWbhQcFK4zKfDYE4YXYvP4 JEMfcWnXSzT3ZSeKBnHvf5Elq+FHlJMgR9iN2Z9VQjC9kl8dgaANTQhtcnE6tD2CIF1l VMUdNDj3S2eq7+My/QBiSGglM/fflxJebdojY1+S9UXLlssZy1OghtCd+Nyv2bDi9W9R 4Q== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3w7rnb80s5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Feb 2024 18:41:42 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 41CHqhbb031505; Mon, 12 Feb 2024 18:41:42 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2100.outbound.protection.outlook.com [104.47.58.100]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3w5yk65edw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Feb 2024 18:41:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DlCE5UOINZbzefiYuCadtINU0xHRdx91jk2wd/Ht57rxE549G5TIhCpYEickdMDIk8ugQ/IYPjRYHlDdlam72pmvQiadgeG05KGqJ+b3bQPzJxfOMuf71fWw7yT+ozdDpHh3/hnOb7dzzpW73ONrbEfgkbSK4dSNoCuQdSKYXXZZoc6rfxog2TL19b38EgeY8p3xQ3A5WtqSZGI4I2QFWmgvWsHTI/d0drN7liqGitzEnYlFVXXfTsls0s3SO1753yTCmeaMxMcEY8BkKws5pAuOMZPgSqeRvE4ZTgB8P5pB6wVkMByS2L+gIbCC09s5zH+At1mU52x6GBH+AEZwkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=tyQECWMISCp2rpqII/KLK2yXAuc/wv49vWOYa/+wWD0=; b=bKZNpLRpT7RaoPEZ9qYDYLOHuS8BJmGOJ9QqQmBbTKBLa+uPRokMOVK8kDvLmRvsHEyHHQWSixdbZ3Qk/31b0LHw1SoFkewS7dHQaDBhA94uTYV1x5j15xaZ93+Wsu4b8qAnjJDVhWgGDaLORIoZom0xqooAe8AWmSfCHOP0WLA1yrmp8CXQVBPLQiWNEEec1FnYNd87rxWsflA93Yv4unYsls9/Z8XrnVXSXHI4zGPqqJLkdCV9Mez/w4xplus+SB68vBcp0uXcW9XuDPyeCCv4UCu4miNuyOl2ipFJXM+F4vAOm5RaIOgRlZHhFUFxiXH5Jz8wUpPh3BCzZUZxwg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tyQECWMISCp2rpqII/KLK2yXAuc/wv49vWOYa/+wWD0=; b=cVVvmXqfeSYzSKLSZv+rXNlzpTJBdR/nSaAxrzTPPFHTTdOYjGd1Ukr8y797pUBmDeZyRMdIIaqgJzA49t9s0cQSgc5pCpPJ7TQxv+AmNYEtlM4QS0K3aa7ir5BWi8WuZeCcPSZUm0ypka1ITNT96A5JYc2l8tUkGMyo60edwx8= Received: from SJ0PR10MB5488.namprd10.prod.outlook.com (2603:10b6:a03:37e::19) by IA0PR10MB7275.namprd10.prod.outlook.com (2603:10b6:208:3de::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7270.27; Mon, 12 Feb 2024 18:41:39 +0000 Received: from SJ0PR10MB5488.namprd10.prod.outlook.com ([fe80::7eb0:e361:caf4:a410]) by SJ0PR10MB5488.namprd10.prod.outlook.com ([fe80::7eb0:e361:caf4:a410%4]) with mapi id 15.20.7270.036; Mon, 12 Feb 2024 18:41:39 +0000 From: Drew Adams To: Eli Zaretskii , Philip Kaludercic Subject: RE: [External] : bug#69079: [PATCH] Add 'customize-toggle-option' command Thread-Topic: [External] : bug#69079: [PATCH] Add 'customize-toggle-option' command Thread-Index: AQHaXdzl56zW6/VQU0SKet8HJH8m77EHBB9g Date: Mon, 12 Feb 2024 18:41:39 +0000 Message-ID: References: <87frxx37wq.fsf@posteo.net> <86plx1r2uq.fsf@gnu.org> In-Reply-To: <86plx1r2uq.fsf@gnu.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SJ0PR10MB5488:EE_|IA0PR10MB7275:EE_ x-ms-office365-filtering-correlation-id: 7c088f6f-517d-43a8-685c-08dc2bfa3fd8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: fEqdhtmXtrgGBPadn0Z49PvDycRaXOhH9pPVHa69OhOC41HqAxaJ6mypm2V7HuU21HgH7na7cuxXHZFHNhadHCf5r/SuYulvuOlOAho7i/dSXplAWWt0u9lv5NmxIpip0FXxfL0jPWLZwrrRAXVePgtAoDpOjJWXCPgw1BufPPg5oAEMjI1XFD2mua5/zjnQX4NrceVj2VAymeZiBo7uRcn9ak8oTH4dc31mqCwz9lpbtofwgjm6+Dm76S/2+c/pcRdElfgSHPhaM+6dV13ZKVM3EjCQ4tX8HCpgy5b4vx4EYscric88FS+Q9Vy+GiJHoUuuUNp3j9EgGgzlIKwjzooG55H4whA7STCrTw+NIGEpXqREgb0Kmi9QLU6nfCa0sQGEhy5vMTx6rUZOAGjFxl+RIqnS7cTeW4IB5aqKNYeb9lPVJV/tHopJjV5h1UxON30BRxlkRKGKXBbmbBQlWHHJ2eIBIvQoSR065PmLlkn1mMbUKufWsC6QSuEjdGOVLcDNJM7/VLHnTwuVQQgDWh5YslVdqg7dwiWR7d5Btc3D9EL4I20mbpyTEvLsqeoOc+z3+yOrsDJ6MjvzaTSYEe4MuM+pXMWpZy7i6dvXcE/94pfU8OOfU77l/aJ8mbDQ x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR10MB5488.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(39860400002)(396003)(346002)(366004)(376002)(136003)(230922051799003)(1800799012)(451199024)(64100799003)(186009)(44832011)(5660300002)(2906002)(52536014)(76116006)(8676002)(83380400001)(26005)(66476007)(33656002)(122000001)(38100700002)(86362001)(110136005)(66946007)(38070700009)(66556008)(66446008)(64756008)(8936002)(7696005)(316002)(71200400001)(478600001)(6506007)(55016003)(4326008)(9686003)(41300700001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?yt8L8TwS6G9aMOah24dWm41sK7D+ZuY6c4LRasP0lxzkhGKoLlMdc0j+iXAv?= =?us-ascii?Q?ulQXvZ9YlvDIhk3f40TBFJeQWybZN8uQDHVhwgWzpWhGfhy0KSqwQ/EJP9LX?= =?us-ascii?Q?N9V9li+1gnaXa05iHS86W9gYysnE0WKJ+d0ps/BQx0cQWmAR3HXK4i1VZsoD?= =?us-ascii?Q?yoPL9R5bnIkeB80wDe5irjS2xYsKH/VmrIUhfIxYY4XElQKoYdS3nTF0Ek4h?= =?us-ascii?Q?cv57jXO4ou5NIgSBKW+9e2S6cC0Vpk5bPd9YxCxSIYYiOMffue/nxIhguQ5E?= =?us-ascii?Q?GDCc+5CPI5k1PeEIXRds6e3YebRiHxgqWmz1JGlgYXhqY1DzJ1FSZudv1X3r?= =?us-ascii?Q?z3RXOycxvlKA8czcWczlxuzoHxfG+tGjzmNl2ock9kMxKpa9FccUJCgTVKFm?= =?us-ascii?Q?pABHlwIvbl5Fb5Py2YHEuAFsoCeQ3Pzspf/zhs0BaNapzanp0ZZ5AW0BD6Ud?= =?us-ascii?Q?tSlDlTEI/ebTLoMp0Bb6d4cz+SBIyAqvVyGzH0fwYkzSaRS4h44EG8n0+wa2?= =?us-ascii?Q?HGiBkxFHWd8NROqMNsSXBt29G1nqy9HWrFoRE1iFxXJRQV8stE/pMdFs4viD?= =?us-ascii?Q?rnz+entMIciCdHY2IbgqpDe/6/0PAAbVGIQm88edXZ9HjT/Rr88VhxAmgX9t?= =?us-ascii?Q?7ELajB6JdGnusUmPar8pfHUSg5kNX+Gk++cm4MDKgHXtsWYBYj7PNayBu2Rb?= =?us-ascii?Q?bB3osLLdKOFSuef7UzV89PMlg3NjNUMDDaigECJqgSzuReMMrYaNBAdpGBhl?= =?us-ascii?Q?I6Q33vjrZhi0gQHkqasJpXZiuUB5H25n/NuKymwzMZAj4R7rTi5t7CiQUoPZ?= =?us-ascii?Q?W4oukyllFnnVtaegCOhruwqWdzuHJqtDFiXlLP7cPMmC9fWZTDYoDMJs9JBN?= =?us-ascii?Q?nwNf0Db2ehEYna2XP4L9m92oECd/uEq2l+iLIwunpZs0qrb4G7lb5+qTKF4g?= =?us-ascii?Q?JdMLUmCPrZTyXHg9M3euZZ3sq4xtK0yJC04MtYH73031/8uQ+vsJgI5o+1kn?= =?us-ascii?Q?dk8cYBg/JxOc8oiRYu2dDoKYDB6XT3FX4W3MNtGUNkBFP84mI3nYuLZK5Rog?= =?us-ascii?Q?OOb4UQN3xa2lsXvmaf8293bFSyNKd4thn72HU+7krJF+5P7dAi1puRlfi+oo?= =?us-ascii?Q?sv9V8b9lEYo6EB+ee7G+7SmgEduaXmXsqfhzAj1ff0Rdoh7K7rzW/tUnul9d?= =?us-ascii?Q?aHNu3nbz6JhfeRFkXu/xUAJ0c/wrq38UHvzRD3pQ5XAdSvQltnuIi8PQ13iv?= =?us-ascii?Q?aPt1+lzvDYafEM8JfFmgPFRbCy0D/P10U0aQ+adEJWPPR4tuuOS9W+RNNPNq?= =?us-ascii?Q?DD5k/bMC23EPTx7742xwPW/W+WnFQrZRuyOSDnFbJt04FtJVNFkVB44IuFes?= =?us-ascii?Q?a8wxIWG/mIRbk7HRJ2ezdoWVKf86AR1b0d32kBUG1+s9fq82OM8K3H4dL2zu?= =?us-ascii?Q?JabJf0B4CrCRyj8QJiVFm+xp3nt15ePjGLSfnDaoB3cTYazganC4m5OZ2Cki?= =?us-ascii?Q?clwOIsI7SCU60pMT/eDygDroYMLmr3k7Noca0ouoX40+qa34MMmyzVzQSuYL?= =?us-ascii?Q?KcGWkNTXM7f/mvSYvTHlgvd0D/jh11OzJ598mghG?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: M+lNq03sRTnwXI4PgzqVEmHsNJS00u4Togj8htpD3mcoWAUEhpZE+N+R6C7fxVuR1JSJsS1rvXOeQ/Oo8y0FhKFJ4rTZtXgd0FSH5fd2piORyo7e/l6o1H85PL0+YLj/6plM8qzbOw2CwpDMpLAJsMD8bcpdiZs+wWrX4+Pw5aAl+yKcRVkuUWe2dj/8yePmtrJmjnQnF5VepATTOS5xoC5EzLqi2AeT84+3nkvuC/vj5+IL8/BaeFZEU+9kIWjKXkHZKF8GWD5l1GdQvg4CgC27z0kkC5Yu5KKC/tX3yiz/AV5nAekWDTKG1vjtiNyWglY1iNtYWQGN1CwtZndFxRZfob2B9puQsWLvxasf7pOoVBRd8twwgZTBal+vYWJxzFuXjV0HiQUpB1TkPOx0490lJ9NGFFIHRPsNjP2Fvgd6P+mnTkhqussSGxUlNGbQHWirFVz8s/sBtzSLAcIyXXPrG4aOU36wXdp0L/BnDs63EbPxqTbSP92FXad96gl6N7vkbtOLZYSswcVZkSkhnq9QROjNoTKjHCm1+8ZauERKM/GQFyOlD6n3lFQ0fnxx+TYzHNxbvL0L1T13gQwTU4RLhkAPn+zMuNyGqZKfiFM= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SJ0PR10MB5488.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7c088f6f-517d-43a8-685c-08dc2bfa3fd8 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Feb 2024 18:41:39.2491 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: e0A41mdrWpmqyu+s2xwtmft/TB5VrsQDyGv1/Xqe66J6m5UAzH5Ajd6vomxJQDXwy9Bh0iopa1e+fL2RpmOvvA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR10MB7275 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-02-12_16,2024-02-12_03,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxscore=0 spamscore=0 adultscore=0 phishscore=0 bulkscore=0 mlxlogscore=968 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2402120143 X-Proofpoint-GUID: dV1uYgeVeuJf1SbRzyC1A66u6oS-ytyy X-Proofpoint-ORIG-GUID: dV1uYgeVeuJf1SbRzyC1A66u6oS-ytyy X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 69079 Cc: "69079@debbugs.gnu.org" <69079@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.7 (-) FWIW, (since 2006) Icicles has this, which is bound to `M-i M-i` during completion. With a prefix arg you can toggle options and other variables whose values are generalized Booleans: `nil' or non-`nil' (not just `t'). This is for toggling an option's current value; it does only this: (set SYMBOL (not (eval SYMBOL))). But the completion predicate determines the proper candidates (depending on prefix arg). There are (rightfully) many options whose values are `nil' for false and non-`nil' for true. If the command didn't let you toggle such options (with a prefix arg) then it would be _far_ less useful. ___ Doc string: Toggle option's value. This makes sense for binary (toggle) options. By default, completion candidates are limited to user options that have `boolean' custom types. However, there are many "binary" options that allow other non-nil values than t. You can use a prefix argument to change the set of completion candidates, as follows: - With a non-negative prefix arg, all user options are candidates. - With a negative prefix arg, all variables are candidates. From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 12 14:10:23 2024 Received: (at 69079) by debbugs.gnu.org; 12 Feb 2024 19:10:23 +0000 Received: from localhost ([127.0.0.1]:50780 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rZbh7-00039l-H3 for submit@debbugs.gnu.org; Mon, 12 Feb 2024 14:10:23 -0500 Received: from mout02.posteo.de ([185.67.36.66]:57495) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rZbUF-00028j-8R for 69079@debbugs.gnu.org; Mon, 12 Feb 2024 13:57:03 -0500 Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id A0EF0240105 for <69079@debbugs.gnu.org>; Mon, 12 Feb 2024 19:56:40 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1707764200; bh=znO1rKHOn5Q55TUMc4CJ8wUTRxutBiAdRJkNQU0CvgQ=; h=From:To:Cc:Subject:Autocrypt:OpenPGP:Date:Message-ID:MIME-Version: Content-Type:From; b=sBUxcC33fxseu/TbFOSpQwfFLOZUDhKLkHwq/2TDVknla+pIzt2yLVNAtZUNAZK5c GZKdmbaysPP2Kvgn1uJ9UZO7U7N7y92fU1fpLWq+QgiSNNtidy4djaz93mih9DsIro GQ87QdM1TXCK4HELzCQWkWIKOH/1Y3fjMHD7MYhznqXMnmoBFPtcGBkIUFbTBsdwfd UNm0FKutRdZRVMTRNDvCCo09lMayQpEL5KHMPNp+P9Usgn9lJA0HEgAOeqSMasKw28 G1uRBYmjiXf6SYHx/Iu2L2vqKEGSDcYC0qTPzgqmsbXL8/DhS3+66zaTVyoZP6ssd+ UbYWM+AVYSBDQ== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4TYYbD0Qh4z9rxD; Mon, 12 Feb 2024 19:56:39 +0100 (CET) From: Philip Kaludercic To: Eli Zaretskii Subject: Re: bug#69079: [PATCH] Add 'customize-toggle-option' command In-Reply-To: <86plx1r2uq.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 12 Feb 2024 19:47:57 +0200") References: <87frxx37wq.fsf@posteo.net> <86plx1r2uq.fsf@gnu.org> Autocrypt: addr=philipk@posteo.net; keydata= mDMEZBBQQhYJKwYBBAHaRw8BAQdAHJuofBrfqFh12uQu0Yi7mrl525F28eTmwUDflFNmdui0QlBo aWxpcCBLYWx1ZGVyY2ljIChnZW5lcmF0ZWQgYnkgYXV0b2NyeXB0LmVsKSA8cGhpbGlwa0Bwb3N0 ZW8ubmV0PoiWBBMWCAA+FiEEDg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwMFCQHhM4AFCwkI BwIGFQoJCAsCBBYCAwECHgECF4AACgkQ8xYDWXahwulikAEA77hloUiSrXgFkUVJhlKBpLCHUjA0 mWZ9j9w5d08+jVwBAK6c4iGP7j+/PhbkxaEKa4V3MzIl7zJkcNNjHCXmvFcEuDgEZBBQQhIKKwYB BAGXVQEFAQEHQI5NLiLRjZy3OfSt1dhCmFyn+fN/QKELUYQetiaoe+MMAwEIB4h+BBgWCAAmFiEE Dg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwwFCQHhM4AACgkQ8xYDWXahwukm+wEA8cml4JpK NeAu65rg+auKrPOP6TP/4YWRCTIvuYDm0joBALw98AMz7/qMHvSCeU/hw9PL6u6R2EScxtpKnWof z4oM OpenPGP: id=7126E1DE2F0CE35C770BED01F2C3CC513DB89F66; url="https://keys.openpgp.org/vks/v1/by-fingerprint/7126E1DE2F0CE35C770BED01F2C3CC513DB89F66"; preference=signencrypt Date: Mon, 12 Feb 2024 18:56:39 +0000 Message-ID: <87le7p1pg8.fsf@posteo.net> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 69079 Cc: 69079@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: -3.3 (---) Eli Zaretskii writes: >> From: Philip Kaludercic >> Date: Mon, 12 Feb 2024 17:32:37 +0000 >> >> +;;;###autoload >> +(defun customize-toggle-option (opt) >> + "Toggle the value of boolean option OPT for this session." >> + (interactive (let (opts) >> + (mapatoms >> + (lambda (sym) >> + (when (eq (get sym 'custom-type) 'boolean) >> + (push sym opts)))) >> + (list (intern (completing-read "Option: " opts))))) >> + (message "%s user options '%s'." >> + (if (funcall (or (get opt 'custom-set) #'set-default) >> + opt (not (funcall (or (get opt 'custom-get) >> + #'symbol-value) >> + opt))) >> + "Enabled" "Disabled") >> + opt)) > > Shouldn't this have some validation? what if the argument OPT is not a > boolean? My assumption was that the command would only be invoked interactivly, so I can either make that explicit with an `interactive-only' or repeat the check. What do you think would be better? > And the prompt should IMO say "Toggle boolean option: ". Good point. From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 12 15:10:23 2024 Received: (at 69079) by debbugs.gnu.org; 12 Feb 2024 20:10:23 +0000 Received: from localhost ([127.0.0.1]:55088 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rZcdC-0002A4-BL for submit@debbugs.gnu.org; Mon, 12 Feb 2024 15:10:23 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:48026) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rZcPj-0006kG-SR for 69079@debbugs.gnu.org; Mon, 12 Feb 2024 14:56:30 -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 ) id 1rZc2v-0006wH-EV; Mon, 12 Feb 2024 14:32:53 -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=D7hC26ot3BOMaHWABZqPSzxz97HwjH00LRqIWZg1OLg=; b=ab7l59ub5DBL ygJRljJLTRADupG0FZWn6o3A4WAE+Un7nNWcvgRJWNq2rbEVrPU9D/2p7j72yyLLqsbVigFolrJX+ +giItyAPtSTPKx4bPbuxyf5eCYQOt+QtdEEsHCJ1OCi0Pg/qt4N2Y1/RzrCELH0c5Hmu7/ACUkbRa Okb95eWN7DETTjhwtP602T/dZTVoB0E5GAR3f/4siSI795pXj9Yiq0muJaVI4dGd39wKx7/PCl3a2 Gy7lt78JBZUCwtvFLgUvOevtv0+SN/wqSVX0XnifPQ010h3ALUcjD7Vzyi0Gu7DHASYe73ntjd3FW seTfih1XNaCeRIQ4JKYDzQ==; Date: Mon, 12 Feb 2024 21:32:51 +0200 Message-Id: <86frxxqxzw.fsf@gnu.org> From: Eli Zaretskii To: Philip Kaludercic In-Reply-To: <87le7p1pg8.fsf@posteo.net> (message from Philip Kaludercic on Mon, 12 Feb 2024 18:56:39 +0000) Subject: Re: bug#69079: [PATCH] Add 'customize-toggle-option' command References: <87frxx37wq.fsf@posteo.net> <86plx1r2uq.fsf@gnu.org> <87le7p1pg8.fsf@posteo.net> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 69079 Cc: 69079@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: -3.3 (---) > From: Philip Kaludercic > Cc: 69079@debbugs.gnu.org > Date: Mon, 12 Feb 2024 18:56:39 +0000 > > Eli Zaretskii writes: > > >> From: Philip Kaludercic > >> Date: Mon, 12 Feb 2024 17:32:37 +0000 > >> > >> +;;;###autoload > >> +(defun customize-toggle-option (opt) > >> + "Toggle the value of boolean option OPT for this session." > >> + (interactive (let (opts) > >> + (mapatoms > >> + (lambda (sym) > >> + (when (eq (get sym 'custom-type) 'boolean) > >> + (push sym opts)))) > >> + (list (intern (completing-read "Option: " opts))))) > >> + (message "%s user options '%s'." > >> + (if (funcall (or (get opt 'custom-set) #'set-default) > >> + opt (not (funcall (or (get opt 'custom-get) > >> + #'symbol-value) > >> + opt))) > >> + "Enabled" "Disabled") > >> + opt)) > > > > Shouldn't this have some validation? what if the argument OPT is not a > > boolean? > > My assumption was that the command would only be invoked interactivly, > so I can either make that explicit with an `interactive-only' or repeat > the check. What do you think would be better? I think an explicit test is better, since then we get to display a user-friendly error message, instead of relying on Lisp errors to explain themselves. Btw, are you sure that the users can never succeed in inputting a non-boolean option with the way you prompt them? From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 12 19:15:04 2024 Received: (at 69079) by debbugs.gnu.org; 13 Feb 2024 00:15:04 +0000 Received: from localhost ([127.0.0.1]:36411 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rZgS0-0005nf-9C for submit@debbugs.gnu.org; Mon, 12 Feb 2024 19:15:04 -0500 Received: from mout02.posteo.de ([185.67.36.66]:51611) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rZgRy-0005mT-HH for 69079@debbugs.gnu.org; Mon, 12 Feb 2024 19:15:03 -0500 Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id 57165240101 for <69079@debbugs.gnu.org>; Tue, 13 Feb 2024 01:14:39 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1707783279; bh=5nNVphN6FR/FM5uiMJhSsiFpB81RWQsUHvjMTRJ54aA=; h=From:To:Cc:Subject:Autocrypt:OpenPGP:Date:Message-ID:MIME-Version: Content-Type:From; b=bdx2sQNJw7zMcGl+LsLPjCVOYK2JdmFivq+UnWbuiu8IJzyWfDqdSr5hZu4eUnj2m tn4Be+P/8rtWYOqj0smRV0/yhwAhTUy9HFbrOsHNXHsIVBx5Aw38N+M5TIonqtpkKm WTapABC609WYMDFnNdd9Zg1rLKstfAgc4CaxqO5oVuj1OXW4MPAvOd0KJLrgXi5bmP K+McdyT9KsczVtQOuQ2xe66AZYgzeMnr3T/nMAFv/X7B5X9bucWkz3rL9i9p3U0P4s 1bq9vhULK+NWASsvuNWtFdU5Qy0vXaNzvID4Bg1X/Ls4/WLZ/h8MOsy/2HEm/ak5fm 7BgNLsFPCNsTQ== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4TYhf65kFdz6tm4; Tue, 13 Feb 2024 01:14:38 +0100 (CET) From: Philip Kaludercic To: Eli Zaretskii Subject: Re: bug#69079: [PATCH] Add 'customize-toggle-option' command In-Reply-To: <86frxxqxzw.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 12 Feb 2024 21:32:51 +0200") References: <87frxx37wq.fsf@posteo.net> <86plx1r2uq.fsf@gnu.org> <87le7p1pg8.fsf@posteo.net> <86frxxqxzw.fsf@gnu.org> Autocrypt: addr=philipk@posteo.net; keydata= mDMEZBBQQhYJKwYBBAHaRw8BAQdAHJuofBrfqFh12uQu0Yi7mrl525F28eTmwUDflFNmdui0QlBo aWxpcCBLYWx1ZGVyY2ljIChnZW5lcmF0ZWQgYnkgYXV0b2NyeXB0LmVsKSA8cGhpbGlwa0Bwb3N0 ZW8ubmV0PoiWBBMWCAA+FiEEDg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwMFCQHhM4AFCwkI BwIGFQoJCAsCBBYCAwECHgECF4AACgkQ8xYDWXahwulikAEA77hloUiSrXgFkUVJhlKBpLCHUjA0 mWZ9j9w5d08+jVwBAK6c4iGP7j+/PhbkxaEKa4V3MzIl7zJkcNNjHCXmvFcEuDgEZBBQQhIKKwYB BAGXVQEFAQEHQI5NLiLRjZy3OfSt1dhCmFyn+fN/QKELUYQetiaoe+MMAwEIB4h+BBgWCAAmFiEE Dg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwwFCQHhM4AACgkQ8xYDWXahwukm+wEA8cml4JpK NeAu65rg+auKrPOP6TP/4YWRCTIvuYDm0joBALw98AMz7/qMHvSCeU/hw9PL6u6R2EScxtpKnWof z4oM OpenPGP: id=7126E1DE2F0CE35C770BED01F2C3CC513DB89F66; url="https://keys.openpgp.org/vks/v1/by-fingerprint/7126E1DE2F0CE35C770BED01F2C3CC513DB89F66"; preference=signencrypt Date: Tue, 13 Feb 2024 00:14:38 +0000 Message-ID: <87r0hh1aq9.fsf@posteo.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 69079 Cc: 69079@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: -3.3 (---) --=-=-= Content-Type: text/plain Eli Zaretskii writes: >> From: Philip Kaludercic >> Cc: 69079@debbugs.gnu.org >> Date: Mon, 12 Feb 2024 18:56:39 +0000 >> >> Eli Zaretskii writes: >> >> >> From: Philip Kaludercic >> >> Date: Mon, 12 Feb 2024 17:32:37 +0000 >> >> >> >> +;;;###autoload >> >> +(defun customize-toggle-option (opt) >> >> + "Toggle the value of boolean option OPT for this session." >> >> + (interactive (let (opts) >> >> + (mapatoms >> >> + (lambda (sym) >> >> + (when (eq (get sym 'custom-type) 'boolean) >> >> + (push sym opts)))) >> >> + (list (intern (completing-read "Option: " opts))))) >> >> + (message "%s user options '%s'." >> >> + (if (funcall (or (get opt 'custom-set) #'set-default) >> >> + opt (not (funcall (or (get opt 'custom-get) >> >> + #'symbol-value) >> >> + opt))) >> >> + "Enabled" "Disabled") >> >> + opt)) >> > >> > Shouldn't this have some validation? what if the argument OPT is >> > not a >> > boolean? >> >> My assumption was that the command would only be invoked interactivly, >> so I can either make that explicit with an `interactive-only' or repeat >> the check. What do you think would be better? > > I think an explicit test is better, since then we get to display a > user-friendly error message, instead of relying on Lisp errors to > explain themselves. > > Btw, are you sure that the users can never succeed in inputting a > non-boolean option with the way you prompt them? No, that was not ensured, and I think it is better not to. I have adjusted the patch to check and prompt the user if the user option is non-boolean, in case they know what they are doing. WDYT? --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Add-custom-variable-command.patch >From abb72681c82e30a52bcfa90174e0677757174971 Mon Sep 17 00:00:00 2001 From: Philip Kaludercic Date: Mon, 12 Feb 2024 18:29:50 +0100 Subject: [PATCH] Add 'custom-variable' command. * lisp/cus-edit.el (customize-toggle-option): Add command. (toggle-option): Add shorter alias for 'customize-toggle-option'. * etc/NEWS: Document it. --- etc/NEWS | 4 ++++ lisp/cus-edit.el | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/etc/NEWS b/etc/NEWS index afc2c22e68b..6fae64728f2 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1329,6 +1329,10 @@ in Buffer menu mode. *** New command 'customize-dirlocals'. This command pops up a buffer to edit the settings in ".dir-locals.el". +--- +** New command 'customize-toggle-option'. +This command can toggle boolean options for the duration of a session. + ** Calc +++ diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index 38b6ec984ab..270d9b44908 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el @@ -1227,6 +1227,40 @@ customize-option (unless (eq symbol basevar) (message "`%s' is an alias for `%s'" symbol basevar)))) +;;;###autoload +(defun customize-toggle-option (symbol) + "Toggle the value of boolean option SYMBOL for this session." + (interactive (let ((prompt "Toggle boolean option: ") opts) + (mapatoms + (lambda (sym) + (when (eq (get sym 'custom-type) 'boolean) + (push sym opts)))) + (list (intern (completing-read prompt opts))))) + (let* ((setter (or (get symbol 'custom-set) #'set-default)) + (getter (or (get symbol 'custom-get) #'symbol-value)) + (value (condition-case nil + (funcall getter symbol) + (void-variable (error "`%s' is not bound" symbol)))) + (type (get symbol 'custom-type))) + (cond + ((eq type 'boolean)) + ((and (null type) + (yes-or-no-p + (format "`%s' doesn't have a type, and has the value %S. \ +Proceed to toggle?" symbol value)))) + ((yes-or-no-p + (format "`%s' is of type %s, and has the value %S. \ +Proceed to toggle?" + symbol type value))) + ((error "Abort toggling of option `%s'" symbol))) + (message "%s user options `%s'." + (if (funcall setter symbol (not value)) + "Enabled" "Disabled") + symbol))) + +;;;###autoload +(defalias 'toggle-option #'customize-toggle-option) + ;;;###autoload (defalias 'customize-variable-other-window 'customize-option-other-window) -- 2.43.0 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 13 07:41:18 2024 Received: (at 69079) by debbugs.gnu.org; 13 Feb 2024 12:41:18 +0000 Received: from localhost ([127.0.0.1]:42784 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rZs6A-0004aT-7w for submit@debbugs.gnu.org; Tue, 13 Feb 2024 07:41:18 -0500 Received: from eggs.gnu.org ([209.51.188.92]:48210) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rZs67-0004aE-Ho for 69079@debbugs.gnu.org; Tue, 13 Feb 2024 07:41:17 -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 ) id 1rZs5k-0001RO-HF; Tue, 13 Feb 2024 07:40:52 -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=bBn4Dl8AjhAhuajkapYyS7M9qdpS9IFLRRMRBk4+Br4=; b=MmzMRrsCD+ky vZYLvwzWEIFiwr7v/22XECOfk1Bd4Ac9T3LVQIfDJoTcspoY3uuX9kY6/giSx5HRv2GThGE0paQe6 O5hK70HsldcAkU0tnKlDdvdhTXrjgNEqvxfj9AcbpBVwvPl0I7kN4zn25qdrXMddGNSYSr93T8OEP 5/vB26R8bqLtT9sHGZZaP6GlOrl9Y5Rir9r1NrUxh2M5NFpyJ0WHm3p9Wjek44z1aPr/41qX767QZ 0sGWIKbRaExMLkQe/ctfh+sit0c/1KDS3E0h9LVd8EuHRgkBNg49lRjbMZqOgPW8fqZaWRvMbMz8C EWheMNBkhPe+A2va4RMDEA==; Date: Tue, 13 Feb 2024 14:40:49 +0200 Message-Id: <864jecr0z2.fsf@gnu.org> From: Eli Zaretskii To: Philip Kaludercic In-Reply-To: <87r0hh1aq9.fsf@posteo.net> (message from Philip Kaludercic on Tue, 13 Feb 2024 00:14:38 +0000) Subject: Re: bug#69079: [PATCH] Add 'customize-toggle-option' command References: <87frxx37wq.fsf@posteo.net> <86plx1r2uq.fsf@gnu.org> <87le7p1pg8.fsf@posteo.net> <86frxxqxzw.fsf@gnu.org> <87r0hh1aq9.fsf@posteo.net> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 69079 Cc: 69079@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: -3.3 (---) > From: Philip Kaludercic > Cc: 69079@debbugs.gnu.org > Date: Tue, 13 Feb 2024 00:14:38 +0000 > > >> My assumption was that the command would only be invoked interactivly, > >> so I can either make that explicit with an `interactive-only' or repeat > >> the check. What do you think would be better? > > > > I think an explicit test is better, since then we get to display a > > user-friendly error message, instead of relying on Lisp errors to > > explain themselves. > > > > Btw, are you sure that the users can never succeed in inputting a > > non-boolean option with the way you prompt them? > > No, that was not ensured, and I think it is better not to. I have > adjusted the patch to check and prompt the user if the user option is > non-boolean, in case they know what they are doing. WDYT? LGTM, although I haven't tried to actually use the code. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 13 07:46:51 2024 Received: (at 69079) by debbugs.gnu.org; 13 Feb 2024 12:46:51 +0000 Received: from localhost ([127.0.0.1]:42849 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rZsBX-0004m6-0b for submit@debbugs.gnu.org; Tue, 13 Feb 2024 07:46:51 -0500 Received: from mail.eshelyaron.com ([107.175.124.16]:46566 helo=eshelyaron.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rZsBV-0004m0-6g for 69079@debbugs.gnu.org; Tue, 13 Feb 2024 07:46:50 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eshelyaron.com; s=mail; t=1707828391; bh=Hn5+7YqFzj2wfJO/b7JnwbcoPXkFHnSOQDsQidIovHQ=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=X2fYkA/0WopEuFvqUn0JXePHjejKYc2B9JEcZpaArBtkUU9x2YmypOsWEQlQ3bSjp J3z9QTqii8DO1AZY53lcUUpPCxFQ/kzWdKZlkF5UFyZCrZqFqDPtHUZSObKMrzLStZ JauPsBT/zTOHAO0k+egPk7DG+VZSQiCk0O2uNliW829qJ2nYUMNJpEZVpgNq5A2V2E it/BxalIZ5hZmnlhgiX3mGmGEQ1wKbXHS5SgIite6awAPSOp3tRD62skicH7Y5hDUa LfLpgOnekE1ac4R1SXSOVYYdLTvIBTpwJPmVGcev1B3HiW5YmGhxJIcJmyYeX5X+Dw wKAYJcQ0/p1Yg== From: Eshel Yaron To: Eli Zaretskii Subject: Re: bug#69079: [PATCH] Add 'customize-toggle-option' command In-Reply-To: <864jecr0z2.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 13 Feb 2024 14:40:49 +0200") References: <87frxx37wq.fsf@posteo.net> <86plx1r2uq.fsf@gnu.org> <87le7p1pg8.fsf@posteo.net> <86frxxqxzw.fsf@gnu.org> <87r0hh1aq9.fsf@posteo.net> <864jecr0z2.fsf@gnu.org> Date: Tue, 13 Feb 2024 13:46:28 +0100 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 69079 Cc: Philip Kaludercic , 69079@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 (-) Eli Zaretskii writes: >> From: Philip Kaludercic >> Cc: 69079@debbugs.gnu.org >> Date: Tue, 13 Feb 2024 00:14:38 +0000 >> >> >> My assumption was that the command would only be invoked interactivly, >> >> so I can either make that explicit with an `interactive-only' or repeat >> >> the check. What do you think would be better? >> > >> > I think an explicit test is better, since then we get to display a >> > user-friendly error message, instead of relying on Lisp errors to >> > explain themselves. >> > >> > Btw, are you sure that the users can never succeed in inputting a >> > non-boolean option with the way you prompt them? >> >> No, that was not ensured, and I think it is better not to. I have >> adjusted the patch to check and prompt the user if the user option is >> non-boolean, in case they know what they are doing. WDYT? > > LGTM, although I haven't tried to actually use the code. > > Thanks. FWIW, I think it'd be nice to use the as the default minibuffer argument symbol at point, if applicable. From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 13 15:10:15 2024 Received: (at 69079-done) by debbugs.gnu.org; 13 Feb 2024 20:10:15 +0000 Received: from localhost ([127.0.0.1]:47651 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rZz6d-0005YW-4y for submit@debbugs.gnu.org; Tue, 13 Feb 2024 15:10:15 -0500 Received: from mout02.posteo.de ([185.67.36.66]:41249) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rZz6Z-0005YF-Mg for 69079-done@debbugs.gnu.org; Tue, 13 Feb 2024 15:10:13 -0500 Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id EC201240104 for <69079-done@debbugs.gnu.org>; Tue, 13 Feb 2024 21:09:47 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1707854988; bh=t+IEBJsHernFptuwcZP0CztBc0JW+r3qYsj52/2plpg=; h=From:To:Cc:Subject:OpenPGP:Date:Message-ID:MIME-Version: Content-Type:From; b=TFf9v/xH+/2T7tiWs4J64syh732a+92cX/Oukq7cqktCHRrmpRPpWiYFvGUXHlTci 1HcAWFhlVahx2eiv8udysCLMgfmO9iqtOR60hm3PbHTG+252GS3R7GJOwADOBTHSjJ vxP+Fa49+Ggyyvfk9BKpAWo8eD+WdkGNUBGy4HOrdsNvexYnVj5DYzDhNMB7KSgaLm CqSxytIqWQATLX2KzPwB7TyNtF0O3gNGGGhbXxQ9v7S52zedoxMbuehrYFbxFsnmIE b/rHw+Ro1LYRlQHI1ErEbNhgvOErLU1bZrEe7qqFkrj8VouH2buf6F64oNqkB/WMna to+LN6083tYLw== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4TZC971snCz9rxP; Tue, 13 Feb 2024 21:09:46 +0100 (CET) From: Philip Kaludercic To: Eshel Yaron Subject: Re: bug#69079: [PATCH] Add 'customize-toggle-option' command In-Reply-To: (Eshel Yaron's message of "Tue, 13 Feb 2024 13:46:28 +0100") References: <87frxx37wq.fsf@posteo.net> <86plx1r2uq.fsf@gnu.org> <87le7p1pg8.fsf@posteo.net> <86frxxqxzw.fsf@gnu.org> <87r0hh1aq9.fsf@posteo.net> <864jecr0z2.fsf@gnu.org> OpenPGP: id=7126E1DE2F0CE35C770BED01F2C3CC513DB89F66; url="https://keys.openpgp.org/vks/v1/by-fingerprint/7126E1DE2F0CE35C770BED01F2C3CC513DB89F66"; preference=signencrypt Date: Tue, 13 Feb 2024 20:09:46 +0000 Message-ID: <87ttmc5do5.fsf@posteo.net> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 69079-done Cc: Eli Zaretskii , 69079-done@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: -3.3 (---) Eshel Yaron writes: > Eli Zaretskii writes: > >>> From: Philip Kaludercic >>> Cc: 69079@debbugs.gnu.org >>> Date: Tue, 13 Feb 2024 00:14:38 +0000 >>> >>> >> My assumption was that the command would only be invoked interactivly, >>> >> so I can either make that explicit with an `interactive-only' or repeat >>> >> the check. What do you think would be better? >>> > >>> > I think an explicit test is better, since then we get to display a >>> > user-friendly error message, instead of relying on Lisp errors to >>> > explain themselves. >>> > >>> > Btw, are you sure that the users can never succeed in inputting a >>> > non-boolean option with the way you prompt them? >>> >>> No, that was not ensured, and I think it is better not to. I have >>> adjusted the patch to check and prompt the user if the user option is >>> non-boolean, in case they know what they are doing. WDYT? >> >> LGTM, although I haven't tried to actually use the code. >> >> Thanks. > > FWIW, I think it'd be nice to use the as the default minibuffer argument > symbol at point, if applicable. Done and pushed. From unknown Thu Aug 14 17:26:09 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Wed, 13 Mar 2024 11:24:17 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator