emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 8d8d1d8 2/2: Delegate to rectangle version in delim


From: Lars Ingebrigtsen
Subject: [Emacs-diffs] master 8d8d1d8 2/2: Delegate to rectangle version in delim-col when appropriate
Date: Mon, 8 Jul 2019 18:53:26 -0400 (EDT)

branch: master
commit 8d8d1d8000b2ac5cac12f23b1b2d270b3340f288
Author: Stefan Kangas <address@hidden>
Commit: Lars Ingebrigtsen <address@hidden>

    Delegate to rectangle version in delim-col when appropriate
    
    * lisp/delim-col.el (delimit-columns-region): Delegate to
    `delimit-columns-rectangle' when called with a rectangular
    region (bug#36453).
---
 etc/NEWS          |  3 +-
 lisp/delim-col.el | 92 +++++++++++++++++++++++++++++--------------------------
 2 files changed, 50 insertions(+), 45 deletions(-)

diff --git a/etc/NEWS b/etc/NEWS
index 852b6e4..532babd 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -442,7 +442,8 @@ interface that's more like functions like 'search-forward'.
 
 ---
 ** More commands support noncontiguous rectangular regions, namely
-'upcase-dwim', 'downcase-dwim', 'replace-string', 'replace-regexp'.
+'upcase-dwim', 'downcase-dwim', 'replace-string', 'replace-regexp',
+and 'delimit-columns-region'.
 
 +++
 ** When asked to visit a large file, Emacs now offers visiting it literally.
diff --git a/lisp/delim-col.el b/lisp/delim-col.el
index 3e309e9..b3a773e 100644
--- a/lisp/delim-col.el
+++ b/lisp/delim-col.el
@@ -260,50 +260,54 @@ at the left corner."
 
 START and END delimit the text region."
   (interactive "*r")
-  (let ((delimit-columns-str-before
-        (delimit-columns-str delimit-columns-str-before))
-       (delimit-columns-str-separator
-        (delimit-columns-str delimit-columns-str-separator))
-       (delimit-columns-str-after
-        (delimit-columns-str delimit-columns-str-after))
-       (delimit-columns-before
-        (delimit-columns-str delimit-columns-before))
-       (delimit-columns-after
-        (delimit-columns-str delimit-columns-after))
-       (delimit-columns-start
-         (if (natnump delimit-columns-start)
-            delimit-columns-start
-          0))
-       (delimit-columns-end
-        (if (integerp delimit-columns-end)
-            delimit-columns-end
-          1000000))
-       (delimit-columns-limit (make-marker))
-       (the-end (copy-marker end))
-       delimit-columns-max)
-    (when (<= delimit-columns-start delimit-columns-end)
-      (save-excursion
-       (goto-char start)
-       (beginning-of-line)
-       ;; get maximum length for each column
-       (and delimit-columns-format
-            (save-excursion
-              (while (< (point) the-end)
-                (delimit-columns-rectangle-max
-                 (prog1
-                     (point)
-                   (end-of-line)))
-                (forward-char 1))))
-       ;; prettify columns
-       (while (< (point) the-end)
-         (delimit-columns-rectangle-line
-          (prog1
-              (point)
-            (end-of-line)))
-         (forward-char 1))
-       ;; nullify markers
-       (set-marker delimit-columns-limit nil)
-       (set-marker the-end nil)))))
+  (if rectangle-mark-mode
+      ;; Delegate to delimit-columns-rectangle when called with a
+      ;; rectangular region.
+      (delimit-columns-rectangle start end)
+    (let ((delimit-columns-str-before
+           (delimit-columns-str delimit-columns-str-before))
+          (delimit-columns-str-separator
+           (delimit-columns-str delimit-columns-str-separator))
+          (delimit-columns-str-after
+           (delimit-columns-str delimit-columns-str-after))
+          (delimit-columns-before
+           (delimit-columns-str delimit-columns-before))
+          (delimit-columns-after
+           (delimit-columns-str delimit-columns-after))
+          (delimit-columns-start
+           (if (natnump delimit-columns-start)
+               delimit-columns-start
+             0))
+          (delimit-columns-end
+           (if (integerp delimit-columns-end)
+               delimit-columns-end
+             1000000))
+          (delimit-columns-limit (make-marker))
+          (the-end (copy-marker end))
+          delimit-columns-max)
+      (when (<= delimit-columns-start delimit-columns-end)
+        (save-excursion
+          (goto-char start)
+          (beginning-of-line)
+          ;; get maximum length for each column
+          (and delimit-columns-format
+               (save-excursion
+                 (while (< (point) the-end)
+                   (delimit-columns-rectangle-max
+                    (prog1
+                        (point)
+                      (end-of-line)))
+                   (forward-char 1))))
+          ;; prettify columns
+          (while (< (point) the-end)
+            (delimit-columns-rectangle-line
+             (prog1
+                 (point)
+               (end-of-line)))
+            (forward-char 1))
+          ;; nullify markers
+          (set-marker delimit-columns-limit nil)
+          (set-marker the-end nil))))))
 
 
 ;;;###autoload



reply via email to

[Prev in Thread] Current Thread [Next in Thread]