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/