[前][次][番号順一覧][スレッド一覧]

ruby-changes:22675

From: akr <ko1@a...>
Date: Wed, 22 Feb 2012 06:04:19 +0900 (JST)
Subject: [ruby-changes:22675] akr:r34724 (trunk): * ext/dbm/dbm.c (fdbm_initialize): disable Berkeley DB error messages.

akr	2012-02-22 06:04:04 +0900 (Wed, 22 Feb 2012)

  New Revision: 34724

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=34724

  Log:
    * ext/dbm/dbm.c (fdbm_initialize): disable Berkeley DB error messages.
    
    * ext/dbm/extconf.rb: check DBC type for above.
    
    [ruby-dev:45269]

  Modified files:
    trunk/ChangeLog
    trunk/ext/dbm/dbm.c
    trunk/ext/dbm/extconf.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 34723)
+++ ChangeLog	(revision 34724)
@@ -1,3 +1,11 @@
+Wed Feb 22 06:02:42 2012  Tanaka Akira  <akr@f...>
+
+	* ext/dbm/dbm.c (fdbm_initialize): disable Berkeley DB error messages.
+
+	* ext/dbm/extconf.rb: check DBC type for above.
+
+	[ruby-dev:45269]
+
 Tue Feb 21 20:23:47 2012  Nobuyoshi Nakada  <nobu@r...>
 
 	* hash.c (rb_any_hash): treat Qundef like as other special constants.
Index: ext/dbm/dbm.c
===================================================================
--- ext/dbm/dbm.c	(revision 34723)
+++ ext/dbm/dbm.c	(revision 34724)
@@ -196,6 +196,12 @@
 #if defined(HAVE_DBM_DIRFNO)
         rb_fd_fix_cloexec(dbm_dirfno(dbm));
 #endif
+
+#if defined(_DB_H_) && defined(HAVE_TYPE_DBC)
+    /* Disable Berkeley DB error messages such as:
+     * DB->put: attempt to modify a read-only database */
+        ((DBC*)dbm)->dbp->set_errfile(((DBC*)dbm)->dbp, NULL);
+#endif
     }
 
     if (!dbm) {
Index: ext/dbm/extconf.rb
===================================================================
--- ext/dbm/extconf.rb	(revision 34723)
+++ ext/dbm/extconf.rb	(revision 34724)
@@ -222,6 +222,11 @@
     return false
   end
 
+  # DBC type is required to disable error messages by Berkeley DB 2 or later.
+  if have_db_header
+    have_type("DBC", hdr, hsearch)
+  end
+
   if hsearch
     $defs << hsearch
     @defs = hsearch

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]