]> git.saurik.com Git - bison.git/commitdiff
Pacify -DGNULIB_POSIXCHECK.
authorJoel E. Denny <joeldenny@joeldenny.org>
Sun, 1 May 2011 16:25:31 +0000 (12:25 -0400)
committerJoel E. Denny <joeldenny@joeldenny.org>
Sun, 1 May 2011 22:20:42 +0000 (18:20 -0400)
* bootstrap.conf (gnulib_modules): Add all modules suggested by
-DGNULIB_POSIXCHECK.
* src/files.c (file_name_split)
* src/getargs.c (getargs)
* src/location.c (boundary_set_from_string)
* src/output.c (output_skeleton)
* src/parse-gram.y (prologue_declaration)
* src/scan-gram.l (handle_syncline)
* src/symtab.c (symbol_new): Use mbschr and mbsrchr instead of
strchr and strrchr.  In the cases of command-line options, file
names, and thus locations, functionality may be improved.  In the
case of symbol names, there should be no functional difference as
all characters are ASCII, so the intended benefit is just warning
suppression.
(cherry picked from commit d143e9c33f07e1a9966c10077f43e2f81232bf6c)

Conflicts:

src/output.c
src/parse-gram.c
src/parse-gram.h

12 files changed:
ChangeLog
bootstrap.conf
lib/.gitignore
m4/.gitignore
src/files.c
src/getargs.c
src/location.c
src/output.c
src/parse-gram.c
src/parse-gram.y
src/scan-gram.l
src/symtab.c

index c8776eb96ac6820a00b1901b04e2a10782a1cc27..77641bd579d3843f39453dd0d5cb6db47fc14f06 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2011-05-01  Joel E. Denny  <joeldenny@joeldenny.org>
+
+       Pacify -DGNULIB_POSIXCHECK.
+       * bootstrap.conf (gnulib_modules): Add all modules suggested by
+       -DGNULIB_POSIXCHECK.
+       * src/files.c (file_name_split)
+       * src/getargs.c (getargs)
+       * src/location.c (boundary_set_from_string)
+       * src/output.c (output_skeleton)
+       * src/parse-gram.y (prologue_declaration)
+       * src/scan-gram.l (handle_syncline)
+       * src/symtab.c (symbol_new): Use mbschr and mbsrchr instead of
+       strchr and strrchr.  In the cases of command-line options, file
+       names, and thus locations, functionality may be improved.  In the
+       case of symbol names, there should be no functional difference as
+       all characters are ASCII, so the intended benefit is just warning
+       suppression.
+
 2011-05-01  Joel E. Denny  <joeldenny@joeldenny.org>
 
        * NEWS (2.5): Fix minor typos.
 2011-05-01  Joel E. Denny  <joeldenny@joeldenny.org>
 
        * NEWS (2.5): Fix minor typos.
index 2de61cb5fb2917d0784707cf474d5524985c6eed..04e86c56501eae74779736b23f52e9bc5861b7cd 100644 (file)
 
 # gnulib modules used by this package.
 gnulib_modules='
 
 # gnulib modules used by this package.
 gnulib_modules='
-  announce-gen argmatch assert config-h c-strcase configmake dirname
-  error extensions fopen-safer gendocs getopt-gnu gettext
-  git-version-gen hash inttypes javacomp-script javaexec-script
-  maintainer-makefile malloc-gnu mbswidth obstack quote quotearg
-  realloc-posix spawn-pipe stdbool stpcpy strerror strtoul strverscmp unistd
-  unistd-safer unlocked-io update-copyright unsetenv verify warnings
-  xalloc xalloc-die xstrndup
+  announce-gen argmatch assert calloc-posix close config-h c-strcase
+  configmake dirname error extensions fopen-safer gendocs getopt-gnu
+  gettext git-version-gen hash inttypes isnan javacomp-script
+  javaexec-script ldexpl maintainer-makefile malloc-gnu mbschr mbsrchr
+  mbswidth obstack perror pipe-posix quote quotearg realloc-posix
+  spawn-pipe stdbool stpcpy strdup-posix strerror strtoul strverscmp
+  unistd unistd-safer unlocked-io update-copyright unsetenv verify
+  warnings xalloc xalloc-die xstrndup
 
   fprintf-posix printf-posix snprintf-posix sprintf-posix
   vsnprintf-posix vsprintf-posix
 
   fprintf-posix printf-posix snprintf-posix sprintf-posix
   vsnprintf-posix vsprintf-posix
