1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-25 07:28:20 +00:00

Fix bug#21766 and add test

* lisp/simple.el (delete-trailing-whitespace): Save match data when
calling `skip-syntax-backward'.
* test/automated/simple-test.el (simple-delete-trailing-whitespace):
New test.
This commit is contained in:
Juanma Barranquero 2015-10-28 09:55:25 +01:00
parent 785c0d8326
commit 1f02cbea8b
2 changed files with 24 additions and 1 deletions

View File

@ -609,7 +609,8 @@ buffer if the variable `delete-trailing-lines' is non-nil."
(start (or start (point-min))))
(goto-char start)
(while (re-search-forward "\\s-$" end-marker t)
(skip-syntax-backward "-" (line-beginning-position))
(save-match-data
(skip-syntax-backward "-" (line-beginning-position)))
;; Don't delete formfeeds, even if they are considered whitespace.
(if (looking-at-p ".*\f")
(goto-char (match-end 0)))

View File

@ -180,5 +180,27 @@
(should (= x 2)))
(remove-hook 'post-self-insert-hook inc))))
;;; `delete-trailing-whitespace'
(ert-deftest simple-delete-trailing-whitespace ()
"Test bug#21766: delete-whitespace sometimes deletes non-whitespace."
(defvar python-indent-guess-indent-offset) ; to avoid a warning
(let ((python (featurep 'python))
(python-indent-guess-indent-offset nil)
(delete-trailing-lines t))
(unwind-protect
(with-temp-buffer
(python-mode)
(insert (concat "query = \"\"\"WITH filtered AS \n"
"WHERE \n"
"\"\"\".format(fv_)\n"
"\n"
"\n"))
(delete-trailing-whitespace)
(should (equal (count-lines (point-min) (point-max)) 3)))
;; Let's clean up if running interactive
(unless (or noninteractive python)
(unload-feature 'python)))))
(provide 'simple-test)
;;; simple-test.el ends here