[#23480] [BUG] numeric.c (flo_to_s) broken? — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

19 messages 2004/05/08
[#23482] Re: [BUG] numeric.c (flo_to_s) broken? — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/05/08

山本です。

[#23483] Re: [BUG] numeric.c (flo_to_s) broken? — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/05/08

山本です。

[#23484] Re: [BUG] numeric.c (flo_to_s) broken? — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/05/08

山本です。

[#23485] Re: [BUG] numeric.c (flo_to_s) broken? — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/05/08

山本です。たびたびすみません。

[#23486] Re: [BUG] numeric.c (flo_to_s) broken? — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/05/08

山本です。

[#23499] Re: [BUG] numeric.c (flo_to_s) broken? — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/05/14

山本です。

[#23488] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console, ruby/test, ruby/test/drb, ruby/test/ruby, ruby/test/soap/calc: * ext/extmk.rb (extmake): skip uncompiled extensions. — MIYAMUKO Katsuyuki <k-miyamuko@...>

みやむこです。

18 messages 2004/05/11
[#23527] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test, ruby/test/drb, ruby/test/ruby, ruby/test/soap/calc: * ext/extmk.rb(extmake): skip uncompiled extensions. — nobu.nakada@... 2004/05/17

なかだです。

[#23537] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test, ruby/test/drb, ruby/test/ruby, ruby/test/soap/calc: * ext/extmk.rb(extmake): skip uncompiled extensions. — MIYAMUKO Katsuyuki <k-miyamuko@...> 2004/05/18

みやむこです。

[#23538] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test,ruby/test/drb, ruby/test/ruby, ruby/test/soap/calc: * ext/extmk.rb(extmake):skip uncompiled extensions. — nobu.nakada@... 2004/05/19

なかだです。

[#23539] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test,ruby/test/drb, ruby/test/ruby, ruby/test/soap/calc: * ext/extmk.rb(extmake):skip uncompiled extensions. — MIYAMUKO Katsuyuki <k-miyamuko@...> 2004/05/19

みやむこです。

[#23543] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test,ruby/test/drb,ruby/test/ruby, ruby/test/soap/calc: * ext/extmk.rb(extmake):skip uncompiledextensions. — nobu.nakada@... 2004/05/19

なかだです。

[#23555] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test,ruby/test/drb,ruby/test/ruby, ruby/test/soap/calc: * ext/extmk.rb(extmake):skip uncompiledextensions. — MIYAMUKO Katsuyuki <k-miyamuko@...> 2004/05/21

みやむこです。

[#23557] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test,ruby/test/drb,ruby/test/ruby,ruby/test/soap/calc: * ext/extmk.rb(extmake):skip uncompiledextensions. — nobu.nakada@... 2004/05/21

なかだです。

[#23559] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test,ruby/test/drb,ruby/test/ruby,ruby/test/soap/calc: * ext/extmk.rb(extmake):skip uncompiledextensions. — MIYAMUKO Katsuyuki <k-miyamuko@...> 2004/05/21

みやむこです。

[#23492] ruby 1.8.1 (2004-05-13) has 7 failures and 3 errors — akira yamada <akira@...>

19 messages 2004/05/13

[#23533] Ruby2.0 spec summary around parameters and variables — SASADA Koichi <ko1@...>

 ささだです。

22 messages 2004/05/17
[#23563] Re: Ruby2.0 spec summary around parameters and variables — Minero Aoki <aamine@...> 2004/05/22

青木です。

[#23564] Re: Ruby2.0 spec summary around parameters and variables — matz@... (Yukihiro Matsumoto) 2004/05/22

まつもと ゆきひろです

[#23568] Re: Ruby2.0 spec summary around parameters and variables — Minero Aoki <aamine@...> 2004/05/22

青木です。

[#23569] Re: Ruby2.0 spec summary around parameters and variables — matz@... (Yukihiro Matsumoto) 2004/05/22

まつもと ゆきひろです

[#23572] keyword argments (Ruby2.0 spec) — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

14 messages 2004/05/23
[#23578] Re: keyword argments (Ruby2.0 spec) — matz@... (Yukihiro Matsumoto) 2004/05/23

まつもと ゆきひろです

[#23615] console freezed on test/drb/drbtest.rb : test_06_timeout (bcc32) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

11 messages 2004/05/25
[#23625] Re: console freezed on test/drb/drbtest.rb : test_06_timeout (bcc32) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/05/26

山本です。

[ruby-dev:23520] DBM::READER

From: Tanaka Akira <akr@...17n.org>
Date: 2004-05-16 10:57:50 UTC
List: ruby-dev #23520
dbm でも gdbm と同様に、読み込みのみで db を open したいと思えて来たの
で、GDBM.open と同様に DBM.open に第3引数を追加し、DBM::READER,
DBM::WRITER, DBM::WRCREAT, DBM::NEWDB を指定できるようにしてみました。

適用してもいいでしょうか?

Index: ext/dbm/dbm.c
===================================================================
RCS file: /src/ruby/ext/dbm/dbm.c,v
retrieving revision 1.26
diff -u -r1.26 dbm.c
--- ext/dbm/dbm.c	8 May 2004 08:11:47 -0000	1.26
+++ ext/dbm/dbm.c	16 May 2004 10:48:03 -0000
@@ -24,6 +24,8 @@
 
 static VALUE rb_cDBM, rb_eDBMError;
 
+#define RUBY_DBM_RW_BIT 0x20000000
+
 struct dbmdata {
     int  di_size;
     DBM *di_dbm;
@@ -78,12 +80,12 @@
     VALUE *argv;
     VALUE obj;
 {
-    VALUE file, vmode;
+    VALUE file, vmode, vflags;
     DBM *dbm;
     struct dbmdata *dbmp;
-    int mode;
+    int mode, flags = 0;
 
-    if (rb_scan_args(argc, argv, "11", &file, &vmode) == 1) {
+    if (rb_scan_args(argc, argv, "12", &file, &vmode, &vflags) == 1) {
 	mode = 0666;		/* default value */
     }
     else if (NIL_P(vmode)) {
@@ -92,17 +94,27 @@
     else {
 	mode = NUM2INT(vmode);
     }
+
+    if (!NIL_P(vflags))
+        flags = NUM2INT(vflags);
+
     SafeStringValue(file);
 
-    dbm = 0;
-    if (mode >= 0) {
-	dbm = dbm_open(RSTRING(file)->ptr, O_RDWR|O_CREAT, mode);
+    if (flags & RUBY_DBM_RW_BIT) {
+        flags &= ~RUBY_DBM_RW_BIT;
+        dbm = dbm_open(RSTRING(file)->ptr, flags, mode);
     }
-    if (!dbm) {
-	dbm = dbm_open(RSTRING(file)->ptr, O_RDWR, 0);
-    }
-    if (!dbm) {
-	dbm = dbm_open(RSTRING(file)->ptr, O_RDONLY, 0);
+    else {
+        dbm = 0;
+        if (mode >= 0) {
+            dbm = dbm_open(RSTRING(file)->ptr, O_RDWR|O_CREAT, mode);
+        }
+        if (!dbm) {
+            dbm = dbm_open(RSTRING(file)->ptr, O_RDWR, 0);
+        }
+        if (!dbm) {
+            dbm = dbm_open(RSTRING(file)->ptr, O_RDONLY, 0);
+        }
     }
 
     if (!dbm) {
@@ -786,6 +798,12 @@
 
     rb_define_method(rb_cDBM, "to_a", fdbm_to_a, 0);
     rb_define_method(rb_cDBM, "to_hash", fdbm_to_hash, 0);
+
+    /* flags for dbm_open() */
+    rb_define_const(rb_cDBM, "READER",  INT2FIX(O_RDONLY|RUBY_DBM_RW_BIT));
+    rb_define_const(rb_cDBM, "WRITER",  INT2FIX(O_RDWR|RUBY_DBM_RW_BIT));
+    rb_define_const(rb_cDBM, "WRCREAT", INT2FIX(O_RDWR|O_CREAT|RUBY_DBM_RW_BIT));
+    rb_define_const(rb_cDBM, "NEWDB",   INT2FIX(O_RDWR|O_CREAT|O_TRUNC|RUBY_DBM_RW_BIT));
 
 #ifdef DB_VERSION_STRING
     rb_define_const(rb_cDBM, "VERSION",  rb_str_new2(DB_VERSION_STRING));
Index: test/dbm/test_dbm.rb
===================================================================
RCS file: /src/ruby/test/dbm/test_dbm.rb,v
retrieving revision 1.1
diff -u -r1.1 test_dbm.rb
--- test/dbm/test_dbm.rb	7 May 2004 09:39:11 -0000	1.1
+++ test/dbm/test_dbm.rb	16 May 2004 10:48:03 -0000
@@ -11,7 +11,7 @@
   require 'fileutils'
 
   class TestDBM < Test::Unit::TestCase
-    TMPROOT = "#{Dir.tmpdir}/ruby-gdbm.#{$$}"
+    TMPROOT = "#{Dir.tmpdir}/ruby-dbm.#{$$}"
 
     def setup
       Dir.mkdir TMPROOT
@@ -21,8 +21,29 @@
       FileUtils.rm_rf TMPROOT if File.directory?(TMPROOT)
     end
 
+    def test_reader_open
+      DBM.open("#{TMPROOT}/a") {}
+      v = DBM.open("#{TMPROOT}/a", nil, DBM::READER) {|d|
+        assert_raises(DBMError, Errno::EPERM) { d["k"] = "v" }
+        true
+      }
+      assert(v)
+    end
+
+    def test_newdb_open
+      DBM.open("#{TMPROOT}/a") {|dbm|
+        dbm["k"] = "v"
+      }
+      v = DBM.open("#{TMPROOT}/a", nil, DBM::NEWDB) {|d|
+        assert_equal(0, d.length)
+        assert_nil(d["k"])
+        true
+      }
+      assert(v)
+    end
+
     def test_freeze
-      DBM.open("#{TMPROOT}/a.dbm") {|d|
+      DBM.open("#{TMPROOT}/a") {|d|
         d.freeze
         assert_raises(TypeError) { d["k"] = "v" }
       }
Index: test/gdbm/test_gdbm.rb
===================================================================
RCS file: /src/ruby/test/gdbm/test_gdbm.rb,v
retrieving revision 1.3
diff -u -r1.3 test_gdbm.rb
--- test/gdbm/test_gdbm.rb	7 May 2004 09:39:11 -0000	1.3
+++ test/gdbm/test_gdbm.rb	16 May 2004 10:48:03 -0000
@@ -21,10 +21,22 @@
       FileUtils.rm_rf TMPROOT if File.directory?(TMPROOT)
     end
 
-    def test_open
+    def test_reader_open
       GDBM.open("#{TMPROOT}/a.dbm") {}
       v = GDBM.open("#{TMPROOT}/a.dbm", nil, GDBM::READER) {|d|
         assert_raises(GDBMError) { d["k"] = "v" }
+        true
+      }
+      assert(v)
+    end
+
+    def test_newdb_open
+      GDBM.open("#{TMPROOT}/a.dbm") {|dbm|
+        dbm["k"] = "v"
+      } 
+      v = GDBM.open("#{TMPROOT}/a.dbm", nil, GDBM::NEWDB) {|d|
+        assert_equal(0, d.length)
+        assert_nil(d["k"])
         true
       }
       assert(v)

-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread

Prev Next