diff options
Diffstat (limited to 'ext/curses')
-rw-r--r-- | ext/curses/curses.c | 11 | ||||
-rw-r--r-- | ext/curses/extconf.rb | 16 |
2 files changed, 15 insertions, 12 deletions
diff --git a/ext/curses/curses.c b/ext/curses/curses.c index e1080f1bd8..8aa095e5a5 100644 --- a/ext/curses/curses.c +++ b/ext/curses/curses.c @@ -14,11 +14,8 @@ */ #include "ruby.h" - -#include <stdio.h> #include "rubyio.h" -#define _XOPEN_SOURCE_EXTENDED 1 #if defined(HAVE_NCURSES_H) # include <ncurses.h> #elif defined(HAVE_NCURSES_CURSES_H) @@ -31,18 +28,18 @@ # if defined(__bsdi__) || defined(__NetBSD__) || defined(__APPLE__) # if !defined(_maxx) # define _maxx maxx -# endif +# endif # if !defined(_maxy) # define _maxy maxy -# endif +# endif # if !defined(_begx) # define _begx begx -# endif +# endif # if !defined(_begy) # define _begy begy +# endif # endif #endif -#endif #ifdef HAVE_INIT_COLOR # define USE_COLOR 1 diff --git a/ext/curses/extconf.rb b/ext/curses/extconf.rb index 46fcc8f471..a79cebf600 100644 --- a/ext/curses/extconf.rb +++ b/ext/curses/extconf.rb @@ -7,19 +7,25 @@ dir_config('termcap') make=false have_library("mytinfo", "tgetent") if /bow/ =~ RUBY_PLATFORM have_library("tinfo", "tgetent") or have_library("termcap", "tgetent") -if have_header("ncurses.h") and have_library("ncurses", "initscr") +if have_header(*curses=%w"ncurses.h") and have_library("ncurses", "initscr") make=true -elsif have_header("ncurses/curses.h") and have_library("ncurses", "initscr") +elsif have_header(*curses=%w"ncurses/curses.h") and have_library("ncurses", "initscr") make=true -elsif have_header("curses_colr/curses.h") and have_library("cur_colr", "initscr") +elsif have_header(*curses=%w"curses_colr/curses.h") and have_library("cur_colr", "initscr") + curses.unshift("varargs.h") + make=true +elsif have_header(*curses=%w"curses.h") and have_library("curses", "initscr") make=true -elsif have_header("curses.h") and have_library("curses", "initscr") - make=true end if make for f in %w(isendwin ungetch beep getnstr wgetnstr doupdate flash deleteln wdeleteln keypad keyname init_color wresize resizeterm) have_func(f) end + flag = "-D_XOPEN_SOURCE_EXTENDED" + src = "int test_var[(sizeof(char*)>sizeof(int))*2-1];" + if try_compile(cpp_include(%w[stdio.h stdlib.h]+curses)+src , flag) + $defs << flag + end create_makefile("curses") end |