[PATCH] copy delete-trailing-whitespace from Emacs 23.

Andreas Röhler andreas.roehler at online.de
Fri Jun 10 05:39:48 EDT 2011


Am 09.06.2011 14:42, schrieb Jeff Sparkes:
> I copied the delete-trailing-whitespace from emacs23/lisp/simple.el.
> I wrote the documentation entry myself; it needs to be reviewed.
> I couldn't find a section on whitespace to reference, so I just said
> "spaces and tabs".  Pedantically it removes the regexp \s-, skipping
> formfeeds. How much detail should I go into?
>
> diff --git a/lisp/simple.el b/lisp/simple.el
> --- a/lisp/simple.el
> +++ b/lisp/simple.el
> @@ -329,6 +329,23 @@
>       (insert ? ))
>     (delete-region (point) (progn (skip-chars-forward " \t") (point))))
>
> +(defun delete-trailing-whitespace ()
> +  "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."
> +  (interactive "*")
> +  (save-match-data
> +    (save-excursion
> +      (goto-char (point-min))
> +      (while (re-search-forward "\\s-$" nil t)
> +	(skip-syntax-backward "-" (save-excursion (forward-line 0) (point)))
> +	;; Don't delete formfeeds, even if they are considered whitespace.

Hi,

while I'm following that rationale not to delete formfeeds: user might 
do still different considerations.

What about a customizable chars-list specifying what as whitespace 
should be considered?

Indicating chars in a list is much easier than changing syntax for most 
of users IMO.


> +	(save-match-data
> +	  (if (looking-at ".*\f")
> +	      (goto-char (match-end 0))))

It might mean: whitespaces followed by a formfeed will be preserved.
Seems not reasonable.

Cheers,

Andreas

> +	(delete-region (point) (match-end 0))))))
> +
>   (defun delete-blank-lines ()
>     "On blank line, delete all surrounding blank lines, leaving just one.
>   On isolated blank line, delete that one.
> diff --git a/man/xemacs/killing.texi b/man/xemacs/killing.texi
> --- a/man/xemacs/killing.texi
> +++ b/man/xemacs/killing.texi
> @@ -99,6 +99,12 @@
>   the next line by deleting a newline and all surrounding spaces, possibly
>   leaving a single space.  @xref{Indentation,M-^}.
>
> + at findex delete-trailing-whitespace
> +  @code{delete-trailing-whitespace} deletes spaces and tabs at the end
> +of all of the lines in the current buffer or region
> +(@pxref{Narrowing}). This command does not remove formfeed
> +characters.
> +
>   @subsection Killing by Lines
>
>   @table @kbd
>
>
> _______________________________________________
> XEmacs-Beta mailing list
> XEmacs-Beta at xemacs.org
> http://lists.xemacs.org/mailman/listinfo/xemacs-beta
>



More information about the XEmacs-Beta mailing list