From 9fc31792ce55306e977f65d9a44f3da3e015a4cf Mon Sep 17 00:00:00 2001 From: akr Date: Wed, 22 Feb 2012 10:09:31 +0000 Subject: [PATCH] * ext/curses/extconf.rb: refactored. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34742 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ ext/curses/extconf.rb | 51 ++++++++++++++++++++++++++----------------- 2 files changed, 35 insertions(+), 20 deletions(-) diff --git a/ChangeLog b/ChangeLog index 763fe87b8a..ee69ea97c5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Wed Feb 22 19:08:55 2012 Tanaka Akira + + * ext/curses/extconf.rb: refactored. + Wed Feb 22 18:44:41 2012 Shota Fukumori * lib/test/unit.rb (setup_options): add option "--retry" as opposite diff --git a/ext/curses/extconf.rb b/ext/curses/extconf.rb index a23a64014e..cd8f685c8a 100644 --- a/ext/curses/extconf.rb +++ b/ext/curses/extconf.rb @@ -11,34 +11,45 @@ def transact 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 header_library + header, _ = header_library + curses = [header] + if header == 'curses_colr/curses.h' + curses.unshift("varargs.h") + end -if make for f in %w(beep bkgd bkgdset curs_set deleteln doupdate flash getbkgd getnstr init isendwin keyname keypad resizeterm scrl set setscrreg ungetch