From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Drew Adams Newsgroups: gmane.emacs.devel Subject: RE: C-x & Date: Mon, 6 Aug 2018 13:57:46 -0700 (PDT) Message-ID: <7c607922-5ad4-4aff-b988-a464d06439d4@default> References: <8736wa9c5s.fsf@gmx.de> <878t5tdsfc.fsf@gmx.de> <83wotcpzub.fsf@gnu.org> <87bmaiuwml.fsf@gmx.de> <877el6uwio.fsf@gmx.de> <83bmaitbwu.fsf@gnu.org> <87a7q2w4gd.fsf@gmx.de> <838t5mt9wb.fsf@gnu.org> <87muu2w2c2.fsf@gmx.de> <83600qt8mi.fsf@gnu.org> <87in4qw1fl.fsf@gmx.de> <834lgat6fy.fsf@gnu.org> <87effevy41.fsf@gmx.de> <83zhy2rnef.fsf@gnu.org> <871sbdw389.fsf@gmx.de> <83y3dksvhy.fsf@gnu.org> <87d0uvwysw.fsf@gmx.de> <878t5jwm8i.fsf_-_@gmx.de> <9d6d548c-4794-4eaa-bdba-7a2d95482d3b@default> <87zhxzuwwp.fsf@gmx.de> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: blaine.gmane.org 1533588964 9437 195.159.176.226 (6 Aug 2018 20:56:04 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 6 Aug 2018 20:56:04 +0000 (UTC) Cc: Eli Zaretskii , fgunbin@fastmail.fm, emacs-devel@gnu.org To: Michael Albinus Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Aug 06 22:55:59 2018 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fmmXm-0002Hg-QR for ged-emacs-devel@m.gmane.org; Mon, 06 Aug 2018 22:55:59 +0200 Original-Received: from localhost ([::1]:36289 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fmmZr-0004zS-UY for ged-emacs-devel@m.gmane.org; Mon, 06 Aug 2018 16:58:07 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:59709) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fmmZk-0004zL-U4 for emacs-devel@gnu.org; Mon, 06 Aug 2018 16:58:02 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fmmZj-0003yO-JJ for emacs-devel@gnu.org; Mon, 06 Aug 2018 16:58:01 -0400 Original-Received: from userp2120.oracle.com ([156.151.31.85]:53884) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fmmZf-0003t3-Le; Mon, 06 Aug 2018 16:57:55 -0400 Original-Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.22/8.16.0.22) with SMTP id w76KsRJU128114; Mon, 6 Aug 2018 20:57:49 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=mime-version : message-id : date : from : sender : to : cc : subject : references : in-reply-to : content-type : content-transfer-encoding; s=corp-2018-07-02; bh=2DygTkg4fecerdq/kvt361GwZGIu6yG1kYNE9gnadRE=; b=ZRZPK1mxnbC0RyBHY0/kji2xBAMImmzz3uUKK5Dap4b/OmmbrS92d13/aKwSyhaOCux8 94h5xwUe40OOEtp6tgSFlYBkybpDBXlmeiRJ9+QzNNRW4DUYmvy1sc63Jlb7nGmh77C9 7jPpa/4+9Y7LzvZpSX5jTmDTMJ21vqKEPtEXfpu1oOo4kQ1O54yd1iUCISkHRCqL/yyC /tsrxUbeQ3agK1sONM89g6TJThmwA8pyJHy0B/xvwAQbSlgZnxV/53Hwc5ImPFfpnP1d 5K2hLWpG1snNBTssvHtP2JgTUR18R8AL3gO8tEzg5LYCWgigmucL2rY2gY4zEaAhQcg5 qg== Original-Received: from userv0022.oracle.com (userv0022.oracle.com [156.151.31.74]) by userp2120.oracle.com with ESMTP id 2kn4sppkuw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 06 Aug 2018 20:57:49 +0000 Original-Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by userv0022.oracle.com (8.14.4/8.14.4) with ESMTP id w76Kvmkb003968 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 6 Aug 2018 20:57:48 GMT Original-Received: from abhmp0009.oracle.com (abhmp0009.oracle.com [141.146.116.15]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id w76KvlQk026999; Mon, 6 Aug 2018 20:57:47 GMT In-Reply-To: <87zhxzuwwp.fsf@gmx.de> X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9.1 (1003210) [OL 16.0.4717.0 (x86)] X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=8977 signatures=668707 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1807170000 definitions=main-1808060219 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 156.151.31.85 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:228242 Archived-At: > Yes. I haven't said otherwise, at least in my last email. >=20 > > If you wanted to call command `universal-async-argument' a "prefix > > command" you could do so. But `C-x &' is not a prefix command or any > > other kind of command. >=20 > I haven't said that `C-x &' is any kind of command, at least in my last > email. Right. You didn't. But some others did. And it wasn't obvious (to me) that = you didn't mean to say that `C-x &' is a "prefix command". If you meant onl= y that `universal-sync-argument' is a prefix command then, as I said, that'= s OK by me. (The doc should then define "prefix command".) > >> So I don't see what's wrong with "prefix command" - it is a command > >> which precedes another command. > > > > Command `universal-async-argument', when invoked, precedes invocation > > of the command bound to the key sequence read by > > `universal-asyn-argument'. Yes. > > > > And using `C-x &' precedes reading of that second key sequence. But > > neither of those things make `C-x &' into a command, prefix, postfix, > > or *fix. >=20 > Again, I haven't said that `C-x &' is a command, in my last email. >=20 > Let's agree the obvious: `universal-async-argument' is a command, by > default bound to the key sequences `C-x &' and `M-x u n i v e r s a l - > a s y n c - a r g u m e n t RET.' Agreed. (Although I wouldn't say that the command is bound to `M-x...'. That sequen= ce of keys invokes `u-a-a', but the command is not bound to it. We just don= 't say that kind of thing in Emacs. The key sequences bound to a command ar= e well defined, and they don't include `M-x' followed by keys spelling out = the command name. Similarly, the command is not bound to `M-x uni-a-arg TAB= RET' etc.) > The only raison d'=C3=AAtre of `universal-async-argument' is to read anot= her > key sequence, which invokes the command bound to that key sequence. This > means, the command `universal-async-argument' always precedes another > command, which I call a prefix in my understanding.=20 Agreed. (Although the command that is preceded by `u-a-a' is, if anything, = a suffix of it, not a prefix. I suspect you just misspoke in the last phras= e.) > Therefore, I've proposed to call `universal-async-argument' a "prefix com= mand". OK by me (where "it" is the command, not `C-x &'). "Prefix command" then ne= eds to be described/defined/explained in the manual. > The Emacs manual distinguishes between commands and the key (sequence) a > command is bound to. But it explicitely says, that both could be used > equal: >=20 > --8<---------------cut here---------------start------------->8--- > In this manual, we will often speak of keys like =E2=80=98C-n=E2=80=99= as commands, > even though strictly speaking the key is bound to a command. > --8<---------------cut here---------------end--------------->8--- >=20 > See (info "(emacs) Commands") Yeah. I was afraid someone might quote that passage. ;-)=20 I don't have a problem with that text, because its purpose is to state that= we sometimes speak that way even though it is not really correct. It's not= defining a key sequence as the command that it's bound to - quite the oppo= site. It both (1) points out that a key sequence is not the same thing as t= he command that it's bound to and (2) mentions that sometimes we gloss over= that difference, for brevity and when the context makes the meaning clear. > So it would be also allowed to speak about the key sequence `C-x &' as a > command, but I don't insist on this if it makes you feel bad. It would be allowed to say "command `C-x &'", yes, for brevity. That's a fa= r cry from defining a new term "prefix command" and applying it to `C-x &'.= (Especially since there is also a notion of prefix key, which is something= quite different.) In sum, I don't have a problem with calling `universal-async-argument' a "p= refix command", if that term is defined in the manual. ---- About the command name (FWIW): I'm not crazy about the name "universal-async-argument'. I realize that it'= s modeled on `universal-argument', and I can live with it. But I wish that = both of those commands were named differently. (No, I'm not proposing a nam= e change for `u-a' at this late date.) `u-a-a' doesn't necessarily provide a (non-default) prefix arg to a command= . It invokes a command (bound to a key sequence that it reads). It's somewhat akin to `execute-extended-command' or `comint-redirect-send-c= ommand'. Those read a command name and not a key sequence, so in that respe= ct they differ. But I think it might be better for `u-a-a' to be named `-command', where does not suggest "universal argument". Unlike `u-a', you need not provide a prefix arg to `u-a-a'. It's not really= the same kind of command. `u-a-a' does accept and take into account a pref= ix arg, if you provide one; but it's not required (IIUC). (Maybe I'm wrong = about this. What prefix arg does bare `C-x &' provide? Does it provide `(4)= ', as `C-u' does? No, I don't feel strongly about the command name. Yes, I understand why you= proposed "universal-async-argument". But I think its association with `uni= versal-argument' confuses more than clarifies. No, I don't have a great sug= gestion for the command name. Ideally it should convey "read a key sequence= and invoke the command bound to it" (and the doc string would explain that= it will also read a prefix arg and pass that to the command). Maybe `invok= e-command-bound-to' or some such.