diff options
author | ksaito <ksaito@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-01-28 15:21:48 +0000 |
---|---|---|
committer | ksaito <ksaito@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-01-28 15:21:48 +0000 |
commit | a19d6b33d7419ed3724ee6646fa9303d9542b5e5 (patch) | |
tree | 297425b4ec8a0690858d8a21f49797a0ddacaedf /st.h | |
parent | 7d765e5203d8c909c1956276ead32b1f3d8c351f (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.h | 16 |
1 files changed, 14 insertions, 2 deletions
@@ -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 */ |