gbranden pushed a commit to branch master
in repository groff.

commit 8d13ee48c1876f95b237fcb483fe75c692820ba2
Author: G. Branden Robinson <[email protected]>
AuthorDate: Sun Oct 18 21:04:54 2026 -0500

    [troff]: Clarify "color" warning diagnostics.
    
    * src/roff/troff/input.cpp (read_rgb, read_cmy, read_cmyk, read_gray):
      Do it.
---
 ChangeLog                |  7 +++++++
 src/roff/troff/input.cpp | 46 ++++++++++++++++++++--------------------------
 2 files changed, 27 insertions(+), 26 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 5df63704b..7b0159cb1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2026-10-18  G. Branden Robinson <[email protected]>
+
+       [troff]: Clarify "color" warning diagnostics.
+
+       * src/roff/troff/input.cpp (read_rgb, read_cmy, read_cmyk)
+       (read_gray): Do it.
+
 2026-10-18  G. Branden Robinson <[email protected]>
 
        [troff]: Fix Savannah #68796.
diff --git a/src/roff/troff/input.cpp b/src/roff/troff/input.cpp
index 63883018e..2ebfac421 100644
--- a/src/roff/troff/input.cpp
+++ b/src/roff/troff/input.cpp
@@ -1521,16 +1521,19 @@ static unsigned int read_color_channel_value(const char 
*scheme,
 {
   units val;
   if (!read_measurement(&val, (unsigned char)('f'))) { // TODO: grochar
-    warning(WARN_COLOR, "%1 in %2 definition set to 0", col, scheme);
+    warning(WARN_COLOR, "invalid %1 channel value in %2 color space;"
+           " using 0", col, scheme);
     tok.next();
     return 0U;
   }
   if (val < 0) {
-    warning(WARN_RANGE, "%1 cannot be negative: set to 0", col);
+    warning(WARN_RANGE, "%1 channel value cannot be negative;"
+           " using 0", col);
     return 0U;
   }
   if (val > (color::MAX_COLOR_VAL + 1)) {
-    warning(WARN_RANGE, "%1 cannot be greater than 1", col);
+    warning(WARN_RANGE, "%1 channel value cannot be greater than 1;"
+           " using maximum", col);
     // we change 0x10000 to 0xffff
     return color::MAX_COLOR_VAL;
   }
@@ -1542,7 +1545,7 @@ static color *read_rgb(unsigned char end = 0U)
   symbol component
     = read_input_until_terminator(false /* want_diagnostic */, end);
   if (component.is_null()) {
-    warning(WARN_COLOR, "missing rgb color values");
+    warning(WARN_COLOR, "missing rgb color channel values");
     return 0 /* nullptr */;
   }
   const char *s = component.contents();
@@ -1560,12 +1563,9 @@ static color *read_rgb(unsigned char end = 0U)
       input_stack::push(make_temp_iterator(" "));
     input_stack::push(make_temp_iterator(s));
     tok.next();
-    unsigned int r = read_color_channel_value("rgb color",
-                                             "red component");
-    unsigned int g = read_color_channel_value("rgb color",
-                                             "green component");
-    unsigned int b = read_color_channel_value("rgb color",
-                                             "blue component");
+    unsigned int r = read_color_channel_value("rgb color", "red");
+    unsigned int g = read_color_channel_value("rgb color", "green");
+    unsigned int b = read_color_channel_value("rgb color", "blue");
     col->set_rgb(r, g, b);
   }
   return col;
@@ -1576,7 +1576,7 @@ static color *read_cmy(unsigned char end = 0U)
   symbol component
     = read_input_until_terminator(false /* want_diagnostic */, end);
   if (component.is_null()) {
-    warning(WARN_COLOR, "missing cmy color values");
+    warning(WARN_COLOR, "missing cmy color channel values");
     return 0 /* nullptr */;
   }
   const char *s = component.contents();
@@ -1594,12 +1594,9 @@ static color *read_cmy(unsigned char end = 0U)
       input_stack::push(make_temp_iterator(" "));
     input_stack::push(make_temp_iterator(s));
     tok.next();
-    unsigned int c = read_color_channel_value("cmy color",
-                                             "cyan component");
-    unsigned int m = read_color_channel_value("cmy color",
-                                             "magenta component");
-    unsigned int y = read_color_channel_value("cmy color",
-                                             "yellow component");
+    unsigned int c = read_color_channel_value("cmy color", "cyan");
+    unsigned int m = read_color_channel_value("cmy color", "magenta");
+    unsigned int y = read_color_channel_value("cmy color", "yellow");
     col->set_cmy(c, m, y);
   }
   return col;
@@ -1628,14 +1625,10 @@ static color *read_cmyk(unsigned char end = 0U)
       input_stack::push(make_temp_iterator(" "));
     input_stack::push(make_temp_iterator(s));
     tok.next();
-    unsigned int c = read_color_channel_value("cmyk color",
-                                             "cyan component");
-    unsigned int m = read_color_channel_value("cmyk color",
-                                             "magenta component");
-    unsigned int y = read_color_channel_value("cmyk color",
-                                             "yellow component");
-    unsigned int k = read_color_channel_value("cmyk color",
-                                             "black component");
+    unsigned int c = read_color_channel_value("cmyk color", "cyan");
+    unsigned int m = read_color_channel_value("cmyk color", "magenta");
+    unsigned int y = read_color_channel_value("cmyk color", "yellow");
+    unsigned int k = read_color_channel_value("cmyk color", "black");
     col->set_cmyk(c, m, y, k);
   }
   return col;
@@ -1664,7 +1657,8 @@ static color *read_gray(unsigned char end = 0U)
       input_stack::push(make_temp_iterator("\n"));
     input_stack::push(make_temp_iterator(s));
     tok.next();
-    unsigned int g = read_color_channel_value("gray", "gray value");
+    // The diagnostic this produces is a bit redundant.
+    unsigned int g = read_color_channel_value("gray", "gray");
     col->set_gray(g);
   }
   return col;

_______________________________________________
groff-commit mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit

Reply via email to