Subject: bug#28003: 26.0.50; Auto fill broken in Message mode

From: Stephen Berman <[email-masked]>
Date: Mon, 07 Aug 2017 21:56:42 +0200

This change:

commit 9b463fa8648b7baed95a44f4317cb7402fd8bf1c
Author: Tom Tromey <[email-masked]>
Date:   Sat Aug 5 18:30:52 2017 -0600

  Respect comment-auto-fill-only-comments
  
  Respect comment-auto-fill-only-comments when auto-filling and a
  comment syntax is defined.
  
  * lisp/newcomment.el (comment-indent-new-line): Do not check
  comment-auto-fill-only-comments.
  * lisp/simple.el (internal-auto-fill): New defun.
  * src/cmds.c (internal_self_insert): Call Qinternal_auto_fill, not
  auto_fill_function.
  (syms_of_cmds): Define Qinternal_auto_fill.

broke auto filling in Message mode; the breakage is due specifically to
this change in comment-indent-new-line:

diff --git a/lisp/newcomment.el b/lisp/newcomment.el
index 8772b52376..e3ee4dfab1 100644
--- a/lisp/newcomment.el
+++ b/lisp/newcomment.el
@@ -1382,10 +1382,9 @@ comment-indent-new-line
   (interactive)
   (comment-normalize-vars t)
   (let (compos comin)
-    ;; If we are not inside a comment and we only auto-fill comments,
-    ;; don't do anything (unless no comment syntax is defined).
+    ;; If we are not inside a comment don't do anything (unless no
+    ;; comment syntax is defined).
     (unless (and comment-start
-		 comment-auto-fill-only-comments
 		 (not (called-interactively-p 'interactive))
 		 (not (save-excursion
 			(prog1 (setq compos (comment-beginning))

To reproduce:

0. emacs -Q
1. Type `C-x m' to get a Message mode buffer, with a fill-column of 70.
2. Insert at point-max this text (all in one unbroken line):
   This is a test. This is a test. This is a test. This is a test. This is a test. 
3. Point is now in column 79; type SPC.
=> The line is not broken and filled.
4. Delete the last SPC, type `C-a > SPC C-e SPC'.
=> This line is now broken and filled.

Message mode sets "> " and comment-auto-fill-only-comments to nil by
default, but since the above change eliminated checking the latter,
after step 3 the unless condition evaluates to t, so there's no
auto-filling; while after step 4, (comment-beginning) is non-nil, so the
unless condition is nil and auto-filling occurs.

In GNU Emacs 26.0.50 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.22.8)
 of 2017-08-07 built on rosalinde
Repository revision: 14ea76af5f3596d48747c2437006f6e1abcb67a7
Windowing system distributor 'The X.Org Foundation', version 11.0.11901000