diff options
author | Chong Yidong <cyd@gnu.org> | 2012-07-28 18:38:55 +0800 |
---|---|---|
committer | Chong Yidong <cyd@gnu.org> | 2012-07-28 18:38:55 +0800 |
commit | 345a2258671ec587a32129daf37fb53b3eea903e (patch) | |
tree | d56dcdb70927a4cf7855ce14484a050846975279 /lisp | |
parent | 049a0936caca462a2f12107813a24b70eeb97c3e (diff) | |
download | emacs-345a2258671ec587a32129daf37fb53b3eea903e.tar.gz |
* simple.el (delete-trailing-lines): New option.
(delete-trailing-whitespace): Obey it.
Fixes: debbugs:11879
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/ChangeLog | 5 | ||||
-rw-r--r-- | lisp/simple.el | 28 |
2 files changed, 27 insertions, 6 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a158e4f347a..410a23592df 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-07-28 Chong Yidong <cyd@gnu.org> + + * simple.el (delete-trailing-lines): New option. + (delete-trailing-whitespace): Obey it (Bug#11879). + 2012-07-28 David Engster <deng@randomsample.de> * xml.el (xml-node-name, xml-parse-file, xml-parse-region): diff --git a/lisp/simple.el b/lisp/simple.el index 3240ede0299..2011ff2b1bb 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -564,13 +564,28 @@ On nonblank line, delete any immediately following blank lines." (if (looking-at "^[ \t]*\n\\'") (delete-region (point) (point-max))))) +(defcustom delete-trailing-lines t + "If non-nil, \\[delete-trailing-whitespace] deletes trailing lines. +Trailing lines are deleted only if `delete-trailing-whitespace' +is called on the entire buffer (rather than an active region)." + :type 'boolean + :group 'editing + :version "24.2") + (defun delete-trailing-whitespace (&optional start end) - "Delete all the trailing whitespace across the current buffer. -All whitespace after the last non-whitespace character in a line is deleted. -This respects narrowing, created by \\[narrow-to-region] and friends. -A formfeed is not considered whitespace by this function. -If END is nil, also delete all trailing lines at the end of the buffer. -If the region is active, only delete whitespace within the region." + "Delete trailing whitespace between START and END. +If called interactively, START and END are the start/end of the +region if the mark is active, or of the buffer's accessible +portion if the mark is inactive. + +This command deletes whitespace characters after the last +non-whitespace character in each line between START and END. It +does not consider formfeed characters to be whitespace. + +If this command acts on the entire buffer (i.e. if called +interactively with the mark inactive, or called from Lisp with +END nil), it also deletes all trailing lines at the end of the +buffer if the variable `delete-trailing-lines' is non-nil." (interactive (progn (barf-if-buffer-read-only) (if (use-region-p) @@ -590,6 +605,7 @@ If the region is active, only delete whitespace within the region." ;; Delete trailing empty lines. (goto-char end-marker) (when (and (not end) + delete-trailing-lines ;; Really the end of buffer. (save-restriction (widen) (eobp)) (<= (skip-chars-backward "\n") -2)) |