]> git.saurik.com Git - bison.git/commitdiff
* configure.in: Check the protos of strchr ans strspn.
authorAkim Demaille <akim@epita.fr>
Thu, 27 Dec 2001 18:12:48 +0000 (18:12 +0000)
committerAkim Demaille <akim@epita.fr>
Thu, 27 Dec 2001 18:12:48 +0000 (18:12 +0000)
Replace strchr if needed.
* src/system.h: Provide the protos of strchr, strspn and memchr if
missing.
* lib/strchr.c: New.
* src/reader.c (symbols_save): Use strchr.

ChangeLog
configure.in
lib/strchr.c [new file with mode: 0644]
src/reader.c
src/system.h

index c6364278e37b0b3d797ad68079692fb2cde1b31f..6a33667356b2f0f4b23b2c04bfaa2dd492803018 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       * configure.in: Check the protos of strchr ans strspn.
+       Replace strchr if needed.
+       * src/system.h: Provide the protos of strchr, strspn and memchr if
+       missing.
+       * lib/strchr.c: New.
+       * src/reader.c (symbols_save): Use strchr.
+
+       
 2001-12-27  Akim Demaille  <akim@epita.fr>
 
        * src/print.c, src/print_graph.c (escape): New.
index b6788873fb89035635f30d17168dbcfed7a30165..654b3a913d7941ce8aa8aff9b05802f66038ed93 100644 (file)
@@ -85,8 +85,8 @@ AC_FUNC_ALLOCA
 AC_FUNC_OBSTACK
 AC_FUNC_ERROR_AT_LINE
 AC_CHECK_FUNCS(mkstemp setlocale)
-AC_CHECK_DECLS([stpcpy, strndup, strnlen, memchr])
-AC_REPLACE_FUNCS(stpcpy strndup strnlen strspn memchr)
+AC_CHECK_DECLS([stpcpy, strchr, strndup, strspn, strnlen, memchr])
+AC_REPLACE_FUNCS(stpcpy strchr strndup strnlen strspn memchr)
 jm_FUNC_MALLOC
 jm_FUNC_REALLOC
 jm_PREREQ_QUOTEARG
diff --git a/lib/strchr.c b/lib/strchr.c
new file mode 100644 (file)
index 0000000..2e89710
--- /dev/null
@@ -0,0 +1,32 @@
+/* Copyright (C) 2001 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License
+   as published by the Free Software Foundation; either version 2 of
+   the License, or (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with this program; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place -
+   Suite 330, Boston, MA 02111-1307, USA.  */
+
+#if HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#if HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+
+char *
+strchr (const char *s, int c)
+{
+  return index (s, c);
+}
index b09b3447d221ef1861287a94f8b8f4fe83c0a437..b7fce299c38564307a120a0a3403f3da37d09560 100644 (file)
@@ -1647,13 +1647,11 @@ symbols_save (void)
 {
   struct obstack tokendefs;
   bucket *bp;
-  char *cp, *symbol;
-  char c;
   obstack_init (&tokendefs);
 
   for (bp = firstsymbol; bp; bp = bp->next)
     {
-      symbol = bp->tag;                /* get symbol */
+      char *symbol = bp->tag;                /* get symbol */
 
       if (bp->value >= ntokens)
        continue;
@@ -1673,9 +1671,7 @@ symbols_save (void)
        }
 
       /* Don't #define nonliteral tokens whose names contain periods.  */
-      cp = symbol;
-      while ((c = *cp++) && c != '.');
-      if (c != '\0')
+      if (strchr (symbol, '.'))
        continue;
 
       obstack_fgrow2 (&tokendefs, "# define %s\t%d\n",
index 850c5a7f0d14fd8dd37b36c42f915d7bb99c2da4..efaf554db1e10c6016f346b93c3bffb6668d1619 100644 (file)
@@ -110,14 +110,26 @@ char *alloca ();
 char *stpcpy PARAMS ((char *dest, const char *src));
 #endif
 
+#if !HAVE_DECL_STRCHR
+char *strchr(const char *s, int c);
+#endif
+
 #if !HAVE_DECL_STRNDUP
 char *strndup PARAMS ((const char *s, size_t size));
 #endif
 
+#if !HAVE_DECL_STRSPN
+size_t strspn(const char *s, const char *accept);
+#endif
+
 #if !HAVE_DECL_STRNLEN
 size_t strnlen PARAMS ((const char *s, size_t maxlen));
 #endif
 
+#if !HAVE_DECL_MEMCHR
+void *memchr(const void *s, int c, size_t n);
+#endif
+
 
 
 /*-----------------.