X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fcurses.priv.h;h=13edc36f743ba5a3d0249953c3288ae0b1770d13;hp=e609c1330fed81dcc5303498bee69ecc1fe47e9f;hb=e9d205b51699dd452427c908758daa13cccfe2f6;hpb=1078c0231b8a58fbd2dd56b6e0a81b19d6b07f77 diff --git a/ncurses/curses.priv.h b/ncurses/curses.priv.h index e609c133..13edc36f 100644 --- a/ncurses/curses.priv.h +++ b/ncurses/curses.priv.h @@ -34,7 +34,7 @@ /* - * $Id: curses.priv.h,v 1.383 2008/06/07 14:13:19 tom Exp $ + * $Id: curses.priv.h,v 1.395 2008/11/23 00:09:04 tom Exp $ * * curses.priv.h * @@ -147,7 +147,7 @@ extern int errno; #define HAVE_SIZECHANGE 0 #endif -#if HAVE_SIZECHANGE && defined(SIGWINCH) +#if HAVE_SIZECHANGE && USE_SIGWINCH && defined(SIGWINCH) #define USE_SIZECHANGE 1 #else #define USE_SIZECHANGE 0 @@ -286,6 +286,15 @@ color_t; #define VIDATTR(attr, pair) vidattr(attr) #endif +#if NCURSES_NO_PADDING +#define GetNoPadding(sp) ((sp) ? (sp)->_no_padding : _nc_prescreen._no_padding) +#define SetNoPadding(sp) _nc_set_no_padding(sp) +extern NCURSES_EXPORT(void) _nc_set_no_padding(SCREEN *); +#else +#define GetNoPadding(sp) FALSE +#define SetNoPadding(sp) /*nothing*/ +#endif + #define WINDOW_ATTRS(w) ((w)->_attrs) #define SCREEN_ATTRS(s) (*((s)->_current_attr)) @@ -321,6 +330,7 @@ NCURSES_EXPORT(int *) _nc_ptr_Cols (void); #if USE_REENTRANT #include +extern NCURSES_EXPORT(void) _nc_init_pthreads(void); extern NCURSES_EXPORT(void) _nc_mutex_init(pthread_mutex_t *); extern NCURSES_EXPORT(int) _nc_mutex_lock(pthread_mutex_t *); extern NCURSES_EXPORT(int) _nc_mutex_trylock(pthread_mutex_t *); @@ -333,6 +343,36 @@ extern NCURSES_EXPORT(int) _nc_mutex_unlock(pthread_mutex_t *); #error POSIX threads requires --enable-reentrant option #endif +#if USE_WEAK_SYMBOLS +#if defined(__GNUC__) +# if defined __USE_ISOC99 +# define _cat_pragma(exp) _Pragma(#exp) +# define _weak_pragma(exp) _cat_pragma(weak name) +# else +# define _weak_pragma(exp) +# endif +# define _declare(name) __extension__ extern __typeof__(name) name +# define weak_symbol(name) _weak_pragma(name) _declare(name) __attribute__((weak)) +#endif +#endif + +#ifdef USE_PTHREADS +# if USE_WEAK_SYMBOLS +weak_symbol(pthread_sigmask); +weak_symbol(pthread_self); +weak_symbol(pthread_equal); +weak_symbol(pthread_mutex_init); +weak_symbol(pthread_mutex_lock); +weak_symbol(pthread_mutex_unlock); +weak_symbol(pthread_mutex_trylock); +weak_symbol(pthread_mutexattr_settype); +weak_symbol(pthread_mutexattr_init); +extern NCURSES_EXPORT(int) _nc_sigprocmask(int, const sigset_t *, sigset_t *); +# undef sigprocmask +# define sigprocmask _nc_sigprocmask +# endif +#endif + #if HAVE_NANOSLEEP #undef HAVE_NANOSLEEP #define HAVE_NANOSLEEP 0 /* nanosleep suspends all threads */ @@ -340,6 +380,7 @@ extern NCURSES_EXPORT(int) _nc_mutex_unlock(pthread_mutex_t *); #else /* !USE_PTHREADS */ +#define _nc_init_pthreads() /* nothing */ #define _nc_mutex_init(obj) /* nothing */ #define _nc_lock_global(name) /* nothing */ @@ -607,10 +648,12 @@ typedef struct { #endif /* TRACE */ #ifdef USE_PTHREADS - pthread_mutex_t mutex_curses; - pthread_mutex_t mutex_tst_tracef; - pthread_mutex_t mutex_tracef; - int nested_tracef; + pthread_mutex_t mutex_curses; + pthread_mutex_t mutex_tst_tracef; + pthread_mutex_t mutex_tracef; + int nested_tracef; + int use_pthreads; +#define _nc_use_pthreads _nc_globals.use_pthreads #endif } NCURSES_GLOBALS; @@ -630,6 +673,9 @@ typedef struct { ripoff_t *rsp; TPARM_STATE tparm_state; TTY *saved_tty; /* savetty/resetty information */ +#if NCURSES_NO_PADDING + bool _no_padding; /* flag to set if padding disabled */ +#endif #if BROKEN_LINKER || USE_REENTRANT chtype *real_acs_map; int _LINES; @@ -700,7 +746,7 @@ struct screen { int slk_format; /* selected format for this screen */ /* cursor movement costs; units are 10ths of milliseconds */ #if NCURSES_NO_PADDING - int _no_padding; /* flag to set if padding disabled */ + bool _no_padding; /* flag to set if padding disabled */ #endif int _char_padding; /* cost of character put */ int _cr_cost; /* cost of (carriage_return) */ @@ -799,6 +845,7 @@ struct screen { bool _mouse_gpm_loaded; bool _mouse_gpm_found; #ifdef HAVE_LIBDL + void *_dlopen_gpm; TYPE_gpm_fd _mouse_gpm_fd; TYPE_Gpm_Open _mouse_Gpm_Open; TYPE_Gpm_Close _mouse_Gpm_Close; @@ -1295,7 +1342,7 @@ extern NCURSES_EXPORT(const char *) _nc_viscbuf (const NCURSES_CH_T *, int); extern NCURSES_EXPORT(const char *) _nc_visbuf2 (int, const char *); extern NCURSES_EXPORT(const char *) _nc_visbufn (const char *, int); -#define empty_module(name) \ +#define EMPTY_MODULE(name) \ extern NCURSES_EXPORT(void) name (void); \ NCURSES_EXPORT(void) name (void) { } @@ -1395,6 +1442,10 @@ extern NCURSES_EXPORT(void) _nc_expanded (void); #endif +#if !NCURSES_EXT_FUNCS +#define set_escdelay(value) ESCDELAY = value +#endif + #if !HAVE_GETCWD #define getcwd(buf,len) getwd(buf) #endif @@ -1468,7 +1519,7 @@ extern NCURSES_EXPORT(void) _nc_screen_resume (void); extern NCURSES_EXPORT(void) _nc_screen_wrap (void); /* lib_mouse.c */ -extern NCURSES_EXPORT(int) _nc_has_mouse (void); +extern NCURSES_EXPORT(bool) _nc_has_mouse (SCREEN *); /* lib_mvcur.c */ #define INFINITY 1000000 /* cost: too high to use */ @@ -1477,7 +1528,7 @@ extern NCURSES_EXPORT(int) _nc_has_mouse (void); /* lib_setup.c */ extern NCURSES_EXPORT(char *) _nc_get_locale(void); extern NCURSES_EXPORT(int) _nc_unicode_locale(void); -extern NCURSES_EXPORT(int) _nc_locale_breaks_acs(void); +extern NCURSES_EXPORT(int) _nc_locale_breaks_acs(TERMINAL *); extern NCURSES_EXPORT(int) _nc_setupterm(NCURSES_CONST char *, int, int *, bool); extern NCURSES_EXPORT(void) _nc_get_screensize(SCREEN *, int *, int *); @@ -1546,6 +1597,7 @@ extern NCURSES_EXPORT(int) _nc_setupscreen (int, int, FILE *, bool, int); extern NCURSES_EXPORT(int) _nc_timed_wait (SCREEN *, int, int, int * EVENTLIST_2nd(_nc_eventlist *)); extern NCURSES_EXPORT(void) _nc_do_color (short, short, bool, int (*)(int)); extern NCURSES_EXPORT(void) _nc_flush (void); +extern NCURSES_EXPORT(void) _nc_free_and_exit (int); extern NCURSES_EXPORT(void) _nc_free_entry (ENTRY *, TERMTYPE *); extern NCURSES_EXPORT(void) _nc_freeall (void); extern NCURSES_EXPORT(void) _nc_hash_map (void);