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/