index f3d5da64df468e7829e8052a6fa06efc1f5cb377..45e0eb7bb690a9a8d595477d11d5d27fc712b430 100644 (file)
 /c-strcase.h
 /c-strcasecmp.c
 /c-strncasecmp.c
 /c-strcase.h
 /c-strcasecmp.c
 /c-strncasecmp.c
+/calloc.c
 /charset.alias
 /cloexec.c
 /cloexec.h
 /charset.alias
 /cloexec.c
 /cloexec.h
+/close-hook.c
+/close-hook.h
+/close.c
 /config.charset
 /config.h
 /config.hin
 /config.charset
 /config.h
 /config.hin
@@ -46,6 +50,7 @@
 /exitfail.h
 /fatal-signal.c
 /fatal-signal.h
 /exitfail.h
 /fatal-signal.c
 /fatal-signal.h
+/fclose.c
 /fcntl.c
 /fcntl.h
 /fcntl.in.h
 /fcntl.c
 /fcntl.h
 /fcntl.in.h
 /isnanf.c
 /isnanl-nolibm.h
 /isnanl.c
 /isnanf.c
 /isnanl-nolibm.h
 /isnanl.c
+/iswblank.c
+/ldexpl.c
 /localcharset.c
 /localcharset.h
 /malloc.c
 /math.h
 /math.in.h
 /localcharset.c
 /localcharset.h
 /malloc.c
 /math.h
 /math.in.h
+/mbchar.c
+/mbchar.h
 /mbrtowc.c
 /mbrtowc.c
+/mbschr.c
 /mbsinit.c
 /mbsinit.c
+/mbsrchr.c
 /mbswidth.c
 /mbswidth.h
 /mbswidth.c
 /mbswidth.h
+/mbuiter.h
 /memchr.c
 /memchr.valgrind
 /nonblocking.c
 /memchr.c
 /memchr.valgrind
 /nonblocking.c
 /obstack.c
 /obstack.h
 /open.c
 /obstack.c
 /obstack.h
 /open.c
+/perror.c
 /pipe-safer.c
 /pipe-safer.c
+/pipe.c
 /pipe2-safer.c
 /pipe2.c
 /printf-args.c
 /pipe2-safer.c
 /pipe2.c
 /printf-args.c
 /stpcpy.c
 /strchrnul.c
 /strchrnul.valgrind
 /stpcpy.c
 /strchrnul.c
 /strchrnul.valgrind
+/strdup.c
 /streq.h
 /strerror.c
 /string.h
 /streq.h
 /strerror.c
 /string.h
 /stripslash.c
 /strndup.c
 /strnlen.c
 /stripslash.c
 /strndup.c
 /strnlen.c
+/strnlen1.c
+/strnlen1.h
 /strtol.c
 /strtoul.c
 /strverscmp.c
 /strtol.c
 /strtoul.c
 /strverscmp.c
index d7a4a8f5d2f01949be7d57981f4d3344f052f5e2..7d812ebc7239b71bcbdb6231ffdd86becc823cc3 100644 (file)
@@ -4,7 +4,9 @@
 /argmatch.m4
 /asm-underscore.m4
 /assert.m4
 /argmatch.m4
 /asm-underscore.m4
 /assert.m4
+/calloc.m4
 /cloexec.m4
 /cloexec.m4
+/close.m4
 /codeset.m4
 /config-h.m4
 /configmake.m4
 /codeset.m4
 /config-h.m4
 /configmake.m4
@@ -20,6 +22,7 @@
 /exponentl.m4
 /extensions.m4
 /fatal-signal.m4
 /exponentl.m4
 /extensions.m4
 /fatal-signal.m4
