]> git.eshelyaron.com Git - emacs.git/commitdiff
Delegate to rectangle version in delim-col when appropriate
authorStefan Kangas <stefankangas@gmail.com>
Mon, 8 Jul 2019 22:50:41 +0000 (00:50 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Mon, 8 Jul 2019 22:53:18 +0000 (00:53 +0200)
* lisp/delim-col.el (delimit-columns-region): Delegate to
`delimit-columns-rectangle' when called with a rectangular
region (bug#36453).

etc/NEWS
lisp/delim-col.el

index 852b6e49486ca4b603310d37bb7f6c6e87491157..532babd0fa6af20eea80fc9780f41b2e6c0bc7da 100644 (file)
--- 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.
index 3e309e917d2e28b8ef299c4d99c3b25dcf2de226..b3a773e5b02b3ee1227355059ea27a0a6d1c191b 100644 (file)
@@ -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