Commit 345a2258 authored by Chong Yidong's avatar Chong Yidong
Browse files

* simple.el (delete-trailing-lines): New option.

(delete-trailing-whitespace): Obey it.

Fixes: debbugs:11879
parent 049a0936
......@@ -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,
......
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):
......
......@@ -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))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment