]> git.eshelyaron.com Git - emacs.git/commitdiff
Stop using indent-line-to in lisp-indent-line (Bug#32014)
authorNoam Postavsky <npostavs@gmail.com>
Fri, 29 Jun 2018 23:58:58 +0000 (19:58 -0400)
committerNoam Postavsky <npostavs@gmail.com>
Mon, 9 Jul 2018 23:39:03 +0000 (19:39 -0400)
This is partial revert of "Remove ignored argument from
lisp-indent-line", because `indent-line-to' doesn't respect field
boundaries.
* lisp/emacs-lisp/lisp-mode.el (lisp-indent-line): Use delete-region
and indent-to instead of `indent-line-to'.
* test/lisp/emacs-lisp/lisp-mode-tests.el
(lisp-indent-with-read-only-field): Expect to pass.

Don't merge to master, we will fix indent-line-to there instead.

lisp/emacs-lisp/lisp-mode.el
test/lisp/emacs-lisp/lisp-mode-tests.el

index 94be5acd6d30409f630d88b727e1de05032cf4c1..3a03b56313dc8f4a328d88bbf7fcadd38990e570 100644 (file)
@@ -867,7 +867,9 @@ by more than one line to cross a string literal."
   (interactive)
   (let ((pos (- (point-max) (point)))
         (indent (progn (beginning-of-line)
-                       (or indent (calculate-lisp-indent (lisp-ppss))))))
+                       (or indent (calculate-lisp-indent (lisp-ppss)))))
+       (shift-amt nil)
+       (beg (progn (beginning-of-line) (point))))
     (skip-chars-forward " \t")
     (if (or (null indent) (looking-at "\\s<\\s<\\s<"))
        ;; Don't alter indentation of a ;;; comment line
@@ -879,7 +881,11 @@ by more than one line to cross a string literal."
          ;; as comment lines, not as code.
          (progn (indent-for-comment) (forward-char -1))
        (if (listp indent) (setq indent (car indent)))
-        (indent-line-to indent))
+       (setq shift-amt (- indent (current-column)))
+       (if (zerop shift-amt)
+           nil
+         (delete-region beg (point))
+         (indent-to indent)))
       ;; If initial point was within line's indentation,
       ;; position after the indentation.  Else stay at same point in text.
       (if (> (- (point-max) pos) (point))
index 2ac0e5ce1d43a261043b0c99d8f4177005edd83e..8598d419788d02e24bc0df364fa7d61565cf6629 100644 (file)
@@ -226,7 +226,6 @@ Expected initialization file: `%s'\"
 
 (ert-deftest lisp-indent-with-read-only-field ()
   "Test indentation on line with read-only field (Bug#32014)."
-  :expected-result :failed
   (with-temp-buffer
     (insert (propertize "prompt> " 'field 'output 'read-only t
                         'rear-nonsticky t 'front-sticky '(read-only)))