summaryrefslogtreecommitdiff
path: root/st.h
diff options
context:
space:
mode:
authorksaito <ksaito@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-01-28 15:21:48 +0000
committerksaito <ksaito@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-01-28 15:21:48 +0000
commita19d6b33d7419ed3724ee6646fa9303d9542b5e5 (patch)
tree297425b4ec8a0690858d8a21f49797a0ddacaedf /st.h
parent7d765e5203d8c909c1956276ead32b1f3d8c351f (diff)
* ascii.c, euc_jp.c, hash.c, oniggnu.h, oniguruma.h, regcomp.c, regenc.c, regenc.h, regerror.c, regexec.c, reggnu.c, regint.h, regparse.c, regparse.h, sjis.c, st.c, st.h, utf8.c: imported Oni Guruma 3.5.4.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7846 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'st.h')
-rw-r--r--st.h16
1 files changed, 14 insertions, 2 deletions
diff --git a/st.h b/st.h
index bc12624b90..fffbb32376 100644
--- a/st.h
+++ b/st.h
@@ -14,6 +14,8 @@ typedef struct st_table st_table;
struct st_hash_type {
int (*compare)();
int (*hash)();
+ int (*key_free)();
+ st_data_t (*key_clone)();
};
struct st_table {
@@ -23,6 +25,11 @@ struct st_table {
struct st_table_entry **bins;
};
+typedef struct {
+ unsigned char* s;
+ unsigned char* end;
+} st_strend_key;
+
#define st_is_member(table,key) st_lookup(table,key,(st_data_t *)0)
enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK};
@@ -44,22 +51,27 @@ st_table *st_init_numtable _((void));
st_table *st_init_numtable_with_size _((int));
st_table *st_init_strtable _((void));
st_table *st_init_strtable_with_size _((int));
+st_table *st_init_strend_table_with_size _((int));
int st_delete _((st_table *, st_data_t *, st_data_t *));
int st_delete_safe _((st_table *, st_data_t *, st_data_t *, st_data_t));
int st_insert _((st_table *, st_data_t, st_data_t));
+int st_insert_strend _((st_table *, unsigned char*, unsigned char*, st_data_t));
int st_lookup _((st_table *, st_data_t, st_data_t *));
+int st_lookup_strend _((st_table *, unsigned char*, unsigned char*, st_data_t*));
void st_foreach _((st_table *, int (*)(ANYARGS), st_data_t));
void st_add_direct _((st_table *, st_data_t, st_data_t));
+void st_add_direct_strend _((st_table *, unsigned char*, unsigned char*, st_data_t));
void st_free_table _((st_table *));
void st_cleanup_safe _((st_table *, st_data_t));
st_table *st_copy _((st_table *));
+extern st_data_t st_nothing_key_clone _((st_data_t key));
+extern int st_nothing_key_free _((st_data_t key));
+
#define ST_NUMCMP ((int (*)()) 0)
#define ST_NUMHASH ((int (*)()) -2)
#define st_numcmp ST_NUMCMP
#define st_numhash ST_NUMHASH
-int st_strhash();
-
#endif /* ST_INCLUDED */