X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fcurses.priv.h;h=67a85920e268bbf4ece12953156338d3843f251e;hp=6d3a861bb2e8499a87d7598100060fb5684e1f97;hb=ab61bfec8cb0c26638ea53ceadcd17048ee02996;hpb=ef2d99350e0d3e4606171b5b1466ab92ec440205 diff --git a/ncurses/curses.priv.h b/ncurses/curses.priv.h index 6d3a861b..67a85920 100644 --- a/ncurses/curses.priv.h +++ b/ncurses/curses.priv.h @@ -34,7 +34,7 @@ ****************************************************************************/ /* - * $Id: curses.priv.h,v 1.531 2014/03/08 19:58:54 tom Exp $ + * $Id: curses.priv.h,v 1.537 2014/05/03 21:20:12 tom Exp $ * * curses.priv.h * @@ -179,6 +179,18 @@ extern int errno; #define USE_SIGWINCH 0 #endif +/* + * When building in the MSYS2 environment, the automatic discovery of + * the path separator in configure doesn't work properly. So, if building + * for MinGW, we enforce the correct Windows PATH separator + */ +#ifdef __MINGW32__ +# ifdef NCURSES_PATHSEP +# undef NCURSES_PATHSEP +# endif +# define NCURSES_PATHSEP ';' +#endif + /* * If desired, one can configure this, disabling environment variables that * point to custom terminfo/termcap locations. @@ -2200,7 +2212,6 @@ extern NCURSES_EXPORT(int) _nc_get_tty_mode(TTY *); sp->jump = outc #ifdef USE_TERM_DRIVER -typedef void* TERM_HANDLE; typedef struct _termInfo { @@ -2226,6 +2237,7 @@ typedef struct _termInfo typedef struct term_driver { bool isTerminfo; + const char* (*td_name)(struct DriverTCB*); bool (*td_CanHandle)(struct DriverTCB*, const char*, int*); void (*td_init)(struct DriverTCB*); void (*td_release)(struct DriverTCB*); @@ -2265,9 +2277,6 @@ typedef struct term_driver { typedef struct DriverTCB { TERMINAL term; /* needs to be the first Element !!! */ - TERM_HANDLE inp; /* The input handle of the Terminal */ - TERM_HANDLE out; /* The output handle of the Terminal in shell mode */ - TERM_HANDLE hdl; /* The output handle of the Terminal in prog mode */ TERM_DRIVER* drv; /* The driver for that Terminal */ SCREEN* csp; /* The screen that owns that Terminal */ TerminalInfo info; /* Driver independent core capabilities of the Terminal */ @@ -2337,16 +2346,39 @@ extern NCURSES_EXPORT(void) _nc_get_screensize(SCREEN *, int *, int *); #ifdef __MINGW32__ #include extern NCURSES_EXPORT_VAR(TERM_DRIVER) _nc_WIN_DRIVER; +extern NCURSES_EXPORT(int) _nc_mingw_isatty(int fd); +extern NCURSES_EXPORT(int) _nc_mingw_isconsole(int fd); +extern NCURSES_EXPORT(int) _nc_mingw_console_read( + SCREEN *sp, + HANDLE fd, + int *buf); +extern NCURSES_EXPORT(int) _nc_mingw_testmouse( + SCREEN * sp, + HANDLE fd, + int delay); +#else #endif extern NCURSES_EXPORT_VAR(TERM_DRIVER) _nc_TINFO_DRIVER; #endif +#if defined(USE_TERM_DRIVER) && defined(__MINGW32__) +#define NC_ISATTY(fd) _nc_mingw_isatty(fd) +#else +#define NC_ISATTY(fd) isatty(fd) +#endif + #ifdef USE_TERM_DRIVER -#define IsTermInfo(sp) ((TCBOf(sp) != 0) && ((TCBOf(sp)->drv->isTerminfo))) -#define HasTInfoTerminal(sp) ((0 != TerminalOf(sp)) && IsTermInfo(sp)) +# define IsTermInfo(sp) ((TCBOf(sp) != 0) && ((TCBOf(sp)->drv->isTerminfo))) +# define HasTInfoTerminal(sp) ((0 != TerminalOf(sp)) && IsTermInfo(sp)) +# ifdef __MINGW32__ +# define IsTermInfoOnConsole(sp) (IsTermInfo(sp)&&_nc_mingw_isconsole(TerminalOf(sp)->Filedes)) +#else +# define IsTermInfoOnConsole(sp) FALSE +# endif #else -#define IsTermInfo(sp) TRUE -#define HasTInfoTerminal(sp) (0 != TerminalOf(sp)) +# define IsTermInfo(sp) TRUE +# define HasTInfoTerminal(sp) (0 != TerminalOf(sp)) +# define IsTermInfoOnConsole(sp) FALSE #endif #define IsValidTIScreen(sp) (HasTInfoTerminal(sp))