+/fclose.m4
 /fcntl-o.m4
 /fcntl.m4
 /fcntl_h.m4
 /fcntl-o.m4
 /fcntl.m4
 /fcntl_h.m4
 /inttypes.m4
 /inttypes_h.m4
 /ioctl.m4
 /inttypes.m4
 /inttypes_h.m4
 /ioctl.m4
+/isnan.m4
 /isnand.m4
 /isnanf.m4
 /isnanl.m4
 /isnand.m4
 /isnanf.m4
 /isnanl.m4
+/iswblank.m4
 /javacomp.m4
 /javaexec.m4
 /ldexpl.m4
 /javacomp.m4
 /javaexec.m4
 /ldexpl.m4
@@ -64,6 +69,8 @@
 /longlong.m4
 /malloc.m4
 /math_h.m4
 /longlong.m4
 /malloc.m4
 /math_h.m4
+/mbchar.m4
+/mbiter.m4
 /mbrtowc.m4
 /mbsinit.m4
 /mbstate_t.m4
 /mbrtowc.m4
 /mbsinit.m4
 /mbstate_t.m4
@@ -75,6 +82,8 @@
 /nls.m4
 /nocrash.m4
 /open.m4
 /nls.m4
 /nocrash.m4
 /open.m4
+/perror.m4
+/pipe.m4
 /pipe2.m4
 /po.m4
 /posix_spawn.m4
 /pipe2.m4
 /po.m4
 /posix_spawn.m4
 /stdlib_h.m4
 /stpcpy.m4
 /strchrnul.m4
 /stdlib_h.m4
 /stpcpy.m4
 /strchrnul.m4
+/strdup.m4
 /strerror.m4
 /string_h.m4
 /strndup.m4
 /strerror.m4
 /string_h.m4
 /strndup.m4
