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

ruby-changes:22693

From: akr <ko1@a...>
Date: Wed, 22 Feb 2012 19:09:41 +0900 (JST)
Subject: [ruby-changes:22693] akr:r34742 (trunk): * ext/curses/extconf.rb: refactored.

akr	2012-02-22 19:09:31 +0900 (Wed, 22 Feb 2012)

  New Revision: 34742

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

  Log:
    * ext/curses/extconf.rb: refactored.

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

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 34741)
+++ ChangeLog	(revision 34742)
@@ -1,3 +1,7 @@
+Wed Feb 22 19:08:55 2012  Tanaka Akira  <akr@f...>
+
+	* ext/curses/extconf.rb: refactored.
+
 Wed Feb 22 18:44:41 2012  Shota Fukumori  <sorah@t...>
 
 	* lib/test/unit.rb (setup_options): add option "--retry" as opposite
Index: ext/curses/extconf.rb
===================================================================
--- ext/curses/extconf.rb	(revision 34741)
+++ ext/curses/extconf.rb	(revision 34742)
@@ -11,34 +11,45 @@
   result
 end
 
+def check_header_library(hdr, libs)
+  if !have_header(hdr)
+    return nil
+  end
+  libs.each {|lib|
+    if have_library(lib, "initscr")
+      return [hdr, lib]
+    end
+  }
+  nil
+end
+
 dir_config('curses')
 dir_config('ncurses')
 dir_config('termcap')
 
-make=false
-headers = []
-
 have_library("mytinfo", "tgetent") if /bow/ =~ RUBY_PLATFORM
 have_library("tinfo", "tgetent") or have_library("termcap", "tgetent")
 
-curses = nil
-if transact { have_header(*curses=%w"ncurses.h") and
-              (have_library("ncursesw", "initscr") or
-               have_library("ncurses", "initscr")) }
-  make=true
-elsif transact { have_header(*curses=%w"ncurses/curses.h") and
-                 have_library("ncurses", "initscr") }
-  make=true
-elsif transact { have_header(*curses=%w"curses_colr/curses.h") and
-                 have_library("cur_colr", "initscr") }
-  curses.unshift("varargs.h")
-  make=true
-elsif transact { have_header(*curses=%w"curses.h") and
-                 have_library("curses", "initscr") }
-  make=true
-end
+header_library = nil
+[
+  ["ncurses.h", ["ncursesw", "ncurses"]],
+  ["ncurses/curses.h", ["ncurses"]],
+  ["curses_colr/curses.h", ["cur_colr"]],
+  ["curses.h", ["curses"]],
+].each {|hdr, libs|
+  header_library = transact { check_header_library(hdr, libs) }
+  if header_library
+    break;
+  end
+}
 
-if make
+if header_library
+  header, _ = header_library
+  curses = [header]
+  if header == 'curses_colr/curses.h'
+    curses.unshift("varargs.h")
+  end
+
   for f in %w(beep bkgd bkgdset curs_set deleteln doupdate flash
               getbkgd getnstr init isendwin keyname keypad resizeterm
               scrl set setscrreg ungetch

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

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