GNU bug report logs - #8699
23.3.50; [PATCH] Allow empty regions in transpose-region

Previous Next

Package: emacs;

Reported by: Leo <sdl.web <at> gmail.com>

Date: Thu, 19 May 2011 08:09:02 UTC

Severity: minor

Tags: patch

Found in version 23.3.50

Done: Leo <sdl.web <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Leo <sdl.web <at> gmail.com>
To: 8699 <at> debbugs.gnu.org
Subject: bug#8699: 23.3.50; [PATCH] Allow empty regions in transpose-region
Date: Thu, 19 May 2011 16:07:57 +0800
[Message part 1 (text/plain, inline)]
I found this odd primitive transpose-regions (which has not seen much
use anywhere). I tried to use it a bit and found the annoying error when
one of the two regions is empty.

I wonder if the attached patch makes sense. Thanks.

Leo

[0001-Allow-empty-regions-in-transpose-region.patch (text/x-diff, inline)]
From 56cee3783dd30eaaf0b36f2fd8fa85525b6c4f2c Mon Sep 17 00:00:00 2001
Date: Sat, 14 May 2011 19:27:33 +0800
Subject: [PATCH] Allow empty regions in transpose-region

---
 src/editfns.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/editfns.c b/src/editfns.c
index feae8316..1022b944 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -4411,8 +4411,9 @@ Transposing beyond buffer boundaries is an error.  */)
 
   if (start2 < end1)
     error ("Transposed regions overlap");
-  else if (start1 == end1 || start2 == end2)
-    error ("Transposed region has length 0");
+  /* Nothing to change for adjacent regions with one being empty */
+  else if ((start1 == end1 || start2 == end2) && end1 == start2)
+    return Qnil;
 
   /* The possibilities are:
      1. Adjacent (contiguous) regions, or separate but equal regions
-- 
1.7.5-rc2


This bug report was last modified 14 years and 4 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.