]> git.saurik.com Git - bison.git/blobdiff - src/uniqstr.c
Various DJGGP specific issues in /djgpp.
[bison.git] / src / uniqstr.c
index 9350df1bec731367cc50682d62c463f9dec0c23d..8804a80e0e96c9d094f78e77caab8a6f493836b7 100644 (file)
@@ -1,5 +1,6 @@
-/* Keeping a unique copy of strings.
-   Copyright (C) 2002 Free Software Foundation, Inc.
+/* Keep a unique copy of strings.
+
+   Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
 
 
    This file is part of Bison, the GNU Compiler Compiler.
 
 
    You should have received a copy of the GNU General Public License
    along with Bison; see the file COPYING.  If not, write to
 
    You should have received a copy of the GNU General Public License
    along with Bison; see the file COPYING.  If not, write to
-   the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
 
 
+#include <config.h>
 #include "system.h"
 
 #include <error.h>
 #include "system.h"
 
 #include <error.h>
@@ -40,13 +42,13 @@ static struct hash_table *uniqstrs_table = NULL;
 `-------------------------------------*/
 
 uniqstr
 `-------------------------------------*/
 
 uniqstr
-uniqstr_new (const char *s)
+uniqstr_new (char const *str)
 {
 {
-  uniqstr res = hash_lookup (uniqstrs_table, s);
+  uniqstr res = hash_lookup (uniqstrs_table, str);
   if (!res)
     {
       /* First insertion in the hash. */
   if (!res)
     {
       /* First insertion in the hash. */
-      res = xstrdup (s);
+      res = xstrdup (str);
       hash_insert (uniqstrs_table, res);
     }
   return res;
       hash_insert (uniqstrs_table, res);
     }
   return res;
@@ -58,11 +60,12 @@ uniqstr_new (const char *s)
 `------------------------------*/
 
 void
 `------------------------------*/
 
 void
-uniqstr_assert (const char *s)
+uniqstr_assert (char const *str)
 {
 {
-  if (!hash_lookup (uniqstrs_table, s))
+  if (!hash_lookup (uniqstrs_table, str))
     {
     {
-      error (0, 0, "not a uniqstr: %s", quotearg (s));
+      error (0, 0,
+            "not a uniqstr: %s", quotearg (str));
       abort ();
     }
 }
       abort ();
     }
 }
@@ -72,33 +75,36 @@ uniqstr_assert (const char *s)
 | Print the uniqstr.  |
 `--------------------*/
 
 | Print the uniqstr.  |
 `--------------------*/
 
-static bool
-uniqstr_print (const uniqstr s)
+static inline bool
+uniqstr_print (uniqstr ustr)
 {
 {
-  fprintf (stderr, "%s\n", s);
+  fprintf (stderr, "%s\n", ustr);
   return true;
 }
 
   return true;
 }
 
+static bool
+uniqstr_print_processor (void *ustr, void *null ATTRIBUTE_UNUSED)
+{
+  return uniqstr_print (ustr);
+}
+
 \f
 /*-----------------------.
 | A uniqstr hash table.  |
 `-----------------------*/
 
 static bool
 \f
 /*-----------------------.
 | A uniqstr hash table.  |
 `-----------------------*/
 
 static bool
-hash_compare_uniqstr (const uniqstr m1, const uniqstr m2)
+hash_compare_uniqstr (void const *m1, void const *m2)
 {
   return strcmp (m1, m2) == 0;
 }
 
 {
   return strcmp (m1, m2) == 0;
 }
 
-static unsigned int
-hash_uniqstr (const uniqstr m, unsigned int tablesize)
+static size_t
+hash_uniqstr (void const *m, size_t tablesize)
 {
   return hash_string (m, tablesize);
 }
 
 {
   return hash_string (m, tablesize);
 }
 
-/* A function to apply to each symbol. */
-typedef bool (*uniqstr_processor) (const uniqstr);
-
 /*----------------------------.
 | Create the uniqstrs table.  |
 `----------------------------*/
 /*----------------------------.
 | Create the uniqstrs table.  |
 `----------------------------*/
@@ -108,9 +114,9 @@ uniqstrs_new (void)
 {
   uniqstrs_table = hash_initialize (HT_INITIAL_CAPACITY,
                                    NULL,
 {
   uniqstrs_table = hash_initialize (HT_INITIAL_CAPACITY,
                                    NULL,
-                                   (Hash_hasher) hash_uniqstr,
-                                   (Hash_comparator) hash_compare_uniqstr,
-                                   (Hash_data_freer) free);
+                                   hash_uniqstr,
+                                   hash_compare_uniqstr,
+                                   free);
 }
 
 
 }
 
 
@@ -119,11 +125,9 @@ uniqstrs_new (void)
 `-------------------------------------*/
 
 static void
 `-------------------------------------*/
 
 static void
-uniqstrs_do (uniqstr_processor processor, void *processor_data)
+uniqstrs_do (Hash_processor processor, void *processor_data)
 {
 {
-  hash_do_for_each (uniqstrs_table,
-                   (Hash_processor) processor,
-                   processor_data);
+  hash_do_for_each (uniqstrs_table, processor, processor_data);
 }
 
 
 }
 
 
@@ -134,7 +138,7 @@ uniqstrs_do (uniqstr_processor processor, void *processor_data)
 void
 uniqstrs_print (void)
 {
 void
 uniqstrs_print (void)
 {
-  uniqstrs_do (uniqstr_print, NULL);
+  uniqstrs_do (uniqstr_print_processor, NULL);
 }
 
 
 }