emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

emacs-28 c9524819ea: Partially revert a fill-region-as-paragraph regress


From: Lars Ingebrigtsen
Subject: emacs-28 c9524819ea: Partially revert a fill-region-as-paragraph regression
Date: Wed, 26 Jan 2022 10:20:11 -0500 (EST)

branch: emacs-28
commit c9524819eaf4e561a184b04dfca7e42970dc8809
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Partially revert a fill-region-as-paragraph regression
    
    * lisp/textmodes/fill.el (fill-region-as-paragraph): Revert
    e186af261 (bug#53537), because it leads to regressions.  (But
    leave tests in place.)
---
 lisp/textmodes/fill.el            | 18 ++++--------------
 test/lisp/textmodes/fill-tests.el | 23 +++++++++++++++++++++++
 2 files changed, 27 insertions(+), 14 deletions(-)

diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el
index 92e50ec290..beb30c6e95 100644
--- a/lisp/textmodes/fill.el
+++ b/lisp/textmodes/fill.el
@@ -714,8 +714,7 @@ space does not end a sentence, so don't break a line there."
     (or justify (setq justify (current-justification)))
 
     ;; Don't let Adaptive Fill mode alter the fill prefix permanently.
-    (let ((actual-fill-prefix fill-prefix)
-          (fill-prefix fill-prefix))
+    (let ((fill-prefix fill-prefix))
       ;; Figure out how this paragraph is indented, if desired.
       (when (and adaptive-fill-mode
                 (or (null fill-prefix) (string= fill-prefix "")))
@@ -755,18 +754,9 @@ space does not end a sentence, so don't break a line 
there."
 
        ;; This is the actual filling loop.
        (goto-char from)
-       (let ((first t)
-              linebeg)
-         (while (< (point) to)
-            ;; On the first line, there may be text in the fill prefix
-            ;; zone (when `fill-prefix' is specified externally, and
-            ;; not computed).  In that case, don't consider that area
-            ;; when trying to find a place to put a line break
-            ;; (bug#45720).
-            (if (not first)
-               (setq linebeg (point))
-              (setq first nil
-                    linebeg (+ (point) (length actual-fill-prefix))))
+       (let (linebeg)
+          (while (< (point) to)
+           (setq linebeg (point))
            (move-to-column (current-fill-column))
            (if (when (and (< (point) to) (< linebeg to))
                  ;; Find the position where we'll break the line.
diff --git a/test/lisp/textmodes/fill-tests.el 
b/test/lisp/textmodes/fill-tests.el
index 39e5dd3d26..8b9f144dff 100644
--- a/test/lisp/textmodes/fill-tests.el
+++ b/test/lisp/textmodes/fill-tests.el
@@ -45,6 +45,8 @@
     (should (string= (buffer-string) "Abc\nd efg\n(h ijk)."))))
 
 (ert-deftest fill-test-unbreakable-paragraph ()
+  ;; See bug#45720 and bug#53537.
+  :expected-result :failed
   (with-temp-buffer
     (let ((string "aaa =   baaaaaaaaaaaaaaaaaaaaaaaaaaaa\n"))
       (insert string)
@@ -76,6 +78,27 @@
                (buffer-string)
                "aaa =   baaaaaaaa aaaaaaaaaa\n         aaaaaaaaaa\n")))))
 
+(ert-deftest test-fill-haskell ()
+  (should
+   (equal
+    (with-temp-buffer
+      (asm-mode)
+      (dolist (line '("  ;; a b c"
+                      "  ;; d e f"
+                      "  ;; x y z"
+                      "  ;; w"))
+        (insert line "\n"))
+      (goto-char (point-min))
+      (end-of-line)
+      (setf fill-column 10)
+      (fill-paragraph nil)
+      (buffer-string))
+    "  ;; a b c
+  ;; d e f
+  ;; x y z
+  ;; w
+")))
+
 (provide 'fill-tests)
 
 ;;; fill-tests.el ends here



reply via email to

[Prev in Thread] Current Thread [Next in Thread]