# HG changeset patch # User Michael Goffioul # Date 1373077488 14400 # Node ID 21f598a028ece812f84a855fbe658ee3d25843c5 # Parent 09589841702627bcd60d5c1dc6730aa821847f84 [MSVC] enable ncurses compilation Compilation uses build-libtool, which must be compiled and installed properly with MSVC support. diff -r 095898417026 -r 21f598a028ec dist-files.mk --- a/dist-files.mk Wed Jul 03 08:23:08 2013 -0400 +++ b/dist-files.mk Fri Jul 05 22:24:48 2013 -0400 @@ -291,6 +291,7 @@ msvc-libssh2-1.patch \ msvc-libxml2-1.patch \ msvc-nettle-1.patch \ + msvc-ncurses-1.patch \ msvc-qhull-1.patch \ msvc-suitesparse-1.patch \ msvc-tiff-1.patch \ diff -r 095898417026 -r 21f598a028ec src/build-libtool.mk --- a/src/build-libtool.mk Wed Jul 03 08:23:08 2013 -0400 +++ b/src/build-libtool.mk Fri Jul 05 22:24:48 2013 -0400 @@ -9,6 +9,15 @@ $(PKG)_URL := ftp://ftp.gnu.org/pub/gnu/libtool/$($(PKG)_FILE) $(PKG)_DEPS := +ifeq ($(MXE_SYSTEM),msvc) + $(PKG)_DEPS += build-msvctools + $(PKG)_CONFIGURE_OPTIONS := \ + CC='$(MXE_CC)' CXX='$(MXE_CXX)' F77='$(MXE_F77)' ac_cv_f77_compiler_gnu=no \ + FC='$(MXE_F77)' ac_cv_fc_compiler_gnu=no +else + $(PKG)_CONFIGURE_OPTIONS := +endif + define $(PKG)_UPDATE echo 'Warning: Updates are temporarily disabled for package $(PKG).' >&2; echo $($(PKG)_VERSION) @@ -17,7 +26,11 @@ define $(PKG)_BUILD mkdir '$(1).build' cd '$(1).build' && '$(1)/configure' \ - --prefix='$(BUILD_TOOLS_PREFIX)' + --prefix='$(BUILD_TOOLS_PREFIX)' \ + $($(PKG)_CONFIGURE_OPTIONS) $(MAKE) -C '$(1).build' -j '$(JOBS)' + if test x$(MXE_SYSTEM) = xmsvc; then \ + cd '$(1).build' && $(CONFIGURE_POST_HOOK); \ + fi $(MAKE) -C '$(1).build' -j 1 install endef diff -r 095898417026 -r 21f598a028ec src/msvc-ncurses-1.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/msvc-ncurses-1.patch Fri Jul 05 22:24:48 2013 -0400 @@ -0,0 +1,3957 @@ +diff -ur ncurses-5.9-orig/c++/Makefile.in ncurses-5.9/c++/Makefile.in +--- ncurses-5.9-orig/c++/Makefile.in 2010-11-27 16:45:27 -0500 ++++ ncurses-5.9/c++/Makefile.in 2013-07-04 18:38:36 -0400 +@@ -76,7 +76,7 @@ + CXXLIBS = @CXXLIBS@ + + INCDIR = ../include +-CPPFLAGS = -I../c++ -I$(INCDIR) -I$(srcdir) -DHAVE_CONFIG_H @CPPFLAGS@ ++CPPFLAGS = -I../c++ -I$(INCDIR) -I$(srcdir) -DHAVE_CONFIG_H -DNCURSESXX_DLL @CPPFLAGS@ + + CTAGS = @CTAGS@ + ETAGS = @ETAGS@ +@@ -166,7 +166,7 @@ + $(RANLIB) $@ + + ../lib/$(LIBNAME_LIBTOOL) : $(LIB_OBJS) +- cd ../lib && $(LIBTOOL_LINK) $(CXX) $(CXXFLAGS) \ ++ cd ../lib && $(LIBTOOL_LINK) $(CXX) -shared $(CXXFLAGS) \ + -o $(LIBNAME) $(LIB_OBJS:$o=.lo) \ + -rpath $(INSTALL_PREFIX)$(libdir) \ + $(LIBTOOL_VERSION) $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(SHLIB_LIST) +@@ -179,7 +179,7 @@ + demo$x: $(OBJS_DEMO) \ + $(MY_LIBRARY) \ + @TEST_DEPS@ +- @ECHO_LINK@ $(LINK) -o $@ $(OBJS_DEMO) $(LDFLAGS_DEFAULT) ++ @ECHO_LINK@ $(LINK) -o $@ $(OBJS_DEMO) $(LDFLAGS_DEFAULT) -Wl,-subsystem:console + + etip.h: $(srcdir)/etip.h.in $(srcdir)/edit_cfg.sh + cp $(srcdir)/etip.h.in $@ +@@ -243,6 +243,8 @@ + $(INCDIR)/panel.h : + cd ../panel && $(MAKE) $@ + ++../obj_lo/demo$o: CPPFLAGS := $(filter-out -DNCURSESXX_DLL,$(CPPFLAGS)) ++ + ############################################################################### + # The remainder of this file is automatically generated during configuration + ############################################################################### +diff -ur ncurses-5.9-orig/c++/cursesapp.h ncurses-5.9/c++/cursesapp.h +--- ncurses-5.9-orig/c++/cursesapp.h 2005-05-28 17:57:44 -0400 ++++ ncurses-5.9/c++/cursesapp.h 2013-07-04 18:38:36 -0400 +@@ -38,7 +38,7 @@ + + #include + +-class NCURSES_IMPEXP NCursesApplication { ++class NCURSESXX_IMPEXP NCursesApplication { + public: + typedef struct _slk_link { // This structure is used to maintain + struct _slk_link* prev; // a stack of SLKs +diff -ur ncurses-5.9-orig/c++/cursesf.h ncurses-5.9/c++/cursesf.h +--- ncurses-5.9-orig/c++/cursesf.h 2005-08-13 14:08:24 -0400 ++++ ncurses-5.9/c++/cursesf.h 2013-07-04 18:38:36 -0400 +@@ -50,11 +50,11 @@ + // The abstract base class for buitin and user defined Fieldtypes. + // ------------------------------------------------------------------------- + // +-class NCURSES_IMPEXP NCursesFormField; // forward declaration ++class NCURSESXX_IMPEXP NCursesFormField; // forward declaration + + // Class to represent builtin field types as well as C++ written new + // fieldtypes (see classes UserDefineFieldType... +-class NCURSES_IMPEXP NCursesFieldType ++class NCURSESXX_IMPEXP NCursesFieldType + { + friend class NCursesFormField; + +@@ -100,7 +100,7 @@ + // The class representing a forms field, wrapping the lowlevel FIELD struct + // ------------------------------------------------------------------------- + // +-class NCURSES_IMPEXP NCursesFormField ++class NCURSESXX_IMPEXP NCursesFormField + { + friend class NCursesForm; + +@@ -337,7 +337,7 @@ + // The class representing a form, wrapping the lowlevel FORM struct + // ------------------------------------------------------------------------- + // +-class NCURSES_IMPEXP NCursesForm : public NCursesPanel ++class NCURSESXX_IMPEXP NCursesForm : public NCursesPanel + { + protected: + FORM* form; // the lowlevel structure +@@ -628,7 +628,7 @@ + // data belongs to some class T. Use T as template argument + // to create a UserField. + // ------------------------------------------------------------------------- +-template class NCURSES_IMPEXP NCursesUserField : public NCursesFormField ++template class NCURSESXX_IMPEXP NCursesUserField : public NCursesFormField + { + public: + NCursesUserField (int rows, +@@ -661,7 +661,7 @@ + // The same mechanism is used to attach user data to a form + // ------------------------------------------------------------------------- + // +-template class NCURSES_IMPEXP NCursesUserForm : public NCursesForm ++template class NCURSESXX_IMPEXP NCursesUserForm : public NCursesForm + { + protected: + // 'Internal' constructor, builds an object without association to a +@@ -718,7 +718,7 @@ + // Builtin Fieldtypes + // ------------------------------------------------------------------------- + // +-class NCURSES_IMPEXP Alpha_Field : public NCursesFieldType ++class NCURSESXX_IMPEXP Alpha_Field : public NCursesFieldType + { + private: + int min_field_width; +@@ -734,7 +734,7 @@ + } + }; + +-class NCURSES_IMPEXP Alphanumeric_Field : public NCursesFieldType ++class NCURSESXX_IMPEXP Alphanumeric_Field : public NCursesFieldType + { + private: + int min_field_width; +@@ -750,7 +750,7 @@ + } + }; + +-class NCURSES_IMPEXP Integer_Field : public NCursesFieldType ++class NCURSESXX_IMPEXP Integer_Field : public NCursesFieldType + { + private: + int precision; +@@ -768,7 +768,7 @@ + } + }; + +-class NCURSES_IMPEXP Numeric_Field : public NCursesFieldType ++class NCURSESXX_IMPEXP Numeric_Field : public NCursesFieldType + { + private: + int precision; +@@ -786,7 +786,7 @@ + } + }; + +-class NCURSES_IMPEXP Regular_Expression_Field : public NCursesFieldType ++class NCURSESXX_IMPEXP Regular_Expression_Field : public NCursesFieldType + { + private: + char* regex; +@@ -831,7 +831,7 @@ + } + }; + +-class NCURSES_IMPEXP Enumeration_Field : public NCursesFieldType ++class NCURSESXX_IMPEXP Enumeration_Field : public NCursesFieldType + { + private: + const char** list; +@@ -870,7 +870,7 @@ + } + }; + +-class NCURSES_IMPEXP IPV4_Address_Field : public NCursesFieldType ++class NCURSESXX_IMPEXP IPV4_Address_Field : public NCursesFieldType + { + private: + void set(NCursesFormField& f) { +@@ -893,7 +893,7 @@ + // Abstract base class for User-Defined Fieldtypes + // ------------------------------------------------------------------------- + // +-class NCURSES_IMPEXP UserDefinedFieldType : public NCursesFieldType ++class NCURSESXX_IMPEXP UserDefinedFieldType : public NCursesFieldType + { + friend class UDF_Init; // Internal helper to set up statics + private: +@@ -936,7 +936,7 @@ + // Abstract base class for User-Defined Fieldtypes with Choice functions + // ------------------------------------------------------------------------- + // +-class NCURSES_IMPEXP UserDefinedFieldType_With_Choice : public UserDefinedFieldType ++class NCURSESXX_IMPEXP UserDefinedFieldType_With_Choice : public UserDefinedFieldType + { + friend class UDF_Init; // Internal helper to set up statics + private: +diff -ur ncurses-5.9-orig/c++/cursesm.cc ncurses-5.9/c++/cursesm.cc +--- ncurses-5.9-orig/c++/cursesm.cc 2005-04-02 16:39:05 -0400 ++++ ncurses-5.9/c++/cursesm.cc 2013-07-04 18:38:58 -0400 +@@ -180,8 +180,8 @@ + UserHook* hook = reinterpret_cast(::menu_userptr(menu)); + delete hook; + if (b_sub_owner) { +- delete sub; + ::set_menu_sub(menu, static_cast(0)); ++ delete sub; + } + if (menu) { + ITEM** itms = ::menu_items(menu); +diff -ur ncurses-5.9-orig/c++/cursesm.h ncurses-5.9/c++/cursesm.h +--- ncurses-5.9-orig/c++/cursesm.h 2005-08-13 14:10:36 -0400 ++++ ncurses-5.9/c++/cursesm.h 2013-07-04 18:38:36 -0400 +@@ -46,7 +46,7 @@ + // This wraps the ITEM type of + // ------------------------------------------------------------------------- + // +-class NCURSES_IMPEXP NCursesMenuItem ++class NCURSESXX_IMPEXP NCursesMenuItem + { + friend class NCursesMenu; + +@@ -151,7 +151,7 @@ + // If you don't like to create a child class for individual items to + // overload action(), you may use this class and provide a callback + // function pointer for items. +-class NCURSES_IMPEXP NCursesMenuCallbackItem : public NCursesMenuItem ++class NCURSESXX_IMPEXP NCursesMenuCallbackItem : public NCursesMenuItem + { + private: + ITEMCALLBACK* p_fct; +@@ -198,7 +198,7 @@ + // This wraps the MENU type of + // ------------------------------------------------------------------------- + // +-class NCURSES_IMPEXP NCursesMenu : public NCursesPanel ++class NCURSESXX_IMPEXP NCursesMenu : public NCursesPanel + { + protected: + MENU *menu; +@@ -594,7 +594,7 @@ + // to create a UserItem. + // ------------------------------------------------------------------------- + // +-template class NCURSES_IMPEXP NCursesUserItem : public NCursesMenuItem ++template class NCursesUserItem : public NCursesMenuItem + { + public: + NCursesUserItem (const char* p_name, +@@ -621,7 +621,7 @@ + // The same mechanism is used to attach user data to a menu + // ------------------------------------------------------------------------- + // +-template class NCURSES_IMPEXP NCursesUserMenu : public NCursesMenu ++template class NCursesUserMenu : public NCursesMenu + { + protected: + NCursesUserMenu( int nlines, +diff -ur ncurses-5.9-orig/c++/cursesp.h ncurses-5.9/c++/cursesp.h +--- ncurses-5.9-orig/c++/cursesp.h 2008-08-16 13:20:23 -0400 ++++ ncurses-5.9/c++/cursesp.h 2013-07-04 18:38:36 -0400 +@@ -42,7 +42,7 @@ + # include + } + +-class NCURSES_IMPEXP NCursesPanel ++class NCURSESXX_IMPEXP NCursesPanel + : public NCursesWindow + { + protected: +diff -ur ncurses-5.9-orig/c++/cursesw.h ncurses-5.9/c++/cursesw.h +--- ncurses-5.9-orig/c++/cursesw.h 2008-01-19 16:09:10 -0500 ++++ ncurses-5.9/c++/cursesw.h 2013-07-04 18:38:36 -0400 +@@ -750,7 +750,7 @@ + extern "C" int _nc_xx_ripoff_init(WINDOW *, int); + extern "C" int _nc_has_mouse(void); + +-class NCURSES_IMPEXP NCursesWindow ++class NCURSESXX_IMPEXP NCursesWindow + { + friend class NCursesMenu; + friend class NCursesForm; +@@ -1364,7 +1364,7 @@ + // ------------------------------------------------------------------------- + // We leave this here for compatibility reasons. + // ------------------------------------------------------------------------- +-class NCURSES_IMPEXP NCursesColorWindow : public NCursesWindow ++class NCURSESXX_IMPEXP NCursesColorWindow : public NCursesWindow + { + public: + NCursesColorWindow(WINDOW* &window) // useful only for stdscr +@@ -1410,7 +1410,7 @@ + // Pad Support. We allow an association of a pad with a "real" window + // through which the pad may be viewed. + // ------------------------------------------------------------------------- +-class NCURSES_IMPEXP NCursesPad : public NCursesWindow ++class NCURSESXX_IMPEXP NCursesPad : public NCursesWindow + { + private: + NCursesWindow* viewWin; // the "viewport" window +@@ -1523,7 +1523,7 @@ + // A FramedPad is constructed always with a viewport window. This viewport + // will be framed (by a box() command) and the interior of the box is the + // viewport subwindow. On the frame we display scrollbar sliders. +-class NCURSES_IMPEXP NCursesFramedPad : public NCursesPad ++class NCURSESXX_IMPEXP NCursesFramedPad : public NCursesPad + { + protected: + virtual void OnOperation(int pad_req); +diff -ur ncurses-5.9-orig/c++/cursslk.h ncurses-5.9/c++/cursslk.h +--- ncurses-5.9-orig/c++/cursslk.h 2005-05-28 17:58:18 -0400 ++++ ncurses-5.9/c++/cursslk.h 2013-07-04 18:38:36 -0400 +@@ -38,10 +38,10 @@ + + #include + +-class NCURSES_IMPEXP Soft_Label_Key_Set { ++class NCURSESXX_IMPEXP Soft_Label_Key_Set { + public: + // This inner class represents the attributes of a Soft Label Key (SLK) +- class NCURSES_IMPEXP Soft_Label_Key { ++ class NCURSESXX_IMPEXP Soft_Label_Key { + friend class Soft_Label_Key_Set; + public: + typedef enum { Left=0, Center=1, Right=2 } Justification; +@@ -100,10 +100,10 @@ + } Label_Layout; + + private: +- static long NCURSES_IMPEXP count; // Number of Key Sets +- static Label_Layout NCURSES_IMPEXP format; // Layout of the Key Sets +- static int NCURSES_IMPEXP num_labels; // Number Of Labels in Key Sets +- bool NCURSES_IMPEXP b_attrInit; // Are attributes initialized ++ static long count; // Number of Key Sets ++ static Label_Layout format; // Layout of the Key Sets ++ static int num_labels; // Number Of Labels in Key Sets ++ bool b_attrInit; // Are attributes initialized + + Soft_Label_Key *slk_array; // The array of SLK's + +@@ -143,7 +143,7 @@ + + // This constructor assumes, that you already constructed a Key Set + // with a layout by the constructor above. This layout will be reused. +- NCURSES_IMPEXP Soft_Label_Key_Set(); ++ Soft_Label_Key_Set(); + + Soft_Label_Key_Set& operator=(const Soft_Label_Key_Set& rhs) + { +@@ -164,7 +164,7 @@ + virtual ~Soft_Label_Key_Set(); + + // Get Label# i. Label counting starts with 1! +- NCURSES_IMPEXP Soft_Label_Key& operator[](int i); ++ Soft_Label_Key& operator[](int i); + + // Retrieve number of Labels + inline int labels() const { return num_labels; } +diff -ur ncurses-5.9-orig/c++/demo.cc ncurses-5.9/c++/demo.cc +--- ncurses-5.9-orig/c++/demo.cc 2008-12-06 21:07:34 -0500 ++++ ncurses-5.9/c++/demo.cc 2013-07-04 18:38:36 -0400 +@@ -43,11 +43,11 @@ + #include "cursesm.h" + #include "cursesf.h" + +-#ifdef __MINGW32__ ++#if defined(__MINGW32__) || defined(_MSC_VER) + #undef KEY_EVENT + #endif + +-#ifndef __MINGW32__ ++#if !defined(__MINGW32__) && !defined(_MSC_VER) + extern "C" unsigned int sleep(unsigned int); + #endif + +@@ -186,7 +186,7 @@ + }; + + template class MyAction; +-template class NCURSES_IMPEXP NCursesUserItem; ++template class NCursesUserItem; + + class QuitItem : public NCursesMenuItem + { +diff -ur ncurses-5.9-orig/c++/etip.h.in ncurses-5.9/c++/etip.h.in +--- ncurses-5.9-orig/c++/etip.h.in 2008-08-30 15:27:32 -0400 ++++ ncurses-5.9/c++/etip.h.in 2013-07-04 18:38:36 -0400 +@@ -139,11 +139,11 @@ + #endif + + // Forward Declarations +-class NCURSES_IMPEXP NCursesPanel; +-class NCURSES_IMPEXP NCursesMenu; +-class NCURSES_IMPEXP NCursesForm; ++class NCURSESXX_IMPEXP NCursesPanel; ++class NCURSESXX_IMPEXP NCursesMenu; ++class NCURSESXX_IMPEXP NCursesForm; + +-class NCURSES_IMPEXP NCursesException ++class NCURSESXX_IMPEXP NCursesException + { + public: + const char *message; +@@ -177,7 +177,7 @@ + } + }; + +-class NCURSES_IMPEXP NCursesPanelException : public NCursesException ++class NCURSESXX_IMPEXP NCursesPanelException : public NCursesException + { + public: + const NCursesPanel* p; +@@ -228,7 +228,7 @@ + } + }; + +-class NCURSES_IMPEXP NCursesMenuException : public NCursesException ++class NCURSESXX_IMPEXP NCursesMenuException : public NCursesException + { + public: + const NCursesMenu* m; +@@ -279,7 +279,7 @@ + } + }; + +-class NCURSES_IMPEXP NCursesFormException : public NCursesException ++class NCURSESXX_IMPEXP NCursesFormException : public NCursesException + { + public: + const NCursesForm* f; +@@ -340,7 +340,9 @@ + # else + # include + # endif +- extern "C" void exit(int); ++# ifndef _MSC_VER ++ extern "C" void exit(int); ++# endif + #endif + + inline void THROW(const NCursesException *e) { +diff -ur ncurses-5.9-orig/c++/internal.h ncurses-5.9/c++/internal.h +--- ncurses-5.9-orig/c++/internal.h 2008-12-06 21:07:34 -0500 ++++ ncurses-5.9/c++/internal.h 2013-07-04 18:38:36 -0400 +@@ -44,7 +44,7 @@ + #define MODULE_ID(id) /*nothing*/ + #endif + +-#ifdef __MINGW32__ ++#if defined(__MINGW32__) || defined(_MSC_VER) + #include + #undef KEY_EVENT + #endif +diff -ur ncurses-5.9-orig/form/Makefile.in ncurses-5.9/form/Makefile.in +--- ncurses-5.9-orig/form/Makefile.in 2010-11-27 16:45:27 -0500 ++++ ncurses-5.9/form/Makefile.in 2013-07-04 18:38:36 -0400 +@@ -84,7 +84,7 @@ + CPP = @CPP@ + CFLAGS = @CFLAGS@ + +-CPPFLAGS = -I@top_srcdir@/ncurses -DHAVE_CONFIG_H @CPPFLAGS@ ++CPPFLAGS = -I@top_srcdir@/ncurses -DHAVE_CONFIG_H -DNCFORM_DLL @CPPFLAGS@ + + CCFLAGS = $(CPPFLAGS) $(CFLAGS) + +diff -ur ncurses-5.9-orig/form/f_trace.c ncurses-5.9/form/f_trace.c +--- ncurses-5.9-orig/form/f_trace.c 2010-01-23 16:14:36 -0500 ++++ ncurses-5.9/form/f_trace.c 2013-07-04 18:38:36 -0400 +@@ -34,35 +34,35 @@ + + MODULE_ID("$Id: f_trace.c,v 1.2 2010/01/23 21:14:36 tom Exp $") + +-NCURSES_EXPORT(FIELD **) ++NCFORM_EXPORT(FIELD **) + _nc_retrace_field_ptr(FIELD **code) + { + T((T_RETURN("%p"), (void *)code)); + return code; + } + +-NCURSES_EXPORT(FIELD *) ++NCFORM_EXPORT(FIELD *) + _nc_retrace_field(FIELD *code) + { + T((T_RETURN("%p"), (void *)code)); + return code; + } + +-NCURSES_EXPORT(FIELDTYPE *) ++NCFORM_EXPORT(FIELDTYPE *) + _nc_retrace_field_type(FIELDTYPE *code) + { + T((T_RETURN("%p"), (void *)code)); + return code; + } + +-NCURSES_EXPORT(FORM *) ++NCFORM_EXPORT(FORM *) + _nc_retrace_form(FORM *code) + { + T((T_RETURN("%p"), (void *)code)); + return code; + } + +-NCURSES_EXPORT(Form_Hook) ++NCFORM_EXPORT(Form_Hook) + _nc_retrace_form_hook(Form_Hook code) + { + T((T_RETURN("%p"), code)); +diff -ur ncurses-5.9-orig/form/fld_arg.c ncurses-5.9/form/fld_arg.c +--- ncurses-5.9-orig/form/fld_arg.c 2010-01-23 16:14:35 -0500 ++++ ncurses-5.9/form/fld_arg.c 2013-07-04 18:38:36 -0400 +@@ -60,7 +60,7 @@ + | Return Values : E_OK - success + | E_BAD_ARGUMENT - invalid argument + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + set_fieldtype_arg(FIELDTYPE *typ, + void *(*const make_arg)(va_list *), + void *(*const copy_arg)(const void *), +@@ -88,7 +88,7 @@ + | + | Return Values : Pointer to structure or NULL if none is defined. + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(void *) ++NCFORM_EXPORT(void *) + field_arg(const FIELD *field) + { + T((T_CALLED("field_arg(%p)"), (const void *)field)); +diff -ur ncurses-5.9-orig/form/fld_attr.c ncurses-5.9/form/fld_attr.c +--- ncurses-5.9-orig/form/fld_attr.c 2010-01-23 16:12:08 -0500 ++++ ncurses-5.9/form/fld_attr.c 2013-07-04 18:38:37 -0400 +@@ -39,7 +39,7 @@ + --------------------------------------------------------------------------*/ + /* "Template" macro to generate a function to set a fields attribute */ + #define GEN_FIELD_ATTR_SET_FCT( name ) \ +-NCURSES_IMPEXP int NCURSES_API set_field_ ## name (FIELD * field, chtype attr)\ ++NCFORM_IMPEXP int NCFORM_API set_field_ ## name (FIELD * field, chtype attr)\ + {\ + int res = E_BAD_ARGUMENT;\ + T((T_CALLED("set_field_" #name "(%p,%s)"), field, _traceattr(attr)));\ +@@ -64,7 +64,7 @@ + + /* "Template" macro to generate a function to get a fields attribute */ + #define GEN_FIELD_ATTR_GET_FCT( name ) \ +-NCURSES_IMPEXP chtype NCURSES_API field_ ## name (const FIELD * field)\ ++NCFORM_IMPEXP chtype NCFORM_API field_ ## name (const FIELD * field)\ + {\ + T((T_CALLED("field_" #name "(%p)"), (const void *) field));\ + returnAttr( A_ATTRIBUTES & (Normalize_Field( field ) -> name) );\ +diff -ur ncurses-5.9-orig/form/fld_current.c ncurses-5.9/form/fld_current.c +--- ncurses-5.9-orig/form/fld_current.c 2010-01-23 16:14:35 -0500 ++++ ncurses-5.9/form/fld_current.c 2013-07-04 18:38:37 -0400 +@@ -47,7 +47,7 @@ + | E_INVALID_FIELD - current field can't be left + | E_SYSTEM_ERROR - system error + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + set_current_field(FORM *form, FIELD *field) + { + int err = E_OK; +@@ -110,7 +110,7 @@ + | + | Return Values : Pointer to the current field. + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(FIELD *) ++NCFORM_EXPORT(FIELD *) + current_field(const FORM *form) + { + T((T_CALLED("current_field(%p)"), (const void *)form)); +@@ -127,7 +127,7 @@ + | Return Values : >= 0 : field index + | -1 : fieldpointer invalid or field not connected + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + field_index(const FIELD *field) + { + T((T_CALLED("field_index(%p)"), (const void *)field)); +diff -ur ncurses-5.9-orig/form/fld_def.c ncurses-5.9/form/fld_def.c +--- ncurses-5.9-orig/form/fld_def.c 2010-01-23 16:14:35 -0500 ++++ ncurses-5.9/form/fld_def.c 2013-07-04 18:38:37 -0400 +@@ -65,7 +65,7 @@ + NCURSES_FIELD_EXTENSION + }; + +-NCURSES_EXPORT_VAR(FIELD *) ++NCFORM_EXPORT_VAR(FIELD *) + _nc_Default_Field = &default_field; + + /*--------------------------------------------------------------------------- +@@ -82,7 +82,7 @@ + | Return Values : Pointer to argument structure. Maybe NULL. + | In case of an error in *err an error counter is increased. + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(TypeArgument *) ++NCFORM_EXPORT(TypeArgument *) + _nc_Make_Argument(const FIELDTYPE *typ, va_list *ap, int *err) + { + TypeArgument *res = (TypeArgument *)0; +@@ -130,7 +130,7 @@ + | Return Values : Pointer to argument structure. Maybe NULL. + | In case of an error in *err an error counter is increased. + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(TypeArgument *) ++NCFORM_EXPORT(TypeArgument *) + _nc_Copy_Argument(const FIELDTYPE *typ, const TypeArgument *argp, int *err) + { + TypeArgument *res = (TypeArgument *)0; +@@ -179,7 +179,7 @@ + | + | Return Values : - + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(void) ++NCFORM_EXPORT(void) + _nc_Free_Argument(const FIELDTYPE *typ, TypeArgument *argp) + { + if (typ != 0 && (typ->status & _HAS_ARGS) != 0) +@@ -210,7 +210,7 @@ + | Return Values : TRUE - copy worked + | FALSE - error occurred + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(bool) ++NCFORM_EXPORT(bool) + _nc_Copy_Type(FIELD *dst, FIELD const *src) + { + int err = 0; +@@ -245,7 +245,7 @@ + | + | Return Values : - + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(void) ++NCFORM_EXPORT(void) + _nc_Free_Type(FIELD *field) + { + assert(field != 0); +@@ -272,7 +272,7 @@ + | + | Return Values : Pointer to the new field or NULL if failure. + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(FIELD *) ++NCFORM_EXPORT(FIELD *) + new_field(int rows, int cols, int frow, int fcol, int nrow, int nbuf) + { + static const FIELD_CELL blank = BLANK; +@@ -352,7 +352,7 @@ + | E_BAD_ARGUMENT - invalid field pointer + | E_CONNECTED - field is connected + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + free_field(FIELD *field) + { + T((T_CALLED("free_field(%p)"), (void *)field)); +diff -ur ncurses-5.9-orig/form/fld_dup.c ncurses-5.9/form/fld_dup.c +--- ncurses-5.9-orig/form/fld_dup.c 2010-01-23 16:14:35 -0500 ++++ ncurses-5.9/form/fld_dup.c 2013-07-04 18:38:37 -0400 +@@ -47,7 +47,7 @@ + | + | Return Values : Pointer to the new field or NULL if failure + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(FIELD *) ++NCFORM_EXPORT(FIELD *) + dup_field(FIELD *field, int frow, int fcol) + { + FIELD *New_Field = (FIELD *)0; +diff -ur ncurses-5.9-orig/form/fld_ftchoice.c ncurses-5.9/form/fld_ftchoice.c +--- ncurses-5.9-orig/form/fld_ftchoice.c 2010-01-23 16:14:35 -0500 ++++ ncurses-5.9/form/fld_ftchoice.c 2013-07-04 18:38:37 -0400 +@@ -46,7 +46,7 @@ + | Return Values : E_OK - success + | E_BAD_ARGUMENT - invalid arguments + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + set_fieldtype_choice(FIELDTYPE *typ, + bool (*const next_choice) (FIELD *, const void *), + bool (*const prev_choice) (FIELD *, const void *)) +diff -ur ncurses-5.9-orig/form/fld_ftlink.c ncurses-5.9/form/fld_ftlink.c +--- ncurses-5.9-orig/form/fld_ftlink.c 2010-01-23 16:14:35 -0500 ++++ ncurses-5.9/form/fld_ftlink.c 2013-07-04 18:38:37 -0400 +@@ -48,7 +48,7 @@ + | + | Return Values : Fieldtype pointer or NULL if error occurred. + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(FIELDTYPE *) ++NCFORM_EXPORT(FIELDTYPE *) + link_fieldtype(FIELDTYPE *type1, FIELDTYPE *type2) + { + FIELDTYPE *nftyp = (FIELDTYPE *)0; +diff -ur ncurses-5.9-orig/form/fld_info.c ncurses-5.9/form/fld_info.c +--- ncurses-5.9-orig/form/fld_info.c 2010-01-23 16:14:35 -0500 ++++ ncurses-5.9/form/fld_info.c 2013-07-04 18:38:37 -0400 +@@ -46,7 +46,7 @@ + | Return Values : E_OK - success + | E_BAD_ARGUMENT - invalid field pointer + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + field_info(const FIELD *field, + int *rows, int *cols, + int *frow, int *fcol, +@@ -88,7 +88,7 @@ + | Return Values : E_OK - success + | E_BAD_ARGUMENT - invalid argument + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + dynamic_field_info(const FIELD *field, int *drows, int *dcols, int *maxgrow) + { + T((T_CALLED("dynamic_field_info(%p,%p,%p,%p)"), +diff -ur ncurses-5.9-orig/form/fld_just.c ncurses-5.9/form/fld_just.c +--- ncurses-5.9-orig/form/fld_just.c 2010-01-23 16:14:35 -0500 ++++ ncurses-5.9/form/fld_just.c 2013-07-04 18:38:37 -0400 +@@ -44,7 +44,7 @@ + | E_BAD_ARGUMENT - one of the arguments was incorrect + | E_SYSTEM_ERROR - system error + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + set_field_just(FIELD *field, int just) + { + int res = E_BAD_ARGUMENT; +@@ -76,7 +76,7 @@ + | + | Return Values : The justification type. + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + field_just(const FIELD *field) + { + T((T_CALLED("field_just(%p)"), (const void *)field)); +diff -ur ncurses-5.9-orig/form/fld_link.c ncurses-5.9/form/fld_link.c +--- ncurses-5.9-orig/form/fld_link.c 2010-01-23 16:14:35 -0500 ++++ ncurses-5.9/form/fld_link.c 2013-07-04 18:38:37 -0400 +@@ -48,7 +48,7 @@ + | + | Return Values : Pointer to the new field or NULL if failure + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(FIELD *) ++NCFORM_EXPORT(FIELD *) + link_field(FIELD *field, int frow, int fcol) + { + FIELD *New_Field = (FIELD *)0; +diff -ur ncurses-5.9-orig/form/fld_max.c ncurses-5.9/form/fld_max.c +--- ncurses-5.9-orig/form/fld_max.c 2010-01-23 16:14:36 -0500 ++++ ncurses-5.9/form/fld_max.c 2013-07-04 18:38:37 -0400 +@@ -44,7 +44,7 @@ + | Return Values : E_OK - success + | E_BAD_ARGUMENT - invalid argument + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + set_max_field(FIELD *field, int maxgrow) + { + T((T_CALLED("set_max_field(%p,%d)"), (void *)field, maxgrow)); +diff -ur ncurses-5.9-orig/form/fld_move.c ncurses-5.9/form/fld_move.c +--- ncurses-5.9-orig/form/fld_move.c 2010-01-23 16:14:36 -0500 ++++ ncurses-5.9/form/fld_move.c 2013-07-04 18:38:37 -0400 +@@ -45,7 +45,7 @@ + | E_BAD_ARGUMENT - invalid argument passed + | E_CONNECTED - field is connected + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + move_field(FIELD *field, int frow, int fcol) + { + T((T_CALLED("move_field(%p,%d,%d)"), (void *)field, frow, fcol)); +diff -ur ncurses-5.9-orig/form/fld_newftyp.c ncurses-5.9/form/fld_newftyp.c +--- ncurses-5.9-orig/form/fld_newftyp.c 2010-01-23 16:14:36 -0500 ++++ ncurses-5.9/form/fld_newftyp.c 2013-07-04 18:38:37 -0400 +@@ -52,7 +52,7 @@ + #endif + }; + +-NCURSES_EXPORT_VAR(FIELDTYPE *) ++NCFORM_EXPORT_VAR(FIELDTYPE *) + _nc_Default_FieldType = &default_fieldtype; + + /*--------------------------------------------------------------------------- +@@ -70,7 +70,7 @@ + | + | Return Values : Fieldtype pointer or NULL if error occurred + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(FIELDTYPE *) ++NCFORM_EXPORT(FIELDTYPE *) + new_fieldtype(bool (*const field_check) (FIELD *, const void *), + bool (*const char_check) (int, const void *)) + { +@@ -115,7 +115,7 @@ + | E_CONNECTED - there are fields referencing the type + | E_BAD_ARGUMENT - invalid fieldtype pointer + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + free_fieldtype(FIELDTYPE *typ) + { + T((T_CALLED("free_fieldtype(%p)"), (void *)typ)); +diff -ur ncurses-5.9-orig/form/fld_opts.c ncurses-5.9/form/fld_opts.c +--- ncurses-5.9-orig/form/fld_opts.c 2010-01-23 16:14:36 -0500 ++++ ncurses-5.9/form/fld_opts.c 2013-07-04 18:38:37 -0400 +@@ -50,7 +50,7 @@ + | E_BAD_ARGUMENT - invalid options + | E_SYSTEM_ERROR - system error + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + set_field_opts(FIELD *field, Field_Options opts) + { + int res = E_BAD_ARGUMENT; +@@ -71,7 +71,7 @@ + | + | Return Values : The options. + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(Field_Options) ++NCFORM_EXPORT(Field_Options) + field_opts(const FIELD *field) + { + T((T_CALLED("field_opts(%p)"), (const void *)field)); +@@ -91,7 +91,7 @@ + | E_BAD_ARGUMENT - invalid options + | E_SYSTEM_ERROR - system error + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + field_opts_on(FIELD *field, Field_Options opts) + { + int res = E_BAD_ARGUMENT; +@@ -119,7 +119,7 @@ + | E_BAD_ARGUMENT - invalid options + | E_SYSTEM_ERROR - system error + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + field_opts_off(FIELD *field, Field_Options opts) + { + int res = E_BAD_ARGUMENT; +diff -ur ncurses-5.9-orig/form/fld_pad.c ncurses-5.9/form/fld_pad.c +--- ncurses-5.9-orig/form/fld_pad.c 2010-01-23 16:14:36 -0500 ++++ ncurses-5.9/form/fld_pad.c 2013-07-04 18:38:37 -0400 +@@ -45,7 +45,7 @@ + | E_BAD_ARGUMENT - invalid field pointer or pad character + | E_SYSTEM_ERROR - system error + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + set_field_pad(FIELD *field, int ch) + { + int res = E_BAD_ARGUMENT; +@@ -74,7 +74,7 @@ + | + | Return Values : The pad character. + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + field_pad(const FIELD *field) + { + T((T_CALLED("field_pad(%p)"), (const void *)field)); +diff -ur ncurses-5.9-orig/form/fld_page.c ncurses-5.9/form/fld_page.c +--- ncurses-5.9-orig/form/fld_page.c 2010-01-23 16:14:36 -0500 ++++ ncurses-5.9/form/fld_page.c 2013-07-04 18:38:37 -0400 +@@ -44,7 +44,7 @@ + | Return Values : E_OK - success + | E_CONNECTED - field is connected + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + set_new_page(FIELD *field, bool new_page_flag) + { + T((T_CALLED("set_new_page(%p,%d)"), (void *)field, new_page_flag)); +@@ -71,7 +71,7 @@ + | Return Values : TRUE - field starts a new page + | FALSE - field doesn't start a new page + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(bool) ++NCFORM_EXPORT(bool) + new_page(const FIELD *field) + { + T((T_CALLED("new_page(%p)"), (const void *)field)); +diff -ur ncurses-5.9-orig/form/fld_stat.c ncurses-5.9/form/fld_stat.c +--- ncurses-5.9-orig/form/fld_stat.c 2010-01-23 16:14:36 -0500 ++++ ncurses-5.9/form/fld_stat.c 2013-07-04 18:38:37 -0400 +@@ -43,7 +43,7 @@ + | + | Return Values : E_OK - success + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + set_field_status(FIELD *field, bool status) + { + T((T_CALLED("set_field_status(%p,%d)"), (void *)field, status)); +@@ -68,7 +68,7 @@ + | Return Values : TRUE - buffer has been changed + | FALSE - buffer has not been changed + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(bool) ++NCFORM_EXPORT(bool) + field_status(const FIELD *field) + { + T((T_CALLED("field_status(%p)"), (const void *)field)); +diff -ur ncurses-5.9-orig/form/fld_type.c ncurses-5.9/form/fld_type.c +--- ncurses-5.9-orig/form/fld_type.c 2010-01-23 16:14:36 -0500 ++++ ncurses-5.9/form/fld_type.c 2013-07-04 18:38:37 -0400 +@@ -45,7 +45,7 @@ + | Return Values : E_OK - success + | E_SYSTEM_ERROR - system error + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + set_field_type(FIELD *field, FIELDTYPE *type,...) + { + va_list ap; +@@ -87,7 +87,7 @@ + | + | Return Values : Pointer to fieldtype of NULL if none is defined. + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(FIELDTYPE *) ++NCFORM_EXPORT(FIELDTYPE *) + field_type(const FIELD *field) + { + T((T_CALLED("field_type(%p)"), (const void *)field)); +diff -ur ncurses-5.9-orig/form/fld_user.c ncurses-5.9/form/fld_user.c +--- ncurses-5.9-orig/form/fld_user.c 2010-01-23 16:14:36 -0500 ++++ ncurses-5.9/form/fld_user.c 2013-07-04 18:38:37 -0400 +@@ -43,7 +43,7 @@ + | + | Return Values : E_OK - on success + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + set_field_userptr(FIELD *field, void *usrptr) + { + T((T_CALLED("set_field_userptr(%p,%p)"), (void *)field, (void *)usrptr)); +@@ -62,7 +62,7 @@ + | Return Values : Value of pointer. If no such pointer has been set, + | NULL is returned + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(void *) ++NCFORM_EXPORT(void *) + field_userptr(const FIELD *field) + { + T((T_CALLED("field_userptr(%p)"), (const void *)field)); +diff -ur ncurses-5.9-orig/form/form.h ncurses-5.9/form/form.h +--- ncurses-5.9-orig/form/form.h 2009-11-07 14:31:11 -0500 ++++ ncurses-5.9/form/form.h 2013-07-04 18:38:37 -0400 +@@ -287,132 +287,132 @@ + /************************* + * standard field types * + *************************/ +-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; ++extern NCFORM_EXPORT_VAR(FIELDTYPE *) TYPE_ALPHA; ++extern NCFORM_EXPORT_VAR(FIELDTYPE *) TYPE_ALNUM; ++extern NCFORM_EXPORT_VAR(FIELDTYPE *) TYPE_ENUM; ++extern NCFORM_EXPORT_VAR(FIELDTYPE *) TYPE_INTEGER; ++extern NCFORM_EXPORT_VAR(FIELDTYPE *) TYPE_NUMERIC; ++extern NCFORM_EXPORT_VAR(FIELDTYPE *) TYPE_REGEXP; + + /************************************ + * built-in additional field types * + * They are not defined in SVr4 * + ************************************/ +-extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_IPV4; /* Internet IP Version 4 address */ ++extern NCFORM_EXPORT_VAR(FIELDTYPE *) TYPE_IPV4; /* Internet IP Version 4 address */ + + /*********************** + * FIELDTYPE routines * + ***********************/ +-extern NCURSES_EXPORT(FIELDTYPE *) new_fieldtype ( ++extern NCFORM_EXPORT(FIELDTYPE *) new_fieldtype ( + bool (* const field_check)(FIELD *,const void *), + bool (* const char_check)(int,const void *)); +-extern NCURSES_EXPORT(FIELDTYPE *) link_fieldtype( ++extern NCFORM_EXPORT(FIELDTYPE *) link_fieldtype( + FIELDTYPE *, FIELDTYPE *); + +-extern NCURSES_EXPORT(int) free_fieldtype (FIELDTYPE *); +-extern NCURSES_EXPORT(int) set_fieldtype_arg (FIELDTYPE *, ++extern NCFORM_EXPORT(int) free_fieldtype (FIELDTYPE *); ++extern NCFORM_EXPORT(int) set_fieldtype_arg (FIELDTYPE *, + void * (* const make_arg)(va_list *), + void * (* const copy_arg)(const void *), + void (* const free_arg)(void *)); +-extern NCURSES_EXPORT(int) set_fieldtype_choice (FIELDTYPE *, ++extern NCFORM_EXPORT(int) set_fieldtype_choice (FIELDTYPE *, + bool (* const next_choice)(FIELD *,const void *), + bool (* const prev_choice)(FIELD *,const void *)); + + /******************* + * FIELD routines * + *******************/ +-extern NCURSES_EXPORT(FIELD *) new_field (int,int,int,int,int,int); +-extern NCURSES_EXPORT(FIELD *) dup_field (FIELD *,int,int); +-extern NCURSES_EXPORT(FIELD *) link_field (FIELD *,int,int); +- +-extern NCURSES_EXPORT(int) free_field (FIELD *); +-extern NCURSES_EXPORT(int) field_info (const FIELD *,int *,int *,int *,int *,int *,int *); +-extern NCURSES_EXPORT(int) dynamic_field_info (const FIELD *,int *,int *,int *); +-extern NCURSES_EXPORT(int) set_max_field ( FIELD *,int); +-extern NCURSES_EXPORT(int) move_field (FIELD *,int,int); +-extern NCURSES_EXPORT(int) set_field_type (FIELD *,FIELDTYPE *,...); +-extern NCURSES_EXPORT(int) set_new_page (FIELD *,bool); +-extern NCURSES_EXPORT(int) set_field_just (FIELD *,int); +-extern NCURSES_EXPORT(int) field_just (const FIELD *); +-extern NCURSES_EXPORT(int) set_field_fore (FIELD *,chtype); +-extern NCURSES_EXPORT(int) set_field_back (FIELD *,chtype); +-extern NCURSES_EXPORT(int) set_field_pad (FIELD *,int); +-extern NCURSES_EXPORT(int) field_pad (const FIELD *); +-extern NCURSES_EXPORT(int) set_field_buffer (FIELD *,int,const char *); +-extern NCURSES_EXPORT(int) set_field_status (FIELD *,bool); +-extern NCURSES_EXPORT(int) set_field_userptr (FIELD *, void *); +-extern NCURSES_EXPORT(int) set_field_opts (FIELD *,Field_Options); +-extern NCURSES_EXPORT(int) field_opts_on (FIELD *,Field_Options); +-extern NCURSES_EXPORT(int) field_opts_off (FIELD *,Field_Options); +- +-extern NCURSES_EXPORT(chtype) field_fore (const FIELD *); +-extern NCURSES_EXPORT(chtype) field_back (const FIELD *); +- +-extern NCURSES_EXPORT(bool) new_page (const FIELD *); +-extern NCURSES_EXPORT(bool) field_status (const FIELD *); +- +-extern NCURSES_EXPORT(void *) field_arg (const FIELD *); ++extern NCFORM_EXPORT(FIELD *) new_field (int,int,int,int,int,int); ++extern NCFORM_EXPORT(FIELD *) dup_field (FIELD *,int,int); ++extern NCFORM_EXPORT(FIELD *) link_field (FIELD *,int,int); ++ ++extern NCFORM_EXPORT(int) free_field (FIELD *); ++extern NCFORM_EXPORT(int) field_info (const FIELD *,int *,int *,int *,int *,int *,int *); ++extern NCFORM_EXPORT(int) dynamic_field_info (const FIELD *,int *,int *,int *); ++extern NCFORM_EXPORT(int) set_max_field ( FIELD *,int); ++extern NCFORM_EXPORT(int) move_field (FIELD *,int,int); ++extern NCFORM_EXPORT(int) set_field_type (FIELD *,FIELDTYPE *,...); ++extern NCFORM_EXPORT(int) set_new_page (FIELD *,bool); ++extern NCFORM_EXPORT(int) set_field_just (FIELD *,int); ++extern NCFORM_EXPORT(int) field_just (const FIELD *); ++extern NCFORM_EXPORT(int) set_field_fore (FIELD *,chtype); ++extern NCFORM_EXPORT(int) set_field_back (FIELD *,chtype); ++extern NCFORM_EXPORT(int) set_field_pad (FIELD *,int); ++extern NCFORM_EXPORT(int) field_pad (const FIELD *); ++extern NCFORM_EXPORT(int) set_field_buffer (FIELD *,int,const char *); ++extern NCFORM_EXPORT(int) set_field_status (FIELD *,bool); ++extern NCFORM_EXPORT(int) set_field_userptr (FIELD *, void *); ++extern NCFORM_EXPORT(int) set_field_opts (FIELD *,Field_Options); ++extern NCFORM_EXPORT(int) field_opts_on (FIELD *,Field_Options); ++extern NCFORM_EXPORT(int) field_opts_off (FIELD *,Field_Options); ++ ++extern NCFORM_EXPORT(chtype) field_fore (const FIELD *); ++extern NCFORM_EXPORT(chtype) field_back (const FIELD *); ++ ++extern NCFORM_EXPORT(bool) new_page (const FIELD *); ++extern NCFORM_EXPORT(bool) field_status (const FIELD *); ++ ++extern NCFORM_EXPORT(void *) field_arg (const FIELD *); + +-extern NCURSES_EXPORT(void *) field_userptr (const FIELD *); ++extern NCFORM_EXPORT(void *) field_userptr (const FIELD *); + +-extern NCURSES_EXPORT(FIELDTYPE *) field_type (const FIELD *); ++extern NCFORM_EXPORT(FIELDTYPE *) field_type (const FIELD *); + +-extern NCURSES_EXPORT(char *) field_buffer (const FIELD *,int); ++extern NCFORM_EXPORT(char *) field_buffer (const FIELD *,int); + +-extern NCURSES_EXPORT(Field_Options) field_opts (const FIELD *); ++extern NCFORM_EXPORT(Field_Options) field_opts (const FIELD *); + + /****************** + * FORM routines * + ******************/ + +-extern NCURSES_EXPORT(FORM *) new_form (FIELD **); ++extern NCFORM_EXPORT(FORM *) new_form (FIELD **); + +-extern NCURSES_EXPORT(FIELD **) form_fields (const FORM *); +-extern NCURSES_EXPORT(FIELD *) current_field (const FORM *); ++extern NCFORM_EXPORT(FIELD **) form_fields (const FORM *); ++extern NCFORM_EXPORT(FIELD *) current_field (const FORM *); + +-extern NCURSES_EXPORT(WINDOW *) form_win (const FORM *); +-extern NCURSES_EXPORT(WINDOW *) form_sub (const FORM *); ++extern NCFORM_EXPORT(WINDOW *) form_win (const FORM *); ++extern NCFORM_EXPORT(WINDOW *) form_sub (const FORM *); + +-extern NCURSES_EXPORT(Form_Hook) form_init (const FORM *); +-extern NCURSES_EXPORT(Form_Hook) form_term (const FORM *); +-extern NCURSES_EXPORT(Form_Hook) field_init (const FORM *); +-extern NCURSES_EXPORT(Form_Hook) field_term (const FORM *); +- +-extern NCURSES_EXPORT(int) free_form (FORM *); +-extern NCURSES_EXPORT(int) set_form_fields (FORM *,FIELD **); +-extern NCURSES_EXPORT(int) field_count (const FORM *); +-extern NCURSES_EXPORT(int) set_form_win (FORM *,WINDOW *); +-extern NCURSES_EXPORT(int) set_form_sub (FORM *,WINDOW *); +-extern NCURSES_EXPORT(int) set_current_field (FORM *,FIELD *); +-extern NCURSES_EXPORT(int) field_index (const FIELD *); +-extern NCURSES_EXPORT(int) set_form_page (FORM *,int); +-extern NCURSES_EXPORT(int) form_page (const FORM *); +-extern NCURSES_EXPORT(int) scale_form (const FORM *,int *,int *); +-extern NCURSES_EXPORT(int) set_form_init (FORM *,Form_Hook); +-extern NCURSES_EXPORT(int) set_form_term (FORM *,Form_Hook); +-extern NCURSES_EXPORT(int) set_field_init (FORM *,Form_Hook); +-extern NCURSES_EXPORT(int) set_field_term (FORM *,Form_Hook); +-extern NCURSES_EXPORT(int) post_form (FORM *); +-extern NCURSES_EXPORT(int) unpost_form (FORM *); +-extern NCURSES_EXPORT(int) pos_form_cursor (FORM *); +-extern NCURSES_EXPORT(int) form_driver (FORM *,int); +-extern NCURSES_EXPORT(int) set_form_userptr (FORM *,void *); +-extern NCURSES_EXPORT(int) set_form_opts (FORM *,Form_Options); +-extern NCURSES_EXPORT(int) form_opts_on (FORM *,Form_Options); +-extern NCURSES_EXPORT(int) form_opts_off (FORM *,Form_Options); +-extern NCURSES_EXPORT(int) form_request_by_name (const char *); ++extern NCFORM_EXPORT(Form_Hook) form_init (const FORM *); ++extern NCFORM_EXPORT(Form_Hook) form_term (const FORM *); ++extern NCFORM_EXPORT(Form_Hook) field_init (const FORM *); ++extern NCFORM_EXPORT(Form_Hook) field_term (const FORM *); ++ ++extern NCFORM_EXPORT(int) free_form (FORM *); ++extern NCFORM_EXPORT(int) set_form_fields (FORM *,FIELD **); ++extern NCFORM_EXPORT(int) field_count (const FORM *); ++extern NCFORM_EXPORT(int) set_form_win (FORM *,WINDOW *); ++extern NCFORM_EXPORT(int) set_form_sub (FORM *,WINDOW *); ++extern NCFORM_EXPORT(int) set_current_field (FORM *,FIELD *); ++extern NCFORM_EXPORT(int) field_index (const FIELD *); ++extern NCFORM_EXPORT(int) set_form_page (FORM *,int); ++extern NCFORM_EXPORT(int) form_page (const FORM *); ++extern NCFORM_EXPORT(int) scale_form (const FORM *,int *,int *); ++extern NCFORM_EXPORT(int) set_form_init (FORM *,Form_Hook); ++extern NCFORM_EXPORT(int) set_form_term (FORM *,Form_Hook); ++extern NCFORM_EXPORT(int) set_field_init (FORM *,Form_Hook); ++extern NCFORM_EXPORT(int) set_field_term (FORM *,Form_Hook); ++extern NCFORM_EXPORT(int) post_form (FORM *); ++extern NCFORM_EXPORT(int) unpost_form (FORM *); ++extern NCFORM_EXPORT(int) pos_form_cursor (FORM *); ++extern NCFORM_EXPORT(int) form_driver (FORM *,int); ++extern NCFORM_EXPORT(int) set_form_userptr (FORM *,void *); ++extern NCFORM_EXPORT(int) set_form_opts (FORM *,Form_Options); ++extern NCFORM_EXPORT(int) form_opts_on (FORM *,Form_Options); ++extern NCFORM_EXPORT(int) form_opts_off (FORM *,Form_Options); ++extern NCFORM_EXPORT(int) form_request_by_name (const char *); + +-extern NCURSES_EXPORT(const char *) form_request_name (int); ++extern NCFORM_EXPORT(const char *) form_request_name (int); + +-extern NCURSES_EXPORT(void *) form_userptr (const FORM *); ++extern NCFORM_EXPORT(void *) form_userptr (const FORM *); + +-extern NCURSES_EXPORT(Form_Options) form_opts (const FORM *); ++extern NCFORM_EXPORT(Form_Options) form_opts (const FORM *); + +-extern NCURSES_EXPORT(bool) data_ahead (const FORM *); +-extern NCURSES_EXPORT(bool) data_behind (const FORM *); ++extern NCFORM_EXPORT(bool) data_ahead (const FORM *); ++extern NCFORM_EXPORT(bool) data_behind (const FORM *); + + #if NCURSES_SP_FUNCS +-extern NCURSES_EXPORT(FORM *) NCURSES_SP_NAME(new_form) (SCREEN*, FIELD **); ++extern NCFORM_EXPORT(FORM *) NCURSES_SP_NAME(new_form) (SCREEN*, FIELD **); + #endif + + #ifdef __cplusplus +diff -ur ncurses-5.9-orig/form/form.priv.h ncurses-5.9/form/form.priv.h +--- ncurses-5.9-orig/form/form.priv.h 2009-11-07 16:26:43 -0500 ++++ ncurses-5.9/form/form.priv.h 2013-07-04 18:38:37 -0400 +@@ -65,9 +65,9 @@ + /*********************** + * Default objects * + ***********************/ +-extern NCURSES_EXPORT_VAR(FORM *) _nc_Default_Form; +-extern NCURSES_EXPORT_VAR(FIELD *) _nc_Default_Field; +-extern NCURSES_EXPORT_VAR(FIELDTYPE *) _nc_Default_FieldType; ++extern NCFORM_EXPORT_VAR(FORM *) _nc_Default_Form; ++extern NCFORM_EXPORT_VAR(FIELD *) _nc_Default_Field; ++extern NCFORM_EXPORT_VAR(FIELDTYPE *) _nc_Default_FieldType; + + /* form status values */ + #define _OVLMODE (0x04U) /* Form is in overlay mode */ +@@ -163,31 +163,31 @@ + + #define C_ZEROS '\0' + +-extern NCURSES_EXPORT(TypeArgument *) _nc_Make_Argument (const FIELDTYPE*, va_list*, int*); +-extern NCURSES_EXPORT(TypeArgument *) _nc_Copy_Argument (const FIELDTYPE*, const TypeArgument*, int*); +-extern NCURSES_EXPORT(void) _nc_Free_Argument (const FIELDTYPE*, TypeArgument*); +-extern NCURSES_EXPORT(bool) _nc_Copy_Type (FIELD*, FIELD const *); +-extern NCURSES_EXPORT(void) _nc_Free_Type (FIELD *); +- +-extern NCURSES_EXPORT(int) _nc_Synchronize_Attributes (FIELD*); +-extern NCURSES_EXPORT(int) _nc_Synchronize_Options (FIELD*, Field_Options); +-extern NCURSES_EXPORT(int) _nc_Set_Form_Page (FORM*, int, FIELD*); +-extern NCURSES_EXPORT(int) _nc_Refresh_Current_Field (FORM*); +-extern NCURSES_EXPORT(FIELD *) _nc_First_Active_Field (FORM*); +-extern NCURSES_EXPORT(bool) _nc_Internal_Validation (FORM*); +-extern NCURSES_EXPORT(int) _nc_Set_Current_Field (FORM*, FIELD*); +-extern NCURSES_EXPORT(int) _nc_Position_Form_Cursor (FORM*); ++extern NCFORM_EXPORT(TypeArgument *) _nc_Make_Argument (const FIELDTYPE*, va_list*, int*); ++extern NCFORM_EXPORT(TypeArgument *) _nc_Copy_Argument (const FIELDTYPE*, const TypeArgument*, int*); ++extern NCFORM_EXPORT(void) _nc_Free_Argument (const FIELDTYPE*, TypeArgument*); ++extern NCFORM_EXPORT(bool) _nc_Copy_Type (FIELD*, FIELD const *); ++extern NCFORM_EXPORT(void) _nc_Free_Type (FIELD *); ++ ++extern NCFORM_EXPORT(int) _nc_Synchronize_Attributes (FIELD*); ++extern NCFORM_EXPORT(int) _nc_Synchronize_Options (FIELD*, Field_Options); ++extern NCFORM_EXPORT(int) _nc_Set_Form_Page (FORM*, int, FIELD*); ++extern NCFORM_EXPORT(int) _nc_Refresh_Current_Field (FORM*); ++extern NCFORM_EXPORT(FIELD *) _nc_First_Active_Field (FORM*); ++extern NCFORM_EXPORT(bool) _nc_Internal_Validation (FORM*); ++extern NCFORM_EXPORT(int) _nc_Set_Current_Field (FORM*, FIELD*); ++extern NCFORM_EXPORT(int) _nc_Position_Form_Cursor (FORM*); + + #if NCURSES_INTEROP_FUNCS +-extern NCURSES_EXPORT(FIELDTYPE *) _nc_TYPE_INTEGER(void); +-extern NCURSES_EXPORT(FIELDTYPE *) _nc_TYPE_ALNUM(void); +-extern NCURSES_EXPORT(FIELDTYPE *) _nc_TYPE_ALPHA(void); +-extern NCURSES_EXPORT(FIELDTYPE *) _nc_TYPE_ENUM(void); +-extern NCURSES_EXPORT(FIELDTYPE *) _nc_TYPE_NUMERIC(void); +-extern NCURSES_EXPORT(FIELDTYPE *) _nc_TYPE_REGEXP(void); +-extern NCURSES_EXPORT(FIELDTYPE *) _nc_TYPE_IPV4(void); ++extern NCFORM_EXPORT(FIELDTYPE *) _nc_TYPE_INTEGER(void); ++extern NCFORM_EXPORT(FIELDTYPE *) _nc_TYPE_ALNUM(void); ++extern NCFORM_EXPORT(FIELDTYPE *) _nc_TYPE_ALPHA(void); ++extern NCFORM_EXPORT(FIELDTYPE *) _nc_TYPE_ENUM(void); ++extern NCFORM_EXPORT(FIELDTYPE *) _nc_TYPE_NUMERIC(void); ++extern NCFORM_EXPORT(FIELDTYPE *) _nc_TYPE_REGEXP(void); ++extern NCFORM_EXPORT(FIELDTYPE *) _nc_TYPE_IPV4(void); + +-extern NCURSES_EXPORT(FIELDTYPE *) ++extern NCFORM_EXPORT(FIELDTYPE *) + _nc_generic_fieldtype(bool (*const field_check) (FORM*, + FIELD *, + const void *), +@@ -198,18 +198,18 @@ + bool (*const next)(FORM*,FIELD*,const void*), + bool (*const prev)(FORM*,FIELD*,const void*), + void (*freecallback)(void*)); +-extern NCURSES_EXPORT(int) _nc_set_generic_fieldtype(FIELD*, FIELDTYPE*, int (*)(void**)); +-extern NCURSES_EXPORT(WINDOW*) _nc_form_cursor(const FORM* , int* , int* ); ++extern NCFORM_EXPORT(int) _nc_set_generic_fieldtype(FIELD*, FIELDTYPE*, int (*)(void**)); ++extern NCFORM_EXPORT(WINDOW*) _nc_form_cursor(const FORM* , int* , int* ); + + #define INIT_FT_FUNC(func) {func} + #else + #define INIT_FT_FUNC(func) func + #endif + +-extern NCURSES_EXPORT(void) _nc_get_fieldbuffer(FORM*, FIELD*, FIELD_CELL*); ++extern NCFORM_EXPORT(void) _nc_get_fieldbuffer(FORM*, FIELD*, FIELD_CELL*); + + #if USE_WIDEC_SUPPORT +-extern NCURSES_EXPORT(wchar_t *) _nc_Widen_String(char *, int *); ++extern NCFORM_EXPORT(wchar_t *) _nc_Widen_String(char *, int *); + #endif + + #ifdef TRACE +@@ -220,11 +220,11 @@ + #define returnFieldType(code) TRACE_RETURN(code,field_type) + #define returnFormHook(code) TRACE_RETURN(code,form_hook) + +-extern NCURSES_EXPORT(FIELD **) _nc_retrace_field_ptr (FIELD **); +-extern NCURSES_EXPORT(FIELD *) _nc_retrace_field (FIELD *); +-extern NCURSES_EXPORT(FIELDTYPE *) _nc_retrace_field_type (FIELDTYPE *); +-extern NCURSES_EXPORT(FORM *) _nc_retrace_form (FORM *); +-extern NCURSES_EXPORT(Form_Hook) _nc_retrace_form_hook (Form_Hook); ++extern NCFORM_EXPORT(FIELD **) _nc_retrace_field_ptr (FIELD **); ++extern NCFORM_EXPORT(FIELD *) _nc_retrace_field (FIELD *); ++extern NCFORM_EXPORT(FIELDTYPE *) _nc_retrace_field_type (FIELDTYPE *); ++extern NCFORM_EXPORT(FORM *) _nc_retrace_form (FORM *); ++extern NCFORM_EXPORT(Form_Hook) _nc_retrace_form_hook (Form_Hook); + + #else /* !TRACE */ + +diff -ur ncurses-5.9-orig/form/frm_cursor.c ncurses-5.9/form/frm_cursor.c +--- ncurses-5.9-orig/form/frm_cursor.c 2010-01-23 16:14:36 -0500 ++++ ncurses-5.9/form/frm_cursor.c 2013-07-04 18:38:37 -0400 +@@ -48,7 +48,7 @@ + | E_BAD_ARGUMENT - Invalid form pointer + | E_NOT_POSTED - Form is not posted + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + pos_form_cursor(FORM *form) + { + int res; +diff -ur ncurses-5.9-orig/form/frm_data.c ncurses-5.9/form/frm_data.c +--- ncurses-5.9-orig/form/frm_data.c 2010-01-23 16:14:36 -0500 ++++ ncurses-5.9/form/frm_data.c 2013-07-04 18:38:37 -0400 +@@ -44,7 +44,7 @@ + | Return Values : TRUE - there are off-screen data behind + | FALSE - there are no off-screen data behind + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(bool) ++NCFORM_EXPORT(bool) + data_behind(const FORM *form) + { + bool result = FALSE; +@@ -131,7 +131,7 @@ + | Return Values : TRUE - there are off-screen data ahead + | FALSE - there are no off-screen data ahead + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(bool) ++NCFORM_EXPORT(bool) + data_ahead(const FORM *form) + { + bool result = FALSE; +diff -ur ncurses-5.9-orig/form/frm_def.c ncurses-5.9/form/frm_def.c +--- ncurses-5.9-orig/form/frm_def.c 2010-01-23 16:14:36 -0500 ++++ ncurses-5.9/form/frm_def.c 2013-07-04 18:38:37 -0400 +@@ -61,7 +61,7 @@ + NULL /* fieldterm */ + }; + +-NCURSES_EXPORT_VAR(FORM *) _nc_Default_Form = &default_form; ++NCFORM_EXPORT_VAR(FORM *) _nc_Default_Form = &default_form; + + /*--------------------------------------------------------------------------- + | Facility : libnform +@@ -294,7 +294,7 @@ + | E_CONNECTED - a field is already connected + | E_SYSTEM_ERROR - not enough memory + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(FORM *) ++NCFORM_EXPORT(FORM *) + NCURSES_SP_NAME(new_form) (NCURSES_SP_DCLx FIELD **fields) + { + int err = E_SYSTEM_ERROR; +@@ -343,7 +343,7 @@ + | E_SYSTEM_ERROR - not enough memory + +--------------------------------------------------------------------------*/ + #if NCURSES_SP_FUNCS +-NCURSES_EXPORT(FORM *) ++NCFORM_EXPORT(FORM *) + new_form(FIELD **fields) + { + return NCURSES_SP_NAME(new_form) (CURRENT_SCREEN, fields); +@@ -360,7 +360,7 @@ + | E_BAD_ARGUMENT - invalid form pointer + | E_POSTED - form is posted + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + free_form(FORM *form) + { + T((T_CALLED("free_form(%p)"), (void *)form)); +@@ -391,7 +391,7 @@ + | E_POSTED - form is posted + | E_SYSTEM_ERROR - not enough memory + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + set_form_fields(FORM *form, FIELD **fields) + { + FIELD **old; +@@ -422,7 +422,7 @@ + | + | Return Values : Pointer to field array + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(FIELD **) ++NCFORM_EXPORT(FIELD **) + form_fields(const FORM *form) + { + T((T_CALLED("form_field(%p)"), (const void *)form)); +@@ -437,7 +437,7 @@ + | + | Return Values : Number of fields, -1 if none are defined + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + field_count(const FORM *form) + { + T((T_CALLED("field_count(%p)"), (const void *)form)); +diff -ur ncurses-5.9-orig/form/frm_driver.c ncurses-5.9/form/frm_driver.c +--- ncurses-5.9-orig/form/frm_driver.c 2010-05-01 17:11:43 -0400 ++++ ncurses-5.9/form/frm_driver.c 2013-07-04 18:38:37 -0400 +@@ -524,7 +524,7 @@ + | + | Return Values : - + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(void) ++NCFORM_EXPORT(void) + _nc_get_fieldbuffer(FORM *form, FIELD *field, FIELD_CELL *buf) + { + int pad; +@@ -802,7 +802,7 @@ + | E_SYSTEM_ERROR - form has no current field or + | field-window + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + _nc_Position_Form_Cursor(FORM *form) + { + FIELD *field; +@@ -843,7 +843,7 @@ + | E_BAD_ARGUMENT - invalid form pointer + | E_SYSTEM_ERROR - general error + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + _nc_Refresh_Current_Field(FORM *form) + { + WINDOW *formwin; +@@ -1233,7 +1233,7 @@ + | E_BAD_ARGUMENT - invalid field pointer + | E_SYSTEM_ERROR - some severe basic error + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + _nc_Synchronize_Attributes(FIELD *field) + { + FORM *form; +@@ -1299,7 +1299,7 @@ + | E_CURRENT - field is the current one + | E_SYSTEM_ERROR - some severe basic error + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + _nc_Synchronize_Options(FIELD *field, Field_Options newopts) + { + Field_Options oldopts; +@@ -1401,7 +1401,7 @@ + | E_SYSTEM_ERROR - some severe basic error + | E_NOT_CONNECTED - no fields are connected to the form + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + _nc_Set_Current_Field(FORM *form, FIELD *newfield) + { + FIELD *field; +@@ -3159,7 +3159,7 @@ + | Return Values : TRUE - field is valid + | FALSE - field is invalid + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(bool) ++NCFORM_EXPORT(bool) + _nc_Internal_Validation(FORM *form) + { + FIELD *field; +@@ -3253,7 +3253,7 @@ + | + | Return Values : Pointer to calculated field. + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(FIELD *) ++NCFORM_EXPORT(FIELD *) + _nc_First_Active_Field(FORM *form) + { + FIELD **last_on_page = &form->field[form->page[form->curpage].pmax]; +@@ -3806,7 +3806,7 @@ + | E_BAD_ARGUMENT - invalid field pointer + | E_SYSTEM_ERROR - some severe basic error + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + _nc_Set_Form_Page(FORM *form, int page, FIELD *field) + { + int res = E_OK; +@@ -4193,7 +4193,7 @@ + | E_NOT_CONNECTED - no fields are connected to the form + | E_UNKNOWN_COMMAND - command not known + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + form_driver(FORM *form, int c) + { + const Binding_Info *BI = (Binding_Info *) 0; +@@ -4384,7 +4384,7 @@ + | E_BAD_ARGUMENT - invalid argument + | E_SYSTEM_ERROR - system error + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + set_field_buffer(FIELD *field, int buffer, const char *value) + { + FIELD_CELL *p; +@@ -4501,7 +4501,7 @@ + | + | Return Values : Pointer to buffer or NULL if arguments were invalid. + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(char *) ++NCFORM_EXPORT(char *) + field_buffer(const FIELD *field, int buffer) + { + char *result = 0; +@@ -4569,7 +4569,7 @@ + | Convert a multibyte string to a wide-character string. The result must be + | freed by the caller. + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(wchar_t *) ++NCFORM_EXPORT(wchar_t *) + _nc_Widen_String(char *source, int *lengthp) + { + wchar_t *result = 0; +diff -ur ncurses-5.9-orig/form/frm_hook.c ncurses-5.9/form/frm_hook.c +--- ncurses-5.9-orig/form/frm_hook.c 2010-01-23 16:12:08 -0500 ++++ ncurses-5.9/form/frm_hook.c 2013-07-04 18:38:37 -0400 +@@ -36,7 +36,7 @@ + + /* "Template" macro to generate function to set application specific hook */ + #define GEN_HOOK_SET_FUNCTION( typ, name ) \ +-NCURSES_IMPEXP int NCURSES_API set_ ## typ ## _ ## name (FORM *form, Form_Hook func)\ ++NCFORM_IMPEXP int NCFORM_API set_ ## typ ## _ ## name (FORM *form, Form_Hook func)\ + {\ + T((T_CALLED("set_" #typ"_"#name"(%p,%p)"), form, func));\ + (Normalize_Form( form ) -> typ ## name) = func ;\ +@@ -45,7 +45,7 @@ + + /* "Template" macro to generate function to get application specific hook */ + #define GEN_HOOK_GET_FUNCTION( typ, name ) \ +-NCURSES_IMPEXP Form_Hook NCURSES_API typ ## _ ## name ( const FORM *form )\ ++NCFORM_IMPEXP Form_Hook NCFORM_API typ ## _ ## name ( const FORM *form )\ + {\ + T((T_CALLED(#typ "_" #name "(%p)"), (const void *) form));\ + returnFormHook( Normalize_Form( form ) -> typ ## name );\ +diff -ur ncurses-5.9-orig/form/frm_opts.c ncurses-5.9/form/frm_opts.c +--- ncurses-5.9-orig/form/frm_opts.c 2010-01-23 16:14:36 -0500 ++++ ncurses-5.9/form/frm_opts.c 2013-07-04 18:38:37 -0400 +@@ -44,7 +44,7 @@ + | Return Values : E_OK - success + | E_BAD_ARGUMENT - invalid options + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + set_form_opts(FORM *form, Form_Options opts) + { + T((T_CALLED("set_form_opts(%p,%d)"), (void *)form, opts)); +@@ -67,7 +67,7 @@ + | + | Return Values : The option flags. + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(Form_Options) ++NCFORM_EXPORT(Form_Options) + form_opts(const FORM *form) + { + T((T_CALLED("form_opts(%p)"), (const void *)form)); +@@ -84,7 +84,7 @@ + | Return Values : E_OK - success + | E_BAD_ARGUMENT - invalid options + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + form_opts_on(FORM *form, Form_Options opts) + { + T((T_CALLED("form_opts_on(%p,%d)"), (void *)form, opts)); +@@ -109,7 +109,7 @@ + | Return Values : E_OK - success + | E_BAD_ARGUMENT - invalid options + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + form_opts_off(FORM *form, Form_Options opts) + { + T((T_CALLED("form_opts_off(%p,%d)"), (void *)form, opts)); +diff -ur ncurses-5.9-orig/form/frm_page.c ncurses-5.9/form/frm_page.c +--- ncurses-5.9-orig/form/frm_page.c 2010-01-23 16:14:36 -0500 ++++ ncurses-5.9/form/frm_page.c 2013-07-04 18:38:37 -0400 +@@ -46,7 +46,7 @@ + | E_INVALID_FIELD - current field can't be left + | E_SYSTEM_ERROR - system error + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + set_form_page(FORM *form, int page) + { + int err = E_OK; +@@ -95,7 +95,7 @@ + | Return Values : >= 0 : current page number + | -1 : invalid form pointer + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + form_page(const FORM *form) + { + T((T_CALLED("form_page(%p)"), (const void *)form)); +diff -ur ncurses-5.9-orig/form/frm_post.c ncurses-5.9/form/frm_post.c +--- ncurses-5.9-orig/form/frm_post.c 2010-01-23 16:14:36 -0500 ++++ ncurses-5.9/form/frm_post.c 2013-07-04 18:38:37 -0400 +@@ -47,7 +47,7 @@ + | E_NO_ROOM - form doesn't fit into subwindow + | E_SYSTEM_ERROR - system error + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + post_form(FORM *form) + { + WINDOW *formwin; +@@ -97,7 +97,7 @@ + | E_NOT_POSTED - form isn't posted + | E_BAD_STATE - called from a hook routine + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + unpost_form(FORM *form) + { + T((T_CALLED("unpost_form(%p)"), (void *)form)); +diff -ur ncurses-5.9-orig/form/frm_req_name.c ncurses-5.9/form/frm_req_name.c +--- ncurses-5.9-orig/form/frm_req_name.c 2009-10-10 12:17:01 -0400 ++++ ncurses-5.9/form/frm_req_name.c 2013-07-04 18:38:37 -0400 +@@ -115,7 +115,7 @@ + | Return Values : Pointer to name - on success + | NULL - on invalid request code + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(const char *) ++NCFORM_EXPORT(const char *) + form_request_name(int request) + { + T((T_CALLED("form_request_name(%d)"), request)); +@@ -138,7 +138,7 @@ + | Return Values : Request Id - on success + | E_NO_MATCH - request not found + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + form_request_by_name(const char *str) + { + /* because the table is so small, it doesn't really hurt +diff -ur ncurses-5.9-orig/form/frm_scale.c ncurses-5.9/form/frm_scale.c +--- ncurses-5.9-orig/form/frm_scale.c 2010-01-23 16:14:36 -0500 ++++ ncurses-5.9/form/frm_scale.c 2013-07-04 18:38:37 -0400 +@@ -44,7 +44,7 @@ + | E_BAD_ARGUMENT - invalid form pointer + | E_NOT_CONNECTED - no fields connected to form + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + scale_form(const FORM *form, int *rows, int *cols) + { + T((T_CALLED("scale_form(%p,%p,%p)"), +diff -ur ncurses-5.9-orig/form/frm_sub.c ncurses-5.9/form/frm_sub.c +--- ncurses-5.9-orig/form/frm_sub.c 2010-01-23 16:14:36 -0500 ++++ ncurses-5.9/form/frm_sub.c 2013-07-04 18:38:37 -0400 +@@ -43,7 +43,7 @@ + | Return Values : E_OK - success + | E_POSTED - form is posted + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + set_form_sub(FORM *form, WINDOW *win) + { + T((T_CALLED("set_form_sub(%p,%p)"), (void *)form, (void *)win)); +@@ -72,7 +72,7 @@ + | + | Return Values : The pointer to the Subwindow. + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(WINDOW *) ++NCFORM_EXPORT(WINDOW *) + form_sub(const FORM *form) + { + const FORM *f; +diff -ur ncurses-5.9-orig/form/frm_user.c ncurses-5.9/form/frm_user.c +--- ncurses-5.9-orig/form/frm_user.c 2010-01-23 16:14:36 -0500 ++++ ncurses-5.9/form/frm_user.c 2013-07-04 18:38:37 -0400 +@@ -43,7 +43,7 @@ + | + | Return Values : E_OK - on success + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + set_form_userptr(FORM *form, void *usrptr) + { + T((T_CALLED("set_form_userptr(%p,%p)"), (void *)form, (void *)usrptr)); +@@ -62,7 +62,7 @@ + | Return Values : Value of pointer. If no such pointer has been set, + | NULL is returned + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(void *) ++NCFORM_EXPORT(void *) + form_userptr(const FORM *form) + { + T((T_CALLED("form_userptr(%p)"), (const void *)form)); +diff -ur ncurses-5.9-orig/form/frm_win.c ncurses-5.9/form/frm_win.c +--- ncurses-5.9-orig/form/frm_win.c 2010-01-23 16:14:36 -0500 ++++ ncurses-5.9/form/frm_win.c 2013-07-04 18:38:37 -0400 +@@ -43,7 +43,7 @@ + | Return Values : E_OK - success + | E_POSTED - form is posted + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + set_form_win(FORM *form, WINDOW *win) + { + T((T_CALLED("set_form_win(%p,%p)"), (void *)form, (void *)win)); +@@ -72,7 +72,7 @@ + | + | Return Values : The pointer to the Window or stdscr if there is none. + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(WINDOW *) ++NCFORM_EXPORT(WINDOW *) + form_win(const FORM *form) + { + WINDOW *result; +diff -ur ncurses-5.9-orig/form/fty_alnum.c ncurses-5.9/form/fty_alnum.c +--- ncurses-5.9-orig/form/fty_alnum.c 2010-01-23 16:14:36 -0500 ++++ ncurses-5.9/form/fty_alnum.c 2013-07-04 18:38:37 -0400 +@@ -185,14 +185,14 @@ + #endif + }; + +-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ALNUM = &typeTHIS; ++NCFORM_EXPORT_VAR(FIELDTYPE*) TYPE_ALNUM = &typeTHIS; + + #if NCURSES_INTEROP_FUNCS + /* The next routines are to simplify the use of ncurses from + programming languages with restictions on interop with C level + constructs (e.g. variable access or va_list + ellipsis constructs) + */ +-NCURSES_EXPORT(FIELDTYPE *) ++NCFORM_EXPORT(FIELDTYPE *) + _nc_TYPE_ALNUM(void) + { + return TYPE_ALNUM; +diff -ur ncurses-5.9-orig/form/fty_alpha.c ncurses-5.9/form/fty_alpha.c +--- ncurses-5.9-orig/form/fty_alpha.c 2010-01-23 16:14:36 -0500 ++++ ncurses-5.9/form/fty_alpha.c 2013-07-04 18:38:37 -0400 +@@ -185,14 +185,14 @@ + #endif + }; + +-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ALPHA = &typeTHIS; ++NCFORM_EXPORT_VAR(FIELDTYPE*) TYPE_ALPHA = &typeTHIS; + + #if NCURSES_INTEROP_FUNCS + /* The next routines are to simplify the use of ncurses from + programming languages with restictions on interop with C level + constructs (e.g. variable access or va_list + ellipsis constructs) + */ +-NCURSES_EXPORT(FIELDTYPE *) ++NCFORM_EXPORT(FIELDTYPE *) + _nc_TYPE_ALPHA(void) + { + return TYPE_ALPHA; +diff -ur ncurses-5.9-orig/form/fty_enum.c ncurses-5.9/form/fty_enum.c +--- ncurses-5.9-orig/form/fty_enum.c 2010-05-01 17:11:07 -0400 ++++ ncurses-5.9/form/fty_enum.c 2013-07-04 18:38:37 -0400 +@@ -424,7 +424,7 @@ + #endif + }; + +-NCURSES_EXPORT_VAR(FIELDTYPE *) ++NCFORM_EXPORT_VAR(FIELDTYPE *) + TYPE_ENUM = &typeENUM; + + #if NCURSES_INTEROP_FUNCS +@@ -432,7 +432,7 @@ + programming languages with restictions on interop with C level + constructs (e.g. variable access or va_list + ellipsis constructs) + */ +-NCURSES_EXPORT(FIELDTYPE *) ++NCFORM_EXPORT(FIELDTYPE *) + _nc_TYPE_ENUM(void) + { + return TYPE_ENUM; +diff -ur ncurses-5.9-orig/form/fty_generic.c ncurses-5.9/form/fty_generic.c +--- ncurses-5.9-orig/form/fty_generic.c 2010-01-23 16:14:36 -0500 ++++ ncurses-5.9/form/fty_generic.c 2013-07-04 18:38:37 -0400 +@@ -98,7 +98,7 @@ + | + | Return Values : Fieldtype pointer or NULL if error occurred + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(FIELDTYPE *) ++NCFORM_EXPORT(FIELDTYPE *) + _nc_generic_fieldtype(bool (*const field_check) (FORM *, FIELD *, const void *), + bool (*const char_check) (int, FORM *, FIELD *, const + void *), +@@ -213,7 +213,7 @@ + | Return Values : E_OK if all went well + | E_SYSTEM_ERROR if an error occurred + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCFORM_EXPORT(int) + _nc_set_generic_fieldtype(FIELD *field, + FIELDTYPE *ftyp, + int (*argiterator) (void **)) +@@ -268,7 +268,7 @@ + | + | Return Values : The fields Window or NULL on error + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(WINDOW *) ++NCFORM_EXPORT(WINDOW *) + _nc_form_cursor(const FORM *form, int *pRow, int *pCol) + { + int code = E_SYSTEM_ERROR; +diff -ur ncurses-5.9-orig/form/fty_int.c ncurses-5.9/form/fty_int.c +--- ncurses-5.9-orig/form/fty_int.c 2010-01-23 16:14:36 -0500 ++++ ncurses-5.9/form/fty_int.c 2013-07-04 18:38:37 -0400 +@@ -276,14 +276,14 @@ + #endif + }; + +-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_INTEGER = &typeTHIS; ++NCFORM_EXPORT_VAR(FIELDTYPE*) TYPE_INTEGER = &typeTHIS; + + #if NCURSES_INTEROP_FUNCS + /* The next routines are to simplify the use of ncurses from + programming languages with restictions on interop with C level + constructs (e.g. variable access or va_list + ellipsis constructs) + */ +-NCURSES_EXPORT(FIELDTYPE *) ++NCFORM_EXPORT(FIELDTYPE *) + _nc_TYPE_INTEGER(void) + { + return TYPE_INTEGER; +diff -ur ncurses-5.9-orig/form/fty_ipv4.c ncurses-5.9/form/fty_ipv4.c +--- ncurses-5.9-orig/form/fty_ipv4.c 2009-11-07 15:17:58 -0500 ++++ ncurses-5.9/form/fty_ipv4.c 2013-07-04 18:38:37 -0400 +@@ -103,14 +103,14 @@ + #endif + }; + +-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_IPV4 = &typeIPV4; ++NCFORM_EXPORT_VAR(FIELDTYPE*) TYPE_IPV4 = &typeIPV4; + + #if NCURSES_INTEROP_FUNCS + /* The next routines are to simplify the use of ncurses from + programming languages with restictions on interop with C level + constructs (e.g. variable access or va_list + ellipsis constructs) + */ +-NCURSES_EXPORT(FIELDTYPE *) ++NCFORM_EXPORT(FIELDTYPE *) + _nc_TYPE_IPV4(void) + { + return TYPE_IPV4; +diff -ur ncurses-5.9-orig/form/fty_num.c ncurses-5.9/form/fty_num.c +--- ncurses-5.9-orig/form/fty_num.c 2010-01-23 16:14:36 -0500 ++++ ncurses-5.9/form/fty_num.c 2013-07-04 18:38:37 -0400 +@@ -322,14 +322,14 @@ + #endif + }; + +-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_NUMERIC = &typeTHIS; ++NCFORM_EXPORT_VAR(FIELDTYPE*) TYPE_NUMERIC = &typeTHIS; + + #if NCURSES_INTEROP_FUNCS + /* The next routines are to simplify the use of ncurses from + programming languages with restictions on interop with C level + constructs (e.g. variable access or va_list + ellipsis constructs) + */ +-NCURSES_EXPORT(FIELDTYPE *) ++NCFORM_EXPORT(FIELDTYPE *) + _nc_TYPE_NUMERIC(void) + { + return TYPE_NUMERIC; +diff -ur ncurses-5.9-orig/form/fty_regex.c ncurses-5.9/form/fty_regex.c +--- ncurses-5.9-orig/form/fty_regex.c 2010-01-23 16:14:37 -0500 ++++ ncurses-5.9/form/fty_regex.c 2013-07-04 18:38:37 -0400 +@@ -333,14 +333,14 @@ + #endif + }; + +-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_REGEXP = &typeREGEXP; ++NCFORM_EXPORT_VAR(FIELDTYPE*) TYPE_REGEXP = &typeREGEXP; + + #if NCURSES_INTEROP_FUNCS + /* The next routines are to simplify the use of ncurses from + programming languages with restictions on interop with C level + constructs (e.g. variable access or va_list + ellipsis constructs) + */ +-NCURSES_EXPORT(FIELDTYPE *) ++NCFORM_EXPORT(FIELDTYPE *) + _nc_TYPE_REGEXP(void) + { + return TYPE_REGEXP; +diff -ur ncurses-5.9-orig/include/MKkey_defs.sh ncurses-5.9/include/MKkey_defs.sh +--- ncurses-5.9-orig/include/MKkey_defs.sh 2003-12-06 12:10:09 -0500 ++++ ncurses-5.9/include/MKkey_defs.sh 2013-07-04 18:38:37 -0400 +@@ -62,7 +62,7 @@ + # add keys that we generate automatically: + cat >>$data <" + print "# define TTY struct termios" + print "#else" +diff -ur ncurses-5.9-orig/include/nc_mingw.h ncurses-5.9/include/nc_mingw.h +--- ncurses-5.9-orig/include/nc_mingw.h 2010-09-25 18:16:12 -0400 ++++ ncurses-5.9/include/nc_mingw.h 2013-07-04 18:38:37 -0400 +@@ -43,6 +43,7 @@ + #else + # define WINVER 0x0501 + #endif ++#include + #include + + #undef sleep +@@ -51,7 +52,9 @@ + #undef gettimeofday + #define gettimeofday(tv,tz) _nc_gettimeofday(tv,tz) + ++#ifndef _MSC_VER + #include /* for struct timeval */ ++#endif + + extern int _nc_gettimeofday(struct timeval *, void *); + +diff -ur ncurses-5.9-orig/include/ncurses_dll.h.in ncurses-5.9/include/ncurses_dll.h.in +--- ncurses-5.9-orig/include/ncurses_dll.h.in 2009-04-04 18:26:27 -0400 ++++ ncurses-5.9/include/ncurses_dll.h.in 2013-07-04 18:38:37 -0400 +@@ -41,10 +41,9 @@ + /* but this structure may be useful at some point for an MSVC build */ + /* so, for now unconditionally define the important flags */ + /* "the right way" for proper static and dll+auto-import behavior */ +-#undef NCURSES_DLL +-#define NCURSES_STATIC ++#undef NCURSES_STATIC + +-#if defined(__CYGWIN__) || defined(__MINGW32__) ++#if defined(__CYGWIN__) || defined(__MINGW32__) || defined(_MSC_VER) + # if defined(NCURSES_DLL) + # if defined(NCURSES_STATIC) + # undef NCURSES_STATIC +@@ -67,6 +66,98 @@ + # define NCURSES_API __cdecl + # define NCURSES_EXPORT(type) NCURSES_IMPEXP type NCURSES_API + # define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type ++ ++# if defined(NCURSESXX_DLL) ++# if defined(NCURSES_STATIC) ++# undef NCURSES_STATIC ++# endif ++# endif ++# undef NCURSESXX_IMPEXP ++# undef NCURSESXX_API ++# undef NCURSESXX_EXPORT ++# undef NCURSESXX_EXPORT_VAR ++# if defined(NCURSESXX_DLL) ++/* building a DLL */ ++# define NCURSESXX_IMPEXP __declspec(dllexport) ++# elif defined(NCURSES_STATIC) ++/* building or linking to a static library */ ++# define NCURSESXX_IMPEXP /* nothing */ ++# else ++/* linking to the DLL */ ++# define NCURSESXX_IMPEXP __declspec(dllimport) ++# endif ++# define NCURSESXX_API __cdecl ++# define NCURSESXX_EXPORT(type) NCURSESXX_IMPEXP type NCURSESXX_API ++# define NCURSESXX_EXPORT_VAR(type) NCURSESXX_IMPEXP type ++ ++# if defined(NCMENU_DLL) ++# if defined(NCURSES_STATIC) ++# undef NCURSES_STATIC ++# endif ++# endif ++# undef NCMENU_IMPEXP ++# undef NCMENU_API ++# undef NCMENU_EXPORT ++# undef NCMENU_EXPORT_VAR ++# if defined(NCMENU_DLL) ++/* building a DLL */ ++# define NCMENU_IMPEXP __declspec(dllexport) ++# elif defined(NCURSES_STATIC) ++/* building or linking to a static library */ ++# define NCMENU_IMPEXP /* nothing */ ++# else ++/* linking to the DLL */ ++# define NCMENU_IMPEXP __declspec(dllimport) ++# endif ++# define NCMENU_API __cdecl ++# define NCMENU_EXPORT(type) NCMENU_IMPEXP type NCMENU_API ++# define NCMENU_EXPORT_VAR(type) NCMENU_IMPEXP type ++ ++# if defined(NCPANEL_DLL) ++# if defined(NCURSES_STATIC) ++# undef NCURSES_STATIC ++# endif ++# endif ++# undef NCPANEL_IMPEXP ++# undef NCPANEL_API ++# undef NCPANEL_EXPORT ++# undef NCPANEL_EXPORT_VAR ++# if defined(NCPANEL_DLL) ++/* building a DLL */ ++# define NCPANEL_IMPEXP __declspec(dllexport) ++# elif defined(NCURSES_STATIC) ++/* building or linking to a static library */ ++# define NCPANEL_IMPEXP /* nothing */ ++# else ++/* linking to the DLL */ ++# define NCPANEL_IMPEXP __declspec(dllimport) ++# endif ++# define NCPANEL_API __cdecl ++# define NCPANEL_EXPORT(type) NCPANEL_IMPEXP type NCPANEL_API ++# define NCPANEL_EXPORT_VAR(type) NCPANEL_IMPEXP type ++ ++# if defined(NCFORM_DLL) ++# if defined(NCURSES_STATIC) ++# undef NCURSES_STATIC ++# endif ++# endif ++# undef NCFORM_IMPEXP ++# undef NCFORM_API ++# undef NCFORM_EXPORT ++# undef NCFORM_EXPORT_VAR ++# if defined(NCFORM_DLL) ++/* building a DLL */ ++# define NCFORM_IMPEXP __declspec(dllexport) ++# elif defined(NCURSES_STATIC) ++/* building or linking to a static library */ ++# define NCFORM_IMPEXP /* nothing */ ++# else ++/* linking to the DLL */ ++# define NCFORM_IMPEXP __declspec(dllimport) ++# endif ++# define NCFORM_API __cdecl ++# define NCFORM_EXPORT(type) NCFORM_IMPEXP type NCFORM_API ++# define NCFORM_EXPORT_VAR(type) NCFORM_IMPEXP type + #endif + + /* Take care of non-cygwin platforms */ +@@ -83,4 +174,43 @@ + # define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type + #endif + ++#if !defined(NCMENU_IMPEXP) ++# define NCMENU_IMPEXP /* nothing */ ++#endif ++#if !defined(NCMENU_API) ++# define NCMENU_API /* nothing */ ++#endif ++#if !defined(NCMENU_EXPORT) ++# define NCMENU_EXPORT(type) NCMENU_IMPEXP type NCMENU_API ++#endif ++#if !defined(NCMENU_EXPORT_VAR) ++# define NCMENU_EXPORT_VAR(type) NCMENU_IMPEXP type ++#endif ++ ++#if !defined(NCPANEL_IMPEXP) ++# define NCPANEL_IMPEXP /* nothing */ ++#endif ++#if !defined(NCPANEL_API) ++# define NCPANEL_API /* nothing */ ++#endif ++#if !defined(NCPANEL_EXPORT) ++# define NCPANEL_EXPORT(type) NCPANEL_IMPEXP type NCPANEL_API ++#endif ++#if !defined(NCPANEL_EXPORT_VAR) ++# define NCPANEL_EXPORT_VAR(type) NCPANEL_IMPEXP type ++#endif ++ ++#if !defined(NCFORM_IMPEXP) ++# define NCFORM_IMPEXP /* nothing */ ++#endif ++#if !defined(NCFORM_API) ++# define NCFORM_API /* nothing */ ++#endif ++#if !defined(NCFORM_EXPORT) ++# define NCFORM_EXPORT(type) NCFORM_IMPEXP type NCFORM_API ++#endif ++#if !defined(NCFORM_EXPORT_VAR) ++# define NCFORM_EXPORT_VAR(type) NCFORM_IMPEXP type ++#endif ++ + #endif /* NCURSES_DLL_H_incl */ +diff -ur ncurses-5.9-orig/include/ncurses_mingw.h ncurses-5.9/include/ncurses_mingw.h +--- ncurses-5.9-orig/include/ncurses_mingw.h 2008-12-14 14:22:16 -0500 ++++ ncurses-5.9/include/ncurses_mingw.h 2013-07-04 18:38:37 -0400 +@@ -38,7 +38,7 @@ + * to support I/O to external terminals with ncurses on the Windows OS. + */ + +-#if __MINGW32__ ++#if __MINGW32__ || defined(_MSC_VER) + #ifndef _NC_MINGWH + #define _NC_MINGWH + +diff -ur ncurses-5.9-orig/include/term_entry.h ncurses-5.9/include/term_entry.h +--- ncurses-5.9-orig/include/term_entry.h 2009-07-11 12:52:29 -0400 ++++ ncurses-5.9/include/term_entry.h 2013-07-04 18:38:37 -0400 +@@ -161,8 +161,8 @@ + extern NCURSES_EXPORT(int) _nc_resolve_uses (bool); /* obs 20040705 */ + extern NCURSES_EXPORT(int) _nc_resolve_uses2 (bool, bool); + extern NCURSES_EXPORT(void) _nc_free_entries (ENTRY *); +-extern NCURSES_IMPEXP void NCURSES_API (*_nc_check_termtype)(TERMTYPE *); /* obs 20040705 */ +-extern NCURSES_IMPEXP void NCURSES_API (*_nc_check_termtype2)(TERMTYPE *, bool); ++extern NCURSES_IMPEXP void (NCURSES_API *_nc_check_termtype)(TERMTYPE *); /* obs 20040705 */ ++extern NCURSES_IMPEXP void (NCURSES_API *_nc_check_termtype2)(TERMTYPE *, bool); + + /* trace_xnames.c */ + extern NCURSES_EXPORT(void) _nc_trace_xnames (TERMTYPE *); +diff -ur ncurses-5.9-orig/include/tic.h ncurses-5.9/include/tic.h +--- ncurses-5.9-orig/include/tic.h 2009-08-08 13:52:46 -0400 ++++ ncurses-5.9/include/tic.h 2013-07-04 18:38:37 -0400 +@@ -299,6 +299,9 @@ + + /* home_terminfo.c */ + extern NCURSES_EXPORT(char *) _nc_home_terminfo (void); ++#ifdef _MSC_VER ++extern NCURSES_EXPORT(char *) _nc_win32_terminfo (void); ++#endif + + /* lib_tparm.c */ + #define NUM_PARM 9 +@@ -318,6 +321,9 @@ + dbdTIC = 0, + #if USE_DATABASE + dbdEnvOnce, ++#ifdef _MSC_VER ++ dbdWin32, ++#endif + dbdHome, + dbdEnvList, + dbdCfgList, +diff -ur ncurses-5.9-orig/menu/Makefile.in ncurses-5.9/menu/Makefile.in +--- ncurses-5.9-orig/menu/Makefile.in 2010-11-27 16:45:27 -0500 ++++ ncurses-5.9/menu/Makefile.in 2013-07-04 18:38:37 -0400 +@@ -84,7 +84,7 @@ + CPP = @CPP@ + CFLAGS = @CFLAGS@ + +-CPPFLAGS = -I@top_srcdir@/ncurses -DHAVE_CONFIG_H @CPPFLAGS@ ++CPPFLAGS = -I@top_srcdir@/ncurses -DHAVE_CONFIG_H -DNCMENU_DLL @CPPFLAGS@ + + CCFLAGS = $(CPPFLAGS) $(CFLAGS) + +diff -ur ncurses-5.9-orig/menu/m_attribs.c ncurses-5.9/menu/m_attribs.c +--- ncurses-5.9-orig/menu/m_attribs.c 2010-01-23 16:16:54 -0500 ++++ ncurses-5.9/menu/m_attribs.c 2013-07-04 18:38:37 -0400 +@@ -49,7 +49,7 @@ + + /* "Template" macro to generate a function to set a menus attribute */ + #define GEN_MENU_ATTR_SET_FCT( name ) \ +-NCURSES_IMPEXP int NCURSES_API set_menu_ ## name (MENU* menu, chtype attr) \ ++NCMENU_IMPEXP int NCMENU_API set_menu_ ## name (MENU* menu, chtype attr) \ + {\ + T((T_CALLED("set_menu_" #name "(%p,%s)"), menu, _traceattr(attr))); \ + if (!(attr==A_NORMAL || (attr & A_ATTRIBUTES)==attr))\ +@@ -65,7 +65,7 @@ + + /* "Template" macro to generate a function to get a menu's attribute */ + #define GEN_MENU_ATTR_GET_FCT( name ) \ +-NCURSES_IMPEXP chtype NCURSES_API menu_ ## name (const MENU * menu)\ ++NCMENU_IMPEXP chtype NCMENU_API menu_ ## name (const MENU * menu)\ + {\ + T((T_CALLED("menu_" #name "(%p)"), (const void *) menu));\ + returnAttr(Normalize_Menu( menu ) -> name);\ +diff -ur ncurses-5.9-orig/menu/m_cursor.c ncurses-5.9/menu/m_cursor.c +--- ncurses-5.9-orig/menu/m_cursor.c 2010-01-23 16:20:10 -0500 ++++ ncurses-5.9/menu/m_cursor.c 2013-07-04 18:38:37 -0400 +@@ -49,7 +49,7 @@ + | E_BAD_ARGUMENT - invalid menu + | E_NOT_POSTED - Menu is not posted + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + _nc_menu_cursor_pos(const MENU * menu, const ITEM * item, int *pY, int *pX) + { + if (!menu || !pX || !pY) +@@ -79,7 +79,7 @@ + | E_BAD_ARGUMENT - invalid menu + | E_NOT_POSTED - Menu is not posted + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + pos_menu_cursor(const MENU * menu) + { + WINDOW *win, *sub; +diff -ur ncurses-5.9-orig/menu/m_driver.c ncurses-5.9/menu/m_driver.c +--- ncurses-5.9-orig/menu/m_driver.c 2010-01-23 16:20:10 -0500 ++++ ncurses-5.9/menu/m_driver.c 2013-07-04 18:38:37 -0400 +@@ -114,7 +114,7 @@ + | Return Values : E_OK - an item matching the pattern was found + | E_NO_MATCH - nothing found + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + _nc_Match_Next_Character_In_Item_Name + (MENU * menu, int ch, ITEM ** item) + { +@@ -208,7 +208,7 @@ + | E_BAD_STATE - menu is in user hook routine + | E_NOT_POSTED - menu is not posted + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + menu_driver(MENU * menu, int c) + { + #define NAVIGATE(dir) \ +diff -ur ncurses-5.9-orig/menu/m_format.c ncurses-5.9/menu/m_format.c +--- ncurses-5.9-orig/menu/m_format.c 2010-01-23 16:20:10 -0500 ++++ ncurses-5.9/menu/m_format.c 2013-07-04 18:38:37 -0400 +@@ -55,7 +55,7 @@ + | E_NOT_CONNECTED - there are no items connected + | E_POSTED - the menu is already posted + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + set_menu_format(MENU * menu, int rows, int cols) + { + int total_rows, total_cols; +@@ -119,7 +119,7 @@ + | + | Return Values : - + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(void) ++NCMENU_EXPORT(void) + menu_format(const MENU * menu, int *rows, int *cols) + { + if (rows) +diff -ur ncurses-5.9-orig/menu/m_global.c ncurses-5.9/menu/m_global.c +--- ncurses-5.9-orig/menu/m_global.c 2010-01-23 16:20:10 -0500 ++++ ncurses-5.9/menu/m_global.c 2013-07-04 18:38:38 -0400 +@@ -41,7 +41,7 @@ + + static char mark[] = "-"; + /* *INDENT-OFF* */ +-NCURSES_EXPORT_VAR(MENU) _nc_Default_Menu = { ++NCMENU_EXPORT_VAR(MENU) _nc_Default_Menu = { + 16, /* Nr. of chars high */ + 1, /* Nr. of chars wide */ + 16, /* Nr. of items high */ +@@ -80,7 +80,7 @@ + 0 /* status */ + }; + +-NCURSES_EXPORT_VAR(ITEM) _nc_Default_Item = { ++NCMENU_EXPORT_VAR(ITEM) _nc_Default_Item = { + { (char *)0, 0 }, /* name */ + { (char *)0, 0 }, /* description */ + (MENU *)0, /* Pointer to parent menu */ +@@ -170,7 +170,7 @@ + | Return Values : TRUE - successful connection + | FALSE - connection failed + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(bool) ++NCMENU_EXPORT(bool) + _nc_Connect_Items(MENU * menu, ITEM ** items) + { + ITEM **item; +@@ -232,7 +232,7 @@ + | + | Return Values : - + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(void) ++NCMENU_EXPORT(void) + _nc_Disconnect_Items(MENU * menu) + { + if (menu && menu->items) +@@ -247,7 +247,7 @@ + | + | Return Values : the width + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + _nc_Calculate_Text_Width(const TEXT * item /*FIXME: limit length */ ) + { + #if USE_WIDEC_SUPPORT +@@ -336,7 +336,7 @@ + | + | Return Values : - + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(void) ++NCMENU_EXPORT(void) + _nc_Calculate_Item_Length_and_Width(MENU * menu) + { + int l; +@@ -375,7 +375,7 @@ + | + | Return Values : - + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(void) ++NCMENU_EXPORT(void) + _nc_Link_Items(MENU * menu) + { + if (menu && menu->items && *(menu->items)) +@@ -502,7 +502,7 @@ + | + | Return Values : - + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(void) ++NCMENU_EXPORT(void) + _nc_Show_Menu(const MENU * menu) + { + WINDOW *win; +@@ -542,7 +542,7 @@ + | + | Return Values : - + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(void) ++NCMENU_EXPORT(void) + _nc_New_TopRow_and_CurrentItem( + MENU * menu, + int new_toprow, +diff -ur ncurses-5.9-orig/menu/m_hook.c ncurses-5.9/menu/m_hook.c +--- ncurses-5.9-orig/menu/m_hook.c 2010-01-23 16:16:54 -0500 ++++ ncurses-5.9/menu/m_hook.c 2013-07-04 18:38:38 -0400 +@@ -41,7 +41,7 @@ + + /* "Template" macro to generate function to set application specific hook */ + #define GEN_HOOK_SET_FUNCTION( typ, name ) \ +-NCURSES_IMPEXP int NCURSES_API set_ ## typ ## _ ## name (MENU *menu, Menu_Hook func )\ ++NCMENU_IMPEXP int NCMENU_API set_ ## typ ## _ ## name (MENU *menu, Menu_Hook func )\ + {\ + T((T_CALLED("set_" #typ "_" #name "(%p,%p)"), menu, func));\ + (Normalize_Menu(menu) -> typ ## name = func );\ +@@ -50,7 +50,7 @@ + + /* "Template" macro to generate function to get application specific hook */ + #define GEN_HOOK_GET_FUNCTION( typ, name ) \ +-NCURSES_IMPEXP Menu_Hook NCURSES_API typ ## _ ## name ( const MENU *menu )\ ++NCMENU_IMPEXP Menu_Hook NCMENU_API typ ## _ ## name ( const MENU *menu )\ + {\ + T((T_CALLED(#typ "_" #name "(%p)"), (const void *) menu));\ + returnMenuHook(Normalize_Menu(menu) -> typ ## name);\ +diff -ur ncurses-5.9-orig/menu/m_item_cur.c ncurses-5.9/menu/m_item_cur.c +--- ncurses-5.9-orig/menu/m_item_cur.c 2010-01-23 16:20:10 -0500 ++++ ncurses-5.9/menu/m_item_cur.c 2013-07-04 18:38:38 -0400 +@@ -47,7 +47,7 @@ + | + | Return Values : E_OK - success + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + set_current_item(MENU * menu, ITEM * item) + { + T((T_CALLED("set_current_item(%p,%p)"), (void *)menu, (void *)item)); +@@ -88,7 +88,7 @@ + | + | Return Values : Item pointer or NULL if failure + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(ITEM *) ++NCMENU_EXPORT(ITEM *) + current_item(const MENU * menu) + { + T((T_CALLED("current_item(%p)"), (const void *)menu)); +@@ -103,7 +103,7 @@ + | + | Return Values : The index or ERR if this is an invalid item pointer + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + item_index(const ITEM * item) + { + T((T_CALLED("item_index(%p)"), (const void *)item)); +diff -ur ncurses-5.9-orig/menu/m_item_nam.c ncurses-5.9/menu/m_item_nam.c +--- ncurses-5.9-orig/menu/m_item_nam.c 2010-01-23 16:20:10 -0500 ++++ ncurses-5.9/menu/m_item_nam.c 2013-07-04 18:38:38 -0400 +@@ -47,7 +47,7 @@ + | + | Return Values : See above; returns NULL if item is invalid + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(const char *) ++NCMENU_EXPORT(const char *) + item_name(const ITEM * item) + { + T((T_CALLED("item_name(%p)"), (const void *)item)); +@@ -62,7 +62,7 @@ + | + | Return Values : See above; Returns NULL if item is invalid + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(const char *) ++NCMENU_EXPORT(const char *) + item_description(const ITEM * item) + { + T((T_CALLED("item_description(%p)"), (const void *)item)); +diff -ur ncurses-5.9-orig/menu/m_item_new.c ncurses-5.9/menu/m_item_new.c +--- ncurses-5.9-orig/menu/m_item_new.c 2010-01-23 16:20:11 -0500 ++++ ncurses-5.9/menu/m_item_new.c 2013-07-04 18:38:38 -0400 +@@ -106,7 +106,7 @@ + | + | Return Values : The item pointer or NULL if creation failed. + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(ITEM *) ++NCMENU_EXPORT(ITEM *) + new_item(const char *name, const char *description) + { + ITEM *item; +@@ -159,7 +159,7 @@ + | E_BAD_ARGUMENT - invalid value has been passed + | E_CONNECTED - item is still connected to a menu + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + free_item(ITEM * item) + { + T((T_CALLED("free_item(%p)"), (void *)item)); +@@ -192,7 +192,7 @@ + | E_BAD_ARGUMENT - an invalid value has been passed + | E_SYSTEM_ERROR - no memory to store mark + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + set_menu_mark(MENU * menu, const char *mark) + { + unsigned l; +@@ -265,7 +265,7 @@ + | + | Return Values : The marker string pointer or NULL if no marker defined + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(const char *) ++NCMENU_EXPORT(const char *) + menu_mark(const MENU * menu) + { + T((T_CALLED("menu_mark(%p)"), (const void *)menu)); +diff -ur ncurses-5.9-orig/menu/m_item_opt.c ncurses-5.9/menu/m_item_opt.c +--- ncurses-5.9-orig/menu/m_item_opt.c 2010-01-23 16:20:10 -0500 ++++ ncurses-5.9/menu/m_item_opt.c 2013-07-04 18:38:38 -0400 +@@ -50,7 +50,7 @@ + | Return Values : E_OK - success + | E_BAD_ARGUMENT - invalid item options + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + set_item_opts(ITEM * item, Item_Options opts) + { + T((T_CALLED("set_menu_opts(%p,%d)"), (void *)item, opts)); +@@ -93,7 +93,7 @@ + | Return Values : E_OK - success + | E_BAD_ARGUMENT - invalid options + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + item_opts_off(ITEM * item, Item_Options opts) + { + ITEM *citem = item; /* use a copy because set_item_opts must detect +@@ -121,7 +121,7 @@ + | Return Values : E_OK - success + | E_BAD_ARGUMENT - invalid options + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + item_opts_on(ITEM * item, Item_Options opts) + { + ITEM *citem = item; /* use a copy because set_item_opts must detect +@@ -149,7 +149,7 @@ + | + | Return Values : Items options + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(Item_Options) ++NCMENU_EXPORT(Item_Options) + item_opts(const ITEM * item) + { + T((T_CALLED("item_opts(%p)"), (const void *)item)); +diff -ur ncurses-5.9-orig/menu/m_item_top.c ncurses-5.9/menu/m_item_top.c +--- ncurses-5.9-orig/menu/m_item_top.c 2010-01-23 16:20:10 -0500 ++++ ncurses-5.9/menu/m_item_top.c 2013-07-04 18:38:38 -0400 +@@ -49,7 +49,7 @@ + | E_BAD_ARGUMENT - not a menu pointer or invalid row + | E_NOT_CONNECTED - there are no items for the menu + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + set_top_row(MENU * menu, int row) + { + ITEM *item; +@@ -91,7 +91,7 @@ + | + | Return Values : The row number or ERR if there is no row + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + top_row(const MENU * menu) + { + T((T_CALLED("top_row(%p)"), (const void *)menu)); +diff -ur ncurses-5.9-orig/menu/m_item_use.c ncurses-5.9/menu/m_item_use.c +--- ncurses-5.9-orig/menu/m_item_use.c 2010-01-23 16:20:10 -0500 ++++ ncurses-5.9/menu/m_item_use.c 2013-07-04 18:38:38 -0400 +@@ -48,7 +48,7 @@ + | + | Return Values : E_OK - success + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + set_item_userptr(ITEM * item, void *userptr) + { + T((T_CALLED("set_item_userptr(%p,%p)"), (void *)item, (void *)userptr)); +@@ -66,7 +66,7 @@ + | Return Values : Value of the pointer. If no such pointer has been set, + | NULL is returned. + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(void *) ++NCMENU_EXPORT(void *) + item_userptr(const ITEM * item) + { + T((T_CALLED("item_userptr(%p)"), (const void *)item)); +diff -ur ncurses-5.9-orig/menu/m_item_val.c ncurses-5.9/menu/m_item_val.c +--- ncurses-5.9-orig/menu/m_item_val.c 2010-01-23 16:20:10 -0500 ++++ ncurses-5.9/menu/m_item_val.c 2013-07-04 18:38:38 -0400 +@@ -52,7 +52,7 @@ + | Return Values : E_OK - success + | E_REQUEST_DENIED - not selectable or single valued menu + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + set_item_value(ITEM * item, bool value) + { + MENU *menu; +@@ -94,7 +94,7 @@ + | Return Values : TRUE - if item is selected + | FALSE - if item is not selected + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(bool) ++NCMENU_EXPORT(bool) + item_value(const ITEM * item) + { + T((T_CALLED("item_value(%p)"), (const void *)item)); +diff -ur ncurses-5.9-orig/menu/m_item_vis.c ncurses-5.9/menu/m_item_vis.c +--- ncurses-5.9-orig/menu/m_item_vis.c 2010-01-23 16:20:10 -0500 ++++ ncurses-5.9/menu/m_item_vis.c 2013-07-04 18:38:38 -0400 +@@ -49,7 +49,7 @@ + | Return Values : TRUE if visible + | FALSE if invisible + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(bool) ++NCMENU_EXPORT(bool) + item_visible(const ITEM * item) + { + MENU *menu; +diff -ur ncurses-5.9-orig/menu/m_items.c ncurses-5.9/menu/m_items.c +--- ncurses-5.9-orig/menu/m_items.c 2010-01-23 16:20:10 -0500 ++++ ncurses-5.9/menu/m_items.c 2013-07-04 18:38:38 -0400 +@@ -52,7 +52,7 @@ + | E_BAD_ARGUMENT - An incorrect menu or item array was + | passed to the function + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + set_menu_items(MENU * menu, ITEM ** items) + { + T((T_CALLED("set_menu_items(%p,%p)"), (void *)menu, (void *)items)); +@@ -84,7 +84,7 @@ + | + | Return Values : NULL on error + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(ITEM **) ++NCMENU_EXPORT(ITEM **) + menu_items(const MENU * menu) + { + T((T_CALLED("menu_items(%p)"), (const void *)menu)); +@@ -100,7 +100,7 @@ + | + | Return Values : Number of items or -1 to indicate error. + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + item_count(const MENU * menu) + { + T((T_CALLED("item_count(%p)"), (const void *)menu)); +diff -ur ncurses-5.9-orig/menu/m_new.c ncurses-5.9/menu/m_new.c +--- ncurses-5.9-orig/menu/m_new.c 2010-01-23 16:20:11 -0500 ++++ ncurses-5.9/menu/m_new.c 2013-07-04 18:38:38 -0400 +@@ -50,7 +50,7 @@ + | + | Return Values : NULL on error + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(MENU *) ++NCMENU_EXPORT(MENU *) + NCURSES_SP_NAME(new_menu) (NCURSES_SP_DCLx ITEM ** items) + { + int err = E_SYSTEM_ERROR; +@@ -101,7 +101,7 @@ + | Return Values : NULL on error + +--------------------------------------------------------------------------*/ + #if NCURSES_SP_FUNCS +-NCURSES_EXPORT(MENU *) ++NCMENU_EXPORT(MENU *) + new_menu(ITEM ** items) + { + return NCURSES_SP_NAME(new_menu) (CURRENT_SCREEN, items); +@@ -119,7 +119,7 @@ + | E_BAD_ARGUMENT - Invalid menu pointer passed + | E_POSTED - Menu is already posted + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + free_menu(MENU * menu) + { + T((T_CALLED("free_menu(%p)"), (void *)menu)); +diff -ur ncurses-5.9-orig/menu/m_opts.c ncurses-5.9/menu/m_opts.c +--- ncurses-5.9-orig/menu/m_opts.c 2010-01-23 16:20:10 -0500 ++++ ncurses-5.9/menu/m_opts.c 2013-07-04 18:38:38 -0400 +@@ -52,7 +52,7 @@ + | E_BAD_ARGUMENT - invalid menu options + | E_POSTED - menu is already posted + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + set_menu_opts(MENU * menu, Menu_Options opts) + { + T((T_CALLED("set_menu_opts(%p,%d)"), (void *)menu, opts)); +@@ -112,7 +112,7 @@ + | E_BAD_ARGUMENT - invalid options + | E_POSTED - menu is already posted + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + menu_opts_off(MENU * menu, Menu_Options opts) + { + MENU *cmenu = menu; /* use a copy because set_menu_opts must detect +@@ -145,7 +145,7 @@ + | E_BAD_ARGUMENT - invalid menu options + | E_POSTED - menu is already posted + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + menu_opts_on(MENU * menu, Menu_Options opts) + { + MENU *cmenu = menu; /* use a copy because set_menu_opts must detect +@@ -173,7 +173,7 @@ + | + | Return Values : Menu options + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(Menu_Options) ++NCMENU_EXPORT(Menu_Options) + menu_opts(const MENU * menu) + { + T((T_CALLED("menu_opts(%p)"), (const void *)menu)); +diff -ur ncurses-5.9-orig/menu/m_pad.c ncurses-5.9/menu/m_pad.c +--- ncurses-5.9-orig/menu/m_pad.c 2010-01-23 16:20:10 -0500 ++++ ncurses-5.9/menu/m_pad.c 2013-07-04 18:38:38 -0400 +@@ -58,7 +58,7 @@ + | Return Values : E_OK - success + | E_BAD_ARGUMENT - an invalid value has been passed + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + set_menu_pad(MENU * menu, int pad) + { + bool do_refresh = (menu != (MENU *) 0); +@@ -85,7 +85,7 @@ + | + | Return Values : The pad character + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + menu_pad(const MENU * menu) + { + T((T_CALLED("menu_pad(%p)"), (const void *)menu)); +diff -ur ncurses-5.9-orig/menu/m_pattern.c ncurses-5.9/menu/m_pattern.c +--- ncurses-5.9-orig/menu/m_pattern.c 2010-01-23 16:20:10 -0500 ++++ ncurses-5.9/menu/m_pattern.c 2013-07-04 18:38:38 -0400 +@@ -50,7 +50,7 @@ + | pattern is stored + | PatternString - as expected + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(char *) ++NCMENU_EXPORT(char *) + menu_pattern(const MENU * menu) + { + static char empty[] = ""; +@@ -72,7 +72,7 @@ + | E_NOT_CONNECTED - no items connected to menu + | E_NO_MATCH - no item matches pattern + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + set_menu_pattern(MENU * menu, const char *p) + { + ITEM *matchitem; +diff -ur ncurses-5.9-orig/menu/m_post.c ncurses-5.9/menu/m_post.c +--- ncurses-5.9-orig/menu/m_post.c 2010-05-01 15:18:27 -0400 ++++ ncurses-5.9/menu/m_post.c 2013-07-04 18:38:38 -0400 +@@ -48,7 +48,7 @@ + | + | Return Values : - + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(void) ++NCMENU_EXPORT(void) + _nc_Post_Item(const MENU * menu, const ITEM * item) + { + int i; +@@ -196,7 +196,7 @@ + | + | Return Values : - + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(void) ++NCMENU_EXPORT(void) + _nc_Draw_Menu(const MENU * menu) + { + ITEM *item = menu->items[0]; +@@ -266,7 +266,7 @@ + | E_BAD_STATE - Menu in userexit routine + | E_POSTED - Menu already posted + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + post_menu(MENU * menu) + { + T((T_CALLED("post_menu(%p)"), (void *)menu)); +@@ -338,7 +338,7 @@ + | E_BAD_STATE - menu in userexit routine + | E_NOT_POSTED - menu is not posted + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + unpost_menu(MENU * menu) + { + WINDOW *win; +diff -ur ncurses-5.9-orig/menu/m_req_name.c ncurses-5.9/menu/m_req_name.c +--- ncurses-5.9-orig/menu/m_req_name.c 2009-10-10 12:17:23 -0400 ++++ ncurses-5.9/menu/m_req_name.c 2013-07-04 18:38:38 -0400 +@@ -71,7 +71,7 @@ + | Return Values : Pointer to name - on success + | NULL - on invalid request code + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(const char *) ++NCMENU_EXPORT(const char *) + menu_request_name(int request) + { + T((T_CALLED("menu_request_name(%d)"), request)); +@@ -93,7 +93,7 @@ + | Return Values : Request Id - on success + | E_NO_MATCH - request not found + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + menu_request_by_name(const char *str) + { + /* because the table is so small, it doesn't really hurt +diff -ur ncurses-5.9-orig/menu/m_scale.c ncurses-5.9/menu/m_scale.c +--- ncurses-5.9-orig/menu/m_scale.c 2010-01-23 16:20:10 -0500 ++++ ncurses-5.9/menu/m_scale.c 2013-07-04 18:38:38 -0400 +@@ -50,7 +50,7 @@ + | E_BAD_ARGUMENT - invalid menu pointer + | E_NOT_CONNECTED - no items are connected to menu + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + scale_menu(const MENU * menu, int *rows, int *cols) + { + T((T_CALLED("scale_menu(%p,%p,%p)"), +diff -ur ncurses-5.9-orig/menu/m_spacing.c ncurses-5.9/menu/m_spacing.c +--- ncurses-5.9-orig/menu/m_spacing.c 2010-01-23 16:20:10 -0500 ++++ ncurses-5.9/menu/m_spacing.c 2013-07-04 18:38:38 -0400 +@@ -51,7 +51,7 @@ + | + | Return Values : E_OK - on success + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + set_menu_spacing(MENU * menu, int s_desc, int s_row, int s_col) + { + MENU *m; /* split for ATAC workaround */ +@@ -86,7 +86,7 @@ + | + | Return Values : E_OK - on success + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + menu_spacing(const MENU * menu, int *s_desc, int *s_row, int *s_col) + { + const MENU *m; /* split for ATAC workaround */ +diff -ur ncurses-5.9-orig/menu/m_sub.c ncurses-5.9/menu/m_sub.c +--- ncurses-5.9-orig/menu/m_sub.c 2010-01-23 16:20:11 -0500 ++++ ncurses-5.9/menu/m_sub.c 2013-07-04 18:38:38 -0400 +@@ -48,7 +48,7 @@ + | Return Values : E_OK - success + | E_POSTED - menu is already posted + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + set_menu_sub(MENU * menu, WINDOW *win) + { + T((T_CALLED("set_menu_sub(%p,%p)"), (void *)menu, (void *)win)); +@@ -88,7 +88,7 @@ + | + | Return Values : NULL on error, otherwise a pointer to the window + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(WINDOW *) ++NCMENU_EXPORT(WINDOW *) + menu_sub(const MENU * menu) + { + const MENU *m = Normalize_Menu(menu); +diff -ur ncurses-5.9-orig/menu/m_trace.c ncurses-5.9/menu/m_trace.c +--- ncurses-5.9-orig/menu/m_trace.c 2010-01-23 16:20:10 -0500 ++++ ncurses-5.9/menu/m_trace.c 2013-07-04 18:38:38 -0400 +@@ -34,42 +34,42 @@ + + MODULE_ID("$Id: m_trace.c,v 1.4 2010/01/23 21:20:10 tom Exp $") + +-NCURSES_EXPORT(ITEM *) ++NCMENU_EXPORT(ITEM *) + _nc_retrace_item(ITEM * code) + { + T((T_RETURN("%p"), (void *)code)); + return code; + } + +-NCURSES_EXPORT(ITEM **) ++NCMENU_EXPORT(ITEM **) + _nc_retrace_item_ptr(ITEM ** code) + { + T((T_RETURN("%p"), (void *)code)); + return code; + } + +-NCURSES_EXPORT(Item_Options) ++NCMENU_EXPORT(Item_Options) + _nc_retrace_item_opts(Item_Options code) + { + T((T_RETURN("%d"), code)); + return code; + } + +-NCURSES_EXPORT(MENU *) ++NCMENU_EXPORT(MENU *) + _nc_retrace_menu(MENU * code) + { + T((T_RETURN("%p"), (void *)code)); + return code; + } + +-NCURSES_EXPORT(Menu_Hook) ++NCMENU_EXPORT(Menu_Hook) + _nc_retrace_menu_hook(Menu_Hook code) + { + T((T_RETURN("%p"), code)); + return code; + } + +-NCURSES_EXPORT(Menu_Options) ++NCMENU_EXPORT(Menu_Options) + _nc_retrace_menu_opts(Menu_Options code) + { + T((T_RETURN("%d"), code)); +diff -ur ncurses-5.9-orig/menu/m_userptr.c ncurses-5.9/menu/m_userptr.c +--- ncurses-5.9-orig/menu/m_userptr.c 2010-01-23 16:20:10 -0500 ++++ ncurses-5.9/menu/m_userptr.c 2013-07-04 18:38:38 -0400 +@@ -48,7 +48,7 @@ + | + | Return Values : E_OK - success + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + set_menu_userptr(MENU * menu, void *userptr) + { + T((T_CALLED("set_menu_userptr(%p,%p)"), (void *)menu, (void *)userptr)); +@@ -66,7 +66,7 @@ + | Return Values : Value of the pointer. If no such pointer has been set, + | NULL is returned + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(void *) ++NCMENU_EXPORT(void *) + menu_userptr(const MENU * menu) + { + T((T_CALLED("menu_userptr(%p)"), (const void *)menu)); +diff -ur ncurses-5.9-orig/menu/m_win.c ncurses-5.9/menu/m_win.c +--- ncurses-5.9-orig/menu/m_win.c 2010-01-23 16:20:11 -0500 ++++ ncurses-5.9/menu/m_win.c 2013-07-04 18:38:38 -0400 +@@ -48,7 +48,7 @@ + | Return Values : E_OK - success + | E_POSTED - menu is already posted + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(int) ++NCMENU_EXPORT(int) + set_menu_win(MENU * menu, WINDOW *win) + { + T((T_CALLED("set_menu_win(%p,%p)"), (void *)menu, (void *)win)); +@@ -88,7 +88,7 @@ + | + | Return Values : NULL on error, otherwise pointer to window + +--------------------------------------------------------------------------*/ +-NCURSES_EXPORT(WINDOW *) ++NCMENU_EXPORT(WINDOW *) + menu_win(const MENU * menu) + { + const MENU *m = Normalize_Menu(menu); +diff -ur ncurses-5.9-orig/menu/menu.h ncurses-5.9/menu/menu.h +--- ncurses-5.9-orig/menu/menu.h 2009-04-04 20:28:07 -0400 ++++ ncurses-5.9/menu/menu.h 2013-07-04 18:38:38 -0400 +@@ -172,85 +172,85 @@ + + /* --------- prototypes for libmenu functions ----------------------------- */ + +-extern NCURSES_EXPORT(ITEM **) menu_items (const MENU *); +-extern NCURSES_EXPORT(ITEM *) current_item (const MENU *); +-extern NCURSES_EXPORT(ITEM *) new_item (const char *,const char *); +- +-extern NCURSES_EXPORT(MENU *) new_menu (ITEM **); +- +-extern NCURSES_EXPORT(Item_Options) item_opts (const ITEM *); +-extern NCURSES_EXPORT(Menu_Options) menu_opts (const MENU *); +- +-extern NCURSES_EXPORT(Menu_Hook) item_init (const MENU *); +-extern NCURSES_EXPORT(Menu_Hook) item_term (const MENU *); +-extern NCURSES_EXPORT(Menu_Hook) menu_init (const MENU *); +-extern NCURSES_EXPORT(Menu_Hook) menu_term (const MENU *); +- +-extern NCURSES_EXPORT(WINDOW *) menu_sub (const MENU *); +-extern NCURSES_EXPORT(WINDOW *) menu_win (const MENU *); +- +-extern NCURSES_EXPORT(const char *) item_description (const ITEM *); +-extern NCURSES_EXPORT(const char *) item_name (const ITEM *); +-extern NCURSES_EXPORT(const char *) menu_mark (const MENU *); +-extern NCURSES_EXPORT(const char *) menu_request_name (int); +- +-extern NCURSES_EXPORT(char *) menu_pattern (const MENU *); +- +-extern NCURSES_EXPORT(void *) menu_userptr (const MENU *); +-extern NCURSES_EXPORT(void *) item_userptr (const ITEM *); +- +-extern NCURSES_EXPORT(chtype) menu_back (const MENU *); +-extern NCURSES_EXPORT(chtype) menu_fore (const MENU *); +-extern NCURSES_EXPORT(chtype) menu_grey (const MENU *); +- +-extern NCURSES_EXPORT(int) free_item (ITEM *); +-extern NCURSES_EXPORT(int) free_menu (MENU *); +-extern NCURSES_EXPORT(int) item_count (const MENU *); +-extern NCURSES_EXPORT(int) item_index (const ITEM *); +-extern NCURSES_EXPORT(int) item_opts_off (ITEM *,Item_Options); +-extern NCURSES_EXPORT(int) item_opts_on (ITEM *,Item_Options); +-extern NCURSES_EXPORT(int) menu_driver (MENU *,int); +-extern NCURSES_EXPORT(int) menu_opts_off (MENU *,Menu_Options); +-extern NCURSES_EXPORT(int) menu_opts_on (MENU *,Menu_Options); +-extern NCURSES_EXPORT(int) menu_pad (const MENU *); +-extern NCURSES_EXPORT(int) pos_menu_cursor (const MENU *); +-extern NCURSES_EXPORT(int) post_menu (MENU *); +-extern NCURSES_EXPORT(int) scale_menu (const MENU *,int *,int *); +-extern NCURSES_EXPORT(int) set_current_item (MENU *menu,ITEM *item); +-extern NCURSES_EXPORT(int) set_item_init (MENU *, Menu_Hook); +-extern NCURSES_EXPORT(int) set_item_opts (ITEM *,Item_Options); +-extern NCURSES_EXPORT(int) set_item_term (MENU *, Menu_Hook); +-extern NCURSES_EXPORT(int) set_item_userptr (ITEM *, void *); +-extern NCURSES_EXPORT(int) set_item_value (ITEM *,bool); +-extern NCURSES_EXPORT(int) set_menu_back (MENU *,chtype); +-extern NCURSES_EXPORT(int) set_menu_fore (MENU *,chtype); +-extern NCURSES_EXPORT(int) set_menu_format (MENU *,int,int); +-extern NCURSES_EXPORT(int) set_menu_grey (MENU *,chtype); +-extern NCURSES_EXPORT(int) set_menu_init (MENU *, Menu_Hook); +-extern NCURSES_EXPORT(int) set_menu_items (MENU *,ITEM **); +-extern NCURSES_EXPORT(int) set_menu_mark (MENU *, const char *); +-extern NCURSES_EXPORT(int) set_menu_opts (MENU *,Menu_Options); +-extern NCURSES_EXPORT(int) set_menu_pad (MENU *,int); +-extern NCURSES_EXPORT(int) set_menu_pattern (MENU *,const char *); +-extern NCURSES_EXPORT(int) set_menu_sub (MENU *,WINDOW *); +-extern NCURSES_EXPORT(int) set_menu_term (MENU *, Menu_Hook); +-extern NCURSES_EXPORT(int) set_menu_userptr (MENU *,void *); +-extern NCURSES_EXPORT(int) set_menu_win (MENU *,WINDOW *); +-extern NCURSES_EXPORT(int) set_top_row (MENU *,int); +-extern NCURSES_EXPORT(int) top_row (const MENU *); +-extern NCURSES_EXPORT(int) unpost_menu (MENU *); +-extern NCURSES_EXPORT(int) menu_request_by_name (const char *); +-extern NCURSES_EXPORT(int) set_menu_spacing (MENU *,int,int,int); +-extern NCURSES_EXPORT(int) menu_spacing (const MENU *,int *,int *,int *); ++extern NCMENU_EXPORT(ITEM **) menu_items (const MENU *); ++extern NCMENU_EXPORT(ITEM *) current_item (const MENU *); ++extern NCMENU_EXPORT(ITEM *) new_item (const char *,const char *); ++ ++extern NCMENU_EXPORT(MENU *) new_menu (ITEM **); ++ ++extern NCMENU_EXPORT(Item_Options) item_opts (const ITEM *); ++extern NCMENU_EXPORT(Menu_Options) menu_opts (const MENU *); ++ ++extern NCMENU_EXPORT(Menu_Hook) item_init (const MENU *); ++extern NCMENU_EXPORT(Menu_Hook) item_term (const MENU *); ++extern NCMENU_EXPORT(Menu_Hook) menu_init (const MENU *); ++extern NCMENU_EXPORT(Menu_Hook) menu_term (const MENU *); ++ ++extern NCMENU_EXPORT(WINDOW *) menu_sub (const MENU *); ++extern NCMENU_EXPORT(WINDOW *) menu_win (const MENU *); ++ ++extern NCMENU_EXPORT(const char *) item_description (const ITEM *); ++extern NCMENU_EXPORT(const char *) item_name (const ITEM *); ++extern NCMENU_EXPORT(const char *) menu_mark (const MENU *); ++extern NCMENU_EXPORT(const char *) menu_request_name (int); ++ ++extern NCMENU_EXPORT(char *) menu_pattern (const MENU *); ++ ++extern NCMENU_EXPORT(void *) menu_userptr (const MENU *); ++extern NCMENU_EXPORT(void *) item_userptr (const ITEM *); ++ ++extern NCMENU_EXPORT(chtype) menu_back (const MENU *); ++extern NCMENU_EXPORT(chtype) menu_fore (const MENU *); ++extern NCMENU_EXPORT(chtype) menu_grey (const MENU *); ++ ++extern NCMENU_EXPORT(int) free_item (ITEM *); ++extern NCMENU_EXPORT(int) free_menu (MENU *); ++extern NCMENU_EXPORT(int) item_count (const MENU *); ++extern NCMENU_EXPORT(int) item_index (const ITEM *); ++extern NCMENU_EXPORT(int) item_opts_off (ITEM *,Item_Options); ++extern NCMENU_EXPORT(int) item_opts_on (ITEM *,Item_Options); ++extern NCMENU_EXPORT(int) menu_driver (MENU *,int); ++extern NCMENU_EXPORT(int) menu_opts_off (MENU *,Menu_Options); ++extern NCMENU_EXPORT(int) menu_opts_on (MENU *,Menu_Options); ++extern NCMENU_EXPORT(int) menu_pad (const MENU *); ++extern NCMENU_EXPORT(int) pos_menu_cursor (const MENU *); ++extern NCMENU_EXPORT(int) post_menu (MENU *); ++extern NCMENU_EXPORT(int) scale_menu (const MENU *,int *,int *); ++extern NCMENU_EXPORT(int) set_current_item (MENU *menu,ITEM *item); ++extern NCMENU_EXPORT(int) set_item_init (MENU *, Menu_Hook); ++extern NCMENU_EXPORT(int) set_item_opts (ITEM *,Item_Options); ++extern NCMENU_EXPORT(int) set_item_term (MENU *, Menu_Hook); ++extern NCMENU_EXPORT(int) set_item_userptr (ITEM *, void *); ++extern NCMENU_EXPORT(int) set_item_value (ITEM *,bool); ++extern NCMENU_EXPORT(int) set_menu_back (MENU *,chtype); ++extern NCMENU_EXPORT(int) set_menu_fore (MENU *,chtype); ++extern NCMENU_EXPORT(int) set_menu_format (MENU *,int,int); ++extern NCMENU_EXPORT(int) set_menu_grey (MENU *,chtype); ++extern NCMENU_EXPORT(int) set_menu_init (MENU *, Menu_Hook); ++extern NCMENU_EXPORT(int) set_menu_items (MENU *,ITEM **); ++extern NCMENU_EXPORT(int) set_menu_mark (MENU *, const char *); ++extern NCMENU_EXPORT(int) set_menu_opts (MENU *,Menu_Options); ++extern NCMENU_EXPORT(int) set_menu_pad (MENU *,int); ++extern NCMENU_EXPORT(int) set_menu_pattern (MENU *,const char *); ++extern NCMENU_EXPORT(int) set_menu_sub (MENU *,WINDOW *); ++extern NCMENU_EXPORT(int) set_menu_term (MENU *, Menu_Hook); ++extern NCMENU_EXPORT(int) set_menu_userptr (MENU *,void *); ++extern NCMENU_EXPORT(int) set_menu_win (MENU *,WINDOW *); ++extern NCMENU_EXPORT(int) set_top_row (MENU *,int); ++extern NCMENU_EXPORT(int) top_row (const MENU *); ++extern NCMENU_EXPORT(int) unpost_menu (MENU *); ++extern NCMENU_EXPORT(int) menu_request_by_name (const char *); ++extern NCMENU_EXPORT(int) set_menu_spacing (MENU *,int,int,int); ++extern NCMENU_EXPORT(int) menu_spacing (const MENU *,int *,int *,int *); + + +-extern NCURSES_EXPORT(bool) item_value (const ITEM *); +-extern NCURSES_EXPORT(bool) item_visible (const ITEM *); ++extern NCMENU_EXPORT(bool) item_value (const ITEM *); ++extern NCMENU_EXPORT(bool) item_visible (const ITEM *); + +-extern NCURSES_EXPORT(void) menu_format (const MENU *,int *,int *); ++extern NCMENU_EXPORT(void) menu_format (const MENU *,int *,int *); + + #if NCURSES_SP_FUNCS +-extern NCURSES_EXPORT(MENU *) NCURSES_SP_NAME(new_menu) (SCREEN*, ITEM **); ++extern NCMENU_EXPORT(MENU *) NCURSES_SP_NAME(new_menu) (SCREEN*, ITEM **); + #endif + + #ifdef __cplusplus +diff -ur ncurses-5.9-orig/menu/menu.priv.h ncurses-5.9/menu/menu.priv.h +--- ncurses-5.9-orig/menu/menu.priv.h 2009-02-28 16:02:57 -0500 ++++ ncurses-5.9/menu/menu.priv.h 2013-07-04 18:38:38 -0400 +@@ -47,8 +47,8 @@ + /* Backspace code */ + #define BS (8) + +-extern NCURSES_EXPORT_VAR(ITEM) _nc_Default_Item; +-extern NCURSES_EXPORT_VAR(MENU) _nc_Default_Menu; ++extern NCMENU_EXPORT_VAR(ITEM) _nc_Default_Item; ++extern NCMENU_EXPORT_VAR(MENU) _nc_Default_Menu; + + /* Normalize item to default if none was given */ + #define Normalize_Item( item ) ((item)=(item)?(item):&_nc_Default_Item) +@@ -113,17 +113,17 @@ + #define UChar(c) ((unsigned char)(c)) + + /* Internal functions. */ +-extern NCURSES_EXPORT(void) _nc_Draw_Menu (const MENU *); +-extern NCURSES_EXPORT(void) _nc_Show_Menu (const MENU *); +-extern NCURSES_EXPORT(void) _nc_Calculate_Item_Length_and_Width (MENU *); +-extern NCURSES_EXPORT(int) _nc_Calculate_Text_Width(const TEXT *); +-extern NCURSES_EXPORT(void) _nc_Post_Item (const MENU *, const ITEM *); +-extern NCURSES_EXPORT(bool) _nc_Connect_Items (MENU *, ITEM **); +-extern NCURSES_EXPORT(void) _nc_Disconnect_Items (MENU *); +-extern NCURSES_EXPORT(void) _nc_New_TopRow_and_CurrentItem (MENU *,int, ITEM *); +-extern NCURSES_EXPORT(void) _nc_Link_Items (MENU *); +-extern NCURSES_EXPORT(int) _nc_Match_Next_Character_In_Item_Name (MENU*,int,ITEM**); +-extern NCURSES_EXPORT(int) _nc_menu_cursor_pos (const MENU* menu, const ITEM* item, ++extern NCMENU_EXPORT(void) _nc_Draw_Menu (const MENU *); ++extern NCMENU_EXPORT(void) _nc_Show_Menu (const MENU *); ++extern NCMENU_EXPORT(void) _nc_Calculate_Item_Length_and_Width (MENU *); ++extern NCMENU_EXPORT(int) _nc_Calculate_Text_Width(const TEXT *); ++extern NCMENU_EXPORT(void) _nc_Post_Item (const MENU *, const ITEM *); ++extern NCMENU_EXPORT(bool) _nc_Connect_Items (MENU *, ITEM **); ++extern NCMENU_EXPORT(void) _nc_Disconnect_Items (MENU *); ++extern NCMENU_EXPORT(void) _nc_New_TopRow_and_CurrentItem (MENU *,int, ITEM *); ++extern NCMENU_EXPORT(void) _nc_Link_Items (MENU *); ++extern NCMENU_EXPORT(int) _nc_Match_Next_Character_In_Item_Name (MENU*,int,ITEM**); ++extern NCMENU_EXPORT(int) _nc_menu_cursor_pos (const MENU* menu, const ITEM* item, + int* pY, int* pX); + + #ifdef TRACE +@@ -135,12 +135,12 @@ + #define returnMenuHook(code) TRACE_RETURN(code,menu_hook) + #define returnMenuOpts(code) TRACE_RETURN(code,menu_opts) + +-extern NCURSES_EXPORT(ITEM *) _nc_retrace_item (ITEM *); +-extern NCURSES_EXPORT(ITEM **) _nc_retrace_item_ptr (ITEM **); +-extern NCURSES_EXPORT(Item_Options) _nc_retrace_item_opts (Item_Options); +-extern NCURSES_EXPORT(MENU *) _nc_retrace_menu (MENU *); +-extern NCURSES_EXPORT(Menu_Hook) _nc_retrace_menu_hook (Menu_Hook); +-extern NCURSES_EXPORT(Menu_Options) _nc_retrace_menu_opts (Menu_Options); ++extern NCMENU_EXPORT(ITEM *) _nc_retrace_item (ITEM *); ++extern NCMENU_EXPORT(ITEM **) _nc_retrace_item_ptr (ITEM **); ++extern NCMENU_EXPORT(Item_Options) _nc_retrace_item_opts (Item_Options); ++extern NCMENU_EXPORT(MENU *) _nc_retrace_menu (MENU *); ++extern NCMENU_EXPORT(Menu_Hook) _nc_retrace_menu_hook (Menu_Hook); ++extern NCMENU_EXPORT(Menu_Options) _nc_retrace_menu_opts (Menu_Options); + + #else /* !TRACE */ + +diff -ur ncurses-5.9-orig/mk-1st.awk ncurses-5.9/mk-1st.awk +--- ncurses-5.9-orig/mk-1st.awk 2010-08-07 16:42:30 -0400 ++++ ncurses-5.9/mk-1st.awk 2013-07-04 18:38:38 -0400 +@@ -396,11 +396,11 @@ + end_name = lib_name; + printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS + if ( is_ticlib() ) { +- printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) %s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(TICS_LIST)\n", compile, lib_name, OBJS, libtool_version ++ printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -shared -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) %s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(TICS_LIST)\n", compile, lib_name, OBJS, libtool_version + } else if ( is_termlib() ) { +- printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) %s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(TINFO_LIST)\n", compile, lib_name, OBJS, libtool_version ++ printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -shared -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) %s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(TINFO_LIST)\n", compile, lib_name, OBJS, libtool_version + } else { +- printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) %s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(SHLIB_LIST)\n", compile, lib_name, OBJS, libtool_version ++ printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -shared -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) %s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(SHLIB_LIST)\n", compile, lib_name, OBJS, libtool_version + } + print "" + print "install \\" +diff -ur ncurses-5.9-orig/mk-2nd.awk ncurses-5.9/mk-2nd.awk +--- ncurses-5.9-orig/mk-2nd.awk 2005-01-22 11:30:04 -0500 ++++ ncurses-5.9/mk-2nd.awk 2013-07-04 18:38:38 -0400 +@@ -122,7 +122,7 @@ + } else if ( subset ~ /termlib/ ) { + mycflags=" -DUSE_TERMLIB" + } +- printf "$(LIBTOOL_COMPILE) $(%s) $(CFLAGS_%s)%s -c ", compile, MODEL, mycflags ++ printf "$(LIBTOOL_COMPILE) $(%s) -shared $(CFLAGS_%s)%s -c ", compile, MODEL, mycflags + if ( $3 == "." || srcdir == "." ) { + dir = $3 "/" + sub("^\\$\\(srcdir\\)/","",dir); +diff -ur ncurses-5.9-orig/ncurses/Makefile.in ncurses-5.9/ncurses/Makefile.in +--- ncurses-5.9-orig/ncurses/Makefile.in 2010-11-27 16:45:27 -0500 ++++ ncurses-5.9/ncurses/Makefile.in 2013-07-04 18:38:38 -0400 +@@ -93,7 +93,7 @@ + CFLAGS = @CFLAGS@ + + INCDIR = $(srcdir)/../include +-CPPFLAGS = -DHAVE_CONFIG_H -I../ncurses -I$(srcdir) @CPPFLAGS@ ++CPPFLAGS = -DHAVE_CONFIG_H -DNCURSES_DLL -I../ncurses -I$(srcdir) @CPPFLAGS@ + + CCFLAGS = $(CPPFLAGS) $(CFLAGS) + +diff -ur ncurses-5.9-orig/ncurses/base/MKlib_gen.sh ncurses-5.9/ncurses/base/MKlib_gen.sh +--- ncurses-5.9-orig/ncurses/base/MKlib_gen.sh 2011-01-22 14:47:29 -0500 ++++ ncurses-5.9/ncurses/base/MKlib_gen.sh 2013-07-04 18:38:38 -0400 +@@ -159,7 +159,7 @@ + + if test "$USE" = generated ; then + cat >$ED4 <$ED4 < + extern NCURSES_EXPORT_VAR(TERM_DRIVER) _nc_WIN_DRIVER; + #endif +diff -ur ncurses-5.9-orig/ncurses/tinfo/comp_parse.c ncurses-5.9/ncurses/tinfo/comp_parse.c +--- ncurses-5.9-orig/ncurses/tinfo/comp_parse.c 2010-12-25 18:06:37 -0500 ++++ ncurses-5.9/ncurses/tinfo/comp_parse.c 2013-07-04 18:38:38 -0400 +@@ -55,11 +55,11 @@ + MODULE_ID("$Id: comp_parse.c,v 1.73 2010/12/25 23:06:37 tom Exp $") + + static void sanity_check2(TERMTYPE *, bool); +-NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype2) (TERMTYPE *, bool) = sanity_check2; ++NCURSES_IMPEXP void (NCURSES_API *_nc_check_termtype2) (TERMTYPE *, bool) = sanity_check2; + + /* obsolete: 20040705 */ + static void sanity_check(TERMTYPE *); +-NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype) (TERMTYPE *) = sanity_check; ++NCURSES_IMPEXP void (NCURSES_API *_nc_check_termtype) (TERMTYPE *) = sanity_check; + + static void + enqueue(ENTRY * ep) +diff -ur ncurses-5.9-orig/ncurses/tinfo/db_iterator.c ncurses-5.9/ncurses/tinfo/db_iterator.c +--- ncurses-5.9-orig/ncurses/tinfo/db_iterator.c 2010-12-25 18:00:25 -0500 ++++ ncurses-5.9/ncurses/tinfo/db_iterator.c 2013-07-04 18:38:38 -0400 +@@ -160,6 +160,11 @@ + result = _nc_tic_dir(envp); + } + break; ++#ifdef _MSC_VER ++ case dbdWin32: ++ result = _nc_win32_terminfo(); ++ break; ++#endif + case dbdHome: + if (use_terminfo_vars()) { + result = _nc_home_terminfo(); +diff -ur ncurses-5.9-orig/ncurses/tinfo/home_terminfo.c ncurses-5.9/ncurses/tinfo/home_terminfo.c +--- ncurses-5.9-orig/ncurses/tinfo/home_terminfo.c 2010-12-25 18:43:58 -0500 ++++ ncurses-5.9/ncurses/tinfo/home_terminfo.c 2013-07-04 18:38:38 -0400 +@@ -37,6 +37,12 @@ + #include + #include + ++#ifdef _MSC_VER ++# include ++# include ++# include ++#endif ++ + MODULE_ID("$Id: home_terminfo.c,v 1.12 2010/12/25 23:43:58 tom Exp $") + + /* ncurses extension...fall back on user's private directory */ +@@ -65,3 +71,58 @@ + #endif + return result; + } ++ ++#ifdef _MSC_VER ++NCURSES_EXPORT(char *) ++_nc_win32_terminfo(void) ++{ ++ char *result = NULL; ++ static char *temp = NULL; ++ int n = 1024, nr; ++ ++ if (temp == NULL) { ++ HMODULE hmod; ++ ++ if (GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, ++ (LPCTSTR)_nc_win32_terminfo, ++ &hmod)) { ++ do { ++ if (temp == NULL) ++ temp = typeMalloc(char, n); ++ else { ++ n *= 2; ++ temp = typeRealloc(char, n, temp); ++ } ++ ++ if ((nr = GetModuleFileName(hmod, temp, n)) == 0) ++ break; ++ else if (nr < n) { ++ char *p = strrchr(temp, '\\'); ++ ++ if (p != 0) { ++ *p = 0; ++ nr = strlen(temp); ++ if (nr > 4 && strncmp(&temp[nr-4], "\\bin", 4) == 0) { ++ struct stat st; ++ ++ temp = typeRealloc(char, nr-4+64, temp); ++ strcpy(&temp[nr-4], "\\share\\terminfo"); ++ if (stat(temp, &st) == 0 && (st.st_mode & _S_IFDIR) != 0) ++ result = temp; ++ } ++ } ++ break; ++ } ++ } while (1); ++ } ++ } else ++ result = temp; ++ ++ if (result == NULL && temp != NULL) { ++ free(temp); ++ temp = NULL; ++ } ++ ++ return result; ++} ++#endif +diff -ur ncurses-5.9-orig/ncurses/tinfo/lib_print.c ncurses-5.9/ncurses/tinfo/lib_print.c +--- ncurses-5.9-orig/ncurses/tinfo/lib_print.c 2010-06-05 18:18:35 -0400 ++++ ncurses-5.9/ncurses/tinfo/lib_print.c 2013-07-04 18:38:38 -0400 +@@ -95,7 +95,7 @@ + * kernel will ship the contiguous clist items from the last write + * immediately. + */ +-#ifndef __MINGW32__ ++#if !defined(__MINGW32__) && !defined(_MSC_VER) + (void) sleep(0); + #endif + free(mybuf); +diff -ur ncurses-5.9-orig/ncurses/tinfo/setbuf.c ncurses-5.9/ncurses/tinfo/setbuf.c +--- ncurses-5.9-orig/ncurses/tinfo/setbuf.c 2010-08-28 17:08:31 -0400 ++++ ncurses-5.9/ncurses/tinfo/setbuf.c 2013-07-04 18:38:38 -0400 +@@ -149,8 +149,13 @@ + #ifdef SETVBUF_REVERSED /* pre-svr3? */ + (void) setvbuf(ofp, buf_ptr, buf_len, buf_len ? _IOFBF : _IOLBF); + #else ++#ifdef _MSC_VER ++ /* MSVC does not accept 0 as buffer size */ ++ (void) setvbuf(ofp, buf_ptr, buf_len ? _IOFBF : _IOLBF, buf_len ? buf_len : BUFSIZ); ++#else + (void) setvbuf(ofp, buf_ptr, buf_len ? _IOFBF : _IOLBF, buf_len); + #endif ++#endif + #elif HAVE_SETBUFFER + (void) setbuffer(ofp, buf_ptr, (int) buf_len); + #endif +diff -ur ncurses-5.9-orig/ncurses/tinfo/write_entry.c ncurses-5.9/ncurses/tinfo/write_entry.c +--- ncurses-5.9-orig/ncurses/tinfo/write_entry.c 2010-12-25 18:23:08 -0500 ++++ ncurses-5.9/ncurses/tinfo/write_entry.c 2013-07-04 18:38:38 -0400 +@@ -173,7 +173,7 @@ + + if ((rc = stat(path, &statbuf)) < 0) { + rc = mkdir(path +-#if !defined(__MINGW32__) ++#if !defined(__MINGW32__) && !defined(_MSC_VER) + ,0777 + #endif + ); +diff -ur ncurses-5.9-orig/ncurses/trace/lib_trace.c ncurses-5.9/ncurses/trace/lib_trace.c +--- ncurses-5.9-orig/ncurses/trace/lib_trace.c 2010-12-18 20:21:19 -0500 ++++ ncurses-5.9/ncurses/trace/lib_trace.c 2013-07-04 18:38:38 -0400 +@@ -121,7 +121,11 @@ + * end of each line. This is useful in case the program dies. + */ + #if HAVE_SETVBUF /* ANSI */ ++#ifdef _MSC_VER ++ (void) setvbuf(TraceFP, (char *) 0, _IOLBF, BUFSIZ); ++#else + (void) setvbuf(TraceFP, (char *) 0, _IOLBF, 0); ++#endif + #elif HAVE_SETBUF /* POSIX */ + (void) setbuffer(TraceFP, (char *) 0); + #endif +@@ -184,7 +188,7 @@ + # if USE_WEAK_SYMBOLS + if ((pthread_self)) + # endif +-#ifdef __MINGW32__ ++#if defined(__MINGW32__) || defined(_MSC_VER) + fprintf(TraceFP, "%#lx:", (long) (void *) pthread_self().p); + #else + fprintf(TraceFP, "%#lx:", (long) (void *) pthread_self()); +diff -ur ncurses-5.9-orig/ncurses/tty/lib_twait.c ncurses-5.9/ncurses/tty/lib_twait.c +--- ncurses-5.9-orig/ncurses/tty/lib_twait.c 2010-12-25 18:43:58 -0500 ++++ ncurses-5.9/ncurses/tty/lib_twait.c 2013-07-04 18:38:38 -0400 +@@ -65,8 +65,12 @@ + # include + # endif + #endif +-#ifdef __MINGW32__ +-# include ++#if defined(__MINGW32__) || defined(_MSC_VER) ++# ifdef _MSC_VER ++# include ++# else ++# include ++# endif + #endif + #undef CUR + +diff -ur ncurses-5.9-orig/ncurses/win32con/win_driver.c ncurses-5.9/ncurses/win32con/win_driver.c +--- ncurses-5.9-orig/ncurses/win32con/win_driver.c 2010-12-25 14:28:21 -0500 ++++ ncurses-5.9/ncurses/win32con/win_driver.c 2013-07-04 18:38:38 -0400 +@@ -138,7 +138,7 @@ + static BOOL + con_write(TERMINAL_CONTROL_BLOCK * TCB, int y, int x, chtype *str, int n) + { +- CHAR_INFO ci[n]; ++ CHAR_INFO* ci = (CHAR_INFO*)_alloca(n * sizeof(CHAR_INFO*)); + COORD loc, siz; + SMALL_RECT rec; + int i; +@@ -197,7 +197,7 @@ + + if ((CurScreen(sp)->_clear || NewScreen(sp)->_clear)) { + int x; +- chtype empty[Width]; ++ chtype* empty = (chtype*)_alloca(Width * sizeof(chtype)); + + for (x = 0; x < Width; x++) + empty[x] = ' '; +diff -ur ncurses-5.9-orig/panel/Makefile.in ncurses-5.9/panel/Makefile.in +--- ncurses-5.9-orig/panel/Makefile.in 2010-11-27 16:45:27 -0500 ++++ ncurses-5.9/panel/Makefile.in 2013-07-04 18:38:38 -0400 +@@ -85,7 +85,7 @@ + CPP = @CPP@ + CFLAGS = @CFLAGS@ + +-CPPFLAGS = -I@top_srcdir@/ncurses -DHAVE_CONFIG_H @CPPFLAGS@ ++CPPFLAGS = -I@top_srcdir@/ncurses -DHAVE_CONFIG_H -DNCPANEL_DLL @CPPFLAGS@ + + CCFLAGS = $(CPPFLAGS) $(CFLAGS) + +diff -ur ncurses-5.9-orig/panel/p_above.c ncurses-5.9/panel/p_above.c +--- ncurses-5.9-orig/panel/p_above.c 2010-01-23 16:22:15 -0500 ++++ ncurses-5.9/panel/p_above.c 2013-07-04 18:38:38 -0400 +@@ -39,7 +39,7 @@ + MODULE_ID("$Id: p_above.c,v 1.8 2010/01/23 21:22:15 tom Exp $") + + #if NCURSES_SP_FUNCS +-NCURSES_EXPORT(PANEL *) ++NCPANEL_EXPORT(PANEL *) + ground_panel(SCREEN * sp) + { + T((T_CALLED("ground_panel(%p)"), sp)); +@@ -62,7 +62,7 @@ + } + #endif + +-NCURSES_EXPORT(PANEL *) ++NCPANEL_EXPORT(PANEL *) + panel_above(const PANEL * pan) + { + PANEL *result; +diff -ur ncurses-5.9-orig/panel/p_below.c ncurses-5.9/panel/p_below.c +--- ncurses-5.9-orig/panel/p_below.c 2010-01-23 16:22:15 -0500 ++++ ncurses-5.9/panel/p_below.c 2013-07-04 18:38:38 -0400 +@@ -39,7 +39,7 @@ + MODULE_ID("$Id: p_below.c,v 1.8 2010/01/23 21:22:15 tom Exp $") + + #if NCURSES_SP_FUNCS +-NCURSES_EXPORT(PANEL *) ++NCPANEL_EXPORT(PANEL *) + ceiling_panel(SCREEN * sp) + { + T((T_CALLED("ceiling_panel(%p)"), sp)); +@@ -60,7 +60,7 @@ + } + #endif + +-NCURSES_EXPORT(PANEL *) ++NCPANEL_EXPORT(PANEL *) + panel_below(const PANEL * pan) + { + PANEL *result; +diff -ur ncurses-5.9-orig/panel/p_bottom.c ncurses-5.9/panel/p_bottom.c +--- ncurses-5.9-orig/panel/p_bottom.c 2010-01-23 16:22:16 -0500 ++++ ncurses-5.9/panel/p_bottom.c 2013-07-04 18:38:38 -0400 +@@ -39,7 +39,7 @@ + + MODULE_ID("$Id: p_bottom.c,v 1.13 2010/01/23 21:22:16 tom Exp $") + +-NCURSES_EXPORT(int) ++NCPANEL_EXPORT(int) + bottom_panel(PANEL * pan) + { + int err = OK; +diff -ur ncurses-5.9-orig/panel/p_delete.c ncurses-5.9/panel/p_delete.c +--- ncurses-5.9-orig/panel/p_delete.c 2010-01-23 16:22:16 -0500 ++++ ncurses-5.9/panel/p_delete.c 2013-07-04 18:38:38 -0400 +@@ -39,7 +39,7 @@ + + MODULE_ID("$Id: p_delete.c,v 1.10 2010/01/23 21:22:16 tom Exp $") + +-NCURSES_EXPORT(int) ++NCPANEL_EXPORT(int) + del_panel(PANEL * pan) + { + int err = OK; +diff -ur ncurses-5.9-orig/panel/p_hidden.c ncurses-5.9/panel/p_hidden.c +--- ncurses-5.9-orig/panel/p_hidden.c 2010-01-23 16:22:15 -0500 ++++ ncurses-5.9/panel/p_hidden.c 2013-07-04 18:38:38 -0400 +@@ -39,7 +39,7 @@ + + MODULE_ID("$Id: p_hidden.c,v 1.9 2010/01/23 21:22:15 tom Exp $") + +-NCURSES_EXPORT(int) ++NCPANEL_EXPORT(int) + panel_hidden(const PANEL * pan) + { + int rc = ERR; +diff -ur ncurses-5.9-orig/panel/p_hide.c ncurses-5.9/panel/p_hide.c +--- ncurses-5.9-orig/panel/p_hide.c 2010-01-23 16:22:16 -0500 ++++ ncurses-5.9/panel/p_hide.c 2013-07-04 18:38:38 -0400 +@@ -38,7 +38,7 @@ + + MODULE_ID("$Id: p_hide.c,v 1.11 2010/01/23 21:22:16 tom Exp $") + +-NCURSES_EXPORT(int) ++NCPANEL_EXPORT(int) + hide_panel(register PANEL * pan) + { + int err = ERR; +diff -ur ncurses-5.9-orig/panel/p_move.c ncurses-5.9/panel/p_move.c +--- ncurses-5.9-orig/panel/p_move.c 2010-01-23 16:22:15 -0500 ++++ ncurses-5.9/panel/p_move.c 2013-07-04 18:38:38 -0400 +@@ -39,7 +39,7 @@ + + MODULE_ID("$Id: p_move.c,v 1.11 2010/01/23 21:22:15 tom Exp $") + +-NCURSES_EXPORT(int) ++NCPANEL_EXPORT(int) + move_panel(PANEL * pan, int starty, int startx) + { + int rc = ERR; +diff -ur ncurses-5.9-orig/panel/p_new.c ncurses-5.9/panel/p_new.c +--- ncurses-5.9-orig/panel/p_new.c 2010-01-23 16:22:16 -0500 ++++ ncurses-5.9/panel/p_new.c 2013-07-04 18:38:38 -0400 +@@ -88,7 +88,7 @@ + return _nc_stdscr_pseudo_panel; + } + +-NCURSES_EXPORT(PANEL *) ++NCPANEL_EXPORT(PANEL *) + new_panel(WINDOW *win) + { + PANEL *pan = (PANEL *) 0; +diff -ur ncurses-5.9-orig/panel/p_replace.c ncurses-5.9/panel/p_replace.c +--- ncurses-5.9-orig/panel/p_replace.c 2010-01-23 16:22:16 -0500 ++++ ncurses-5.9/panel/p_replace.c 2013-07-04 18:38:38 -0400 +@@ -38,7 +38,7 @@ + + MODULE_ID("$Id: p_replace.c,v 1.11 2010/01/23 21:22:16 tom Exp $") + +-NCURSES_EXPORT(int) ++NCPANEL_EXPORT(int) + replace_panel(PANEL * pan, WINDOW *win) + { + int rc = ERR; +diff -ur ncurses-5.9-orig/panel/p_show.c ncurses-5.9/panel/p_show.c +--- ncurses-5.9-orig/panel/p_show.c 2010-01-23 16:22:16 -0500 ++++ ncurses-5.9/panel/p_show.c 2013-07-04 18:38:38 -0400 +@@ -38,7 +38,7 @@ + + MODULE_ID("$Id: p_show.c,v 1.13 2010/01/23 21:22:16 tom Exp $") + +-NCURSES_EXPORT(int) ++NCPANEL_EXPORT(int) + show_panel(PANEL * pan) + { + int err = ERR; +diff -ur ncurses-5.9-orig/panel/p_top.c ncurses-5.9/panel/p_top.c +--- ncurses-5.9-orig/panel/p_top.c 2010-01-23 16:22:16 -0500 ++++ ncurses-5.9/panel/p_top.c 2013-07-04 18:38:39 -0400 +@@ -38,7 +38,7 @@ + + MODULE_ID("$Id: p_top.c,v 1.6 2010/01/23 21:22:16 tom Exp $") + +-NCURSES_EXPORT(int) ++NCPANEL_EXPORT(int) + top_panel(PANEL * pan) + { + T((T_CALLED("top_panel(%p)"), (void *)pan)); +diff -ur ncurses-5.9-orig/panel/p_update.c ncurses-5.9/panel/p_update.c +--- ncurses-5.9-orig/panel/p_update.c 2010-01-23 16:22:16 -0500 ++++ ncurses-5.9/panel/p_update.c 2013-07-04 18:38:39 -0400 +@@ -39,7 +39,7 @@ + + MODULE_ID("$Id: p_update.c,v 1.11 2010/01/23 21:22:16 tom Exp $") + +-NCURSES_EXPORT(void) ++NCPANEL_EXPORT(void) + NCURSES_SP_NAME(update_panels) (NCURSES_SP_DCL0) + { + PANEL *pan; +@@ -70,7 +70,7 @@ + } + + #if NCURSES_SP_FUNCS +-NCURSES_EXPORT(void) ++NCPANEL_EXPORT(void) + update_panels(void) + { + NCURSES_SP_NAME(update_panels) (CURRENT_SCREEN); +diff -ur ncurses-5.9-orig/panel/p_user.c ncurses-5.9/panel/p_user.c +--- ncurses-5.9-orig/panel/p_user.c 2010-01-23 18:18:35 -0500 ++++ ncurses-5.9/panel/p_user.c 2013-07-04 18:38:39 -0400 +@@ -38,7 +38,7 @@ + + MODULE_ID("$Id: p_user.c,v 1.8 2010/01/23 23:18:35 tom Exp $") + +-NCURSES_EXPORT(int) ++NCPANEL_EXPORT(int) + set_panel_userptr(PANEL * pan, NCURSES_CONST void *uptr) + { + T((T_CALLED("set_panel_userptr(%p,%p)"), (void *)pan, (NCURSES_CONST void *)uptr)); +@@ -48,7 +48,7 @@ + returnCode(OK); + } + +-NCURSES_EXPORT(NCURSES_CONST void *) ++NCPANEL_EXPORT(NCURSES_CONST void *) + panel_userptr(const PANEL * pan) + { + T((T_CALLED("panel_userptr(%p)"), (const void *)pan)); +diff -ur ncurses-5.9-orig/panel/p_win.c ncurses-5.9/panel/p_win.c +--- ncurses-5.9-orig/panel/p_win.c 2010-01-23 16:22:15 -0500 ++++ ncurses-5.9/panel/p_win.c 2013-07-04 18:38:39 -0400 +@@ -38,7 +38,7 @@ + + MODULE_ID("$Id: p_win.c,v 1.6 2010/01/23 21:22:15 tom Exp $") + +-NCURSES_EXPORT(WINDOW *) ++NCPANEL_EXPORT(WINDOW *) + panel_window(const PANEL * pan) + { + T((T_CALLED("panel_window(%p)"), (const void *)pan)); +diff -ur ncurses-5.9-orig/panel/panel.c ncurses-5.9/panel/panel.c +--- ncurses-5.9-orig/panel/panel.c 2010-01-23 16:22:16 -0500 ++++ ncurses-5.9/panel/panel.c 2013-07-04 18:38:39 -0400 +@@ -42,7 +42,7 @@ + _nc_retrace_panel (pan) + --------------------------------------------------------------------------*/ + #ifdef TRACE +-NCURSES_EXPORT(PANEL *) ++NCPANEL_EXPORT(PANEL *) + _nc_retrace_panel(PANEL * pan) + { + T((T_RETURN("%p"), (void *)pan)); +@@ -55,7 +55,7 @@ + --------------------------------------------------------------------------*/ + #ifdef TRACE + #ifndef TRACE_TXT +-NCURSES_EXPORT(const char *) ++NCPANEL_EXPORT(const char *) + _nc_my_visbuf(const void *ptr) + { + char temp[32]; +@@ -73,7 +73,7 @@ + dPanel(text,pan) + --------------------------------------------------------------------------*/ + #ifdef TRACE +-NCURSES_EXPORT(void) ++NCPANEL_EXPORT(void) + _nc_dPanel(const char *text, const PANEL * pan) + { + _tracef("%s id=%s b=%s a=%s y=%d x=%d", +@@ -88,7 +88,7 @@ + dStack(fmt,num,pan) + --------------------------------------------------------------------------*/ + #ifdef TRACE +-NCURSES_EXPORT(void) ++NCPANEL_EXPORT(void) + _nc_dStack(const char *fmt, int num, const PANEL * pan) + { + char s80[80]; +@@ -114,7 +114,7 @@ + Wnoutrefresh(pan) - debugging hook for wnoutrefresh + --------------------------------------------------------------------------*/ + #ifdef TRACE +-NCURSES_EXPORT(void) ++NCPANEL_EXPORT(void) + _nc_Wnoutrefresh(const PANEL * pan) + { + dPanel("wnoutrefresh", pan); +@@ -126,7 +126,7 @@ + Touchpan(pan) + --------------------------------------------------------------------------*/ + #ifdef TRACE +-NCURSES_EXPORT(void) ++NCPANEL_EXPORT(void) + _nc_Touchpan(const PANEL * pan) + { + dPanel("Touchpan", pan); +@@ -138,7 +138,7 @@ + Touchline(pan,start,count) + --------------------------------------------------------------------------*/ + #ifdef TRACE +-NCURSES_EXPORT(void) ++NCPANEL_EXPORT(void) + _nc_Touchline(const PANEL * pan, int start, int count) + { + char s80[80]; +diff -ur ncurses-5.9-orig/panel/panel.h ncurses-5.9/panel/panel.h +--- ncurses-5.9-orig/panel/panel.h 2009-04-11 15:50:40 -0400 ++++ ncurses-5.9/panel/panel.h 2013-07-04 18:38:39 -0400 +@@ -53,27 +53,27 @@ + extern "C" { + #endif + +-extern NCURSES_EXPORT(WINDOW*) panel_window (const PANEL *); +-extern NCURSES_EXPORT(void) update_panels (void); +-extern NCURSES_EXPORT(int) hide_panel (PANEL *); +-extern NCURSES_EXPORT(int) show_panel (PANEL *); +-extern NCURSES_EXPORT(int) del_panel (PANEL *); +-extern NCURSES_EXPORT(int) top_panel (PANEL *); +-extern NCURSES_EXPORT(int) bottom_panel (PANEL *); +-extern NCURSES_EXPORT(PANEL*) new_panel (WINDOW *); +-extern NCURSES_EXPORT(PANEL*) panel_above (const PANEL *); +-extern NCURSES_EXPORT(PANEL*) panel_below (const PANEL *); +-extern NCURSES_EXPORT(int) set_panel_userptr (PANEL *, NCURSES_CONST void *); +-extern NCURSES_EXPORT(NCURSES_CONST void*) panel_userptr (const PANEL *); +-extern NCURSES_EXPORT(int) move_panel (PANEL *, int, int); +-extern NCURSES_EXPORT(int) replace_panel (PANEL *,WINDOW *); +-extern NCURSES_EXPORT(int) panel_hidden (const PANEL *); ++extern NCPANEL_EXPORT(WINDOW*) panel_window (const PANEL *); ++extern NCPANEL_EXPORT(void) update_panels (void); ++extern NCPANEL_EXPORT(int) hide_panel (PANEL *); ++extern NCPANEL_EXPORT(int) show_panel (PANEL *); ++extern NCPANEL_EXPORT(int) del_panel (PANEL *); ++extern NCPANEL_EXPORT(int) top_panel (PANEL *); ++extern NCPANEL_EXPORT(int) bottom_panel (PANEL *); ++extern NCPANEL_EXPORT(PANEL*) new_panel (WINDOW *); ++extern NCPANEL_EXPORT(PANEL*) panel_above (const PANEL *); ++extern NCPANEL_EXPORT(PANEL*) panel_below (const PANEL *); ++extern NCPANEL_EXPORT(int) set_panel_userptr (PANEL *, NCURSES_CONST void *); ++extern NCPANEL_EXPORT(NCURSES_CONST void*) panel_userptr (const PANEL *); ++extern NCPANEL_EXPORT(int) move_panel (PANEL *, int, int); ++extern NCPANEL_EXPORT(int) replace_panel (PANEL *,WINDOW *); ++extern NCPANEL_EXPORT(int) panel_hidden (const PANEL *); + + #if NCURSES_SP_FUNCS +-extern NCURSES_EXPORT(PANEL *) ground_panel(SCREEN *); +-extern NCURSES_EXPORT(PANEL *) ceiling_panel(SCREEN *); ++extern NCPANEL_EXPORT(PANEL *) ground_panel(SCREEN *); ++extern NCPANEL_EXPORT(PANEL *) ceiling_panel(SCREEN *); + +-extern NCURSES_EXPORT(void) NCURSES_SP_NAME(update_panels) (SCREEN*); ++extern NCPANEL_EXPORT(void) NCURSES_SP_NAME(update_panels) (SCREEN*); + #endif + + #if defined(__cplusplus) +diff -ur ncurses-5.9-orig/panel/panel.priv.h ncurses-5.9/panel/panel.priv.h +--- ncurses-5.9-orig/panel/panel.priv.h 2009-04-11 16:33:55 -0400 ++++ ncurses-5.9/panel/panel.priv.h 2013-07-04 18:38:39 -0400 +@@ -53,7 +53,7 @@ + + + #ifdef TRACE +- extern NCURSES_EXPORT(const char *) _nc_my_visbuf (const void *); ++ extern NCPANEL_EXPORT(const char *) _nc_my_visbuf (const void *); + # ifdef TRACE_TXT + # define USER_PTR(ptr) _nc_visbuf((const char *)ptr) + # else +@@ -62,12 +62,12 @@ + + # define returnPanel(code) TRACE_RETURN(code,panel) + +- extern NCURSES_EXPORT(PANEL *) _nc_retrace_panel (PANEL *); +- extern NCURSES_EXPORT(void) _nc_dPanel (const char*, const PANEL*); +- extern NCURSES_EXPORT(void) _nc_dStack (const char*, int, const PANEL*); +- extern NCURSES_EXPORT(void) _nc_Wnoutrefresh (const PANEL*); +- extern NCURSES_EXPORT(void) _nc_Touchpan (const PANEL*); +- extern NCURSES_EXPORT(void) _nc_Touchline (const PANEL*, int, int); ++ extern NCPANEL_EXPORT(PANEL *) _nc_retrace_panel (PANEL *); ++ extern NCPANEL_EXPORT(void) _nc_dPanel (const char*, const PANEL*); ++ extern NCPANEL_EXPORT(void) _nc_dStack (const char*, int, const PANEL*); ++ extern NCPANEL_EXPORT(void) _nc_Wnoutrefresh (const PANEL*); ++ extern NCPANEL_EXPORT(void) _nc_Touchpan (const PANEL*); ++ extern NCPANEL_EXPORT(void) _nc_Touchline (const PANEL*, int, int); + + # define dBug(x) _tracef x + # define dPanel(text,pan) _nc_dPanel(text,pan) +@@ -208,7 +208,7 @@ + + #if NCURSES_SP_FUNCS + /* These may become later renamed and part of panel.h and the public API */ +-extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_update_panels)(SCREEN*); ++extern NCPANEL_EXPORT(void) NCURSES_SP_NAME(_nc_update_panels)(SCREEN*); + #endif + + #endif /* NCURSES_PANEL_PRIV_H */ +diff -ur ncurses-5.9-orig/progs/Makefile.in ncurses-5.9/progs/Makefile.in +--- ncurses-5.9-orig/progs/Makefile.in 2010-11-27 16:45:27 -0500 ++++ ncurses-5.9/progs/Makefile.in 2013-07-04 18:38:39 -0400 +@@ -113,10 +113,10 @@ + + LDFLAGS_DEFAULT = $(LDFLAGS_@DFT_UPR_MODEL@) + +-LIBS_TIC = @LDFLAGS_STATIC@ @TICS_ARGS@ @TINFO_ARGS@ @LDFLAGS_SHARED@ @LD_MODEL@ @LIBS@ ++LIBS_TIC = @LDFLAGS_STATIC@ @TICS_ARGS@ @TINFO_ARGS@ @LDFLAGS_SHARED@ @LD_MODEL@ @LIBS@ -lgetopt + LDFLAGS_TIC = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TIC) + +-LIBS_TINFO = @LDFLAGS_STATIC@ @TINFO_ARGS@ @LDFLAGS_SHARED@ @LD_MODEL@ @LIBS@ ++LIBS_TINFO = @LDFLAGS_STATIC@ @TINFO_ARGS@ @LDFLAGS_SHARED@ @LD_MODEL@ @LIBS@ -lgetopt + LDFLAGS_TINFO = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TINFO) + + LINT = @LINT@ +diff -ur ncurses-5.9-orig/progs/progs.priv.h ncurses-5.9/progs/progs.priv.h +--- ncurses-5.9-orig/progs/progs.priv.h 2008-08-03 13:43:05 -0400 ++++ ncurses-5.9/progs/progs.priv.h 2013-07-04 18:38:39 -0400 +@@ -148,8 +148,14 @@ + #endif + + #ifndef X_OK ++#ifdef _MSC_VER ++#define X_OK 0 /* MSVC does not support X_OK and generate invalid ++ * parameter exception if used as argument to "access" ++ * function. */ ++#else + #define X_OK 1 /* Test for executable. */ + #endif ++#endif + + #ifndef F_OK + #define F_OK 0 /* Test for existence. */ +diff -ur ncurses-5.9-orig/test/Makefile.in ncurses-5.9/test/Makefile.in +--- ncurses-5.9-orig/test/Makefile.in 2010-11-28 11:39:40 -0500 ++++ ncurses-5.9/test/Makefile.in 2013-07-04 18:38:39 -0400 +@@ -105,7 +105,7 @@ + TEST_ARGS = @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@ + + # use these for linking with all of the libraries +-LIBS_DEFAULT = $(TEST_ARGS) @LIBS@ $(TEST_LIBS) $(MATH_LIB) ++LIBS_DEFAULT = $(TEST_ARGS) @LIBS@ $(TEST_LIBS) $(MATH_LIB) -lgetopt + LDFLAGS_DEFAULT = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_DEFAULT) + + # use these for linking with the (n)curses library and possibly pthreads +@@ -113,11 +113,11 @@ + LDFLAGS_THREADS = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_THREADS) + + # use these for linking with the (n)curses library +-LIBS_CURSES = `echo "$(TEST_ARGS) @LIBS@" | sed -e 's/-lform.*-lpanel[^ ]*//'` $(TEST_LIBS) $(MATH_LIB) ++LIBS_CURSES = `echo "$(TEST_ARGS) @LIBS@" | sed -e 's/-lform.*-lpanel[^ ]*//'` $(TEST_LIBS) $(MATH_LIB) -lgetopt + LDFLAGS_CURSES = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_CURSES) + + # use these for linking with the tinfo library if we have it, or curses library if not +-LIBS_TINFO = @LDFLAGS_STATIC@ @TINFO_ARGS@ @LDFLAGS_SHARED@ @LIBS@ $(TEST_LIBS) $(MATH_LIB) ++LIBS_TINFO = @LDFLAGS_STATIC@ @TINFO_ARGS@ @LDFLAGS_SHARED@ @LIBS@ $(TEST_LIBS) $(MATH_LIB) -lgetopt + LDFLAGS_TINFO = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TINFO) + + LINT = @LINT@ +diff -ur ncurses-5.9-orig/test/dots.c ncurses-5.9/test/dots.c +--- ncurses-5.9-orig/test/dots.c 2010-11-13 20:00:02 -0500 ++++ ncurses-5.9/test/dots.c 2013-07-04 18:38:39 -0400 +@@ -42,6 +42,10 @@ + + #define valid(s) ((s != 0) && s != (char *)-1) + ++#ifdef _MSC_VER ++# define STDOUT_FILENO 1 ++#endif ++ + static bool interrupted = FALSE; + static long total_chars = 0; + static time_t started; +diff -ur ncurses-5.9-orig/test/dots_mvcur.c ncurses-5.9/test/dots_mvcur.c +--- ncurses-5.9-orig/test/dots_mvcur.c 2010-11-13 20:00:44 -0500 ++++ ncurses-5.9/test/dots_mvcur.c 2013-07-04 18:38:39 -0400 +@@ -42,6 +42,10 @@ + + #define valid(s) ((s != 0) && s != (char *)-1) + ++#ifdef _MSC_VER ++# define STDOUT_FILENO 1 ++#endif ++ + static bool interrupted = FALSE; + static long total_chars = 0; + static time_t started; +diff -ur ncurses-5.9-orig/test/ncurses.c ncurses-5.9/test/ncurses.c +--- ncurses-5.9-orig/test/ncurses.c 2011-01-22 14:48:33 -0500 ++++ ncurses-5.9/test/ncurses.c 2013-07-04 18:38:39 -0400 +@@ -487,7 +487,7 @@ + addstr("Shelling out..."); + def_prog_mode(); + endwin(); +-#ifdef __MINGW32__ ++#if defined(__MINGW32__) || defined(_MSC_VER) + system("cmd.exe"); + #else + system("sh"); +diff -ur ncurses-5.9-orig/test/railroad.c ncurses-5.9/test/railroad.c +--- ncurses-5.9-orig/test/railroad.c 2009-10-24 17:37:56 -0400 ++++ ncurses-5.9/test/railroad.c 2013-07-04 18:38:39 -0400 +@@ -36,6 +36,10 @@ + #define USE_TINFO + #include + ++#ifdef _MSC_VER ++# define STDOUT_FILENO 1 ++#endif ++ + #if HAVE_TGETENT + + static char *wipeit; +diff -ur ncurses-5.9-orig/test/rain.c ncurses-5.9/test/rain.c +--- ncurses-5.9-orig/test/rain.c 2010-11-13 15:11:46 -0500 ++++ ncurses-5.9/test/rain.c 2013-07-04 18:38:39 -0400 +@@ -222,7 +222,7 @@ + * Find myself in the list of threads so we can count the number of loops. + */ + for (mystats = 0; mystats < MAX_THREADS; ++mystats) { +-#ifdef __MINGW32__ ++#if defined(__MINGW32__) || defined(_MSC_VER) + if (drop_threads[mystats].myself.p == pthread_self().p) + #else + if (drop_threads[mystats].myself == pthread_self()) +diff -ur ncurses-5.9-orig/test/test.priv.h ncurses-5.9/test/test.priv.h +--- ncurses-5.9-orig/test/test.priv.h 2011-03-22 05:15:45 -0400 ++++ ncurses-5.9/test/test.priv.h 2013-07-04 18:38:39 -0400 +@@ -609,7 +609,7 @@ + #define EXIT_FAILURE 1 + #endif + +-#ifdef __MINGW32__ ++#if defined(__MINGW32__) || defined(_MSC_VER) + #include + /* conflicts in test/firstlast.c */ + #undef large +@@ -641,12 +641,24 @@ + + #define VT_ACSC "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~" + ++#ifdef _MSC_VER ++#define CATCHALL(handler) \ ++ do { \ ++ /* These are the only signal allowed by MSVC. */ \ ++ signal(SIGINT, handler); \ ++ signal(SIGILL, handler); \ ++ signal(SIGFPE, handler); \ ++ signal(SIGSEGV, handler); \ ++ signal(SIGABRT, handler); \ ++ } while (0) ++#else + #define CATCHALL(handler) { \ + int nsig; \ + for (nsig = SIGHUP; nsig < SIGTERM; ++nsig) \ + if (nsig != SIGKILL) \ + signal(nsig, handler); \ + } ++#endif + + /* + * Workaround for clean(er) compile with Solaris's legacy curses. +diff -ur ncurses-5.9-orig/test/view.c ncurses-5.9/test/view.c +--- ncurses-5.9-orig/test/view.c 2010-11-13 20:06:02 -0500 ++++ ncurses-5.9/test/view.c 2013-07-04 18:38:39 -0400 +@@ -62,7 +62,7 @@ + #if HAVE_TERMIOS_H + # include + #else +-#if !defined(__MINGW32__) ++#if !defined(__MINGW32__) && !defined(_MSC_VER) + # include + #endif + #endif diff -r 095898417026 -r 21f598a028ec src/ncurses.mk --- a/src/ncurses.mk Wed Jul 03 08:23:08 2013 -0400 +++ b/src/ncurses.mk Fri Jul 05 22:24:48 2013 -0400 @@ -16,11 +16,18 @@ head -1 endef +ifeq ($(MXE_SYSTEM),msvc) + $(PKG)_CONFIG_OPTS := \ + --without-normal \ + --with-shared \ + --with-libtool +else ifeq ($(MXE_NATIVE_MINGW_BUILD),yes) $(PKG)_CONFIG_OPTS := --with-normal --without-shared else $(PKG)_CONFIG_OPTS := --with-normal $(WITH_SHARED_OR_STATIC) endif +endif define $(PKG)_BUILD cd '$(1)' && ./configure \ @@ -37,5 +44,13 @@ --enable-pc-files \ $($(PKG)_CONFIG_OPTS) + # MSVC generates invalid code in panel library when using -O2 + # command-line flag. Bug is reported. Disable optimization for + # the time being. + if test x$(MXE_SYSTEM) = xmsvc; then \ + find '$(1)' -name Makefile \ + -exec $(SED) -i 's,-\,,' {} \; ; \ + fi + $(MAKE) -C '$(1)' -j '$(JOBS)' install endef