summaryrefslogtreecommitdiffstats
path: root/src/misc/st
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2011-02-13 13:40:21 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2011-02-13 13:40:21 -0800
commitd99de60e6c88e5f6157b1d5c9b25cfd5d08a1c9a (patch)
tree835ca54bbe84a67491db085096871431df19b6ee /src/misc/st
parent350bedf53f6132d5c1af988e449a05c060943cd4 (diff)
downloadabc-d99de60e6c88e5f6157b1d5c9b25cfd5d08a1c9a.tar.gz
abc-d99de60e6c88e5f6157b1d5c9b25cfd5d08a1c9a.tar.bz2
abc-d99de60e6c88e5f6157b1d5c9b25cfd5d08a1c9a.zip
Portability changes to the st package.
Diffstat (limited to 'src/misc/st')
-rw-r--r--src/misc/st/st.c38
-rw-r--r--src/misc/st/st.h24
-rw-r--r--src/misc/st/stmm.c36
-rw-r--r--src/misc/st/stmm.h18
4 files changed, 75 insertions, 41 deletions
diff --git a/src/misc/st/st.c b/src/misc/st/st.c
index 9705b987..cadddb0b 100644
--- a/src/misc/st/st.c
+++ b/src/misc/st/st.c
@@ -79,7 +79,7 @@ st_init_table(st_compare_func_type compare, st_hash_func_type hash)
void
st_free_table(st_table *table)
{
- register st_table_entry *ptr, *next;
+ st_table_entry *ptr, *next;
int i;
for(i = 0; i < table->num_bins ; i++) {
@@ -110,10 +110,10 @@ st_free_table(st_table *table)
}
int
-st_lookup(st_table *table, register const char *key, char **value)
+st_lookup(st_table *table, const char *key, char **value)
{
int hash_val;
- register st_table_entry *ptr, **last;
+ st_table_entry *ptr, **last;
hash_val = do_hash(key, table);
@@ -130,10 +130,10 @@ st_lookup(st_table *table, register const char *key, char **value)
}
int
-st_lookup_int(st_table *table, register char *key, int *value)
+st_lookup_int(st_table *table, char *key, int *value)
{
int hash_val;
- register st_table_entry *ptr, **last;
+ st_table_entry *ptr, **last;
hash_val = do_hash(key, table);
@@ -167,11 +167,11 @@ st_lookup_int(st_table *table, register char *key, int *value)
}
int
-st_insert(register st_table *table, register const char *key, char *value)
+st_insert(st_table *table, const char *key, char *value)
{
int hash_val;
st_table_entry *newEntry;
- register st_table_entry *ptr, **last;
+ st_table_entry *ptr, **last;
hash_val = do_hash(key, table);
@@ -188,7 +188,7 @@ st_insert(register st_table *table, register const char *key, char *value)
if (newEntry == NULL) {
return ST_OUT_OF_MEM;
}
- newEntry->key = key;
+ newEntry->key = (char *)key;
newEntry->record = value;
newEntry->next = table->bins[hash_val];
table->bins[hash_val] = newEntry;
@@ -280,9 +280,9 @@ st_find(st_table *table, char *key, char ***slot)
}
static int
-rehash(register st_table *table)
+rehash(st_table *table)
{
- register st_table_entry *ptr, *next, **old_bins;
+ st_table_entry *ptr, *next, **old_bins;
int i, old_num_bins, hash_val, old_num_entries;
/* save old values */
@@ -371,11 +371,11 @@ st_copy(st_table *old_table)
}
int
-st_delete(register st_table *table, register const char **keyp, char **value)
+st_delete(st_table *table, const char **keyp, char **value)
{
int hash_val;
const char *key = *keyp;
- register st_table_entry *ptr, **last;
+ st_table_entry *ptr, **last;
hash_val = do_hash(key, table);
@@ -394,11 +394,11 @@ st_delete(register st_table *table, register const char **keyp, char **value)
}
int
-st_delete_int(register st_table *table, register long *keyp, char **value)
+st_delete_int(st_table *table, long *keyp, char **value)
{
int hash_val;
char *key = (char *) *keyp;
- register st_table_entry *ptr, **last;
+ st_table_entry *ptr, **last;
hash_val = do_hash(key, table);
@@ -417,7 +417,7 @@ st_delete_int(register st_table *table, register long *keyp, char **value)
}
int
-st_foreach(st_table *table, enum st_retval (*func)(const char *, char *, char *), char *arg)
+st_foreach(st_table *table, enum st_retval (*func)(char *, char *, char *), char *arg)
{
st_table_entry *ptr, **last;
enum st_retval retval;
@@ -447,8 +447,8 @@ st_foreach(st_table *table, enum st_retval (*func)(const char *, char *, char *)
int
st_strhash(const char *string, int modulus)
{
- register int val = 0;
- register int c;
+ int val = 0;
+ int c;
while ((c = *string++) != '\0') {
val = val*997 + c;
@@ -500,7 +500,7 @@ st_init_gen(st_table *table)
int
st_gen(st_generator *gen, const char **key_p, char **value_p)
{
- register int i;
+ int i;
if (gen->entry == NULL) {
/* try to find next entry */
@@ -527,7 +527,7 @@ st_gen(st_generator *gen, const char **key_p, char **value_p)
int
st_gen_int(st_generator *gen, const char **key_p, long *value_p)
{
- register int i;
+ int i;
if (gen->entry == NULL) {
/* try to find next entry */
diff --git a/src/misc/st/st.h b/src/misc/st/st.h
index 81bd461e..d16fc4b6 100644
--- a/src/misc/st/st.h
+++ b/src/misc/st/st.h
@@ -14,17 +14,35 @@
#ifndef ST_INCLUDED
#define ST_INCLUDED
-
#include "abc_global.h"
ABC_NAMESPACE_HEADER_START
+
+/* These are potential duplicates. */
+#ifndef EXTERN
+# ifdef __cplusplus
+# ifdef ABC_NAMESPACE
+# define EXTERN extern
+# else
+# define EXTERN extern "C"
+# endif
+# else
+# define EXTERN extern
+# endif
+#endif
+
+#ifndef ARGS
+#define ARGS(protos) protos
+#endif
+
+
typedef int (*st_compare_func_type)(const char*, const char*);
typedef int (*st_hash_func_type)(const char*, int);
typedef struct st_table_entry st_table_entry;
struct st_table_entry {
- const char *key;
+ char *key;
char *record;
st_table_entry *next;
};
@@ -53,7 +71,7 @@ struct st_generator {
enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE};
-typedef enum st_retval (*ST_PFSR)(const char *, char *, char *);
+typedef enum st_retval (*ST_PFSR)(char *, char *, char *);
typedef int (*ST_PFI)();
extern st_table *st_init_table_with_params (st_compare_func_type compare, st_hash_func_type hash, int size, int density, double grow_factor, int reorder_flag);
diff --git a/src/misc/st/stmm.c b/src/misc/st/stmm.c
index 9aed8b11..1d4f65b4 100644
--- a/src/misc/st/stmm.c
+++ b/src/misc/st/stmm.c
@@ -79,7 +79,7 @@ void
stmm_free_table (stmm_table *table)
{
/*
- register stmm_table_entry *ptr, *next;
+ stmm_table_entry *ptr, *next;
int i;
for ( i = 0; i < table->num_bins; i++ )
{
@@ -131,10 +131,10 @@ stmm_clean (stmm_table *table)
}
int
-stmm_lookup (stmm_table *table, register char *key, char **value)
+stmm_lookup (stmm_table *table, char *key, char **value)
{
int hash_val;
- register stmm_table_entry *ptr, **last;
+ stmm_table_entry *ptr, **last;
hash_val = do_hash (key, table);
@@ -153,10 +153,10 @@ stmm_lookup (stmm_table *table, register char *key, char **value)
}
int
-stmm_lookup_int (stmm_table *table, register char *key, int *value)
+stmm_lookup_int (stmm_table *table, char *key, int *value)
{
int hash_val;
- register stmm_table_entry *ptr, **last;
+ stmm_table_entry *ptr, **last;
hash_val = do_hash (key, table);
@@ -197,11 +197,11 @@ stmm_lookup_int (stmm_table *table, register char *key, int *value)
}
int
-stmm_insert (register stmm_table *table, register char *key, char *value)
+stmm_insert (stmm_table *table, char *key, char *value)
{
int hash_val;
stmm_table_entry *newEntry;
- register stmm_table_entry *ptr, **last;
+ stmm_table_entry *ptr, **last;
hash_val = do_hash (key, table);
@@ -325,9 +325,9 @@ stmm_find (stmm_table *table, char *key, char ***slot)
}
static int
-rehash (register stmm_table *table)
+rehash (stmm_table *table)
{
- register stmm_table_entry *ptr, *next, **old_bins;
+ stmm_table_entry *ptr, *next, **old_bins;
int i, old_num_bins, hash_val, old_num_entries;
/* save old values */
@@ -431,11 +431,11 @@ stmm_copy (stmm_table *old_table)
}
int
-stmm_delete (register stmm_table *table, register char **keyp, char **value)
+stmm_delete (stmm_table *table, char **keyp, char **value)
{
int hash_val;
char *key = *keyp;
- register stmm_table_entry *ptr, **last;
+ stmm_table_entry *ptr, **last;
hash_val = do_hash (key, table);
@@ -457,11 +457,11 @@ stmm_delete (register stmm_table *table, register char **keyp, char **value)
}
int
-stmm_delete_int (register stmm_table *table, register long *keyp, char **value)
+stmm_delete_int (stmm_table *table, long *keyp, char **value)
{
int hash_val;
char *key = (char *) *keyp;
- register stmm_table_entry *ptr, **last;
+ stmm_table_entry *ptr, **last;
hash_val = do_hash (key, table);
@@ -515,10 +515,10 @@ stmm_foreach (stmm_table *table, enum stmm_retval (*func) (char *, char *, char
}
int
-stmm_strhash (register const char *string, int modulus)
+stmm_strhash (const char *string, int modulus)
{
- register int val = 0;
- register int c;
+ int val = 0;
+ int c;
while ((c = *string++) != '\0') {
val = val * 997 + c;
@@ -570,7 +570,7 @@ stmm_init_gen (stmm_table *table)
int
stmm_gen (stmm_generator *gen, char **key_p, char **value_p)
{
- register int i;
+ int i;
if (gen->entry == NULL) {
/* try to find next entry */
@@ -597,7 +597,7 @@ stmm_gen (stmm_generator *gen, char **key_p, char **value_p)
int
stmm_gen_int (stmm_generator *gen, char **key_p, long *value_p)
{
- register int i;
+ int i;
if (gen->entry == NULL) {
/* try to find next entry */
diff --git a/src/misc/st/stmm.h b/src/misc/st/stmm.h
index c23c6942..7d2e3f3a 100644
--- a/src/misc/st/stmm.h
+++ b/src/misc/st/stmm.h
@@ -17,9 +17,25 @@
#include "extra.h"
+ABC_NAMESPACE_HEADER_START
-ABC_NAMESPACE_HEADER_START
+/* These are potential duplicates. */
+#ifndef EXTERN
+# ifdef __cplusplus
+# ifdef ABC_NAMESPACE
+# define EXTERN extern
+# else
+# define EXTERN extern "C"
+# endif
+# else
+# define EXTERN extern
+# endif
+#endif
+
+#ifndef ARGS
+#define ARGS(protos) protos
+#endif
typedef int (*stmm_compare_func_type)(const char*, const char*);
typedef int (*stmm_hash_func_type)(const char*, int);