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

ruby-changes:22598

From: akr <ko1@a...>
Date: Fri, 17 Feb 2012 07:32:55 +0900 (JST)
Subject: [ruby-changes:22598] akr:r34647 (trunk): * ext/dbm/extconf.rb: refactored to split too long conditions.

akr	2012-02-17 07:32:10 +0900 (Fri, 17 Feb 2012)

  New Revision: 34647

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

  Log:
    * ext/dbm/extconf.rb: refactored to split too long conditions.

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

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 34646)
+++ ChangeLog	(revision 34647)
@@ -1,3 +1,7 @@
+Fri Feb 17 07:30:53 2012  Tanaka Akira  <akr@f...>
+
+	* ext/dbm/extconf.rb: refactored to split too long conditions.
+
 Fri Feb 17 00:23:25 2012  Tanaka Akira  <akr@f...>
 
 	* test/dbm/test_dbm.rb: fix skip condition for libgdbm 1.8.0 or prior.
Index: ext/dbm/extconf.rb
===================================================================
--- ext/dbm/extconf.rb	(revision 34646)
+++ ext/dbm/extconf.rb	(revision 34647)
@@ -76,33 +76,44 @@
     have_library("gdbm") or return false
   end
 
-  if have_type("DBM", hdr, hsearch) and
-     (db == 'libc' ? have_func('dbm_open("", 0, 0)', hdr, hsearch) :
-                     have_library(db, 'dbm_open("", 0, 0)', hdr, hsearch)) and
-     have_func('dbm_clearerr((DBM *)0)', hdr, hsearch) and
-     (/\Adb\d?\z/ =~ db || db == 'libc' || !have_macro('_DB_H_', hdr, hsearch)) # _DB_H_ should not be defined except Berkeley DB.
-    case db
-    when /\Adb\d?\z/
-      have_func('db_version((int *)0, (int *)0, (int *)0)', hdr, hsearch)
-    when /\Agdbm/
-      have_var("gdbm_version", hdr, hsearch)
-      # gdbm_version is not declared by ndbm.h until gdbm 1.8.3.
-      # We can't include ndbm.h and gdbm.h because they both define datum type.
-      # ndbm.h includes gdbm.h and gdbm_version is declared since gdbm 1.9.
-      have_libvar(["gdbm_version", "char *"], hdr, hsearch)
-    when /\Aqdbm\z/
-      have_var("dpversion", hdr, hsearch)
-    end
-    if hsearch
-      $defs << hsearch
-      @defs = hsearch
-    end
-    $defs << '-DDBM_HDR="<'+hdr+'>"'
-    @found << hdr
-    true
-  else
-    false
+  if !have_type("DBM", hdr, hsearch)
+    return false
   end
+
+  if !(db == 'libc' ? have_func('dbm_open("", 0, 0)', hdr, hsearch) :
+                      have_library(db, 'dbm_open("", 0, 0)', hdr, hsearch))
+    return false
+  end
+
+  if !have_func('dbm_clearerr((DBM *)0)', hdr, hsearch)
+    return false
+  end
+
+  # _DB_H_ should not be defined except Berkeley DB.
+  if !(/\Adb\d?\z/ =~ db || db == 'libc' || !have_macro('_DB_H_', hdr, hsearch))
+    return false
+  end
+
+  case db
+  when /\Adb\d?\z/
+    have_func('db_version((int *)0, (int *)0, (int *)0)', hdr, hsearch)
+  when /\Agdbm/
+    have_var("gdbm_version", hdr, hsearch)
+    # gdbm_version is not declared by ndbm.h until gdbm 1.8.3.
+    # We can't include ndbm.h and gdbm.h because they both define datum type.
+    # ndbm.h includes gdbm.h and gdbm_version is declared since gdbm 1.9.
+    have_libvar(["gdbm_version", "char *"], hdr, hsearch)
+  when /\Aqdbm\z/
+    have_var("dpversion", hdr, hsearch)
+  end
+  if hsearch
+    $defs << hsearch
+    @defs = hsearch
+  end
+  $defs << '-DDBM_HDR="<'+hdr+'>"'
+  @found << hdr
+
+  true
 end
 
 if dblib.any? {|db| headers.fetch(db, ["ndbm.h"]).any? {|hdr| headers.db_check(db, hdr) } }

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

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