Only in ncurses-5.9/: bash.exe.stackdump
diff -upr orig/ncurses-5.9/c++/cursesp.h ncurses-5.9/c++/cursesp.h
--- orig/ncurses-5.9/c++/cursesp.h	2008-08-17 02:20:23.000000000 +0900
+++ ncurses-5.9/c++/cursesp.h	2013-03-03 19:18:02.884890400 +0900
@@ -109,7 +109,11 @@ public:
   // Create a panel with this size starting at the requested position.
 
   NCursesPanel()
+#if defined __CYGWIN__
+    : NCursesWindow(stdscr), p(0)
+#else
     : NCursesWindow(::stdscr), p(0)
+#endif
   {
     init();
   }
diff -upr orig/ncurses-5.9/c++/cursesw.cc ncurses-5.9/c++/cursesw.cc
--- orig/ncurses-5.9/c++/cursesw.cc	2009-03-29 06:31:37.000000000 +0900
+++ ncurses-5.9/c++/cursesw.cc	2013-03-03 19:19:48.938037500 +0900
@@ -217,7 +217,11 @@ NCursesWindow::NCursesWindow(WINDOW* win
     // "::stdscr", that is first set via the "constructing() call, and is null
     // up to that point.  So we allow a null pointer here as meaning the "same"
     // as "::stdscr".
+#if defined __CYGWIN__
+    w = window ? window : stdscr;
+#else
     w = window ? window : ::stdscr;
+#endif
     set_keyboard();
 }
 
diff -upr orig/ncurses-5.9/form/form.h ncurses-5.9/form/form.h
--- orig/ncurses-5.9/form/form.h	2009-11-08 04:31:11.000000000 +0900
+++ ncurses-5.9/form/form.h	2013-03-03 19:10:35.181269600 +0900
@@ -287,18 +287,40 @@ typedef void (*Form_Hook)(FORM *);
 	/*************************
 	*  standard field types  *
 	*************************/
+#if defined __CYGWIN__
+NCURSES_WRAPPED_VAR(FIELDTYPE **, TYPE_ALPHA);
+NCURSES_WRAPPED_VAR(FIELDTYPE **, TYPE_ALNUM);
+NCURSES_WRAPPED_VAR(FIELDTYPE **, TYPE_ENUM);
+NCURSES_WRAPPED_VAR(FIELDTYPE **, TYPE_INTEGER);
+NCURSES_WRAPPED_VAR(FIELDTYPE **, TYPE_NUMERIC);
+NCURSES_WRAPPED_VAR(FIELDTYPE **, TYPE_REGEXP);
+
+#define TYPE_ALPHA      (*NCURSES_PUBLIC_VAR(TYPE_ALPHA()))
+#define TYPE_ALNUM      (*NCURSES_PUBLIC_VAR(TYPE_ALNUM()))
+#define TYPE_ENUM      (*NCURSES_PUBLIC_VAR(TYPE_ENUM()))
+#define TYPE_INTEGER      (*NCURSES_PUBLIC_VAR(TYPE_INTEGER()))
+#define TYPE_NUMERIC      (*NCURSES_PUBLIC_VAR(TYPE_NUMERIC()))
+#define TYPE_REGEXP      (*NCURSES_PUBLIC_VAR(TYPE_REGEXP()))
+#else
 extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_ALPHA;
 extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_ALNUM;
 extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_ENUM;
 extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_INTEGER;
 extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_NUMERIC;
 extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_REGEXP;
+#endif
 
 	/************************************
 	*  built-in additional field types  *
 	*  They are not defined in SVr4     *
 	************************************/
+#if defined __CYGWIN__
+NCURSES_WRAPPED_VAR(FIELDTYPE **, TYPE_IPV4);      /* Internet IP Version 4 address */
+
+#define TYPE_IPV4      (*NCURSES_PUBLIC_VAR(TYPE_IPV4()))
+#else
 extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_IPV4;      /* Internet IP Version 4 address */
