groff
[Top][All Lists]
Advanced

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

[PATCH 1/7] src/roff/troff/input.cpp: Slightly refactor.


From: G. Branden Robinson
Subject: [PATCH 1/7] src/roff/troff/input.cpp: Slightly refactor.
Date: Tue, 9 Apr 2024 23:52:52 -0500

* src/roff/troff/input.cpp: Slightly refactor.  Boolify.  Demote and
  rename global `while_break_flag` to `want_loop_break`.

  (do_if_request): Demote return type from `int` to `bool`.  Demote and
  rename local `invert` to `want_test_sense_inverted`.

  (while_request): Demote and rename local `escaped` to
  `is_char_escaped`.

Annotate null pointers with `nullptr` comment to ease any future
transition to C++11, which defines it as a keyword.
---
 ChangeLog                |  9 ++++++
 src/roff/troff/input.cpp | 60 ++++++++++++++++++++--------------------
 2 files changed, 39 insertions(+), 30 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 3f29eecea..6dee3c19d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2024-04-04  G. Branden Robinson <g.branden.robinson@gmail.com>
+
+       * src/roff/troff/input.cpp: Slightly refactor.  Boolify.  Demote
+       and rename global `while_break_flag` to `want_loop_break`.
+       (do_if_request): Demote return type from `int` to `bool`.
+       Demote and rename local `invert` to `want_test_sense_inverted`.
+       (while_request): Demote and rename local `escaped` to
+       `is_char_escaped`.
+
 2024-03-26  G. Branden Robinson <g.branden.robinson@gmail.com>
 
        * src/utils/grog/grog.pl (do_line): Recognize new requests in
diff --git a/src/roff/troff/input.cpp b/src/roff/troff/input.cpp
index d355eed7d..3ee318088 100644
--- a/src/roff/troff/input.cpp
+++ b/src/roff/troff/input.cpp
@@ -2874,50 +2874,50 @@ static int transparent_translate(int cc)
   return cc;
 }
 
-class int_stack {
-  struct int_stack_element {
+class bool_stack {
+  struct bool_stack_element {
     int n;
-    int_stack_element *next;
+    bool_stack_element *next;
   } *top;
 public:
-  int_stack();
-  ~int_stack();
+  bool_stack();
+  ~bool_stack();
   void push(int);
   int is_empty();
   int pop();
 };
 
-int_stack::int_stack()
+bool_stack::bool_stack()
 {
   top = 0;
 }
 
-int_stack::~int_stack()
+bool_stack::~bool_stack()
 {
   while (top != 0) {
-    int_stack_element *temp = top;
+    bool_stack_element *temp = top;
     top = top->next;
     delete temp;
   }
 }
 
-int int_stack::is_empty()
+int bool_stack::is_empty()
 {
   return top == 0;
 }
 
-void int_stack::push(int n)
+void bool_stack::push(int n)
 {
-  int_stack_element *p = new int_stack_element;
+  bool_stack_element *p = new bool_stack_element;
   p->next = top;
   p->n = n;
   top = p;
 }
 
-int int_stack::pop()
+int bool_stack::pop()
 {
   assert(top != 0);
-  int_stack_element *p = top;
+  bool_stack_element *p = top;
   top = top->next;
   int n = p->n;
   delete p;
@@ -2981,7 +2981,7 @@ static int leading_spaces_space = 0;
 
 void process_input_stack()
 {
-  int_stack trap_bol_stack;
+  bool_stack trap_bol_stack;
   int bol = 1;
   for (;;) {
     int suppress_next = 0;
@@ -5978,16 +5978,16 @@ static void nop_request()
     tok.next();
 }
 
-static int_stack if_else_stack;
+static bool_stack if_else_stack;
 
-static int do_if_request()
+static bool do_if_request()
 {
-  int invert = 0;
+  bool want_test_sense_inverted = false;
   while (tok.is_space())
     tok.next();
   while (tok.ch() == '!') {
     tok.next();
-    invert = !invert;
+    want_test_sense_inverted = !want_test_sense_inverted;
   }
   int result;
   unsigned char c = tok.ch();
@@ -6122,7 +6122,7 @@ static int do_if_request()
     else
       result = n > 0;
   }
-  if (invert)
+  if (want_test_sense_inverted)
     result = !result;
   if (result)
     begin_alternative();
@@ -6166,13 +6166,13 @@ static void else_request()
 }
 
 static int while_depth = 0;
-static int while_break_flag = 0;
+static bool want_loop_break = false;
 
 static void while_request()
 {
   // We can't use `has_arg()` here.  XXX: Figure out why.
   macro mac;
-  int escaped = 0;
+  bool is_char_escaped = false;
   int level = 0;
   mac.append(new token_node(tok));
   for (;;) {
@@ -6181,15 +6181,15 @@ static void while_request()
     if (c == EOF)
       break;
     if (c == 0) {
-      escaped = 0;
+      is_char_escaped = false;
       mac.append(n);
     }
-    else if (escaped) {
+    else if (is_char_escaped) {
       if (c == '{')
        level += 1;
       else if (c == '}')
        level -= 1;
-      escaped = 0;
+      is_char_escaped = false;
       mac.append(c);
     }
     else {
@@ -6198,7 +6198,7 @@ static void while_request()
       else if (c == ESCAPE_RIGHT_BRACE)
        level -= 1;
       else if (c == escape_char)
-       escaped = 1;
+       is_char_escaped = true;
       mac.append(c);
       if (c == '\n' && level <= 0)
        break;
@@ -6218,8 +6218,8 @@ static void while_request()
        break;
       }
       process_input_stack();
-      if (while_break_flag || input_stack::is_return_boundary()) {
-       while_break_flag = 0;
+      if (want_loop_break || input_stack::is_return_boundary()) {
+       want_loop_break = false;
        break;
       }
     }
@@ -6236,7 +6236,7 @@ static void while_break_request()
     skip_line();
   }
   else {
-    while_break_flag = 1;
+    want_loop_break = true;
     while (input_stack::get(0) != EOF)
       ;
     tok.next();
@@ -7525,7 +7525,7 @@ charinfo *token::get_char(bool required)
       // character is null.  If not, this should be an assert().  Also
       // see escape_off().
       error("escaped 'e' used while escape sequences disabled");
-      return 0;
+      return 0 /* nullptr */;
     }
   }
   if (required) {
@@ -7535,7 +7535,7 @@ charinfo *token::get_char(bool required)
       error("expected ordinary or special character, got %1",
            description());
   }
-  return 0;
+  return 0 /* nullptr */;
 }
 
 charinfo *get_optional_char()
-- 
2.30.2

Attachment: signature.asc
Description: PGP signature


reply via email to

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