Preserve point when doing untabify
* tabify.el (untabify): Preserve the current column so that point doesn't move. Fixes: debbugs:6032
This commit is contained in:
parent
90a6258b05
commit
bead9a43c1
2 changed files with 20 additions and 13 deletions
|
@ -1,3 +1,8 @@
|
|||
2011-07-13 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* tabify.el (untabify): Preserve the current column so that point
|
||||
doesn't move (bug#6032).
|
||||
|
||||
2011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* progmodes/cperl-mode.el (cperl-syntaxify-by-font-lock): Rewrite
|
||||
|
|
|
@ -34,19 +34,21 @@ Called non-interactively, the region is specified by arguments
|
|||
START and END, rather than by the position of point and mark.
|
||||
The variable `tab-width' controls the spacing of tab stops."
|
||||
(interactive "r")
|
||||
(save-excursion
|
||||
(save-restriction
|
||||
(narrow-to-region (point-min) end)
|
||||
(goto-char start)
|
||||
(while (search-forward "\t" nil t) ; faster than re-search
|
||||
(forward-char -1)
|
||||
(let ((tab-beg (point))
|
||||
(indent-tabs-mode nil)
|
||||
column)
|
||||
(skip-chars-forward "\t")
|
||||
(setq column (current-column))
|
||||
(delete-region tab-beg (point))
|
||||
(indent-to column))))))
|
||||
(let ((c (current-column)))
|
||||
(save-excursion
|
||||
(save-restriction
|
||||
(narrow-to-region (point-min) end)
|
||||
(goto-char start)
|
||||
(while (search-forward "\t" nil t) ; faster than re-search
|
||||
(forward-char -1)
|
||||
(let ((tab-beg (point))
|
||||
(indent-tabs-mode nil)
|
||||
column)
|
||||
(skip-chars-forward "\t")
|
||||
(setq column (current-column))
|
||||
(delete-region tab-beg (point))
|
||||
(indent-to column)))))
|
||||
(move-to-column c)))
|
||||
|
||||
(defvar tabify-regexp " [ \t]+"
|
||||
"Regexp matching whitespace that tabify should consider.
|
||||
|
|
Loading…
Add table
Reference in a new issue