mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* ext/gdbm/gdbm.c (Init_gdbm): define GDBM::READER, GDBM::WRITER,
GDBM::WRCREAT and GDBM::NEWDB. (fgdbm_initialize): use specified read/write flag. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6160 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
d952e33003
commit
c7629cdd28
2 changed files with 30 additions and 16 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
Thu Apr 15 17:12:13 2004 Tanaka Akira <akr@m17n.org>
|
||||||
|
|
||||||
|
* ext/gdbm/gdbm.c (Init_gdbm): define GDBM::READER, GDBM::WRITER,
|
||||||
|
GDBM::WRCREAT and GDBM::NEWDB.
|
||||||
|
(fgdbm_initialize): use specified read/write flag.
|
||||||
|
|
||||||
Wed Apr 14 13:06:09 2004 Doug Kearns <djkea2@mugca.its.monash.edu.au>
|
Wed Apr 14 13:06:09 2004 Doug Kearns <djkea2@mugca.its.monash.edu.au>
|
||||||
|
|
||||||
* array.c, enum.c, eval.c, file.c, io.c, numeric.c, object.c, prec.c,
|
* array.c, enum.c, eval.c, file.c, io.c, numeric.c, object.c, prec.c,
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
|
|
||||||
static VALUE rb_cGDBM, rb_eGDBMError, rb_eGDBMFatalError;
|
static VALUE rb_cGDBM, rb_eGDBMError, rb_eGDBMFatalError;
|
||||||
|
|
||||||
|
#define RUBY_GDBM_RW_BIT 0x20000000
|
||||||
|
|
||||||
#define MY_BLOCK_SIZE (2048)
|
#define MY_BLOCK_SIZE (2048)
|
||||||
#define MY_FATAL_FUNC rb_gdbm_fatal
|
#define MY_FATAL_FUNC rb_gdbm_fatal
|
||||||
static void
|
static void
|
||||||
|
@ -100,6 +102,12 @@ fgdbm_initialize(argc, argv, obj)
|
||||||
|
|
||||||
SafeStringValue(file);
|
SafeStringValue(file);
|
||||||
|
|
||||||
|
if (flags & RUBY_GDBM_RW_BIT) {
|
||||||
|
flags &= ~RUBY_GDBM_RW_BIT;
|
||||||
|
dbm = gdbm_open(RSTRING(file)->ptr, MY_BLOCK_SIZE,
|
||||||
|
flags, mode, MY_FATAL_FUNC);
|
||||||
|
}
|
||||||
|
else {
|
||||||
dbm = 0;
|
dbm = 0;
|
||||||
if (mode >= 0)
|
if (mode >= 0)
|
||||||
dbm = gdbm_open(RSTRING(file)->ptr, MY_BLOCK_SIZE,
|
dbm = gdbm_open(RSTRING(file)->ptr, MY_BLOCK_SIZE,
|
||||||
|
@ -110,6 +118,7 @@ fgdbm_initialize(argc, argv, obj)
|
||||||
if (!dbm)
|
if (!dbm)
|
||||||
dbm = gdbm_open(RSTRING(file)->ptr, MY_BLOCK_SIZE,
|
dbm = gdbm_open(RSTRING(file)->ptr, MY_BLOCK_SIZE,
|
||||||
GDBM_READER|flags, 0, MY_FATAL_FUNC);
|
GDBM_READER|flags, 0, MY_FATAL_FUNC);
|
||||||
|
}
|
||||||
|
|
||||||
if (!dbm) {
|
if (!dbm) {
|
||||||
if (mode == -1) return Qnil;
|
if (mode == -1) return Qnil;
|
||||||
|
@ -992,13 +1001,12 @@ Init_gdbm()
|
||||||
rb_define_method(rb_cGDBM, "to_a", fgdbm_to_a, 0);
|
rb_define_method(rb_cGDBM, "to_a", fgdbm_to_a, 0);
|
||||||
rb_define_method(rb_cGDBM, "to_hash", fgdbm_to_hash, 0);
|
rb_define_method(rb_cGDBM, "to_hash", fgdbm_to_hash, 0);
|
||||||
|
|
||||||
/* flags for gdbm_opn() */
|
/* flags for gdbm_open() */
|
||||||
/*
|
rb_define_const(rb_cGDBM, "READER", INT2FIX(GDBM_READER|RUBY_GDBM_RW_BIT));
|
||||||
rb_define_const(rb_cGDBM, "READER", INT2FIX(GDBM_READER));
|
rb_define_const(rb_cGDBM, "WRITER", INT2FIX(GDBM_WRITER|RUBY_GDBM_RW_BIT));
|
||||||
rb_define_const(rb_cGDBM, "WRITER", INT2FIX(GDBM_WRITER));
|
rb_define_const(rb_cGDBM, "WRCREAT", INT2FIX(GDBM_WRCREAT|RUBY_GDBM_RW_BIT));
|
||||||
rb_define_const(rb_cGDBM, "WRCREAT", INT2FIX(GDBM_WRCREAT));
|
rb_define_const(rb_cGDBM, "NEWDB", INT2FIX(GDBM_NEWDB|RUBY_GDBM_RW_BIT));
|
||||||
rb_define_const(rb_cGDBM, "NEWDB", INT2FIX(GDBM_NEWDB));
|
|
||||||
*/
|
|
||||||
rb_define_const(rb_cGDBM, "FAST", INT2FIX(GDBM_FAST));
|
rb_define_const(rb_cGDBM, "FAST", INT2FIX(GDBM_FAST));
|
||||||
/* this flag is obsolete in gdbm 1.8.
|
/* this flag is obsolete in gdbm 1.8.
|
||||||
On gdbm 1.8, fast mode is default behavior. */
|
On gdbm 1.8, fast mode is default behavior. */
|
||||||
|
|
Loading…
Reference in a new issue