Explain in "pr_wrap" why the line break is *only seemingly* off-by-one; it
is actually correct.
Bugzilla:
https://bugzilla.redhat.com/show_bug.cgi?id=2172516
Signed-off-by: Laszlo Ersek <lersek(a)redhat.com>
---
generator/utils.ml | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/generator/utils.ml b/generator/utils.ml
index 5ae87c1ba786..919572b73557 100644
--- a/generator/utils.ml
+++ b/generator/utils.ml
@@ -186,6 +186,9 @@ let
| line :: rest ->
let fields = nsplit (String.make 1 c) line in
let maybe_wrap field =
+ (* Note that here we break even if we'd fill ‘maxcol‘ precisely;
+ * that's because...
+ *)
if !col > wrapping_col && !col + String.length field >= maxcol then
(
pr "\n%s" (spaces wrapping_col);
match span field " \t" with
@@ -197,7 +200,11 @@ let
let rec loop = function
| [] -> ()
| f :: [] -> let f = maybe_wrap f in pr "%s" f;
- | f :: fs -> let f = maybe_wrap f in pr "%s%c" f c; loop fs
+ | f :: fs ->
+ let f = maybe_wrap f in
+ (* ... here we append the separator. *)
+ pr "%s%c" f c;
+ loop fs
in
loop fields;