groff-commit
[Top][All Lists]
Advanced

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

[groff] 122/127: Slightly refactor.


From: G. Branden Robinson
Subject: [groff] 122/127: Slightly refactor.
Date: Mon, 10 Jul 2023 04:31:09 -0400 (EDT)

gbranden pushed a commit to branch master
in repository groff.

commit 411b42f4eca4f18c106c91c0b055c5a4dd294d5d
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
AuthorDate: Fri Jun 2 18:41:20 2023 -0500

    Slightly refactor.
    
    [grodvi, grops, xditview, libbib, libgroff, eqn, pre-grohtml, preconv,
    refer, troff, tfmtodit]: Store return value of `strlen()` in a `size_t`
    (or `ptrdiff_t` if we're performing subtraction on it) instead of an
    `int`.  Change temporaries (loop indices and similar) to use the same
    types.
    
    * src/devices/grodvi/dvi.cpp (dvi_printer::do_special):
    * src/devices/grops/ps.cpp (ps_output::comment_arg):
      (ps_output::put_string, ps_output::put_number, ps_output::put_float)
      (ps_output::put_color):
    * src/devices/grops/ps.cpp (class ps_output) <put_string, col>:
      <max_line_length>:
    * src/devices/xditview/Dvi.c (ClassInitialize):
    * src/include/symbol.h (class symbol) <block_size>:
    * src/libs/libbib/index.cpp (index_search_item::munge_filename):
      (index_search_item::search_item):
    * src/libs/libgroff/fontfile.cpp (font::open_file):
    * src/libs/libgroff/string.cpp (string::operator=, string::operator+):
    * src/libs/libgroff/symbol.cpp (symbol::symbol, symbol::block_size):
    * src/preproc/eqn/delim.cpp (define_extensible_string):
    * src/preproc/html/pre-html.cpp (char_buffer::can_see):
    * src/preproc/html/pushback.cpp (pushBackBuffer::isString):
    * src/preproc/preconv/preconv.cpp (emacs2mine):
    * src/preproc/refer/label.ypp (format_expr::evaluate):
    * src/roff/troff/input.cpp (make_temp_iterator, pipe_source):
    * src/utils/tfmtodit/tfmtodit.cpp (main): Do it.
    
    * src/preproc/html/pushback.cpp (pushBackBuffer::isString): Drop `while`
      loop that is now tautologically true due to comparison of unsigned
      types.
    
    Also update editor aid comments; drop old style Emacs file-local
    variable setting.
---
 ChangeLog                       | 37 +++++++++++++++++++++++++++++++++++++
 src/devices/grodvi/dvi.cpp      |  2 +-
 src/devices/grops/ps.cpp        | 20 ++++++++++----------
 src/devices/grops/ps.h          | 13 +++++++++----
 src/devices/xditview/Dvi.c      |  6 +++---
 src/include/symbol.h            |  2 +-
 src/libs/libbib/index.cpp       |  4 ++--
 src/libs/libgroff/fontfile.cpp  |  5 +++--
 src/libs/libgroff/string.cpp    |  4 ++--
 src/libs/libgroff/symbol.cpp    | 11 ++++++++---
 src/preproc/eqn/delim.cpp       |  2 +-
 src/preproc/html/pre-html.cpp   |  4 ++--
 src/preproc/html/pushback.cpp   | 11 ++++-------
 src/preproc/preconv/preconv.cpp |  2 +-
 src/preproc/refer/label.ypp     |  2 +-
 src/roff/troff/input.cpp        | 10 +++++-----
 src/utils/tfmtodit/tfmtodit.cpp |  2 +-
 17 files changed, 91 insertions(+), 46 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index d1a3cde19..835a9054e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,40 @@
+2023-06-02  G. Branden Robinson <g.branden.robinson@gmail.com>
+
+       Slightly refactor.
+
+       [grodvi, grops, xditview, libbib, libgroff, eqn, pre-grohtml,
+       preconv, refer, troff, tfmtodit]: Store return value of
+       `strlen()` in a `size_t` (or `ptrdiff_t` if we're performing
+       subtraction on it) instead of an `int`.  Change temporaries
+       {loop indices and similar} to use the same types.
+
+       * src/devices/grodvi/dvi.cpp (dvi_printer::do_special):
+       * src/devices/grops/ps.cpp (ps_output::comment_arg):
+       (ps_output::put_string, ps_output::put_number):
+       (ps_output::put_float, ps_output::put_color):
+       * src/devices/grops/ps.cpp (class ps_output) <put_string, col>:
+       <max_line_length>:
+       * src/devices/xditview/Dvi.c (ClassInitialize):
+       * src/include/symbol.h (class symbol) <block_size>:
+       * src/libs/libbib/index.cpp (index_search_item::munge_filename):
+       (index_search_item::search_item):
+       * src/libs/libgroff/fontfile.cpp (font::open_file):
+       * src/libs/libgroff/string.cpp (string::operator=):
+       (string::operator+):
+       * src/libs/libgroff/symbol.cpp (symbol::symbol):
+       (symbol::block_size):
+       * src/preproc/eqn/delim.cpp (define_extensible_string):
+       * src/preproc/html/pre-html.cpp (char_buffer::can_see):
+       * src/preproc/html/pushback.cpp (pushBackBuffer::isString):
+       * src/preproc/preconv/preconv.cpp (emacs2mine):
+       * src/preproc/refer/label.ypp (format_expr::evaluate):
+       * src/roff/troff/input.cpp (make_temp_iterator, pipe_source):
+       * src/utils/tfmtodit/tfmtodit.cpp (main): Do it.
+
+       * src/preproc/html/pushback.cpp (pushBackBuffer::isString): Drop
+       `while` loop that is now tautologically true due to comparison
+       of unsigned types.
+
 2023-05-30  G. Branden Robinson <g.branden.robinson@gmail.com>
 
        * src/roff/troff/env.cpp (font_change): Trivially refactor.
diff --git a/src/devices/grodvi/dvi.cpp b/src/devices/grodvi/dvi.cpp
index f9e8a5769..8e285ea30 100644
--- a/src/devices/grodvi/dvi.cpp
+++ b/src/devices/grodvi/dvi.cpp
@@ -542,7 +542,7 @@ void draw_dvi_printer::end_page(int len)
 
 void dvi_printer::do_special(const char *s)
 {
-  int len = strlen(s);
+  size_t len = strlen(s);
   if (len == 0)
     return;
   possibly_begin_line();
diff --git a/src/devices/grops/ps.cpp b/src/devices/grops/ps.cpp
index 807945f97..d2b608d61 100644
--- a/src/devices/grops/ps.cpp
+++ b/src/devices/grops/ps.cpp
@@ -169,7 +169,7 @@ ps_output &ps_output::end_comment()
 
 ps_output &ps_output::comment_arg(const char *s)
 {
-  int len = strlen(s);
+  size_t len = strlen(s);
   if (col + len + 1 > max_line_length) {
     putc('\n', fp);
     fputs("%%+", fp);
@@ -200,10 +200,10 @@ ps_output &ps_output::put_delimiter(char c)
   return *this;
 }
 
-ps_output &ps_output::put_string(const char *s, int n)
+ps_output &ps_output::put_string(const char *s, size_t n)
 {
-  int len = 0;
-  int i;
+  size_t len = 0;
+  size_t i;
   for (i = 0; i < n; i++) {
     char c = s[i];
     if (is_ascii(c) && csprint(c)) {
@@ -290,7 +290,7 @@ ps_output &ps_output::put_number(int n)
 {
   char buf[1 + INT_DIGITS + 1];
   sprintf(buf, "%d", n);
-  int len = strlen(buf);
+  size_t len = strlen(buf);
   if (col > 0 && col + len + need_space > max_line_length) {
     putc('\n', fp);
     col = 0;
@@ -309,7 +309,7 @@ ps_output &ps_output::put_number(int n)
 ps_output &ps_output::put_fix_number(int i)
 {
   const char *p = if_to_a(i, fixed_point);
-  int len = strlen(p);
+  size_t len = strlen(p);
   if (col > 0 && col + len + need_space > max_line_length) {
     putc('\n', fp);
     col = 0;
@@ -329,7 +329,7 @@ ps_output &ps_output::put_float(double d)
 {
   char buf[128];
   sprintf(buf, "%.4f", d);
-  int last = strlen(buf) - 1;
+  ptrdiff_t last = strlen(buf) - 1;
   while (buf[last] == '0')
     last--;
   if (buf[last] == '.')
@@ -352,7 +352,7 @@ ps_output &ps_output::put_float(double d)
 
 ps_output &ps_output::put_symbol(const char *s)
 {
-  int len = strlen(s);
+  size_t len = strlen(s);
   if (col > 0 && col + len + need_space > max_line_length) {
     putc('\n', fp);
     col = 0;
@@ -372,7 +372,7 @@ ps_output &ps_output::put_color(unsigned int c)
 {
   char buf[128];
   sprintf(buf, "%.3g", double(c) / double(color::MAX_COLOR_VAL));
-  int len = strlen(buf);
+  size_t len = strlen(buf);
   if (col > 0 && col + len + need_space > max_line_length) {
     putc('\n', fp);
     col = 0;
@@ -390,7 +390,7 @@ ps_output &ps_output::put_color(unsigned int c)
 
 ps_output &ps_output::put_literal_symbol(const char *s)
 {
-  int len = strlen(s);
+  size_t len = strlen(s);
   if (col > 0 && col + len + 1 > max_line_length) {
     putc('\n', fp);
     col = 0;
diff --git a/src/devices/grops/ps.h b/src/devices/grops/ps.h
index 5cef694f0..d2e0fb347 100644
--- a/src/devices/grops/ps.h
+++ b/src/devices/grops/ps.h
@@ -1,4 +1,3 @@
-// -*- C++ -*-
 /* Copyright (C) 1989-2020 Free Software Foundation, Inc.
      Written by James Clark (jjc@jclark.com)
 
@@ -20,7 +19,7 @@ along with this program.  If not, see 
<http://www.gnu.org/licenses/>. */
 class ps_output {
 public:
   ps_output(FILE *, int max_line_length);
-  ps_output &put_string(const char *, int);
+  ps_output &put_string(const char *, size_t n);
   ps_output &put_number(int);
   ps_output &put_fix_number(int);
   ps_output &put_float(double);
@@ -41,8 +40,8 @@ public:
   FILE *get_file();
 private:
   FILE *fp;
-  int col;
-  int max_line_length;         // not including newline
+  size_t col;
+  size_t max_line_length;              // not including newline
   int need_space;
   int fixed_point;
 };
@@ -127,3 +126,9 @@ enum {
 #include "searchpath.h"
 
 extern search_path include_search_path;
+
+// Local Variables:
+// fill-column: 72
+// mode: C++
+// End:
+// vim: set cindent noexpandtab shiftwidth=2 textwidth=72:
diff --git a/src/devices/xditview/Dvi.c b/src/devices/xditview/Dvi.c
index 3520676ff..bc62386cd 100644
--- a/src/devices/xditview/Dvi.c
+++ b/src/devices/xditview/Dvi.c
@@ -165,9 +165,9 @@ WidgetClass dviWidgetClass = (WidgetClass) &dviClassRec;
 
 static void ClassInitialize (void)
 {
-       int len1 = strlen(default_font_map_1);
-       int len2 = strlen(default_font_map_2);
-       int len3 = strlen(default_font_map_3);
+       size_t len1 = strlen(default_font_map_1);
+       size_t len2 = strlen(default_font_map_2);
+       size_t len3 = strlen(default_font_map_3);
        char *dfm = XtMalloc(len1 + len2 + len3 + 1);
        char *ptr = dfm;
        strcpy(ptr, default_font_map_1); ptr += len1;
diff --git a/src/include/symbol.h b/src/include/symbol.h
index 047255d3b..bafee4c9a 100644
--- a/src/include/symbol.h
+++ b/src/include/symbol.h
@@ -26,7 +26,7 @@ class symbol {
   static int table_used;
   static int table_size;
   static char *block;
-  static int block_size;
+  static size_t block_size;
   const char *s;
 public:
   symbol(const char *p, int how = 0);
diff --git a/src/libs/libbib/index.cpp b/src/libs/libbib/index.cpp
index aebcbbfdd..0664746ae 100644
--- a/src/libs/libbib/index.cpp
+++ b/src/libs/libbib/index.cpp
@@ -61,7 +61,7 @@ class index_search_item : public search_item {
   char *pool;
   char *key_buffer;
   char *filename_buffer;
-  int filename_buflen;
+  size_t filename_buflen;
   char **common_words_table;
   int common_words_table_size;
   const char *ignore_fields;
@@ -486,7 +486,7 @@ const char *index_search_item::munge_filename(const char 
*filename)
   const char *cwd = pool;
   int need_slash = (cwd[0] != 0
                    && strchr(DIR_SEPS, strchr(cwd, '\0')[-1]) == 0);
-  int len = strlen(cwd) + strlen(filename) + need_slash + 1;
+  size_t len = strlen(cwd) + strlen(filename) + need_slash + 1;
   if (len > filename_buflen) {
     delete[] filename_buffer;
     filename_buflen = len;
diff --git a/src/libs/libgroff/fontfile.cpp b/src/libs/libgroff/fontfile.cpp
index 898797146..1c2fe027d 100644
--- a/src/libs/libgroff/fontfile.cpp
+++ b/src/libs/libgroff/fontfile.cpp
@@ -62,9 +62,10 @@ FILE *font::open_file(const char *nm, char **pathp)
   // Do not traverse user-specified directories; Savannah #61424.
   if (0 /* nullptr */ == strchr(nm, '/')) {
     // Allocate enough for nm + device + 'dev' '/' '\0'.
-    int expected_size = strlen(nm) + strlen(device) + 5;
+    size_t expected_size = strlen(nm) + strlen(device) + 5;
     char *filename = new char[expected_size];
-    const int actual_size = sprintf(filename, "dev%s/%s", device, nm);
+    const size_t actual_size = sprintf(filename, "dev%s/%s", device,
+                                      nm);
     expected_size--; // sprintf() doesn't count the null terminator.
     if (actual_size == expected_size)
       fp = font_path.open_file(filename, pathp);
diff --git a/src/libs/libgroff/string.cpp b/src/libs/libgroff/string.cpp
index 33c0565c2..a939b24d6 100644
--- a/src/libs/libgroff/string.cpp
+++ b/src/libs/libgroff/string.cpp
@@ -144,7 +144,7 @@ string &string::operator=(const char *p)
     sz = 0;
   }
   else {
-    int slen = strlen(p);
+    size_t slen = strlen(p);
     ptr = sfree_alloc(ptr, sz, slen, &sz);
     len = slen;
     if (len != 0)
@@ -180,7 +180,7 @@ void string::grow1()
 string &string::operator+=(const char *p)
 {
   if (p != 0) {
-    int n = strlen(p);
+    size_t n = strlen(p);
     int newlen = len + n;
     if (newlen > sz)
       ptr = srealloc(ptr, sz, len, newlen, &sz);
diff --git a/src/libs/libgroff/symbol.cpp b/src/libs/libgroff/symbol.cpp
index 4f5062741..085f2acda 100644
--- a/src/libs/libgroff/symbol.cpp
+++ b/src/libs/libgroff/symbol.cpp
@@ -1,4 +1,3 @@
-// -*- C++ -*-
 /* Copyright (C) 1989-2020 Free Software Foundation, Inc.
      Written by James Clark (jjc@jclark.com)
 
@@ -27,7 +26,7 @@ const char **symbol::table = 0;
 int symbol::table_used = 0;
 int symbol::table_size = 0;
 char *symbol::block = 0;
-int symbol::block_size = 0;
+size_t symbol::block_size = 0;
 
 const symbol NULL_SYMBOL;
 const symbol EMPTY_SYMBOL("");
@@ -132,7 +131,7 @@ symbol::symbol(const char *p, int how)
     s = *pp = p;
   }
   else {
-    int len = strlen(p)+1;
+    size_t len = strlen(p) + 1;
     if (block == 0 || block_size < len) {
       block_size = len > BLOCK_SIZE ? len : BLOCK_SIZE;
       block = new char [block_size];
@@ -155,3 +154,9 @@ symbol concat(symbol s1, symbol s2)
 }
 
 symbol default_symbol("default");
+
+// Local Variables:
+// fill-column: 72
+// mode: C++
+// End:
+// vim: set cindent noexpandtab shiftwidth=2 textwidth=72:
diff --git a/src/preproc/eqn/delim.cpp b/src/preproc/eqn/delim.cpp
index 43cfe4996..56519f188 100644
--- a/src/preproc/eqn/delim.cpp
+++ b/src/preproc/eqn/delim.cpp
@@ -295,7 +295,7 @@ static void define_extensible_string(char *delim, int uid,
 {
   printf(".ds " DELIM_STRING "\n");
   delimiter *d = delim_table;
-  int delim_len = strlen(delim);
+  size_t delim_len = strlen(delim);
   int i;
   for (i = 0; i < DELIM_TABLE_SIZE; i++, d++)
     if (strncmp(delim, d->name, delim_len) == 0 
diff --git a/src/preproc/html/pre-html.cpp b/src/preproc/html/pre-html.cpp
index 6bfab94b0..537efe3c3 100644
--- a/src/preproc/html/pre-html.cpp
+++ b/src/preproc/html/pre-html.cpp
@@ -702,8 +702,8 @@ void char_buffer::write_upto_newline(char_block **t, int *i,
 
 bool char_buffer::can_see(char_block **t, int *i, const char *str)
 {
-  int j = 0;
-  int l = strlen(str);
+  size_t j = 0;
+  size_t l = strlen(str);
   int k = *i;
   char_block *s = *t;
 
diff --git a/src/preproc/html/pushback.cpp b/src/preproc/html/pushback.cpp
index 100ac0bac..f1172ef5b 100644
--- a/src/preproc/html/pushback.cpp
+++ b/src/preproc/html/pushback.cpp
@@ -190,8 +190,8 @@ void pushBackBuffer::skipUntilToken (void)
 
 int pushBackBuffer::isString (const char *s)
 {
-  int length=strlen(s);
-  int i=0;
+  size_t length=strlen(s);
+  size_t i=0;
 
   while ((i<length) && (putPB(getPB())==s[i])) {
     if (getPB() != s[i]) {
@@ -203,11 +203,8 @@ int pushBackBuffer::isString (const char *s)
     return( TRUE );
   } else {
     i--;
-    while (i>=0) {
-      if (putPB(s[i]) != s[i]) {
-       ERROR("assert failed");
-      }
-      i--;
+    if (putPB(s[i]) != s[i]) {
+      ERROR("assert failed");
     }
   }
   return( FALSE );
diff --git a/src/preproc/preconv/preconv.cpp b/src/preproc/preconv/preconv.cpp
index d403425ee..485574dda 100644
--- a/src/preproc/preconv/preconv.cpp
+++ b/src/preproc/preconv/preconv.cpp
@@ -380,7 +380,7 @@ emacs_to_mime[] = {
 char *
 emacs2mime(char *emacs_enc)
 {
-  int emacs_enc_len = strlen(emacs_enc);
+  size_t emacs_enc_len = strlen(emacs_enc);
   if (emacs_enc_len > 4
       && !strcasecmp(emacs_enc + emacs_enc_len - 4, "-dos"))
     emacs_enc[emacs_enc_len - 4] = 0;
diff --git a/src/preproc/refer/label.ypp b/src/preproc/refer/label.ypp
index f5210d573..3536ae503 100644
--- a/src/preproc/refer/label.ypp
+++ b/src/preproc/refer/label.ypp
@@ -521,7 +521,7 @@ void format_expr::evaluate(int tentative, const reference 
&ref,
     result += format_serial(type, num + 1);
   else {
     const char *ptr = i_to_a(num + first_number);
-    int pad = width - strlen(ptr);
+    ptrdiff_t pad = width - strlen(ptr);
     while (--pad >= 0)
       result += '0';
     result += ptr;
diff --git a/src/roff/troff/input.cpp b/src/roff/troff/input.cpp
index ca01569ff..ce5966c86 100644
--- a/src/roff/troff/input.cpp
+++ b/src/roff/troff/input.cpp
@@ -3749,7 +3749,7 @@ input_iterator *make_temp_iterator(const char *s)
   if (s == 0)
     return new temp_iterator(s, 0);
   else {
-    int n = strlen(s);
+    size_t n = strlen(s);
     return new temp_iterator(s, n);
   }
 }
@@ -6170,15 +6170,15 @@ void pipe_source()
       int c;
       while ((c = get_copy(0)) == ' ' || c == '\t')
        ;
-      int buf_size = 24;
+      size_t buf_size = 24;
       char *buf = new char[buf_size];
-      int buf_used = 0;
+      size_t buf_used = 0;
       for (; c != '\n' && c != EOF; c = get_copy(0)) {
        const char *s = asciify(c);
-       int slen = strlen(s);
+       size_t slen = strlen(s);
        if (buf_used + slen + 1> buf_size) {
          char *old_buf = buf;
-         int old_buf_size = buf_size;
+         size_t old_buf_size = buf_size;
          buf_size *= 2;
          buf = new char[buf_size];
          memcpy(buf, old_buf, old_buf_size);
diff --git a/src/utils/tfmtodit/tfmtodit.cpp b/src/utils/tfmtodit/tfmtodit.cpp
index 300373379..437e47e08 100644
--- a/src/utils/tfmtodit/tfmtodit.cpp
+++ b/src/utils/tfmtodit/tfmtodit.cpp
@@ -764,7 +764,7 @@ int main(int argc, char **argv)
   if (special_flag)
     fputs("special\n", stdout);
   char *internal_name = strsave(argv[optind]);
-  int len = strlen(internal_name);
+  size_t len = strlen(internal_name);
   if (len > 4 && strcmp(internal_name + len - 4, ".tfm") == 0)
     internal_name[len - 4] = '\0';
   // DIR_SEPS[] are possible directory separator characters, see



reply via email to

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