From 2275487232b96ca782ca671d60be002e3948a764 Mon Sep 17 00:00:00 2001 From: Noam Postavsky Date: Wed, 15 Mar 2017 23:01:13 -0400 Subject: [PATCH] Simplify delete-trailing-whitespace by dropping syntax tables * lisp/simple.el (delete-trailing-whitespace): Just match [[:blank:]] independently of current syntax table. --- lisp/simple.el | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/lisp/simple.el b/lisp/simple.el index 369fbf7192..2cf8c13225 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -630,14 +630,13 @@ delete-trailing-whitespace (save-excursion (let ((end-marker (and end (copy-marker end)))) (goto-char (or start (point-min))) - (with-syntax-table (make-syntax-table (syntax-table)) - ;; Don't delete formfeeds, even if they are considered whitespace. - (modify-syntax-entry ?\f "_") - (while (re-search-forward "\\s-$" end-marker t) - (skip-syntax-backward "-" (line-beginning-position)) - (let ((b (point)) (e (match-end 0))) - (when (region-modifiable-p b e) - (delete-region b e))))) + ;; Note that trying to match all the trailing whitespace with + ;; just the regexp can be very slow (Bug#26079). + (while (re-search-forward "[[:blank:]]$" end-marker t) + (skip-syntax-backward "-" (line-beginning-position)) + (let ((b (point)) (e (match-end 0))) + (when (region-modifiable-p b e) + (delete-region b e)))) (if end (set-marker end-marker nil) ;; Delete trailing empty lines. -- 2.11.1