diff options
| author | Stefan Kangas <stefankangas@gmail.com> | 2019-07-09 00:50:41 +0200 |
|---|---|---|
| committer | Lars Ingebrigtsen <larsi@gnus.org> | 2019-07-09 00:53:18 +0200 |
| commit | 8d8d1d8000b2ac5cac12f23b1b2d270b3340f288 (patch) | |
| tree | e523056f37e5f3e3caad1547551ab613210cce23 /lisp | |
| parent | fb48eb48f3bd432307821bc7158d1090f0e4bbf0 (diff) | |
| download | emacs-8d8d1d8000b2ac5cac12f23b1b2d270b3340f288.tar.gz | |
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).
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/delim-col.el | 92 |
1 files changed, 48 insertions, 44 deletions
diff --git a/lisp/delim-col.el b/lisp/delim-col.el index 3e309e917d2..b3a773e5b02 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 |
