Subject: bug#35600: closed (Re: bug#35600: 27.0.50; uncomment-region fails correctly to reverse the action of comment-region.)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 10 May 2019 07:37:02 +0000

Your bug report

#35600: 27.0.50; uncomment-region fails correctly to reverse the action of comment-region.

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
35600: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=35600
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#35600: 27.0.50; uncomment-region fails correctly to reverse the action of comment-region.
From: Alan Mackenzie <[email-masked]>
To: [email-masked]
Date: Fri, 10 May 2019 07:36:28 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

The bug has been fixed in master.

-- 
Alan Mackenzie (Nuremberg, Germany).

On Mon, May 06, 2019 at 10:12:02 +0000, GNU bug Tracking System wrote:
> Thank you for filing a new bug report with debbugs.gnu.org.

> This is an automatically generated reply to let you know your message
> has been received.

> Your message is being forwarded to the package maintainers and other
> interested parties for their attention; they will reply in due course.

> Your message has been sent to the package maintainer(s):
>  [email-masked]

> If you wish to submit further information on this problem, please
> send it to [email-masked].

> Please do not send mail to [email-masked] unless you wish
> to report a problem with the Bug-tracking system.

> -- 
> 35600: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=35600
> GNU Bug Tracking System
> Contact [email-masked] with problems

Subject: 27.0.50; uncomment-region fails correctly to reverse the action of comment-region.
From: Alan Mackenzie <[email-masked]>
To: [email-masked]
Date: Mon, 6 May 2019 10:11:00 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello, Emacs.

In the master branch:

With indent-tabs-mode t, and tab-width (say) 8, start off with the
following two line of Emacs lisp:

    (if (null bs-state)
	(ignore)
    ^
  <tab>

(the first of these lines being indented by four spaces, the second by a
<tab>).

Mark the two lines, and execute M-x comment-region.  We get this:

    ;; (if (null bs-state)
    ;;  (ignore)
       ^
     <tab>

(where all the space is space characters except for the <tab> just
before "(ignore)").

Now execute M-x uncomment-region.  This should restore the region to
what it started as.  Instead one gets:

    (if (null bs-state)
    	(ignore)
^^^^  ^
SPCs <tab>

, there now being four spurious spaces before the <tab> preceding
"(ignore)".  This is a bug.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

In uncomment-region-default-1, the variable `spt' gets set to the result
of comment-search-forward, the ";" at the beginning of the comment on
the current line.  The function then narrows to between `spt' and BO
next line.

In this narrowed region, the function removes the comment starter.
Because of the narrowing, it cannot take any account of the spaces at
the start of the line.

Possibly, uncomment-region needs to be amended so that that narrowing
includes any space preceding the comment starter, and that space gets
properly handled.

-- 
Alan Mackenzie (Nuremberg, Germany).