+#endif
 
 	/***********************
 	*  FIELDTYPE routines  *
diff -upr orig/ncurses-5.9/form/fty_alnum.c ncurses-5.9/form/fty_alnum.c
--- orig/ncurses-5.9/form/fty_alnum.c	2010-01-24 06:14:36.000000000 +0900
+++ ncurses-5.9/form/fty_alnum.c	2013-03-03 18:27:04.999095500 +0900
@@ -185,7 +185,17 @@ static FIELDTYPE typeTHIS =
 #endif
 };
 
+#if defined __CYGWIN__
+static FIELDTYPE* _TYPE_ALNUM = &typeTHIS;
+
+NCURSES_EXPORT(FIELDTYPE**)
+NCURSES_PUBLIC_VAR(TYPE_ALNUM) (void)
+{
+    return &_TYPE_ALNUM;
+}
+#else
 NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ALNUM = &typeTHIS;
+#endif
 
 #if NCURSES_INTEROP_FUNCS
 /* The next routines are to simplify the use of ncurses from
diff -upr orig/ncurses-5.9/form/fty_alpha.c ncurses-5.9/form/fty_alpha.c
--- orig/ncurses-5.9/form/fty_alpha.c	2010-01-24 06:14:36.000000000 +0900
+++ ncurses-5.9/form/fty_alpha.c	2013-03-03 18:31:23.485453700 +0900
@@ -185,7 +185,17 @@ static FIELDTYPE typeTHIS =
 #endif
 };
 
+#if defined __CYGWIN__
+static FIELDTYPE* _TYPE_ALPHA = &typeTHIS;
+
+NCURSES_EXPORT(FIELDTYPE**)
+NCURSES_PUBLIC_VAR(TYPE_ALPHA) (void)
+{
+    return &_TYPE_ALPHA;
+}
+#else
 NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ALPHA = &typeTHIS;
+#endif
 
 #if NCURSES_INTEROP_FUNCS
 /* The next routines are to simplify the use of ncurses from
diff -upr orig/ncurses-5.9/form/fty_enum.c ncurses-5.9/form/fty_enum.c
--- orig/ncurses-5.9/form/fty_enum.c	2010-05-02 06:11:07.000000000 +0900
+++ ncurses-5.9/form/fty_enum.c	2013-03-03 18:33:34.968635800 +0900
@@ -424,8 +424,18 @@ static FIELDTYPE typeENUM =
 #endif
 };
 
+#if defined __CYGWIN__
+static FIELDTYPE * _TYPE_ENUM = &typeENUM;
+
+NCURSES_EXPORT(FIELDTYPE**)
+NCURSES_PUBLIC_VAR(TYPE_ENUM) (void)
+{
+    return &_TYPE_ENUM;
+}
+#else
 NCURSES_EXPORT_VAR(FIELDTYPE *)
 TYPE_ENUM = &typeENUM;
+#endif
 
 #if NCURSES_INTEROP_FUNCS
 /* The next routines are to simplify the use of ncurses from
diff -upr orig/ncurses-5.9/form/fty_int.c ncurses-5.9/form/fty_int.c
--- orig/ncurses-5.9/form/fty_int.c	2010-01-24 06:14:36.000000000 +0900
+++ ncurses-5.9/form/fty_int.c	2013-03-03 19:08:20.556083000 +0900
@@ -276,7 +276,17 @@ static FIELDTYPE typeTHIS =
 #endif
 };
 
+#if defined __CYGWIN__
+static FIELDTYPE * _TYPE_INTEGER = &typeTHIS;
+
+NCURSES_EXPORT(FIELDTYPE**)
+NCURSES_PUBLIC_VAR(TYPE_INTEGER) (void)
+{
+    return &_TYPE_INTEGER;
+}
+#else
 NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_INTEGER = &typeTHIS;
+#endif
 
 #if NCURSES_INTEROP_FUNCS
 /* The next routines are to simplify the use of ncurses from
diff -upr orig/ncurses-5.9/form/fty_ipv4.c ncurses-5.9/form/fty_ipv4.c
--- orig/ncurses-5.9/form/fty_ipv4.c	2009-11-08 05:17:58.000000000 +0900
+++ ncurses-5.9/form/fty_ipv4.c	2013-03-03 19:09:44.234198900 +0900
@@ -103,7 +103,17 @@ static FIELDTYPE typeIPV4 =
 #endif
 };
 
+#if defined __CYGWIN__
+static FIELDTYPE * _TYPE_IPV4 = &typeIPV4;
+
+NCURSES_EXPORT(FIELDTYPE**)
+NCURSES_PUBLIC_VAR(TYPE_IPV4) (void)
+{
+    return &_TYPE_IPV4;
+}
+#else
 NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_IPV4 = &typeIPV4;
+#endif
 
 #if NCURSES_INTEROP_FUNCS
 /* The next routines are to simplify the use of ncurses from
diff -upr orig/ncurses-5.9/form/fty_num.c ncurses-5.9/form/fty_num.c
--- orig/ncurses-5.9/form/fty_num.c	2010-01-24 06:14:36.000000000 +0900
+++ ncurses-5.9/form/fty_num.c	2013-03-03 19:11:50.700374300 +0900
@@ -322,7 +322,17 @@ static FIELDTYPE typeTHIS =
 #endif
 };
 
+#if defined __CYGWIN__
+static FIELDTYPE * _TYPE_NUMERIC = &typeTHIS;
+
+NCURSES_EXPORT(FIELDTYPE**)
+NCURSES_PUBLIC_VAR(TYPE_NUMERIC) (void)
+{
+    return &_TYPE_NUMERIC;
+}
+#else
 NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_NUMERIC = &typeTHIS;
+#endif
 
 #if NCURSES_INTEROP_FUNCS
 /* The next routines are to simplify the use of ncurses from
diff -upr orig/ncurses-5.9/form/fty_regex.c ncurses-5.9/form/fty_regex.c
--- orig/ncurses-5.9/form/fty_regex.c	2010-01-24 06:14:37.000000000 +0900
+++ ncurses-5.9/form/fty_regex.c	2013-03-03 19:13:06.500479500 +0900
@@ -333,7 +333,17 @@ static FIELDTYPE typeREGEXP =
 #endif
 };
 
+#if defined __CYGWIN__
+static FIELDTYPE * _TYPE_REGEXP = &typeREGEXP;
+
+NCURSES_EXPORT(FIELDTYPE**)
+NCURSES_PUBLIC_VAR(TYPE_REGEXP) (void)
+{
+    return &_TYPE_REGEXP;
+}
+#else
 NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_REGEXP = &typeREGEXP;
+#endif
 
 #if NCURSES_INTEROP_FUNCS
 /* The next routines are to simplify the use of ncurses from
diff -upr orig/ncurses-5.9/include/curses.h.in ncurses-5.9/include/curses.h.in
--- orig/ncurses-5.9/include/curses.h.in	2011-01-23 04:47:20.000000000 +0900
+++ ncurses-5.9/include/curses.h.in	2013-03-05 20:38:15.376914400 +0900
@@ -104,6 +104,13 @@
 #endif
 
 /*
+ *
+ */
+#ifndef BROKEN_LINKER
+#define BROKEN_LINKER @BROKEN_LINKER@
+#endif
+
+/*
  * The reentrant code relies on the opaque setting, but adds features.
  */
 #ifndef NCURSES_REENTRANT
