bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: reindent-then-newline-and-indent doesn't indent properly in emacs 22


From: Stefan Monnier
Subject: Re: reindent-then-newline-and-indent doesn't indent properly in emacs 22.1
Date: Sun, 14 Oct 2007 15:48:21 -0400
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/23.0.50 (gnu/linux)

> --- lisp/simple.el.orig 2007-05-27 16:35:51.000000000 +0200
> +++ lisp/simple.el      2007-10-14 15:21:13.000000000 +0200
> @@ -618,7 +618,8 @@
>    (indent-according-to-mode))

>  (defun reindent-then-newline-and-indent ()
> -  "Reindent current line, insert newline, then indent the new line.
> +  "Reindent current line, insert newline deleting trailing spaces or tabs,
> +then indent the new line.
>  Indentation of both lines is done according to the current major mode,
>  which means calling the current value of `indent-line-function'.
>  In programming language modes, this is the same as TAB.
> @@ -631,8 +632,12 @@
>      (newline)
>      (save-excursion
>        (goto-char pos)
> -      (indent-according-to-mode)
> -      (delete-horizontal-space t))
> +      ;; Beware of indentation functions moving point.
> +      (save-excursion
> +       (indent-according-to-mode))
> +      ;; Delete all trailing spaces or tabs introduced by the newline command
> +      ;; or the new indentation. 0 is for no space.
> +      (just-one-space 0))
>      (indent-according-to-mode)))

>  (defun quoted-insert (arg)


The patch looks OK w.r.t wrapping indent-according-to-mode in save-excursion
(indeed I do expect all indentation functions to "preserve" point but it's
not stated anywhere, so I think both reindent-then-newline-and-indent and
indent-to-left-margin are at fault here).

But I do not understand why you replaced delete-horizontal-space with
just-one-space.


        Stefan




reply via email to

[Prev in Thread] Current Thread [Next in Thread]