---
** 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.
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