From: Akim Demaille <akim@epita.fr>
Date: Fri, 13 Sep 2002 16:12:21 +0000 (+0000)
Subject: Playing with autoscan.
X-Git-Tag: BISON-1_49c~8
X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/b906441c9568615be3ddce717a6e365b2e368af3

Playing with autoscan.
* src/reader.c (get_merge_function): Use xstrdup, not strdup.
* src/files.c (skeleton_find): Remove, unused.
* m4/memcmp.m4: New, from the Coreutils 4.5.1.
* m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
---

diff --git a/ChangeLog b/ChangeLog
index 3b21190f..d14c3b72 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2002-09-13  Akim Demaille  <akim@epita.fr>
+
+	Playing with autoscan.
+
+	* src/reader.c (get_merge_function): Use xstrdup, not strdup.
+	* src/files.c (skeleton_find): Remove, unused.
+	* m4/memcmp.m4: New, from the Coreutils 4.5.1.
+	* m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
+
 2002-09-13  Akim Demaille  <akim@epita.fr>
 
 	* configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
diff --git a/m4/Makefile.am b/m4/Makefile.am
index c888b5c4..1bc76778 100644
--- a/m4/Makefile.am
+++ b/m4/Makefile.am
@@ -1,6 +1,6 @@
 ## Process this file with automake to produce Makefile.in -*-Makefile-*-
 EXTRA_DIST = \
   dmalloc.m4 error.m4 \
-  m4.m4 mbrtowc.m4 mkstemp.m4 \
+  m4.m4 mbrtowc.m4 memcmp.m4 mkstemp.m4 \
   prereq.m4 strerror_r.m4 timevar.m4 warning.m4 \
   gettext.m4 iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 progtest.m4
diff --git a/m4/memcmp.m4 b/m4/memcmp.m4
new file mode 100644
index 00000000..1de34093
--- /dev/null
+++ b/m4/memcmp.m4
@@ -0,0 +1,9 @@
+#serial 7
+
+AC_DEFUN([jm_FUNC_MEMCMP],
+[AC_REQUIRE([AC_FUNC_MEMCMP])dnl
+ if test $ac_cv_func_memcmp_working = no; then
+   AC_DEFINE(memcmp, rpl_memcmp,
+     [Define to rpl_memcmp if the replacement function should be used.])
+ fi
+])
diff --git a/m4/prereq.m4 b/m4/prereq.m4
index b29e725b..8b6ef3da 100644
--- a/m4/prereq.m4
+++ b/m4/prereq.m4
@@ -1,7 +1,10 @@
-#serial 26
+#serial 27
 
-dnl These are the prerequisite macros for files in the lib/
-dnl directories of the fileutils, sh-utils, and textutils packages.
+dnl We use jm_ for non Autoconf macros.
+m4_pattern_forbid([^jm_[ABCDEFGHIJKLMNOPQRSTUVXYZ]])dnl
+
+# These are the prerequisite macros for files in the lib/
+# directories of the coreutils package.
 
 AC_DEFUN([jm_PREREQ],
 [
@@ -114,6 +117,7 @@ AC_DEFUN([jm_PREREQ_QUOTEARG],
 [
   AC_CHECK_FUNCS(isascii iswprint)
   jm_FUNC_MBRTOWC
+  jm_FUNC_MEMCMP
   AC_CHECK_HEADERS(limits.h stddef.h stdlib.h string.h wchar.h wctype.h)
   AC_HEADER_STDC
   AC_C_BACKSLASH_A
diff --git a/src/files.c b/src/files.c
index 5073f04f..c4c223d3 100644
--- a/src/files.c
+++ b/src/files.c
@@ -134,59 +134,6 @@ xfclose (FILE *ptr)
 
   return result;
 }
-
-
-/*------------------------------------------------------------------.
-| Return the path to the skeleton which locaction might be given in |
-| ENVVAR, otherwise return SKELETON_NAME.                           |
-`------------------------------------------------------------------*/
-
-const char *
-skeleton_find (const char *envvar, const char *skeleton_name)
-{
-  const char *res = getenv (envvar);
-
-#if defined (MSDOS) || defined (_WIN32)
-  const char *cp = getenv ("INIT");
-  if (!res)
-    {
-      /* Skeleton file name without path */
-      const char *skel_name = strrchr (skeleton_name, '/');
-      if (!skel_name)
-        skel_name = strrchr (skeleton_name, '\\');
-      if (!skel_name)
-        skel_name = skeleton_name;
-      else
-        ++skel_name;
-
-      /* File doesn't exist in current directory; try in INIT directory.  */
-      if (cp)
-	{
-	  res = XMALLOC (char, strlen (cp) + strlen (skel_name) + 2);
-	  sprintf (res, "%s%c%s", cp, '\\', skel_name);
-	}
-      else if (access (skel_name, 4) == 0) /* Look in current dir. */
-        res = skel_name;
-      else
-	{
-	  /* Look in program locations dir. */
-	  extern char *program_name;
-	  cp = strrchr(program_name, '\\');
-	  if (!cp)
-	    return skeleton_name;
-	  else
-	    ++cp;
-	  res = XMALLOC (char, cp - program_name + strlen (skel_name) + 1);
-	  strncpy (res, program_name, cp - program_name);
-	  strcpy (res + (cp - program_name), skel_name);
-	}
-    }
-#endif /* defined (MSDOS) || defined (_WIN32) */
-  if (!res)
-    res = skeleton_name;
-
-  return res;
-}
 
 
 /*----------------------------------------------------------------.
diff --git a/src/files.h b/src/files.h
index 0529b215..0e3d7773 100644
--- a/src/files.h
+++ b/src/files.h
@@ -1,5 +1,5 @@
 /* File names and variables for bison,
-   Copyright 1984, 1989, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1984, 1989, 2000, 2001, 2002 Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
 
@@ -57,9 +57,6 @@ void compute_output_file_names PARAMS((void));
 FILE *xfopen PARAMS ((const char *name, const char *mode));
 int xfclose PARAMS ((FILE *ptr));
 
-const char *skeleton_find PARAMS ((const char *envvar,
-				   const char *skeleton_name));
-
 /* Is SUFFIX ending STRING?  */
 int strsuffix (const char* string, const char* suffix);
 
diff --git a/src/reader.c b/src/reader.c
index 25877c18..d7527158 100644
--- a/src/reader.c
+++ b/src/reader.c
@@ -132,8 +132,8 @@ get_merge_function (const char* name, const char* type,
   if (syms->next == NULL)
     {
       syms->next = XMALLOC (merger_list, 1);
-      syms->next->name = strdup (name);
-      syms->next->type = strdup (type);
+      syms->next->name = xstrdup (name);
+      syms->next->type = xstrdup (type);
       syms->next->next = NULL;
       merge_functions = head.next;
     }