From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.bugs Subject: bug#62563: [FR] Expose `interactive' arg handling as an Elisp function Date: Sun, 17 Sep 2023 02:50:12 +0200 Message-ID: <87bke1d3nf.fsf@web.de> References: <83lejd2wwi.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="26951"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: ruijie@netyu.xyz, stefankangas@gmail.com To: 62563@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Sep 17 02:51:09 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qhg0D-0006tR-1w for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 17 Sep 2023 02:51:09 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qhg01-0000dw-UE; Sat, 16 Sep 2023 20:50:58 -0400 Original-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 1qhfzz-0000dW-ME for bug-gnu-emacs@gnu.org; Sat, 16 Sep 2023 20:50:55 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qhfzz-0005e6-E8 for bug-gnu-emacs@gnu.org; Sat, 16 Sep 2023 20:50:55 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qhg06-0005EX-9g for bug-gnu-emacs@gnu.org; Sat, 16 Sep 2023 20:51:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Michael Heerdegen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 17 Sep 2023 00:51:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 62563 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: moreinfo Original-Received: via spool by 62563-submit@debbugs.gnu.org id=B62563.169491183320082 (code B ref 62563); Sun, 17 Sep 2023 00:51:02 +0000 Original-Received: (at 62563) by debbugs.gnu.org; 17 Sep 2023 00:50:33 +0000 Original-Received: from localhost ([127.0.0.1]:48764 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qhfzc-0005Dp-MC for submit@debbugs.gnu.org; Sat, 16 Sep 2023 20:50:32 -0400 Original-Received: from mout.web.de ([212.227.17.12]:44467) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qhfzX-0005DW-2H for 62563@debbugs.gnu.org; Sat, 16 Sep 2023 20:50:30 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=s29768273; t=1694911813; x=1695516613; i=michael_heerdegen@web.de; bh=S5rEfkXiFJD0Sd2Z4e3Qq0R5v0CEQZBegUN0mkRk5i4=; h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date; b=HSKYRqryglv/vmhXV0ofNytk4dUioAQ5j0XD2us1y6Dwf87WvDMWGJ3fOubTWeJa39R3ALTiE42 S5aoFX5OeVULTQnmNN5sv3wbkpI9lylaiq+2D0KIWdgxLGzPJMr3uBD95CYCu20wFBchiHBp4em1K psLkz5l8/pJhi0JKMU9pHC+dBakmE2pBHdkCApVii7rZm5RKvUu70Nm76iKzLwMinUsqpl5fqIAS/ Jz7nDxn7RZ6kJ23DsKtwbGBIv+ndiO9JD292r4WV4bReYh6mWxUmMODeKNVhziyD6XSHyOGze8RY3 RyF1N4iLTeq5wx9ctfKdlrNyW5WZYA9tIAHQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 Original-Received: from drachen.dragon ([88.66.201.191]) by smtp.web.de (mrweb105 [213.165.67.124]) with ESMTPSA (Nemesis) id 1M2gkf-1qiUP53Y2Z-0048MP; Sun, 17 Sep 2023 02:50:12 +0200 In-Reply-To: (Stefan Kangas's message of "Mon, 11 Sep 2023 16:54:50 -0700") X-Provags-ID: V03:K1:Zx8rMVpQrxVMOkNM0tP2A+PZDfhHuC23PsCc4dM2BfWgAN23Pcb at5UWo1wNMIGddzHNLusPeqVU2kHX1WvvmUUBnFMNNqaiUT3sPkcYJ/BtNYU6zSqtVup0ks Yc6c3YudliRAvv2+4RG+IFR5LW0+LMD1y8hc8dE41BaQO9L2XxBwq/zzPrbShGLQeLpDh3F FoqNvg8UrBkJF3DSwicyg== UI-OutboundReport: notjunk:1;M01:P0:m6WYOCVdHYQ=;ewwMgnQg/YBMkX3UcJYEBOHcA2G HCXwqgZskpjQAWXUEDCZk6QZ6Ap5NB2jCl+hZ/hb6OXYEuMuCaoBUkwpxcIgYH68c1QLzGQ3f E6cmlc2O8mWG7/W76sRmUgO38P0vxmDmqHvfDLc92X37VattYoKKrvIy+Fo4ttudAkvlb5qhk XYqLMZ74EifxzNqFjn6ub3XRWbJ2HUlj1LayS0dUkxIDlzqsgfkUh9xoCgqOCuFWcvMa/Jq32 4TBcC45gKsdhSjAnUMNP8DL/E6AUz2CPjCDKP+Kls9ZlDXFNqDJO3T8vaUebI2f9x5nIveGW5 981QGASPn8SAZ77V1JS4NdJD5yUIC+6hlPKou3/UJxxFbBj0AgOYR5Q0r5e5wUrnN1wlkTNU9 ToQQcryFRYoeNClqWPn6i5Soma5ablcEX8JHV4QTDVmP3SbZ6OqqrGBDMHh3K6duuURmiGSz1 B0X359Moy8nd/kikHNUmqxXYqgZnVVMwjPK/WXVq0OTvVBvGBfNkU3GB+VKNp+TPJCjR+atG8 ebjc0YYClQnCTpQN44P5maQkePDjhkbTygMFcKLX+I1n+h4n3HpUckVcGh11Dx6khCPE8nRk3 q9RyQpOCmHO8eyCaKLhIxsd3LbEZUakKmgsPWQ7aDOEAfR4Nwvalw6z9fMjlPdiz/pimqCTHz HrJ3Q18karM1DD6zl2wt5rKf02kmlDbuuf7nKJQBW0A14KPYwyh+yyhv1VtfJkzTvQ0Z23BCc LIqSmXhChC86yQzFD95DTBIOpSPG/cFnVuzLDeDtVO8MBsZadknsBlmkHpeJP90FzHX9+pGR X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:270658 Archived-At: Stefan Kangas writes: > >> --8<---------------cut here---------------start------------->8--- > >> (defun foo (fname) > >> (interactive "f") > >> (ignore fname)) > >> > >> (defun foo (fname bar) > >> (interactive > >> (list (simulate-interactive-f) > >> (get-bar))) > >> (ignore fname bar)) > >> --8<---------------cut here---------------end--------------->8--- Something like this can be useful if you need to read an additional argument in a way that involves the need to run some Lisp, where using a normal code letter is not enough. Then you need to substitute the other code letters you still want to have been read also with Lisp code. Is that understandable? We have `advice-eval-interactive-spec' which can be used like (advice-eval-interactive-spec "f") - that comes very close to what is requested here. Combined with `interactive-form' one can use this to simulate the argument reading from a given command from Lisp. `advice-eval-interactive-spec' has a FIXME: | ;; FIXME: How about renaming this to just `eval-interactive-spec'? | ;; It's not specific to the advice system. Any opinions whether we want to do that? If the implementation is not something ugly (it probably is, a bit, though), I would vote for it. Michael.