From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Karl Fogel Newsgroups: gmane.emacs.devel Subject: Re: [Emacs-diffs] master b88e7c8: Make transpose-regions interactive (Bug#30343) Date: Wed, 28 Mar 2018 23:53:53 -0500 Message-ID: <87r2o3pjmm.fsf@red-bean.com> References: <20180311105533.30002.78782@vcs0.savannah.gnu.org> <20180311105534.3DAFD23CF3@vcs0.savannah.gnu.org> <83woyiscns.fsf@gnu.org> <87po44jb7w.fsf@red-bean.com> <20180311105533.30002.78782@vcs0.savannah.gnu.org> <20180311105534.3DAFD23CF3@vcs0.savannah.gnu.org> <83woyiscns.fsf@gnu.org> <87a7v2zb27.fsf@red-bean.com> <838tallwpg.fsf@gnu.org> <83605kgo1w.fsf@gnu.org> <87o9j87zgv.fsf@mail.linkov.net> Reply-To: Karl Fogel NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1522299209 30736 195.159.176.226 (29 Mar 2018 04:53:29 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 29 Mar 2018 04:53:29 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: emacs-devel@gnu.org To: Juri Linkov Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Mar 29 06:53:24 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 1f1PYx-0007uu-Rx for ged-emacs-devel@m.gmane.org; Thu, 29 Mar 2018 06:53:23 +0200 Original-Received: from localhost ([::1]:46942 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f1Pb1-0002lw-6w for ged-emacs-devel@m.gmane.org; Thu, 29 Mar 2018 00:55:31 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:37960) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f1PZW-00026r-37 for emacs-devel@gnu.org; Thu, 29 Mar 2018 00:53:58 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f1PZV-0005X3-AB for emacs-devel@gnu.org; Thu, 29 Mar 2018 00:53:58 -0400 Original-Received: from mail-ot0-x233.google.com ([2607:f8b0:4003:c0f::233]:34322) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1f1PZV-0005Wj-42 for emacs-devel@gnu.org; Thu, 29 Mar 2018 00:53:57 -0400 Original-Received: by mail-ot0-x233.google.com with SMTP id m7-v6so5173358otd.1 for ; Wed, 28 Mar 2018 21:53:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:references:reply-to:date:in-reply-to :message-id:user-agent:mime-version; bh=n+x15RUiWcuo1egNr98WY/aW1vgdGv4A6FVXWGbVoc4=; b=LlnzO+/hb2S++eJsB49ILX5sP0Q/hi+dJzfXCT+zTGD3Lurbxfh5qLd6nqz9dCE6ds AMq9xUkTYX1u5Z5SfF9dNCShuraXroMmapLReqYFmhspDPnwSN0PLm2+z/jFcK/PD0u3 vHsFciNK5c6nGqv5Zxp2PpXIpMo1Us3D0FpekxeQu68pV1Dst+WJ4/fwE2QA/yRMxUk4 wYQSYX8UbEKGeynCyVfDA/c4LhzgZ/Izgc0MlSKY8C/qXYYpsYS17B6VA/yQi/i3iE+Q q10yOZ6fwtSlrfwzH1pEdS9bhwKMlvpz5bWQPabyeSqkIEQA0RM6emfmm+SX25vYT+Wz U9BA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:references:reply-to :date:in-reply-to:message-id:user-agent:mime-version; bh=n+x15RUiWcuo1egNr98WY/aW1vgdGv4A6FVXWGbVoc4=; b=KqsvbJWHGRu+UFxfNnV/Q94F0ODaN/H9h34o+rN/i8dfd9SgA57kpVuX3OtUHKLy7l V9o/mMUStCtuI24GpmZ11smmKUZrOYu3tosfbzq5w1PB+yHjVGEDX2o8XXOb5KTx6cy4 1ggOCp4wSTiMBeOy1e4EhSL3s0RlxA29JC8nXPFrqD8e6OnXzJ6PF2SaGakFJ97+OKsU 9F8v/gSIsHdJjaBlS+LZk05fAAyLa5ih4zUc57YE1PcCMUnkxXcNnAtFyJAMhEx4TcnR /qnhjRcVJGppsRgz22cJJoX0SPpde5sPNAWeKLcycn4q6LkQNXlFqZ+HgSgrKVmDfHUt uUsA== X-Gm-Message-State: ALQs6tCqOjZJoNueE+EFbpEhXo8KTnE01cLCeQMvSWv1S21dfIivlPe0 2Q/+G9gqhS1Dix8/pJPmcknU1g== X-Google-Smtp-Source: AIpwx4+N8oVl3Co88icjXxqQIq0looRxgoQJ7fIrMJLpxaX+gzc5An5znJH6te4S3yR3AY/X2mqLsQ== X-Received: by 2002:a9d:5192:: with SMTP id y18-v6mr2863258otg.176.1522299235686; Wed, 28 Mar 2018 21:53:55 -0700 (PDT) Original-Received: from floss ([2602:306:3707:da30:4c29:196d:759b:577b]) by smtp.gmail.com with ESMTPSA id d19-v6sm3164296oic.54.2018.03.28.21.53.54 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 28 Mar 2018 21:53:54 -0700 (PDT) In-Reply-To: <87o9j87zgv.fsf@mail.linkov.net> (Juri Linkov's message of "Wed, 28 Mar 2018 23:19:04 +0300") X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4003:c0f::233 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:224138 Archived-At: Juri Linkov writes: >Why not use a compromise and move only the interactive spec to simple.el: > >(put 'transpose-regions > 'interactive-form > '(if (< (length mark-ring) 2) > (error "Other region must be marked before transposing two regions") > (let* ((num (if current-prefix-arg > (prefix-numeric-value current-prefix-arg) > 0)) > (ring-length (length mark-ring)) > (eltnum (mod num ring-length)) > (eltnum2 (mod (1+ num) ring-length))) > (list (point) (mark) (elt mark-ring eltnum) (elt mark-ring eltnum2))))) Personally, I think I'd prefer to have the interactive form together with the rest of the function definition, even if that's in C. However, the method you suggest is a nice way of overriding the interactive spec of a C-defined Lisp function, for example for when one wants to experiment with ways to improve the interactive behavior. What would you think of mentioning this trick in doc/lispref/internals.texi, in the text for "@item interactive"? Best regards, -Karl