summaryrefslogtreecommitdiff
path: root/ext/curses
diff options
context:
space:
mode:
Diffstat (limited to 'ext/curses')
-rw-r--r--ext/curses/curses.c11
-rw-r--r--ext/curses/extconf.rb16
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