bison-patches
[Top][All Lists]
Advanced

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

18-fyi-strchr.patch


From: Akim Demaille
Subject: 18-fyi-strchr.patch
Date: Thu, 27 Dec 2001 19:02:15 +0100

Index: ChangeLog
from  Akim Demaille  <address@hidden>
        * 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.
        
        
Index: configure.in
--- configure.in Sat, 08 Dec 2001 13:53:19 +0100 akim
+++ configure.in Thu, 27 Dec 2001 11:52:54 +0100 akim
@@ -85,8 +85,8 @@
 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
Index: src/reader.c
--- src/reader.c Wed, 26 Dec 2001 22:15:11 +0100 akim
+++ src/reader.c Thu, 27 Dec 2001 11:52:00 +0100 akim
@@ -1647,13 +1647,11 @@
 {
   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 @@
        }
 
       /* 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: src/system.h
--- src/system.h Sun, 16 Dec 2001 11:40:41 +0100 akim
+++ src/system.h Thu, 27 Dec 2001 11:54:35 +0100 akim
@@ -110,12 +110,24 @@
 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
 
 
Index: lib/strchr.c
--- lib/strchr.c Thu, 27 Dec 2001 12:00:57 +0100 akim
+++ lib/strchr.c Thu, 27 Dec 2001 11:50:26 +0100 akim
@@ -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);
+}



reply via email to

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