From unknown Sun Jun 22 22:48:22 2025 X-Loop: help-debbugs@gnu.org Subject: bug#20698: 25.0.50; REGRESSION in `transpose-sexps' introduced in Emacs 24.4 Resent-From: Drew Adams Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 30 May 2015 17:13:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 20698 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 20698@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.14330059351382 (code B ref -1); Sat, 30 May 2015 17:13:01 +0000 Received: (at submit) by debbugs.gnu.org; 30 May 2015 17:12:15 +0000 Received: from localhost ([127.0.0.1]:33680 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YykIv-0000MD-UH for submit@debbugs.gnu.org; Sat, 30 May 2015 13:12:14 -0400 Received: from eggs.gnu.org ([208.118.235.92]:59867) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YykIt-0000M0-4U for submit@debbugs.gnu.org; Sat, 30 May 2015 13:12:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YykIm-0005By-Uj for submit@debbugs.gnu.org; Sat, 30 May 2015 13:12:05 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:48311) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YykIm-0005Bu-Sp for submit@debbugs.gnu.org; Sat, 30 May 2015 13:12:04 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45134) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YykIl-00078g-Ti for bug-gnu-emacs@gnu.org; Sat, 30 May 2015 13:12:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YykIi-0005BR-OQ for bug-gnu-emacs@gnu.org; Sat, 30 May 2015 13:12:03 -0400 Received: from userp1040.oracle.com ([156.151.31.81]:49942) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YykIi-0005BN-HO for bug-gnu-emacs@gnu.org; Sat, 30 May 2015 13:12:00 -0400 Received: from userv0022.oracle.com (userv0022.oracle.com [156.151.31.74]) by userp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id t4UHBx0N017931 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Sat, 30 May 2015 17:11:59 GMT Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by userv0022.oracle.com (8.13.8/8.13.8) with ESMTP id t4UHBxRo005455 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Sat, 30 May 2015 17:11:59 GMT Received: from abhmp0018.oracle.com (abhmp0018.oracle.com [141.146.116.24]) by userv0122.oracle.com (8.13.8/8.13.8) with ESMTP id t4UHBxcV017084 for ; Sat, 30 May 2015 17:11:59 GMT MIME-Version: 1.0 Message-ID: <3aca3c37-37dd-439f-8960-afe2705eb531@default> Date: Sat, 30 May 2015 10:12:00 -0700 (PDT) From: Drew Adams X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9 (901082) [OL 12.0.6691.5000 (x86)] Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Source-IP: userv0022.oracle.com [156.151.31.74] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: -4.0 (----) I say regression, but perhaps there was a good reason for the change in behavior. I couldn't find anything about it, checking NEWS and looking through some bug reports. In all Emacs versions prior to 24.4 (back through Emacs 20, at least), when you use a negative prefix arg with `transpose-sexps' point ends up after the sexp that moved. Starting with 24.4, point does not move. For example: ((s1) (s2) (s3) (s4) | (s5)) With point at |, `C-- C-M-t' gives you this prior to 24.4: ((s1) (s2) (s4) | (s3) (s5)) For 24.4+ it gives you this: ((s1) (s2) (s4) (s3) | (s5)) With `C-- 2', you get this: < 24.4: ((s1) (s4) | (s2) (s3) (s5)) 24.4+: ((s1) (s4) (s2) (s3) | (s5)) Is this by design or a mistake (regression)? There is no change in the code of `transpose-sexps' itself. Perhaps that is a sign that this is an unplanned side effect (bug)? Or perhaps it was planned (why?). It would be good, I think, if the doc mentioned what happens to point. It would be good, I think - unless there is some great reason for this change in behavior, to fix this bug. As an example, the bug interferes with using repetition with a negative prefix arg. With the change (bug), repeating a negative prefix arg just reverses the prefix transposition. E.g., prior to this bug, you can effectively use `C-- C-M-t' repeatedly to move a sexp backward: ((s1) (s2) (s3) (s4) | (s5)) C-- C-M-t ((s1) (s2) (s4) | (s3) (s5)) C-- C-M-t ((s1) (s4) | (s2) (s3) (s5)) After this bug: ((s1) (s2) (s3) (s4) | (s5)) C-- C-M-t ((s1) (s2) (s4) (s3) | (s5)) C-- C-M-t ; Back to where we started. ((s1) (s2) (s3) (s4) | (s5)) Here is a command I use, for example, that lets you repeatedly transpose and use a negative arg to reverse the direction. Note the hack to compensate for this bug (I don't claim it is the best hack for this). (defun reversible-transpose-sexps (arg) "Reversible and repeatable `transpose-sexp'. Like `transpose-sexps', but: 1. Leaves point after the moved sexp. 2. When repeated, a negative prefix arg flips the direction." (interactive "p") (when (eq last-command 'rev-transp-sexps-back) (setq arg (- arg))) (transpose-sexps arg) (unless (natnump arg) (when (or (> emacs-major-version 24) (and (=3D emacs-major-version 24) (> emacs-minor-version 3))= ) ; Emacs 24.4+ (backward-sexp (abs arg)) (skip-syntax-backward " .")) (setq this-command 'rev-transp-sexps-back))) In GNU Emacs 25.0.50.1 (i686-pc-mingw32) of 2014-10-20 on LEG570 Bzr revision: 118168 rgm@gnu.org-20141020195941-icp42t8ttcnud09g Windowing system distributor `Microsoft Corp.', version 6.1.7601 Configured using: `configure --enable-checking=3Dyes,glyphs CPPFLAGS=3D-DGLYPH_DEBUG=3D1' From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 12 14:45:40 2015 Received: (at control) by debbugs.gnu.org; 12 Nov 2015 19:45:40 +0000 Received: from localhost ([127.0.0.1]:35087 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZwxoS-0005TP-3Y for submit@debbugs.gnu.org; Thu, 12 Nov 2015 14:45:40 -0500 Received: from eggs.gnu.org ([208.118.235.92]:34758) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Zwxo7-0005St-Hj for control@debbugs.gnu.org; Thu, 12 Nov 2015 14:45:38 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zwxo6-0000Y1-Ah for control@debbugs.gnu.org; Thu, 12 Nov 2015 14:45:19 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:57835) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zwxo6-0000Xr-7P for control@debbugs.gnu.org; Thu, 12 Nov 2015 14:45:18 -0500 Received: from rgm by fencepost.gnu.org with local (Exim 4.82) (envelope-from ) id 1Zwxo5-0001a1-SL for control@debbugs.gnu.org; Thu, 12 Nov 2015 14:45:18 -0500 Subject: control message for bug 20698 To: X-Mailer: mail (GNU Mailutils 2.99.98) Message-Id: From: Glenn Morris Date: Thu, 12 Nov 2015 14:45:17 -0500 X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.4 (-----) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: -5.4 (-----) merge 21885 20698 From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 13 10:29:35 2015 Received: (at control) by debbugs.gnu.org; 13 Nov 2015 15:29:35 +0000 Received: from localhost ([127.0.0.1]:37341 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZxGIB-00047u-CR for submit@debbugs.gnu.org; Fri, 13 Nov 2015 10:29:35 -0500 Received: from mail-ob0-f176.google.com ([209.85.214.176]:33073) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZxGI9-00047n-VY for control@debbugs.gnu.org; Fri, 13 Nov 2015 10:29:34 -0500 Received: by obbww6 with SMTP id ww6so75915447obb.0 for ; Fri, 13 Nov 2015 07:29:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=DBHHxd7oKXlIY5tuUK7OL9lL+zSkmbyFuuePaVoQ+q4=; b=JCluegnnFo/hgqf1HXukfelCJ3XxwfWb8Cd5+oa+gf5hmP8A8cWC1KpdDsnAba9Gq9 1JmNkAPjDAHNNvCYtwNo2wHesPR2BoWLC4eLwiINy+nOc+P2K8HWVWeHy0u3npu16x5K KPuLso1QiBdQ/FMuE3w7MCoq21z+404VM1seezZQkgSSZDEw1hXpt+sxGD9JFxTs0err hpvuWV+9UrHE6TPldNp9X4rC9ECpokJFPri6N0bsPVMpSzv+tvu0gm1QC6Hn3Axwbopx I6jexyrwdNUNOHrDIZz4J0fu3LZkEHFTtHKydoynlLXuhllbvYN2vcEqe0K0IXqIoqCc Lglg== MIME-Version: 1.0 X-Received: by 10.60.130.198 with SMTP id og6mr13150768oeb.31.1447428573351; Fri, 13 Nov 2015 07:29:33 -0800 (PST) Received: by 10.202.65.2 with HTTP; Fri, 13 Nov 2015 07:29:33 -0800 (PST) Date: Fri, 13 Nov 2015 08:29:33 -0700 Message-ID: Subject: control message for bug 14037 From: Ivan Andrus To: control@debbugs.gnu.org Content-Type: text/plain; charset=UTF-8 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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.7 (/) close 14037 25.1 merge 14037 20698 thanks