gbranden pushed a commit to branch master
in repository groff.

commit 16c0cff4fa38baa4e9dc7a1d057b7cb650a67d31
Author: G. Branden Robinson <g.branden.robin...@gmail.com>
AuthorDate: Tue Jun 3 20:57:06 2025 -0500

    [grotty]: Trivially refactor.
    
    * src/devices/grotty/tty.cpp (class tty_printer): Rename member function
      `tty_color` to `has_color`; since it returns a Boolean, the name
      should imply a logical predicate.
    
      (tty_printer::tty_color): Rename this...
      (tty_printer::has_color): ...to this.
    
      (tty_printer::tty_printer, tty_printer::color_to_idx): Update call
      sites.
    
      (tty_printer::has_color): Explicitly compare value of pointer type to
      null pointer literal instead of letting it pun down to a Boolean.
      Reorder equality comparison to avoid inadvertent lvalue assignment.
    
    Also annotate null pointer with `nullptr` comment to ease any future
    transition to C++11, which defines it as a keyword.
    
    Also stop cramming casts of return values up against the adjacent
    expression.
    
    Also wrap long source lines.
---
 ChangeLog                  | 10 ++++++++++
 src/devices/grotty/tty.cpp | 35 ++++++++++++++++++++---------------
 2 files changed, 30 insertions(+), 15 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 15fc52b42..d72025bbc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2025-06-03  G. Branden Robinson <g.branden.robin...@gmail.com>
+
+       * src/devices/grotty/tty.cpp (class tty_printer): Rename member
+       function `tty_color` to `has_color`; since it returns a Boolean,
+       the name should imply a logical predicate.
+       (tty_printer::tty_color): Rename this...
+       (tty_printer::has_color): ...to this.
+       (tty_printer::tty_printer, tty_printer::color_to_idx): Update
+       call sites.
+
 2025-06-03  G. Branden Robinson <g.branden.robin...@gmail.com>
 
        * src/devices/grotty/tty.cpp (tty_printer::color_to_idx):
diff --git a/src/devices/grotty/tty.cpp b/src/devices/grotty/tty.cpp
index 64e378385..92bd22296 100644
--- a/src/devices/grotty/tty.cpp
+++ b/src/devices/grotty/tty.cpp
@@ -195,7 +195,7 @@ class tty_printer : public printer {
                unsigned char);
   void simple_add_char(const output_character, const environment *);
   char *make_rgb_string(unsigned int, unsigned int, unsigned int);
-  bool tty_color(unsigned int, unsigned int, unsigned int, schar *,
+  bool has_color(unsigned int, unsigned int, unsigned int, schar *,
                 schar = DEFAULT_COLOR_IDX);
   void line(int, int, int, int, color *, color *);
   void draw_line(int *, int, const environment *);
@@ -238,14 +238,14 @@ char *tty_printer::make_rgb_string(unsigned int r,
   return s;
 }
 
-bool tty_printer::tty_color(unsigned int r,
+bool tty_printer::has_color(unsigned int r,
                            unsigned int g,
                            unsigned int b, schar *idx, schar value)
 {
   bool is_known_color = true;
   char *s = make_rgb_string(r, g, b);
   schar *i = tty_colors.lookup(s);
-  if (!i) {
+  if (0 /* nullptr */ == i) {
     is_known_color = false;
     i = new schar[1];
     *i = value;
@@ -262,20 +262,25 @@ tty_printer::tty_printer() : cached_v(0)
     hline_char = 0x2500;
     vline_char = 0x2502;
   }
+  // TODO: Skip color setup if terminfo `colors` capability is "-1".
   schar dummy;
+  // Create the eight ANSI X3.64/ECMA-48/ISO 6429 standard colors.
   // black, white
-  (void)tty_color(0, 0, 0, &dummy, 0);
-  (void)tty_color(color::MAX_COLOR_VAL,
-                 color::MAX_COLOR_VAL,
-                 color::MAX_COLOR_VAL, &dummy, 7);
+  (void) has_color(0, 0, 0, &dummy, 0);
+  (void) has_color(color::MAX_COLOR_VAL,
+                   color::MAX_COLOR_VAL,
+                   color::MAX_COLOR_VAL, &dummy, 7);
   // red, green, blue
-  (void)tty_color(color::MAX_COLOR_VAL, 0, 0, &dummy, 1);
-  (void)tty_color(0, color::MAX_COLOR_VAL, 0, &dummy, 2);
-  (void)tty_color(0, 0, color::MAX_COLOR_VAL, &dummy, 4);
+  (void) has_color(color::MAX_COLOR_VAL, 0, 0, &dummy, 1);
+  (void) has_color(0, color::MAX_COLOR_VAL, 0, &dummy, 2);
+  (void) has_color(0, 0, color::MAX_COLOR_VAL, &dummy, 4);
   // yellow, magenta, cyan
-  (void)tty_color(color::MAX_COLOR_VAL, color::MAX_COLOR_VAL, 0, &dummy, 3);
-  (void)tty_color(color::MAX_COLOR_VAL, 0, color::MAX_COLOR_VAL, &dummy, 5);
-  (void)tty_color(0, color::MAX_COLOR_VAL, color::MAX_COLOR_VAL, &dummy, 6);
+  (void) has_color(color::MAX_COLOR_VAL, color::MAX_COLOR_VAL, 0,
+                  &dummy, 3);
+  (void) has_color(color::MAX_COLOR_VAL, 0, color::MAX_COLOR_VAL,
+                  &dummy, 5);
+  (void) has_color(0, color::MAX_COLOR_VAL, color::MAX_COLOR_VAL,
+                  &dummy, 6);
   nlines = 66;
   lines = new tty_glyph *[nlines];
   for (int i = 0; i < nlines; i++)
@@ -336,7 +341,7 @@ schar tty_printer::color_to_idx(color *col)
   unsigned int r, g, b;
   col->get_rgb(&r, &g, &b);
   schar idx;
-  if (!tty_color(r, g, b, &idx)) {
+  if (!has_color(r, g, b, &idx)) {
     char *s = col->print_color();
     error("unsupported color '%1' mapped to default", s);
     delete[] s;
@@ -562,7 +567,7 @@ void tty_printer::draw_polygon(int *p, int np, const 
environment *env)
     error("no arguments for polygon");
     return;
   }
-  // We only draw polygons which consist entirely of horizontal and
+  // We draw only polygons that consist entirely of horizontal and
   // vertical lines.
   int hpos = 0;
   int vpos = 0;

_______________________________________________
groff-commit mailing list
groff-commit@gnu.org
https://lists.gnu.org/mailman/listinfo/groff-commit

Reply via email to