@@ -243,9 +250,9 @@ extern "C" {
 
 /* line graphics */
 
-#if @BROKEN_LINKER@ || NCURSES_REENTRANT
-NCURSES_WRAPPED_VAR(chtype*, acs_map);
-#define acs_map NCURSES_PUBLIC_VAR(acs_map())
+#if BROKEN_LINKER || NCURSES_REENTRANT
+NCURSES_WRAPPED_VAR(chtype**, acs_map);
+#define acs_map (*NCURSES_PUBLIC_VAR(acs_map()))
 #else
 extern NCURSES_EXPORT_VAR(chtype) acs_map[];
 #endif
@@ -1353,6 +1360,29 @@ NCURSES_WRAPPED_VAR(int, TABSIZE);
 
 #else
 
+#if defined __CYGWIN__
+NCURSES_WRAPPED_VAR(WINDOW **, curscr);
+NCURSES_WRAPPED_VAR(WINDOW **, newscr);
+NCURSES_WRAPPED_VAR(WINDOW **, stdscr);
+NCURSES_WRAPPED_VAR(char**, ttytype);
+NCURSES_WRAPPED_VAR(int*, COLORS);
+NCURSES_WRAPPED_VAR(int*, COLOR_PAIRS);
+NCURSES_WRAPPED_VAR(int*, COLS);
+NCURSES_WRAPPED_VAR(int*, ESCDELAY);
+NCURSES_WRAPPED_VAR(int*, LINES);
+NCURSES_WRAPPED_VAR(int*, TABSIZE);
+
+#define curscr      (*NCURSES_PUBLIC_VAR(curscr()))
+#define newscr      (*NCURSES_PUBLIC_VAR(newscr()))
+#define stdscr      (*NCURSES_PUBLIC_VAR(stdscr()))
+#define ttytype      (*NCURSES_PUBLIC_VAR(ttytype()))
+#define COLORS      (*NCURSES_PUBLIC_VAR(COLORS()))
+#define COLOR_PAIRS      (*NCURSES_PUBLIC_VAR(COLOR_PAIRS()))
+#define COLS      (*NCURSES_PUBLIC_VAR(COLS()))
+#define ESCDELAY      (*NCURSES_PUBLIC_VAR(ESCDELAY()))
+#define LINES      (*NCURSES_PUBLIC_VAR(LINES()))
+#define TABSIZE      (*NCURSES_PUBLIC_VAR(TABSIZE()))
+#else
 extern NCURSES_EXPORT_VAR(WINDOW *) curscr;
 extern NCURSES_EXPORT_VAR(WINDOW *) newscr;
 extern NCURSES_EXPORT_VAR(WINDOW *) stdscr;
@@ -1363,6 +1393,7 @@ extern NCURSES_EXPORT_VAR(int) COLS;
 extern NCURSES_EXPORT_VAR(int) ESCDELAY;
 extern NCURSES_EXPORT_VAR(int) LINES;
 extern NCURSES_EXPORT_VAR(int) TABSIZE;
+#endif
 
 #endif
 
diff -upr orig/ncurses-5.9/include/MKterm.h.awk.in ncurses-5.9/include/MKterm.h.awk.in
--- orig/ncurses-5.9/include/MKterm.h.awk.in	2010-01-10 04:53:26.000000000 +0900
+++ ncurses-5.9/include/MKterm.h.awk.in	2013-03-03 18:37:45.172982500 +0900
@@ -264,6 +264,27 @@ END		{
 			print  ""
 			print  "#else"
 			print  ""
+			print  "#if defined __CYGWIN__"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const **) boolnames;"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const **) boolcodes;"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const **) boolfnames;"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const **) numnames;"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const **) numcodes;"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const **) numfnames;"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const **) strnames;"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const **) strcodes;"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const **) strfnames;"
+			print  ""
+			print  "#define boolnames  (*NCURSES_PUBLIC_VAR(boolnames()))"
+			print  "#define boolcodes  (*NCURSES_PUBLIC_VAR(boolcodes()))"
+			print  "#define boolfnames (*NCURSES_PUBLIC_VAR(boolfnames()))"
+			print  "#define numnames   (*NCURSES_PUBLIC_VAR(numnames()))"
+			print  "#define numcodes   (*NCURSES_PUBLIC_VAR(numcodes()))"
+			print  "#define numfnames  (*NCURSES_PUBLIC_VAR(numfnames()))"
+			print  "#define strnames   (*NCURSES_PUBLIC_VAR(strnames()))"
+			print  "#define strcodes   (*NCURSES_PUBLIC_VAR(strcodes()))"
+			print  "#define strfnames  (*NCURSES_PUBLIC_VAR(strfnames()))"
+			print  "#else"
 			print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolnames[];"
 			print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolcodes[];"
 			print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolfnames[];"
