]> git.eshelyaron.com Git - emacs.git/commitdiff
* simple.el (delete-trailing-lines): New option.
authorChong Yidong <cyd@gnu.org>
Sat, 28 Jul 2012 10:38:55 +0000 (18:38 +0800)
committerChong Yidong <cyd@gnu.org>
Sat, 28 Jul 2012 10:38:55 +0000 (18:38 +0800)
(delete-trailing-whitespace): Obey it.

Fixes: debbugs:11879
etc/NEWS
lisp/ChangeLog
lisp/simple.el

index ce44a530e26a7fd0cba2086407ad88ee48c4be76..0a4157a45578fd694b2c360dbb15bd34b49be1e8 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -147,6 +147,10 @@ for it.
 \f
 * 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,
index a158e4f347a33d7058cf04e25e873a6d2e1e2be9..410a23592dfe3aa488fa17a49b19ac557b284e67 100644 (file)
@@ -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):
index 3240ede0299b72ec3593108ba240bdccf1042ccc..2011ff2b1bbf4792f5dd318373aa7ba8cbac2404 100644 (file)
@@ -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))