Annotation of embedaddon/php/ext/mbstring/oniguruma/st.h, revision 1.1
1.1 ! misho 1: /* This is a public domain general purpose hash table package written by Peter Moore @ UCB. */
! 2:
! 3: /* @(#) st.h 5.1 89/12/14 */
! 4:
! 5: #ifndef ST_INCLUDED
! 6:
! 7: #define ST_INCLUDED
! 8:
! 9: typedef unsigned long st_data_t;
! 10: #define ST_DATA_T_DEFINED
! 11:
! 12: typedef struct st_table st_table;
! 13:
! 14: struct st_hash_type {
! 15: int (*compare)();
! 16: int (*hash)();
! 17: };
! 18:
! 19: struct st_table {
! 20: struct st_hash_type *type;
! 21: int num_bins;
! 22: int num_entries;
! 23: struct st_table_entry **bins;
! 24: };
! 25:
! 26: #define st_is_member(table,key) st_lookup(table,key,(st_data_t *)0)
! 27:
! 28: enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK};
! 29:
! 30: #ifndef _
! 31: # define _(args) args
! 32: #endif
! 33: #ifndef ANYARGS
! 34: # ifdef __cplusplus
! 35: # define ANYARGS ...
! 36: # else
! 37: # define ANYARGS
! 38: # endif
! 39: #endif
! 40:
! 41: st_table *st_init_table _((struct st_hash_type *));
! 42: st_table *st_init_table_with_size _((struct st_hash_type *, int));
! 43: st_table *st_init_numtable _((void));
! 44: st_table *st_init_numtable_with_size _((int));
! 45: st_table *st_init_strtable _((void));
! 46: st_table *st_init_strtable_with_size _((int));
! 47: int st_delete _((st_table *, st_data_t *, st_data_t *));
! 48: int st_delete_safe _((st_table *, st_data_t *, st_data_t *, st_data_t));
! 49: int st_insert _((st_table *, st_data_t, st_data_t));
! 50: int st_lookup _((st_table *, st_data_t, st_data_t *));
! 51: int st_foreach _((st_table *, int (*)(ANYARGS), st_data_t));
! 52: void st_add_direct _((st_table *, st_data_t, st_data_t));
! 53: void st_free_table _((st_table *));
! 54: void st_cleanup_safe _((st_table *, st_data_t));
! 55: st_table *st_copy _((st_table *));
! 56:
! 57: #define ST_NUMCMP ((int (*)()) 0)
! 58: #define ST_NUMHASH ((int (*)()) -2)
! 59:
! 60: #define st_numcmp ST_NUMCMP
! 61: #define st_numhash ST_NUMHASH
! 62:
! 63: #endif /* ST_INCLUDED */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>