@@ -273,6 +294,7 @@ END		{
 			print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strnames[];"
 			print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strcodes[];"
 			print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strfnames[];"
+			print  "#endif"
 			print  ""
 			print  "#endif"
 			print  ""
diff -upr orig/ncurses-5.9/include/ncurses_dll.h.in ncurses-5.9/include/ncurses_dll.h.in
--- orig/ncurses-5.9/include/ncurses_dll.h.in	2009-04-05 07:26:27.000000000 +0900
+++ ncurses-5.9/include/ncurses_dll.h.in	2013-03-03 20:38:54.820619500 +0900
@@ -67,6 +67,8 @@
 #  define NCURSES_API __cdecl
 #  define NCURSES_EXPORT(type) NCURSES_IMPEXP type NCURSES_API
 #  define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type
+#  undef NCURSES_WRAPPED_VAR
+#  define NCURSES_WRAPPED_VAR(type,name) extern NCURSES_IMPEXP type NCURSES_API NCURSES_PUBLIC_VAR(name)(void)
 #endif
 
 /* Take care of non-cygwin platforms */
diff -upr orig/ncurses-5.9/include/term_entry.h ncurses-5.9/include/term_entry.h
--- orig/ncurses-5.9/include/term_entry.h	2009-07-12 01:52:29.000000000 +0900
+++ ncurses-5.9/include/term_entry.h	2013-03-03 18:36:50.577906800 +0900
@@ -97,8 +97,16 @@ ENTRY;
 #define ExtNumname(tp,i,names)  EXT_NAMES(tp, i, NUMCOUNT, (i - (tp->num_Numbers - tp->ext_Numbers)) + tp->ext_Booleans, names)
 #define ExtStrname(tp,i,names)  EXT_NAMES(tp, i, STRCOUNT, (i - (tp->num_Strings - tp->ext_Strings)) + (tp->ext_Numbers + tp->ext_Booleans), names)
 
+#if defined __CYGWIN__
+NCURSES_WRAPPED_VAR(ENTRY **, _head);
+NCURSES_WRAPPED_VAR(ENTRY **, _tail);
+
+#define _nc_head      (*NCURSES_PUBLIC_VAR(_head()))
+#define _nc_tail      (*NCURSES_PUBLIC_VAR(_tail()))
+#else
 extern NCURSES_EXPORT_VAR(ENTRY *) _nc_head;
 extern NCURSES_EXPORT_VAR(ENTRY *) _nc_tail;
+#endif
 #define for_entry_list(qp)	for (qp = _nc_head; qp; qp = qp->next)
 
 #define MAX_LINE	132
@@ -145,9 +153,17 @@ extern NCURSES_EXPORT(char *) _nc_trim_s
 
 /* parse_entry.c: entry-parsing code */
 #if NCURSES_XNAMES
+#if defined __CYGWIN__
+NCURSES_WRAPPED_VAR(bool*, _user_definable);
+NCURSES_WRAPPED_VAR(bool*, _disable_period);
+
+#define _nc_user_definable      (*NCURSES_PUBLIC_VAR(_user_definable()))
+#define _nc_disable_period      (*NCURSES_PUBLIC_VAR(_disable_period()))
+#else
 extern NCURSES_EXPORT_VAR(bool) _nc_user_definable;
 extern NCURSES_EXPORT_VAR(bool) _nc_disable_period;
 #endif
+#endif
 extern NCURSES_EXPORT(int) _nc_parse_entry (ENTRY *, int, bool);
 extern NCURSES_EXPORT(int) _nc_capcmp (const char *, const char *);
 
diff -upr orig/ncurses-5.9/include/termcap.h.in ncurses-5.9/include/termcap.h.in
--- orig/ncurses-5.9/include/termcap.h.in	2001-03-25 06:53:27.000000000 +0900
+++ ncurses-5.9/include/termcap.h.in	2013-03-03 18:40:52.032241400 +0900
@@ -54,10 +54,22 @@ extern "C"
 #undef  NCURSES_OSPEED 
 #define NCURSES_OSPEED @NCURSES_OSPEED@ 
 
+#if defined __CYGWIN__
+NCURSES_WRAPPED_VAR(char*, PC);
+NCURSES_WRAPPED_VAR(char **, UP);
+NCURSES_WRAPPED_VAR(char **, BC);
+NCURSES_WRAPPED_VAR(NCURSES_OSPEED*, _ospeed); 
+
+#define PC      (*NCURSES_PUBLIC_VAR(PC()))
+#define UP      (*NCURSES_PUBLIC_VAR(UP()))
+#define BC      (*NCURSES_PUBLIC_VAR(BC()))
+#define ospeed      (*NCURSES_PUBLIC_VAR(_ospeed()))
+#else
 extern NCURSES_EXPORT_VAR(char) PC;
 extern NCURSES_EXPORT_VAR(char *) UP;
 extern NCURSES_EXPORT_VAR(char *) BC;
 extern NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed; 
+#endif
 
 #if !defined(NCURSES_TERM_H_incl)
 extern NCURSES_EXPORT(char *) tgetstr (NCURSES_CONST char *, char **);
diff -upr orig/ncurses-5.9/include/tic.h ncurses-5.9/include/tic.h
--- orig/ncurses-5.9/include/tic.h	2009-08-09 02:52:46.000000000 +0900
+++ ncurses-5.9/include/tic.h	2013-03-05 12:37:36.723803800 +0900
@@ -127,7 +127,13 @@ extern "C" {
 #define DEBUG(n, a)	/*nothing*/
 #endif
 
+#if defined __CYGWIN__
+NCURSES_WRAPPED_VAR(unsigned*, _tracing);
+
+#define _nc_tracing      (*NCURSES_PUBLIC_VAR(_tracing()))
+#else
 extern NCURSES_EXPORT_VAR(unsigned) _nc_tracing;
+#endif
 extern NCURSES_EXPORT(void) _nc_tracef (char *, ...) GCC_PRINTFLIKE(1,2);
 extern NCURSES_EXPORT(const char *) _nc_visbuf (const char *);
 extern NCURSES_EXPORT(const char *) _nc_visbuf2 (int, const char *);
@@ -161,7 +167,13 @@ struct token
 	char	*tk_valstring;	/* value of capability (if a string) */
 };
 
+#if defined __CYGWIN__
+NCURSES_WRAPPED_VAR(struct token*,	_curr_token);
+
+#define _nc_curr_token      (*NCURSES_PUBLIC_VAR(_curr_token()))
+#else
 extern NCURSES_EXPORT_VAR(struct token)	_nc_curr_token;
+#endif
 
 	/*
 	 * Offsets to string capabilities, with the corresponding functionkey
@@ -179,7 +191,13 @@ extern NCURSES_EXPORT(const struct tinfo
 
 #else
 
+#if 0/*defined __CYGWIN__*/
+NCURSES_WRAPPED_VAR(const struct tinfo_fkeys **, _tinfo_fkeys);
+
+#define _nc_tinfo_fkeys      (*NCURSES_PUBLIC_VAR(_tinfo_fkeys()))
+#else
 extern NCURSES_EXPORT_VAR(const struct tinfo_fkeys) _nc_tinfo_fkeys[];
+#endif
 
 #endif
 
@@ -267,6 +285,23 @@ extern NCURSES_EXPORT(int)  _nc_get_toke
 extern NCURSES_EXPORT(void) _nc_panic_mode (char);
 extern NCURSES_EXPORT(void) _nc_push_token (int);
 extern NCURSES_EXPORT(void) _nc_reset_input (FILE *, char *);
+#if defined __CYGWIN__
+NCURSES_WRAPPED_VAR(int *, _curr_col);
+NCURSES_WRAPPED_VAR(int *, _curr_line);
+NCURSES_WRAPPED_VAR(int *, _syntax);
+NCURSES_WRAPPED_VAR(long *, _comment_end);
+NCURSES_WRAPPED_VAR(long *, _comment_start);
+NCURSES_WRAPPED_VAR(long *, _curr_file_pos);
+NCURSES_WRAPPED_VAR(long *, _start_line);
+
+#define _nc_curr_col      (*NCURSES_PUBLIC_VAR(_curr_col()))
+#define _nc_curr_line      (*NCURSES_PUBLIC_VAR(_curr_line()))
+#define _nc_syntax      (*NCURSES_PUBLIC_VAR(_syntax()))
+#define _nc_comment_end      (*NCURSES_PUBLIC_VAR(_comment_end()))
+#define _nc_comment_start      (*NCURSES_PUBLIC_VAR(_comment_start()))
+#define _nc_curr_file_pos      (*NCURSES_PUBLIC_VAR(_curr_file_pos()))
+#define _nc_start_line      (*NCURSES_PUBLIC_VAR(_start_line()))
+#else
 extern NCURSES_EXPORT_VAR(int) _nc_curr_col;
 extern NCURSES_EXPORT_VAR(int) _nc_curr_line;
 extern NCURSES_EXPORT_VAR(int) _nc_syntax;
@@ -274,6 +309,7 @@ extern NCURSES_EXPORT_VAR(long) _nc_comm
 extern NCURSES_EXPORT_VAR(long) _nc_comment_start;
 extern NCURSES_EXPORT_VAR(long) _nc_curr_file_pos;
 extern NCURSES_EXPORT_VAR(long) _nc_start_line;
+#endif
 #define SYN_TERMINFO	0
 #define SYN_TERMCAP	1
 
@@ -285,7 +321,13 @@ extern NCURSES_EXPORT(void) _nc_set_sour
 extern NCURSES_EXPORT(void) _nc_set_type (const char *const);
 extern NCURSES_EXPORT(void) _nc_syserr_abort (const char *const,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
 extern NCURSES_EXPORT(void) _nc_warning (const char *const,...) GCC_PRINTFLIKE(1,2);
+#if defined __CYGWIN__
+NCURSES_WRAPPED_VAR(bool *, _suppress_warnings);
+
+#define _nc_suppress_warnings      (*NCURSES_PUBLIC_VAR(_suppress_warnings()))
+#else
 extern NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings;
+#endif
 
 /* comp_expand.c: expand string into readable form */
 extern NCURSES_EXPORT(char *) _nc_tic_expand (const char *, bool, int);
@@ -303,12 +345,24 @@ extern NCURSES_EXPORT(char *) _nc_home_t
 /* lib_tparm.c */
 #define NUM_PARM 9
 
+#if defined __CYGWIN__
+NCURSES_WRAPPED_VAR(int *, _tparm_err);
+
+#define _nc_tparm_err      (*NCURSES_PUBLIC_VAR(_tparm_err()))
+#else
 extern NCURSES_EXPORT_VAR(int) _nc_tparm_err;
+#endif
 
 extern NCURSES_EXPORT(int) _nc_tparm_analyze(const char *, char **, int *);
 
 /* lib_tputs.c */
+#if defined __CYGWIN__
+NCURSES_WRAPPED_VAR(int*, _nulls_sent);		/* Add one for every null sent */
+
+#define _nc_nulls_sent      (*NCURSES_PUBLIC_VAR(_nulls_sent()))
+#else
 extern NCURSES_EXPORT_VAR(int) _nc_nulls_sent;		/* Add one for every null sent */
+#endif
 
 /* comp_main.c: compiler main */
 extern const char * _nc_progname;
diff -upr orig/ncurses-5.9/ncurses/base/lib_color.c ncurses-5.9/ncurses/base/lib_color.c
--- orig/ncurses-5.9/ncurses/base/lib_color.c	2010-04-25 07:57:53.000000000 +0900
+++ ncurses-5.9/ncurses/base/lib_color.c	2013-03-03 15:38:03.978039100 +0900
@@ -83,9 +83,25 @@ NCURSES_PUBLIC_VAR(COLORS) (void)
     return SP ? SP->_color_count : -1;
 }
 #else
+#if defined __CYGWIN__
+static int _COLOR_PAIRS = 0;
+static int _COLORS = 0;
+
+NCURSES_EXPORT(int*)
+NCURSES_PUBLIC_VAR(COLOR_PAIRS) (void)
+{
+    return &_COLOR_PAIRS;
+}
+NCURSES_EXPORT(int*)
+NCURSES_PUBLIC_VAR(COLORS) (void)
+{
+    return &_COLORS;
+}
+#else
 NCURSES_EXPORT_VAR(int) COLOR_PAIRS = 0;
 NCURSES_EXPORT_VAR(int) COLORS = 0;
 #endif
+#endif
 #endif /* !USE_TERM_DRIVER */
 
 #define DATA(r,g,b) {r,g,b, 0,0,0, 0}
@@ -131,9 +147,25 @@ static const color_t hls_palette[] =
 };
 
 #ifdef USE_TERM_DRIVER