index ba7705308597d9a8094f4e5222abaed31780bc4c..c94d2c6f35c508b0a2db533e2441506059da244c 100644 (file)
@@ -205,7 +205,7 @@ file_name_split (const char *file_name,
   *base = last_component (file_name);
 
   /* Look for the extension, i.e., look for the last dot. */
   *base = last_component (file_name);
 
   /* Look for the extension, i.e., look for the last dot. */
-  *ext = strrchr (*base, '.');
+  *ext = mbsrchr (*base, '.');
   *tab = NULL;
 
   /* If there is an extension, check if there is a `.tab' part right
   *tab = NULL;
 
   /* If there is an extension, check if there is a `.tab' part right
index 50881aa2f9a529819d7e93bdce3470ade83a51f6..bdaffd0bf117eba64d95092792d2059d2d787ccc 100644 (file)
@@ -559,7 +559,7 @@ getargs (int argc, char *argv[])
       case 'F': /* -FNAME[=VALUE]. */
         {
           char* name = optarg;
       case 'F': /* -FNAME[=VALUE]. */
         {
           char* name = optarg;
-          char* value = strchr (optarg, '=');
+          char* value = mbschr (optarg, '=');
           if (value)
             *value++ = 0;
           muscle_percent_define_insert (name, command_line_location (),
           if (value)
             *value++ = 0;
           muscle_percent_define_insert (name, command_line_location (),
index 361418aedb86c666b3a9002745ea07ee67b1c341..8f1b2807bc125f7f09eda69d252745d0080e7776 100644 (file)
@@ -143,11 +143,11 @@ boundary_set_from_string (boundary *bound, char *loc_str)
 {
   /* Must search in reverse since the file name field may
    * contain `.' or `:'.  */
 {
   /* Must search in reverse since the file name field may
    * contain `.' or `:'.  */
-  char *delim = strrchr (loc_str, '.');
+  char *delim = mbsrchr (loc_str, '.');
   aver (delim);
   *delim = '\0';
   bound->column = atoi (delim+1);
   aver (delim);
   *delim = '\0';
   bound->column = atoi (delim+1);
-  delim = strrchr (loc_str, ':');
+  delim = mbsrchr (loc_str, ':');
   aver (delim);
   *delim = '\0';
   bound->line = atoi (delim+1);
   aver (delim);
   *delim = '\0';
   bound->line = atoi (delim+1);
index 207eba962fcf5d7d338eb4293dfc6111efa7c55d..61ea49592b00f2b91f69bd0b2fd51ead4660f8cb 100644 (file)
@@ -595,7 +595,7 @@ output_skeleton (void)
   full_m4sugar = xstrdup (full_skeleton);
   strcpy (full_skeleton + pkgdatadirlen + 1, m4bison);
   full_m4bison = xstrdup (full_skeleton);
   full_m4sugar = xstrdup (full_skeleton);
   strcpy (full_skeleton + pkgdatadirlen + 1, m4bison);
   full_m4bison = xstrdup (full_skeleton);
-  if (strchr (skeleton, '/'))
+  if (mbschr (skeleton, '/'))
     strcpy (full_skeleton, skeleton);
   else
     strcpy (full_skeleton + pkgdatadirlen + 1, skeleton);
     strcpy (full_skeleton, skeleton);
   else
     strcpy (full_skeleton + pkgdatadirlen + 1, skeleton);
index 6a0c2172d8568cf8b343a23701d8f09dd68fa58c..cbe09e4ee6b6db8f6dbc601ddff95dca251f6400 100644 (file)
@@ -2422,7 +2422,7 @@ yyreduce:
 #line 342 "src/parse-gram.y"
     {
       char const *skeleton_user = (yyvsp[0].chars);
 #line 342 "src/parse-gram.y"
     {
       char const *skeleton_user = (yyvsp[0].chars);
-      if (strchr (skeleton_user, '/'))
+      if (mbschr (skeleton_user, '/'))
         {
           size_t dir_length = strlen (current_file);
           char *skeleton_build;
         {
           size_t dir_length = strlen (current_file);
           char *skeleton_build;
index 514b5d79952bdcb4f0ebffbf6dee70007205522e..317cb86303ed48fe13a7872430f1df36142427d3 100644 (file)
@@ -341,7 +341,7 @@ prologue_declaration:
 | "%skeleton" STRING
     {
       char const *skeleton_user = $2;
 | "%skeleton" STRING
     {
       char const *skeleton_user = $2;
-      if (strchr (skeleton_user, '/'))
+      if (mbschr (skeleton_user, '/'))
         {
           size_t dir_length = strlen (current_file);
           char *skeleton_build;
         {
           size_t dir_length = strlen (current_file);
           char *skeleton_build;
index 83d76506a85a5b5092b57a32a9122de2bf3a9a55..15b6b31d93fec0d55b741aa9d1c11ef40db5a07b 100644 (file)
@@ -941,8 +941,8 @@ handle_syncline (char *args, location loc)
 {
   char *after_num;
   unsigned long int lineno = strtoul (args, &after_num, 10);
 {
   char *after_num;
   unsigned long int lineno = strtoul (args, &after_num, 10);
-  char *file = strchr (after_num, '"') + 1;
-  *strchr (file, '"') = '\0';
+  char *file = mbschr (after_num, '"') + 1;
+  *mbschr (file, '"') = '\0';
   if (INT_MAX <= lineno)
     {
       warn_at (loc, _("line number overflow"));
   if (INT_MAX <= lineno)
     {
       warn_at (loc, _("line number overflow"));
index 273cdd6659e4781a38e7e896b78f7fe48912e559..87a9618e4bea64401033bb6adbc06fe94d1d903c 100644 (file)
@@ -68,7 +68,7 @@ symbol_new (uniqstr tag, location loc)
 
   /* If the tag is not a string (starts with a double quote), check
      that it is valid for Yacc. */
 
   /* If the tag is not a string (starts with a double quote), check
      that it is valid for Yacc. */
-  if (tag[0] != '\"' && tag[0] != '\'' && strchr (tag, '-'))
+  if (tag[0] != '\"' && tag[0] != '\'' && mbschr (tag, '-'))
     yacc_at (loc, _("POSIX Yacc forbids dashes in symbol names: %s"),
              tag);
 
     yacc_at (loc, _("POSIX Yacc forbids dashes in symbol names: %s"),
              tag);