]> git.eshelyaron.com Git - emacs.git/commitdiff
Make `M-q' in message-mode work better
authorLars Ingebrigtsen <larsi@gnus.org>
Wed, 29 Sep 2021 16:44:41 +0000 (18:44 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Wed, 29 Sep 2021 16:45:15 +0000 (18:45 +0200)
* lisp/gnus/message.el (message-newline-and-reformat): Fix
bug#43299 differently.
(message-newline-and-reformat): Revert change for bug#43299.  This
fixes bug#50842.

lisp/gnus/message.el

index 4a754b98569950e270b0be69b3b819ff5cc779eb..f51f5c0dd0d6b99220f14985f7b00e6b3df8b6da 100644 (file)
@@ -3572,8 +3572,18 @@ Prefix arg means justify as well."
     (when (looking-at message-cite-prefix-regexp)
       (setq quoted (match-string 0))
       (goto-char (match-end 0))
-      (looking-at "[ \t]*")
-      (setq leading-space (match-string 0)))
+      (let ((after (point)))
+        ;; This is a line with no text after the cite prefix.  In that
+        ;; case, the trailing space is commonly not present, so look
+        ;; around for other lines that have some data.
+        (when (looking-at-p "\n")
+          (let ((regexp (concat "^" message-cite-prefix-regexp ".")))
+            (when (or (re-search-backward regexp nil t)
+                      (re-search-forward regexp nil t))
+              (goto-char (1- (match-end 0))))))
+        (looking-at "[ \t]*")
+        (setq leading-space (match-string 0))
+        (goto-char after)))
     (if (and quoted
             (not not-break)
             (not bolp)
@@ -3590,7 +3600,7 @@ Prefix arg means justify as well."
                      (equal quoted (match-string 0)))
            (goto-char (match-end 0))
            (looking-at "[ \t]*")
-           (when (< (length leading-space) (length (match-string 0)))
+           (when (> (length leading-space) (length (match-string 0)))
              (setq leading-space (match-string 0)))
            (forward-line 1))
          (setq end (point))