+#if defined __CYGWIN__
+static const color_t* _nc_cga_palette = cga_palette;
+static const color_t* _nc_hls_palette = hls_palette;
+
+NCURSES_EXPORT(const color_t*)
+NCURSES_PUBLIC_VAR(_nc_cga_palette) (void)
+{
+    return &_nc_hls_palette;
+}
+NCURSES_EXPORT(const color_t*)
+NCURSES_PUBLIC_VAR(_nc_hls_palette) (void)
+{
+    return &_nc_hls_palette;
+}
+#else
 NCURSES_EXPORT_VAR(const color_t*) _nc_cga_palette = cga_palette;
 NCURSES_EXPORT_VAR(const color_t*) _nc_hls_palette = hls_palette;
 #endif
+#endif
 
 /* *INDENT-ON* */
 
diff -upr orig/ncurses-5.9/ncurses/base/lib_getch.c ncurses-5.9/ncurses/base/lib_getch.c
--- orig/ncurses-5.9/ncurses/base/lib_getch.c	2010-12-26 08:24:04.000000000 +0900
+++ ncurses-5.9/ncurses/base/lib_getch.c	2013-03-03 15:50:44.712093600 +0900
@@ -61,8 +61,18 @@ _nc_ptr_Escdelay(SCREEN *sp)
 }
 #else
 #define GetEscdelay(sp) ESCDELAY
+#if defined __CYGWIN__
+static int _ESCDELAY = 1000;
+
+NCURSES_EXPORT(int*)
+NCURSES_PUBLIC_VAR(ESCDELAY) (void)
+{
+    return &_ESCDELAY;
+}
+#else
 NCURSES_EXPORT_VAR(int) ESCDELAY = 1000;
 #endif
+#endif
 
 #if NCURSES_EXT_FUNCS
 NCURSES_EXPORT(int)
diff -upr orig/ncurses-5.9/ncurses/curses.priv.h ncurses-5.9/ncurses/curses.priv.h
--- orig/ncurses-5.9/ncurses/curses.priv.h	2011-01-23 06:10:19.000000000 +0900
+++ ncurses-5.9/ncurses/curses.priv.h	2013-03-03 16:43:38.683492500 +0900
@@ -857,7 +857,11 @@ typedef struct {
 #endif
 } NCURSES_GLOBALS;
 
+#if defined __CYGWIN__
+extern NCURSES_GLOBALS _nc_globals;
+#else
 extern NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals;
+#endif
 
 #define N_RIPS 5
 
@@ -904,7 +908,11 @@ typedef struct {
 #define safe_ripoff_stack  _nc_prescreen.rippedoff
 #endif
 
+#if defined __CYGWIN__
+extern NCURSES_PRESCREEN _nc_prescreen;
+#else
 extern NCURSES_EXPORT_VAR(NCURSES_PRESCREEN) _nc_prescreen;
+#endif
 
 /*
  * The SCREEN structure.
@@ -1161,9 +1169,13 @@ struct screen {
 #endif
 };
 
+#if defined __CYGWIN__
+extern SCREEN * _nc_screen_chain;
+extern SIG_ATOMIC_T _nc_have_sigwinch;
+#else
 extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain;
 extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
-
+#endif
 	WINDOWLIST {
 	WINDOWLIST *next;
 	SCREEN *screen;		/* screen containing the window */
@@ -1372,6 +1384,15 @@ extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T)
 #else /* }{ */
 #define CharOf(c)	ChCharOf(c)
 #define AttrOf(c)	ChAttrOf(c)
+#if defined __CYGWIN__
+#define AddAttr(c,a)	c |= (a)
+#define RemAttr(c,a)	c &= ~((a) & A_ATTRIBUTES)
+#define SetAttr(c,a)	c = ((c) & ~A_ATTRIBUTES) | (a)
+#define NewChar(ch)	(ch)
+#define NewChar2(c,a)	((c) | (a))
+#define CharEq(a,b)	((a) == (b))
+#define SetChar(ch,c,a)	ch = (c) | (a)
+#else
 #define AddAttr(c,a)	c |= (a)
 #define RemAttr(c,a)	c &= ~((a) & A_ATTRIBUTES)
 #define SetAttr(c,a)	c = ((c) & ~A_ATTRIBUTES) | (a)
@@ -1379,6 +1400,7 @@ extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T)
 #define NewChar2(c,a)	((c) | (a))
 #define CharEq(a,b)	((a) == (b))
 #define SetChar(ch,c,a)	ch = (c) | (a)
+#endif
 #define CHREF(wch)	wch
 #define CHDEREF(wch)	wch
 #define ARG_CH_T	NCURSES_CH_T
