X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fcurses.priv.h;h=940dddf4b74bbc594bdf38f5a0bc8091b62ce4de;hp=c13410727cc7f78c0a34f672a705caa3d0a7746e;hb=64f44b13d30e0a7bc2921a9d43755423f81564fd;hpb=0573f2d712e4b5cb2a02a3fe52d513843d536b34 diff --git a/ncurses/curses.priv.h b/ncurses/curses.priv.h index c1341072..940dddf4 100644 --- a/ncurses/curses.priv.h +++ b/ncurses/curses.priv.h @@ -34,7 +34,7 @@ ****************************************************************************/ /* - * $Id: curses.priv.h,v 1.506 2012/09/01 19:21:05 tom Exp $ + * $Id: curses.priv.h,v 1.512 2012/12/08 20:19:40 tom Exp $ * * curses.priv.h * @@ -184,17 +184,6 @@ extern int errno; extern NCURSES_EXPORT(int) _nc_env_access (void); #endif -/* - * Not all platforms have memmove; some have an equivalent bcopy. (Some may - * have neither). - */ -#if USE_OK_BCOPY -#define memmove(d,s,n) bcopy(s,d,n) -#elif USE_MY_MEMMOVE -#define memmove(d,s,n) _nc_memmove(d,s,n) -extern NCURSES_EXPORT(void *) _nc_memmove (void *, const void *, size_t); -#endif - /* * If we have va_copy(), use it for assigning va_list's. */ @@ -1510,6 +1499,20 @@ extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch; #include +/* + * Use these for tic/infocmp malloc failures. Generally the ncurses library + * tries to limp along after a failure. + */ +#define TYPE_MALLOC(type, size, name) \ + name = typeMalloc(type, size); \ + if (name == 0) \ + _nc_err_abort(MSG_NO_MEMORY) + +#define TYPE_REALLOC(type, size, name) \ + name = typeRealloc(type, size, name); \ + if (name == 0) \ + _nc_err_abort(MSG_NO_MEMORY) + /* * TTY bit definition for converting tabs to spaces. */ @@ -2035,6 +2038,23 @@ extern NCURSES_EXPORT(int) _nc_eventlist_timeout(_nc_eventlist *); * Wide-character macros to hide some platform-differences. */ #if USE_WIDEC_SUPPORT + +#if defined(__MINGW32__) +/* + * MinGW has wide-character functions, but they do not work correctly. + */ + +extern int __MINGW_NOTHROW _nc_wctomb(char *, wchar_t); +#define wctomb(s,wc) _nc_wctomb(s,wc) + +extern int __MINGW_NOTHROW _nc_mbtowc(wchar_t *, const char *, size_t); +#define mbtowc(pwc,s,n) _nc_mbtowc(pwc,s,n) + +extern int __MINGW_NOTHROW _nc_mblen(const char *, size_t); +#define mblen(s,n) _nc_mblen(s, n) + +#endif /* __MINGW32__ */ + #if HAVE_MBTOWC && HAVE_MBLEN #define reset_mbytes(state) IGNORE_RC(mblen(NULL, (size_t) 0)), IGNORE_RC(mbtowc(NULL, NULL, (size_t) 0)) #define count_mbytes(buffer,length,state) mblen(buffer,length) @@ -2049,7 +2069,8 @@ extern NCURSES_EXPORT(int) _nc_eventlist_timeout(_nc_eventlist *); #else make an error #endif -#endif + +#endif /* USE_WIDEC_SUPPORT */ /* * Not everyone has vsscanf(), but we'd like to use it for scanw(). @@ -2138,9 +2159,9 @@ extern NCURSES_EXPORT(int) _nc_get_tty_mode(TTY *); #define SetSafeOutcWrapper(outc) \ SCREEN* sp = CURRENT_SCREEN; \ + struct screen outc_wrapper; \ if (sp==0) { \ - struct screen dummy; \ - sp = &dummy; \ + sp = &outc_wrapper; \ memset(sp,0,sizeof(struct screen)); \ sp->_outch = _nc_outc_wrapper; \ }\