GNU bug report logs - #32200
27.0.50; ^L characters gets auto-deleted on actions like indent-region, newline after ^L, etc.

Previous Next

Package: emacs;

Reported by: Kaushal Modi <kaushal.modi <at> gmail.com>

Date: Wed, 18 Jul 2018 18:40:02 UTC

Severity: normal

Tags: fixed, patch

Found in version 27.0.50

Done: Noam Postavsky <npostavs <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 32200 in the body.
You can then email your comments to 32200 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#32200; Package emacs. (Wed, 18 Jul 2018 18:40:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Kaushal Modi <kaushal.modi <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 18 Jul 2018 18:40:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Kaushal Modi <kaushal.modi <at> gmail.com>
To: "bug-gnu-emacs <at> gnu.org" <bug-gnu-emacs <at> gnu.org>
Subject: 27.0.50; ^L characters gets auto-deleted on actions like
 indent-region, newline after ^L, etc.
Date: Wed, 18 Jul 2018 14:38:47 -0400
[Message part 1 (text/plain, inline)]
Hello,

I find this regression from emacs 26.1. It can be very easily reproduced in
emacs -Q:

1. emacs -Q
2. Press C-q C-l in the scratch buffer (this will insert the  ^L character)
3. Now hit RET, that character will go away.
3-alternative: Select a region that contains that ^L char and do C-M-\
(indent-region). That char will get deleted again.

This regression is evident in all my emacs-lisp packages, because the ^L
chars used to separate the sections disappear when I auto-indent the whole
package.

In GNU Emacs 27.0.50 (build 7, x86_64-pc-linux-gnu, GTK+ Version 2.24.23)
 of 2018-07-16
Repository revision: 46d7c786324f98e73b7615fbc9515ce9a14fa5d4
Windowing system distributor 'The X.Org Foundation', version 11.0.60900000
System Description: Red Hat Enterprise Linux Workstation release 6.8
(Santiago)

Configured using:
 'configure --with-modules
 --prefix=/home/kmodi/usr_local/apps/6/emacs/master
 '--program-transform-name=s/^ctags$/ctags_emacs/'
 --enable-checking=yes,glyphs --enable-check-lisp-object-type
 'CPPFLAGS=-I/home/kmodi/usr_local/6/include -I/usr/include/freetype2
 -I/usr/include' 'CFLAGS=-ggdb3 -O0' 'CXXFLAGS=-ggdb3 -O0'
 'LDFLAGS=-L/home/kmodi/usr_local/6/lib -L/home/kmodi/usr_local/6/lib64
 -ggdb3''

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS NOTIFY
ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK2 X11 MODULES THREADS

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=none
  locale-coding-system: utf-8-unix

-- 

Kaushal Modi
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#32200; Package emacs. (Wed, 18 Jul 2018 23:17:01 GMT) Full text and rfc822 format available.

Message #8 received at 32200 <at> debbugs.gnu.org (full text, mbox):

From: Noam Postavsky <npostavs <at> gmail.com>
To: Kaushal Modi <kaushal.modi <at> gmail.com>
Cc: 32200 <at> debbugs.gnu.org
Subject: Re: bug#32200: 27.0.50;
 ^L characters gets auto-deleted on actions like indent-region,
 newline after ^L, etc.
Date: Wed, 18 Jul 2018 19:16:08 -0400
[Message part 1 (text/plain, inline)]
tags 32200 + patch
quit

Kaushal Modi <kaushal.modi <at> gmail.com> writes:

> Hello,
>
> I find this regression from emacs 26.1. It can be very easily reproduced in
> emacs -Q:
>
> 1. emacs -Q
> 2. Press C-q C-l in the scratch buffer (this will insert the  ^L character)
> 3. Now hit RET, that character will go away.
> 3-alternative: Select a region that contains that ^L char and do C-M-\
> (indent-region). That char will get deleted again.
>
> This regression is evident in all my emacs-lisp packages, because the ^L
> chars used to separate the sections disappear when I auto-indent the whole
> package.

Ah, another weird quirk of indent-line-to.  How about this:

[v1-0001-Preserve-nonblank-whitespace-when-indenting-Bug-3.patch (text/x-diff, inline)]
From ded0a965022c57b61641f87be852e0451583823d Mon Sep 17 00:00:00 2001
From: Noam Postavsky <npostavs <at> gmail.com>
Date: Wed, 18 Jul 2018 19:11:23 -0400
Subject: [PATCH v1] Preserve nonblank whitespace when indenting (Bug#32200)

* lisp/indent.el (indent-line-to): Remove only spaces and tabs, not
any whitespace syntax characters.
---
 lisp/indent.el | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/lisp/indent.el b/lisp/indent.el
index f7da0767dc..339d9cbe9a 100644
--- a/lisp/indent.el
+++ b/lisp/indent.el
@@ -292,7 +292,8 @@ indent-line-to
   "Indent current line to COLUMN.
 This function removes or adds spaces and tabs at beginning of line
 only if necessary.  It leaves point at end of indentation."
-  (back-to-indentation)
+  (beginning-of-line 1)
+  (skip-chars-forward " \t")
   (let ((cur-col (current-column)))
     (cond ((< cur-col column)
 	   (if (>= (- column (* (/ cur-col tab-width) tab-width)) tab-width)
@@ -303,8 +304,10 @@ indent-line-to
            (delete-region (progn (move-to-column column t) (point))
                           ;; The `move-to-column' call may replace
                           ;; tabs with spaces, so we can't reuse the
-                          ;; previous `back-to-indentation' point.
-                          (progn (back-to-indentation) (point)))))))
+                          ;; previous start point.
+                          (progn (beginning-of-line 1)
+                                 (skip-chars-forward " \t")
+                                 (point)))))))
 
 (defun current-left-margin ()
   "Return the left margin to use for this line.
-- 
2.11.0


Added tag(s) patch. Request was from Noam Postavsky <npostavs <at> gmail.com> to control <at> debbugs.gnu.org. (Wed, 18 Jul 2018 23:17:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#32200; Package emacs. (Thu, 19 Jul 2018 12:41:02 GMT) Full text and rfc822 format available.

Message #13 received at 32200 <at> debbugs.gnu.org (full text, mbox):

From: Kaushal Modi <kaushal.modi <at> gmail.com>
To: Noam Postavsky <npostavs <at> gmail.com>
Cc: 32200 <at> debbugs.gnu.org
Subject: Re: bug#32200: 27.0.50; ^L characters gets auto-deleted on actions
 like indent-region, newline after ^L, etc.
Date: Thu, 19 Jul 2018 08:40:18 -0400
[Message part 1 (text/plain, inline)]
Hello Noam,

On Wed, Jul 18, 2018 at 7:16 PM Noam Postavsky <npostavs <at> gmail.com> wrote:

> tags 32200 + patch
> quit
>
> Ah, another weird quirk of indent-line-to.  How about this:
>

Thanks for the prompt patch! That fix works for me.
-- 

Kaushal Modi
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#32200; Package emacs. (Sun, 22 Jul 2018 15:11:01 GMT) Full text and rfc822 format available.

Message #16 received at 32200 <at> debbugs.gnu.org (full text, mbox):

From: Noam Postavsky <npostavs <at> gmail.com>
To: Kaushal Modi <kaushal.modi <at> gmail.com>
Cc: 32200 <at> debbugs.gnu.org
Subject: Re: bug#32200: 27.0.50;
 ^L characters gets auto-deleted on actions like indent-region,
 newline after ^L, etc.
Date: Sun, 22 Jul 2018 11:10:47 -0400
tags 32200 fixed
close 32200
quit

Kaushal Modi <kaushal.modi <at> gmail.com> writes:

> Thanks for the prompt patch! That fix works for me.

Pushed to master.

[1: 8217998b0d]: 2018-07-22 10:52:48 -0400
  Preserve nonblank whitespace when indenting (Bug#32200)
  https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=8217998b0d59ec491116250c6a10f46052a21ef8




Added tag(s) fixed. Request was from Noam Postavsky <npostavs <at> gmail.com> to control <at> debbugs.gnu.org. (Sun, 22 Jul 2018 15:11:03 GMT) Full text and rfc822 format available.

bug closed, send any further explanations to 32200 <at> debbugs.gnu.org and Kaushal Modi <kaushal.modi <at> gmail.com> Request was from Noam Postavsky <npostavs <at> gmail.com> to control <at> debbugs.gnu.org. (Sun, 22 Jul 2018 15:11:03 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 20 Aug 2018 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 6 years and 306 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.