]> git.eshelyaron.com Git - emacs.git/commitdiff
Preserve nonblank whitespace when indenting (Bug#32200)
authorNoam Postavsky <npostavs@gmail.com>
Wed, 18 Jul 2018 23:11:23 +0000 (19:11 -0400)
committerNoam Postavsky <npostavs@gmail.com>
Sun, 22 Jul 2018 14:52:48 +0000 (10:52 -0400)
* lisp/indent.el (indent-line-to): Remove only spaces and tabs, not
any whitespace syntax characters.

lisp/indent.el

index 450632174fcc27e61bda53703d157c3379f1f785..73a7d0ef4eb6f0e074185992c21f436baf07a13c 100644 (file)
@@ -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.