Subject: bug#77823: 31.0.50; M-j regression since commit 4c6b1712a4d

From: Stefan Monnier <[email-masked]>
Date: Wed, 16 Apr 2025 20:35:41 -0400

>> I found the issue, `comment-indent' was using both block-comment
>> variables first than `comment-start' and `comment-end', this must fix it.
>>
>> diff --git a/lisp/newcomment.el b/lisp/newcomment.el
>> index eb36f91104d..3e20da816b9 100644
>> --- a/lisp/newcomment.el
>> +++ b/lisp/newcomment.el
>> @@ -722,9 +722,9 @@ comment-indent
>>    (let* ((empty (save-excursion (beginning-of-line)
>>  				(looking-at "[ \t]*$")))
>>  	 (starter (or (and continue comment-continue)
>> -		      (and empty block-comment-start) comment-start))
>> +		      comment-start (and empty block-comment-start)))
>>  	 (ender (or (and continue comment-continue "")
>> -		    (and empty block-comment-end) comment-end)))
>> +		    comment-end (and empty block-comment-end))))
>>      (unless starter (error "No comment syntax defined"))
>>      (beginning-of-line)
>>      (let* ((eolpos (line-end-position))
>
> Thanks!  I don't know the comment code well; Stefan, would you mind
> giving this a quick look?

My understanding is that the `newcomment.el` code (and its predecessor
which lived in `simple.el`) never really knew what
`block-comment-start/end` were for so it's used inconsistently and I'd
be surprised if there aren't more misbehaviors linked to them,

Of course, maybe the `simple.el` code did know and it's the guy who
rewrote it into `newcomment.el` who messed it all up.  🙂

In any case, the above is equivalent to just removing the `(and empty
block-comment-start/end)` because `comment-start/end` should never be
nil anyway, so it's probably worthwhile thinking about what we want to
do with `block-comment-start/end` here.
Maybe "nothing" is the right answer, of course.

        Stefan "really not a fan of `block-comment-start/end`"