texinfo-commits
[Top][All Lists]
Advanced

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

branch master updated: Cast for isalpha and isalnum arguments


From: Gavin D. Smith
Subject: branch master updated: Cast for isalpha and isalnum arguments
Date: Sat, 04 Jun 2022 12:54:54 -0400

This is an automated email from the git hooks/post-receive script.

gavin pushed a commit to branch master
in repository texinfo.

The following commit(s) were added to refs/heads/master by this push:
     new caa2881886 Cast for isalpha and isalnum arguments
caa2881886 is described below

commit caa288188643b81765fa0e1ee67afca745c3c153
Author: Gavin Smith <gavinsmith0123@gmail.com>
AuthorDate: Sat Jun 4 17:54:46 2022 +0100

    Cast for isalpha and isalnum arguments
    
    * Texinfo/XS/parsetexi/end_line.c (end_line_starting_block)
    (end_line_misc_line),
    * Texinfo/XS/parsetexi/parser.c (read_command_name):
    Cast arguments to isalnum and isalpha to unsigned char.
---
 ChangeLog                          |  9 +++++++++
 tp/Texinfo/XS/parsetexi/end_line.c |  7 ++++---
 tp/Texinfo/XS/parsetexi/parser.c   | 10 +++++-----
 3 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index bc93a83d64..8607243a25 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2022-06-04  Gavin Smith  <gavinsmith0123@gmail.com>
+
+       Cast for isalpha and isalnum arguments
+
+       * Texinfo/XS/parsetexi/end_line.c (end_line_starting_block)
+       (end_line_misc_line),
+       * Texinfo/XS/parsetexi/parser.c (read_command_name):
+       Cast arguments to isalnum and isalpha to unsigned char.
+
 2022-06-04  Gavin Smith  <gavinsmith0123@gmail.com>
 
        New XS override
diff --git a/tp/Texinfo/XS/parsetexi/end_line.c 
b/tp/Texinfo/XS/parsetexi/end_line.c
index fcd725573d..1b932ecd23 100644
--- a/tp/Texinfo/XS/parsetexi/end_line.c
+++ b/tp/Texinfo/XS/parsetexi/end_line.c
@@ -1138,7 +1138,8 @@ end_line_starting_block (ELEMENT *current)
               ELEMENT *g = current->args.list[0]->contents.list[0];
               /* Check if @enumerate specification is either a single
                  letter or a string of digits. */
-              if (g->text.end == 1 && isalpha (g->text.text[0])
+              if (g->text.end == 1
+                    && isalpha ((unsigned char) g->text.text[0])
                   || (g->text.end > 0
                       && !*(g->text.text
                             + strspn (g->text.text, "0123456789"))))
@@ -1611,7 +1612,7 @@ end_line_misc_line (ELEMENT *current)
                  just check if the language code looks right. */
 
               p = text;
-              while (isalpha (*p))
+              while (isalpha ((unsigned char) *p))
                 p++;
               if (*p && *p != '_')
                 {
@@ -1636,7 +1637,7 @@ end_line_misc_line (ELEMENT *current)
                       p = q;
                       /* Language code should be of the form LL_CC,
                          language code followed by country code. */
-                      while (isalpha (*p))
+                      while (isalpha ((unsigned char) *p))
                         p++;
                       if (*p || p - q > 4)
                         {
diff --git a/tp/Texinfo/XS/parsetexi/parser.c b/tp/Texinfo/XS/parsetexi/parser.c
index f54a3ab940..527189ccd8 100644
--- a/tp/Texinfo/XS/parsetexi/parser.c
+++ b/tp/Texinfo/XS/parsetexi/parser.c
@@ -48,10 +48,10 @@ read_command_name (char **ptr)
   char *ret = 0;
 
   q = p;
-  if (!isalnum (*q))
+  if (!isalnum ((unsigned char) *q))
     return 0; /* Invalid. */
 
-  while (isalnum (*q) || *q == '-' || *q == '_')
+  while (isalnum ((unsigned char) *q) || *q == '-' || *q == '_')
     q++;
   ret = strndup (p, q - p);
   p = q;
@@ -68,7 +68,7 @@ read_flag_name (char **ptr)
   char *ret = 0;
 
   q = p;
-  if (!isalnum (*q) && *q != '-' && *q != '_')
+  if (!isalnum ((unsigned char) *q) && *q != '-' && *q != '_')
     return 0; /* Invalid. */
 
   while (!strchr (whitespace_chars, *q)
@@ -1428,7 +1428,7 @@ superfluous_arg:
         {
           if (strchr (whitespace_chars_except_newline, *line))
             {
-              if (isalpha (command_name(current->cmd)[0]))
+              if (isalpha ((unsigned char) command_name(current->cmd)[0]))
               /* e.g. @dotaccent */
                 {
                   char *p; char *s;
@@ -1479,7 +1479,7 @@ superfluous_arg:
                   line_error ("@dotless expects `i' or `j' as argument, "
                               "not `%c'", *line);
                 }
-              if (isalpha (command_name(current->cmd)[0]))
+              if (isalpha ((unsigned char) command_name(current->cmd)[0]))
                 e->type = ET_space_command_arg;
               while (current->contents.number > 0)
                 destroy_element (pop_element_from_contents (current));



reply via email to

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