From: Noam Postavsky Date: Wed, 18 Jul 2018 23:11:23 +0000 (-0400) Subject: Preserve nonblank whitespace when indenting (Bug#32200) X-Git-Tag: emacs-27.0.90~4664^2~40 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=8217998b0d59ec491116250c6a10f46052a21ef8;p=emacs.git Preserve nonblank whitespace when indenting (Bug#32200) * lisp/indent.el (indent-line-to): Remove only spaces and tabs, not any whitespace syntax characters. --- diff --git a/lisp/indent.el b/lisp/indent.el index 450632174fc..73a7d0ef4eb 100644 --- a/lisp/indent.el +++ b/lisp/indent.el @@ -292,7 +292,8 @@ indentation by specifying a large negative ARG." "Indent current line to COLUMN. This function removes or adds spaces and tabs at beginning of line only if necessary. It leaves point at end of indentation." - (back-to-indentation) + (beginning-of-line 1) + (skip-chars-forward " \t") (let ((cur-col (current-column))) (cond ((< cur-col column) (if (>= (- column (* (/ cur-col tab-width) tab-width)) tab-width) @@ -303,8 +304,10 @@ only if necessary. It leaves point at end of indentation." (delete-region (progn (move-to-column column t) (point)) ;; The `move-to-column' call may replace ;; tabs with spaces, so we can't reuse the - ;; previous `back-to-indentation' point. - (progn (back-to-indentation) (point))))))) + ;; previous start point. + (progn (beginning-of-line 1) + (skip-chars-forward " \t") + (point))))))) (defun current-left-margin () "Return the left margin to use for this line.