@@ -1555,11 +1577,20 @@ NCURSES_WRAPPED_VAR(const char *, _nc_tp
 extern NCURSES_EXPORT(void)		_nc_set_tputs_trace (const char *);
 extern NCURSES_EXPORT(void)		_nc_count_outchars (long);
 #else
+#if defined __CYGWIN__
+extern const char * _nc_tputs_trace;
+extern long         _nc_outchars;
+#else
 extern NCURSES_EXPORT_VAR(const char *) _nc_tputs_trace;
 extern NCURSES_EXPORT_VAR(long)         _nc_outchars;
 #endif
+#endif
 
+#if defined __CYGWIN__
+extern unsigned     _nc_tracing;
+#else
 extern NCURSES_EXPORT_VAR(unsigned)     _nc_tracing;
+#endif
 
 #if USE_WIDEC_SUPPORT
 extern NCURSES_EXPORT(const char *) _nc_viswbuf2 (int, const wchar_t *);
@@ -1970,7 +2001,11 @@ extern int vsscanf(const char *str, cons
 #endif
 
 /* scroll indices */
+#if defined __CYGWIN__
+extern int * _nc_oldnums;
+#else
 extern NCURSES_EXPORT_VAR(int *) _nc_oldnums;
+#endif
 
 #define USE_SETBUF_0 0
 
@@ -1992,7 +2027,11 @@ extern NCURSES_EXPORT(void)     _nc_set_
 #define CURRENT_SCREEN          _nc_screen()
 #else
 /* current screen is private data; avoid possible linking conflicts too */
+#if defined __CYGWIN__
+extern SCREEN * SP;
+#else
 extern NCURSES_EXPORT_VAR(SCREEN *) SP;
+#endif
 #define CURRENT_SCREEN SP
 #define _nc_alloc_screen()      ((SP = _nc_alloc_screen_sp()) != 0)
 #define _nc_set_screen(sp)      SP = sp
@@ -2145,8 +2184,13 @@ typedef struct DriverTCB
 #define CallDriver_3(sp,method,arg1,arg2,arg3)       TCBOf(sp)->drv->method(TCBOf(sp),arg1,arg2,arg3)
 #define CallDriver_4(sp,method,arg1,arg2,arg3,arg4)  TCBOf(sp)->drv->method(TCBOf(sp),arg1,arg2,arg3,arg4)
 
+#if defined __CYGWIN__
+extern const color_t* _nc_cga_palette;
+extern const color_t* _nc_hls_palette;
+#else
 extern NCURSES_EXPORT_VAR(const color_t*) _nc_cga_palette;
 extern NCURSES_EXPORT_VAR(const color_t*) _nc_hls_palette;
+#endif
 
 extern NCURSES_EXPORT(int)      _nc_get_driver(TERMINAL_CONTROL_BLOCK*, const char*, int*);
 extern NCURSES_EXPORT(void)     _nc_get_screensize_ex(SCREEN *, TERMINAL *, int *, int *);
@@ -2196,8 +2240,12 @@ extern NCURSES_EXPORT(void)   _nc_get_sc
 #include <nc_mingw.h>
 extern NCURSES_EXPORT_VAR(TERM_DRIVER) _nc_WIN_DRIVER;
 #endif
+#if defined __CYGWIN__
+extern TERM_DRIVER _nc_TINFO_DRIVER;
+#else
 extern NCURSES_EXPORT_VAR(TERM_DRIVER) _nc_TINFO_DRIVER;
 #endif
+#endif
 
 #ifdef USE_TERM_DRIVER
 #define IsTermInfo(sp)       (TCBOf(sp) && ((TCBOf(sp)->drv->isTerminfo)))
diff -upr orig/ncurses-5.9/ncurses/tinfo/comp_error.c ncurses-5.9/ncurses/tinfo/comp_error.c
--- orig/ncurses-5.9/ncurses/tinfo/comp_error.c	2007-04-22 08:38:32.000000000 +0900
+++ ncurses-5.9/ncurses/tinfo/comp_error.c	2013-03-03 16:11:53.296851600 +0900
@@ -43,9 +43,31 @@
 
 MODULE_ID("$Id: comp_error.c,v 1.31 2007/04/21 23:38:32 tom Exp $")
 
+#if defined __CYGWIN__
+static bool __nc_suppress_warnings = FALSE;
+static int __nc_curr_line = 0; /* current line # in input */
+static int __nc_curr_col = 0; /* current column # in input */
+
+NCURSES_EXPORT(bool*)
+NCURSES_PUBLIC_VAR(_suppress_warnings) (void)
+{
+    return &__nc_suppress_warnings;
+}
+NCURSES_EXPORT(int*)
+NCURSES_PUBLIC_VAR(_curr_line) (void)
+{
+    return &__nc_curr_line;
+}
+NCURSES_EXPORT(int*)
+NCURSES_PUBLIC_VAR(_curr_col) (void)
+{
+    return &__nc_curr_col;
+}
+#else
 NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings = FALSE;
 NCURSES_EXPORT_VAR(int) _nc_curr_line = 0; /* current line # in input */
 NCURSES_EXPORT_VAR(int) _nc_curr_col = 0; /* current column # in input */
+#endif
 
 #define SourceName	_nc_globals.comp_sourcename
 #define TermType	_nc_globals.comp_termtype
diff -upr orig/ncurses-5.9/ncurses/tinfo/comp_scan.c ncurses-5.9/ncurses/tinfo/comp_scan.c
--- orig/ncurses-5.9/ncurses/tinfo/comp_scan.c	2010-12-26 08:06:37.000000000 +0900
+++ ncurses-5.9/ncurses/tinfo/comp_scan.c	2013-03-03 19:03:31.016680100 +0900
@@ -60,6 +60,49 @@ MODULE_ID("$Id: comp_scan.c,v 1.89 2010/
 
 #define iswhite(ch)	(ch == ' '  ||  ch == '\t')
 
+#if defined __CYGWIN__
+static int __syntax = 0;         /* termcap or terminfo? */
+static long __curr_file_pos = 0; /* file offset of current line */
+static long __comment_start = 0; /* start of comment range before name */
+static long __comment_end = 0;   /* end of comment range before name */
+static long __start_line = 0;    /* start line of current entry */
+
+static struct token __curr_token =
+{
+    0, 0, 0
+};
+
+NCURSES_EXPORT(int*)
+NCURSES_PUBLIC_VAR(_syntax) (void)
+{
+    return &__syntax;
+}
+NCURSES_EXPORT(long*)
+NCURSES_PUBLIC_VAR(_curr_file_pos) (void)
+{
+    return &__curr_file_pos;
+}
+NCURSES_EXPORT(long*)
+NCURSES_PUBLIC_VAR(_comment_start) (void)
+{
+    return &__comment_start;
+}
+NCURSES_EXPORT(long*)
+NCURSES_PUBLIC_VAR(_comment_end) (void)
+{
+    return &__comment_end;
+}
+NCURSES_EXPORT(long*)
+NCURSES_PUBLIC_VAR(_start_line) (void)
+{
+    return &__start_line;
+}
+NCURSES_EXPORT(struct token*)
+NCURSES_PUBLIC_VAR(_curr_token) (void)
+{
+    return &__curr_token;
+}
+#else
 NCURSES_EXPORT_VAR (int) _nc_syntax = 0;         /* termcap or terminfo? */
 NCURSES_EXPORT_VAR (long) _nc_curr_file_pos = 0; /* file offset of current line */
 NCURSES_EXPORT_VAR (long) _nc_comment_start = 0; /* start of comment range before name */
@@ -70,6 +113,7 @@ NCURSES_EXPORT_VAR (struct token) _nc_cu
 {
     0, 0, 0
 };
+#endif
 
 /*****************************************************************************
  *
@@ -84,8 +128,18 @@ static int pushtype;		/* type of pushbac
 static char *pushname;
 
 #if NCURSES_EXT_FUNCS
+#if defined __CYGWIN__
+static bool __disable_period = FALSE; /* used by tic -a option */
+
+NCURSES_EXPORT(bool*)
+NCURSES_PUBLIC_VAR(_disable_period) (void)
+{
+    return &__disable_period;
+}
+#else
 NCURSES_EXPORT_VAR (bool) _nc_disable_period = FALSE; /* used by tic -a option */
 #endif
+#endif
 
 /*****************************************************************************
  *
diff -upr orig/ncurses-5.9/ncurses/tinfo/entries.c ncurses-5.9/ncurses/tinfo/entries.c
--- orig/ncurses-5.9/ncurses/tinfo/entries.c	2010-01-24 02:57:43.000000000 +0900
+++ ncurses-5.9/ncurses/tinfo/entries.c	2013-03-03 18:57:23.493170500 +0900
@@ -60,8 +60,24 @@ MODULE_ID("$Id: entries.c,v 1.17 2010/01
  *	   _nc_head                _nc_tail
  */
 
+#if defined __CYGWIN__
+static ENTRY * __nc_head = 0;
+static ENTRY * __nc_tail = 0;
+
+NCURSES_EXPORT(ENTRY **)
+NCURSES_PUBLIC_VAR(_head) (void)
+{
+    return &__nc_head;
+}
+NCURSES_EXPORT(ENTRY **)
+NCURSES_PUBLIC_VAR(_tail) (void)
+{
+    return &__nc_tail;
+}
+#else
 NCURSES_EXPORT_VAR(ENTRY *) _nc_head = 0;
 NCURSES_EXPORT_VAR(ENTRY *) _nc_tail = 0;
+#endif
 
 NCURSES_EXPORT(void)
 _nc_free_entry(ENTRY * headp, TERMTYPE *tterm)
diff -upr orig/ncurses-5.9/ncurses/tinfo/free_ttype.c ncurses-5.9/ncurses/tinfo/free_ttype.c
--- orig/ncurses-5.9/ncurses/tinfo/free_ttype.c	2011-02-06 10:08:31.000000000 +0900
+++ ncurses-5.9/ncurses/tinfo/free_ttype.c	2013-03-03 16:21:36.096659200 +0900
@@ -62,7 +62,17 @@ _nc_free_termtype(TERMTYPE *ptr)
 }
 
 #if NCURSES_XNAMES
+#if defined __CYGWIN__
+static bool __nc_user_definable = TRUE;
+
+NCURSES_EXPORT(bool*)
+NCURSES_PUBLIC_VAR(_user_definable) (void)
+{
+    return &__nc_user_definable;
+}
+#else
 NCURSES_EXPORT_VAR(bool) _nc_user_definable = TRUE;
+#endif
 
 NCURSES_EXPORT(int)
 use_extended_names(bool flag)
diff -upr orig/ncurses-5.9/ncurses/tinfo/lib_acs.c ncurses-5.9/ncurses/tinfo/lib_acs.c
--- orig/ncurses-5.9/ncurses/tinfo/lib_acs.c	2010-12-26 08:00:45.000000000 +0900
+++ ncurses-5.9/ncurses/tinfo/lib_acs.c	2013-03-05 20:38:50.872963700 +0900
@@ -43,12 +43,12 @@ MODULE_ID("$Id: lib_acs.c,v 1.43 2010/12
 
 #if BROKEN_LINKER || USE_REENTRANT
 #define MyBuffer _nc_prescreen.real_acs_map
-NCURSES_EXPORT(chtype *)
+NCURSES_EXPORT(chtype **)
 NCURSES_PUBLIC_VAR(acs_map) (void)
 {
     if (MyBuffer == 0)
 	MyBuffer = typeCalloc(chtype, ACS_LEN);
-    return MyBuffer;
+    return &MyBuffer;
 }
 #undef MyBuffer
 #else
diff -upr orig/ncurses-5.9/ncurses/tinfo/lib_data.c ncurses-5.9/ncurses/tinfo/lib_data.c
--- orig/ncurses-5.9/ncurses/tinfo/lib_data.c	2010-05-16 07:06:56.000000000 +0900
+++ ncurses-5.9/ncurses/tinfo/lib_data.c	2013-03-03 15:39:31.080160000 +0900
@@ -65,10 +65,32 @@ NCURSES_PUBLIC_VAR(newscr) (void)
     return CURRENT_SCREEN ? NewScreen(CURRENT_SCREEN) : 0;
 }
 #else
+#if defined __CYGWIN__
+static WINDOW * _stdscr = 0;
+static WINDOW * _curscr = 0;
+static WINDOW * _newscr = 0;
+
+NCURSES_EXPORT(WINDOW **)
+NCURSES_PUBLIC_VAR(stdscr) (void)
+{
+    return &_stdscr;
+}
+NCURSES_EXPORT(WINDOW **)
+NCURSES_PUBLIC_VAR(curscr) (void)
+{
+    return &_curscr;
+}
+NCURSES_EXPORT(WINDOW **)
+NCURSES_PUBLIC_VAR(newscr) (void)
+{
+    return &_newscr;
+}
+#else
 NCURSES_EXPORT_VAR(WINDOW *) stdscr = 0;
 NCURSES_EXPORT_VAR(WINDOW *) curscr = 0;
 NCURSES_EXPORT_VAR(WINDOW *) newscr = 0;
 #endif
+#endif
 
 NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain = 0;
 
diff -upr orig/ncurses-5.9/ncurses/tinfo/lib_setup.c ncurses-5.9/ncurses/tinfo/lib_setup.c
--- orig/ncurses-5.9/ncurses/tinfo/lib_setup.c	2011-02-06 10:04:21.000000000 +0900
+++ ncurses-5.9/ncurses/tinfo/lib_setup.c	2013-03-03 20:03:44.714693400 +0900
@@ -165,11 +165,39 @@ NCURSES_PUBLIC_VAR(TABSIZE) (void)
     return *_nc_ptr_Tabsize(CURRENT_SCREEN);
 }
 #else
+#if defined __CYGWIN__
+static char _ttytype[NAMESIZE] = "";
+static int _LINES = 0;
+static int _COLS = 0;
+static int _TABSIZE = 8;
+
+NCURSES_EXPORT(char**)
+NCURSES_PUBLIC_VAR(ttytype) (void)
+{
+    return &_ttytype;
+}
+NCURSES_EXPORT(int*)
+NCURSES_PUBLIC_VAR(LINES) (void)
+{
+    return &_LINES;
+}
+NCURSES_EXPORT(int*)
+NCURSES_PUBLIC_VAR(COLS) (void)
+{
+    return &_COLS;
+}
+NCURSES_EXPORT(int*)
+NCURSES_PUBLIC_VAR(TABSIZE) (void)
+{
+    return &_TABSIZE;
+}
+#else
 NCURSES_EXPORT_VAR(char) ttytype[NAMESIZE] = "";
 NCURSES_EXPORT_VAR(int) LINES = 0;
 NCURSES_EXPORT_VAR(int) COLS = 0;
 NCURSES_EXPORT_VAR(int) TABSIZE = 8;
 #endif
+#endif
 
 #if NCURSES_EXT_FUNCS
 NCURSES_EXPORT(int)
diff -upr orig/ncurses-5.9/ncurses/tinfo/lib_termcap.c ncurses-5.9/ncurses/tinfo/lib_termcap.c
--- orig/ncurses-5.9/ncurses/tinfo/lib_termcap.c	2010-12-26 04:27:12.000000000 +0900
+++ ncurses-5.9/ncurses/tinfo/lib_termcap.c	2013-03-03 17:21:40.428656400 +0900
@@ -50,8 +50,24 @@
 
 MODULE_ID("$Id: lib_termcap.c,v 1.73 2010/12/25 19:27:12 tom Exp $")
 
+#if defined __CYGWIN__
+char * _UP = 0;
+char * _BC = 0;
+
+NCURSES_EXPORT(char**)
+NCURSES_PUBLIC_VAR(UP) (void)
+{
+    return &_UP;
+}
+NCURSES_EXPORT(char**)
+NCURSES_PUBLIC_VAR(BC) (void)
+{
+    return &_BC;
+}
+#else
 NCURSES_EXPORT_VAR(char *) UP = 0;
 NCURSES_EXPORT_VAR(char *) BC = 0;
+#endif
 
 #define MyCache  _nc_globals.tgetent_cache
 #define CacheInx _nc_globals.tgetent_index
diff -upr orig/ncurses-5.9/ncurses/tinfo/lib_tparm.c ncurses-5.9/ncurses/tinfo/lib_tparm.c
--- orig/ncurses-5.9/ncurses/tinfo/lib_tparm.c	2011-01-16 07:19:12.000000000 +0900
+++ ncurses-5.9/ncurses/tinfo/lib_tparm.c	2013-03-03 18:58:38.523274600 +0900
@@ -104,7 +104,17 @@ MODULE_ID("$Id: lib_tparm.c,v 1.82 2011/
  *	resulting in x mod y, not the reverse.
  */
 
+#if defined __CYGWIN__
+static int __tparm_err = 0;
+
+NCURSES_EXPORT(int*)
+NCURSES_PUBLIC_VAR(_tparm_err) (void)
+{
+    return &__tparm_err;
+}
+#else
 NCURSES_EXPORT_VAR(int) _nc_tparm_err = 0;
+#endif
 
 #define TPS(var) _nc_prescreen.tparm_state.var
 
diff -upr orig/ncurses-5.9/ncurses/tinfo/lib_tputs.c ncurses-5.9/ncurses/tinfo/lib_tputs.c
--- orig/ncurses-5.9/ncurses/tinfo/lib_tputs.c	2010-12-20 09:42:50.000000000 +0900
+++ ncurses-5.9/ncurses/tinfo/lib_tputs.c	2013-03-03 17:30:16.683371900 +0900
@@ -53,10 +53,32 @@
 
 MODULE_ID("$Id: lib_tputs.c,v 1.81 2010/12/20 00:42:50 tom Exp $")
 
+#if defined __CYGWIN__
+static char _PC = 0;              /* used by termcap library */
+static NCURSES_OSPEED __ospeed = 0;        /* used by termcap library */
+
+static int __nulls_sent = 0;   /* used by 'tack' program */
+
+NCURSES_EXPORT(char*)
+NCURSES_PUBLIC_VAR(PC) (void)
+{
+    return &_PC;
+}NCURSES_EXPORT(NCURSES_OSPEED*)
+NCURSES_PUBLIC_VAR(_ospeed) (void)
+{
+    return &__ospeed;
+}
+NCURSES_EXPORT(int*)
+NCURSES_PUBLIC_VAR(_nulls_sent) (void)
+{
+    return &__nulls_sent;
+}
+#else
 NCURSES_EXPORT_VAR(char) PC = 0;              /* used by termcap library */
 NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed = 0;        /* used by termcap library */
 
 NCURSES_EXPORT_VAR(int) _nc_nulls_sent = 0;   /* used by 'tack' program */
+#endif
 
 #if NCURSES_NO_PADDING
 NCURSES_EXPORT(void)
diff -upr orig/ncurses-5.9/ncurses/trace/lib_trace.c ncurses-5.9/ncurses/trace/lib_trace.c
--- orig/ncurses-5.9/ncurses/trace/lib_trace.c	2010-12-19 10:21:19.000000000 +0900
+++ ncurses-5.9/ncurses/trace/lib_trace.c	2013-03-03 17:32:05.425522600 +0900
@@ -49,7 +49,17 @@
 
 MODULE_ID("$Id: lib_trace.c,v 1.76 2010/12/19 01:21:19 tom Exp $")
 
+#if defined __CYGWIN__
+static unsigned __tracing = 0; /* always define this */
+
+NCURSES_EXPORT(unsigned*)
+NCURSES_PUBLIC_VAR(_tracing) (void)
+{
+    return &__tracing;
+}
+#else
 NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0; /* always define this */
+#endif
 
 #ifdef TRACE
 
