31 #define GetDBM(obj, dbmp) {\
32 Data_Get_Struct((obj), struct dbmdata, (dbmp));\
33 if ((dbmp) == 0) closed_sdbm();\
34 if ((dbmp)->di_dbm == 0) closed_sdbm();\
37 #define GetDBM2(obj, data, dbm) {\
38 GetDBM((obj), (data));\
39 (dbm) = dbmp->di_dbm;\
91 if (
rb_scan_args(argc, argv,
"11", &file, &vmode) == 1) {
94 else if (
NIL_P(vmode)) {
111 if (mode == -1)
return Qnil;
152 if (value.
dptr == 0) {
169 VALUE keystr, valstr, ifnone;
203 rb_warn(
"SDBM#index is deprecated; use SDBM#key");
237 for (i=0; i<
argc; i++) {
268 if (value.
dptr == 0) {
292 VALUE keystr, valstr;
315 VALUE keystr, valstr;
328 if (status != 0)
break;
374 VALUE keystr, valstr;
394 if (valstr ==
Qnil) {
412 #ifdef HAVE_DBM_CLAERERR
486 if (i == 0)
return Qtrue;
531 VALUE keystr, valstr;
#define RSTRING_LEN(string)
static VALUE fsdbm_reject(VALUE obj)
static VALUE fsdbm_clear(VALUE obj)
static VALUE fsdbm_to_a(VALUE obj)
static VALUE fsdbm_key(VALUE obj, VALUE valstr)
#define Data_Get_Struct(obj, type, sval)
void rb_define_singleton_method(VALUE obj, const char *name, VALUE(*func)(ANYARGS), int argc)
Defines a singleton method for obj.
rb_hash_aset(CALLBACK_TABLE, id_num, cmd)
void rb_error_frozen(const char *what)
static VALUE fsdbm_each_value(VALUE obj)
static VALUE fsdbm_alloc(VALUE klass)
#define rb_block_call(arg1, arg2, arg3, arg4, arg5, arg6)
static VALUE fsdbm_has_key(VALUE obj, VALUE keystr)
VALUE rb_ary_push(VALUE ary, VALUE item)
VALUE rb_protect(VALUE(*proc)(VALUE), VALUE data, int *state)
#define RSTRING_PTR(string)
static void free_sdbm(struct dbmdata *dbmp)
void rb_raise(VALUE exc, const char *fmt,...)
static VALUE fsdbm_update(VALUE obj, VALUE other)
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
#define RARRAY_LEN(ARRAY)
static VALUE fsdbm_values_at(int argc, VALUE *argv, VALUE obj)
void rb_include_module(VALUE klass, VALUE module)
static VALUE fsdbm_invert(VALUE obj)
static VALUE fsdbm_closed(VALUE obj)
static VALUE fsdbm_values(VALUE obj)
static VALUE rb_eDBMError
static VALUE fsdbm_replace(VALUE obj, VALUE other)
void sdbm_close(register DBM *db)
static VALUE fsdbm_shift(VALUE obj)
#define GetDBM2(obj, data, dbm)
return Data_Wrap_Struct(CLASS_OF(interp), 0, ip_free, slave)
DBM * sdbm_open(register char *file, register int flags, register int mode)
static void fdbm_modify(VALUE obj)
static VALUE fsdbm_empty_p(VALUE obj)
int rb_block_given_p(void)
RUBY_EXTERN VALUE rb_cObject
static VALUE fsdbm_aref(VALUE obj, VALUE keystr)
VALUE rb_define_class(const char *name, VALUE super)
Defines a top-level class.
datum sdbm_firstkey(register DBM *db)
static VALUE fsdbm_delete(VALUE obj, VALUE keystr)
static VALUE fsdbm_each_pair(VALUE obj)
static VALUE fsdbm_delete_if(VALUE obj)
VALUE rb_external_str_new(const char *, long)
static void closed_sdbm()
static VALUE fsdbm_initialize(int argc, VALUE *argv, VALUE obj)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
VALUE rb_assoc_new(VALUE car, VALUE cdr)
static VALUE fsdbm_length(VALUE obj)
VALUE rb_ensure(VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*e_proc)(ANYARGS), VALUE data2)
int memcmp(const void *s1, const void *s2, size_t len)
#define sdbm_clearerr(db)
#define RARRAY_LENINT(ary)
void rb_sys_fail(const char *mesg)
void rb_jump_tag(int tag)
static VALUE fsdbm_to_hash(VALUE obj)
static VALUE fsdbm_store(VALUE obj, VALUE keystr, VALUE valstr)
int sdbm_store(register DBM *db, datum key, datum val, int flags)
#define ExportStringValue(v)
#define GetDBM(obj, dbmp)
static VALUE fsdbm_fetch(VALUE obj, VALUE keystr, VALUE ifnone)
static VALUE fsdbm_s_open(int argc, VALUE *argv, VALUE klass)
static VALUE fsdbm_each_key(VALUE obj)
#define RETURN_ENUMERATOR(obj, argc, argv)
datum sdbm_nextkey(register DBM *db)
VALUE rb_ary_new2(long capa)
static VALUE fsdbm_has_value(VALUE obj, VALUE valstr)
static VALUE update_i(VALUE pair, VALUE dbm)
static VALUE fsdbm_fetch_m(int argc, VALUE *argv, VALUE obj)
#define RSTRING_LENINT(str)
VALUE rb_hash_delete_if(VALUE hash)
static VALUE fsdbm_index(VALUE hash, VALUE value)
int sdbm_delete(register DBM *db, datum key)
static VALUE fsdbm_select(VALUE obj)
datum sdbm_fetch(register DBM *db, datum key)
static VALUE fsdbm_close(VALUE obj)
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
void rb_warn(const char *fmt,...)
static VALUE fsdbm_keys(VALUE obj)