From: Chong Yidong Date: Sat, 28 Jul 2012 10:38:55 +0000 (+0800) Subject: * simple.el (delete-trailing-lines): New option. X-Git-Tag: emacs-24.2.90~1045 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=345a2258671ec587a32129daf37fb53b3eea903e;p=emacs.git * simple.el (delete-trailing-lines): New option. (delete-trailing-whitespace): Obey it. Fixes: debbugs:11879 --- diff --git a/etc/NEWS b/etc/NEWS index ce44a530e26..0a4157a4557 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -147,6 +147,10 @@ for it. * Editing Changes in Emacs 24.2 +** New option `delete-trailing-lines' specifies whether the +M-x delete-trailing-lines command should delete trailing lines at the +end of the buffer. It defaults to t. + ** Search changes *** Global `M-s _' starts a symbol (identifier) incremental search, 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 + + * simple.el (delete-trailing-lines): New option. + (delete-trailing-whitespace): Obey it (Bug#11879). + 2012-07-28 David Engster * 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))