⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 curses.priv.h

📁 ncurses 库 可能有用酒用 没用就算了 我觉得还可以用
💻 H
📖 第 1 页 / 共 3 页
字号:
#define T(a)		TR(TRACE_CALLS, a)#define TPUTS_TRACE(s)	_nc_tputs_trace = s;#define TRACE_RETURN(value,type) return _nc_retrace_##type(value)#define returnAttr(code)	TRACE_RETURN(code,attr_t)#define returnBits(code)	TRACE_RETURN(code,unsigned)#define returnBool(code)	TRACE_RETURN(code,bool)#define returnCPtr(code)	TRACE_RETURN(code,cptr)#define returnCVoidPtr(code)	TRACE_RETURN(code,cvoid_ptr)#define returnChar(code)	TRACE_RETURN(code,chtype)#define returnCode(code)	TRACE_RETURN(code,int)#define returnPtr(code)		TRACE_RETURN(code,ptr)#define returnSP(code)		TRACE_RETURN(code,sp)#define returnVoid		T((T_RETURN(""))); return#define returnVoidPtr(code)	TRACE_RETURN(code,void_ptr)#define returnWin(code)		TRACE_RETURN(code,win)extern NCURSES_EXPORT(NCURSES_BOOL)     _nc_retrace_bool (NCURSES_BOOL);extern NCURSES_EXPORT(NCURSES_CONST void *) _nc_retrace_cvoid_ptr (NCURSES_CONST void *);extern NCURSES_EXPORT(SCREEN *)         _nc_retrace_sp (SCREEN *);extern NCURSES_EXPORT(WINDOW *)         _nc_retrace_win (WINDOW *);extern NCURSES_EXPORT(attr_t)           _nc_retrace_attr_t (attr_t);extern NCURSES_EXPORT(char *)           _nc_retrace_ptr (char *);extern NCURSES_EXPORT(char *)           _nc_trace_ttymode(TTY *tty);extern NCURSES_EXPORT(char *)           _nc_varargs (const char *, va_list);extern NCURSES_EXPORT(chtype)           _nc_retrace_chtype (chtype);extern NCURSES_EXPORT(const char *)     _nc_altcharset_name(attr_t, chtype);extern NCURSES_EXPORT(const char *)     _nc_retrace_cptr (const char *);extern NCURSES_EXPORT(int)              _nc_retrace_int (int);extern NCURSES_EXPORT(unsigned)         _nc_retrace_unsigned (unsigned);extern NCURSES_EXPORT(void *)           _nc_retrace_void_ptr (void *);extern NCURSES_EXPORT(void)             _nc_fifo_dump (void);extern NCURSES_EXPORT_VAR(const char *) _nc_tputs_trace;extern NCURSES_EXPORT_VAR(long)         _nc_outchars;extern NCURSES_EXPORT_VAR(unsigned)     _nc_tracing;#if USE_WIDEC_SUPPORTextern NCURSES_EXPORT(const char *) _nc_viswbuf2 (int, const wchar_t *);extern NCURSES_EXPORT(const char *) _nc_viswbufn (const wchar_t *, int);extern NCURSES_EXPORT(const char *) _nc_viscbuf2 (int, const cchar_t *, int);extern NCURSES_EXPORT(const char *) _nc_viscbuf (const cchar_t *, int);#endif#else /* !TRACE */#define START_TRACE() /* nothing */#define T(a)#define TR(n, a)#define TPUTS_TRACE(s)#define returnAttr(code)	return code#define returnBits(code)	return code#define returnBool(code)	return code#define returnCPtr(code)	return code#define returnCVoidPtr(code)	return code#define returnChar(code)	return code#define returnCode(code)	return code#define returnPtr(code)		return code#define returnSP(code)		return code#define returnVoid		return#define returnVoidPtr(code)	return code#define returnWin(code)		return code#endif /* TRACE/!TRACE */extern NCURSES_EXPORT(const char *) _nc_visbuf2 (int, const char *);extern NCURSES_EXPORT(const char *) _nc_visbufn (const char *, int);#define empty_module(name) \extern	NCURSES_EXPORT(void) name (void); \	NCURSES_EXPORT(void) name (void) { }#define ALL_BUT_COLOR ((chtype)~(A_COLOR))#define NONBLANK_ATTR (A_NORMAL|A_BOLD|A_DIM|A_BLINK)#define XMC_CHANGES(c) ((c) & SP->_xmc_suppress)#define toggle_attr_on(S,at) {\   if (PAIR_NUMBER(at) > 0) {\      (S) = ((S) & ALL_BUT_COLOR) | (at);\   } else {\      (S) |= (at);\   }\   TR(TRACE_ATTRS, ("new attribute is %s", _traceattr((S))));}#define toggle_attr_off(S,at) {\   if (PAIR_NUMBER(at) > 0) {\      (S) &= ~(at|A_COLOR);\   } else {\      (S) &= ~(at);\   }\   TR(TRACE_ATTRS, ("new attribute is %s", _traceattr((S))));}#define DelCharCost(count) \		((parm_dch != 0) \		? SP->_dch_cost \		: ((delete_character != 0) \			? (SP->_dch1_cost * count) \			: INFINITY))#define InsCharCost(count) \		((parm_ich != 0) \		? SP->_ich_cost \		: ((enter_insert_mode && exit_insert_mode) \		  ? SP->_smir_cost + SP->_rmir_cost + (SP->_ip_cost * count) \		  : ((insert_character != 0) \		    ? ((SP->_ich1_cost + SP->_ip_cost) * count) \		    : INFINITY)))#if USE_XMC_SUPPORT#define UpdateAttrs(c)	if (!SameAttrOf(SCREEN_ATTRS(SP), c)) { \				attr_t chg = AttrOf(SCREEN_ATTRS(SP)); \				VIDATTR(AttrOf(c), GetPair(c)); \				if (magic_cookie_glitch > 0 \				 && XMC_CHANGES((chg ^ AttrOf(SCREEN_ATTRS(SP))))) { \					T(("%s @%d before glitch %d,%d", \						__FILE__, __LINE__, \						SP->_cursrow, \						SP->_curscol)); \					_nc_do_xmc_glitch(chg); \				} \			}#else#define UpdateAttrs(c)	if (!SameAttrOf(SCREEN_ATTRS(SP), c)) \				VIDATTR(AttrOf(c), GetPair(c));#endif/* * Macros to make additional parameter to implement wgetch_events() */#ifdef NCURSES_WGETCH_EVENTS#define EVENTLIST_0th(param) param#define EVENTLIST_1st(param) param#define EVENTLIST_2nd(param) , param#else#define EVENTLIST_0th(param) void#define EVENTLIST_1st(param) /* nothing */#define EVENTLIST_2nd(param) /* nothing */#endif#if NCURSES_EXPANDED && NCURSES_EXT_FUNCS#undef  toggle_attr_on#define toggle_attr_on(S,at) _nc_toggle_attr_on(&(S), at)extern NCURSES_EXPORT(void) _nc_toggle_attr_on (attr_t *, attr_t);#undef  toggle_attr_off#define toggle_attr_off(S,at) _nc_toggle_attr_off(&(S), at)extern NCURSES_EXPORT(void) _nc_toggle_attr_off (attr_t *, attr_t);#undef  DelCharCost#define DelCharCost(count) _nc_DelCharCost(count)extern NCURSES_EXPORT(int) _nc_DelCharCost (int);#undef  InsCharCost#define InsCharCost(count) _nc_InsCharCost(count)extern NCURSES_EXPORT(int) _nc_InsCharCost (int);#undef  UpdateAttrs#define UpdateAttrs(c) _nc_UpdateAttrs(c)extern NCURSES_EXPORT(void) _nc_UpdateAttrs (NCURSES_CH_T);#elseextern NCURSES_EXPORT(void) _nc_expanded (void);#endif#if !HAVE_GETCWD#define getcwd(buf,len) getwd(buf)#endif/* charable.c */#if USE_WIDEC_SUPPORTextern NCURSES_EXPORT(bool) _nc_is_charable(wchar_t);extern NCURSES_EXPORT(int) _nc_to_char(wint_t);extern NCURSES_EXPORT(wint_t) _nc_to_widechar(int);#endif/* doupdate.c */#if USE_XMC_SUPPORTextern NCURSES_EXPORT(void) _nc_do_xmc_glitch (attr_t);#endif/* hardscroll.c */#if defined(TRACE) || defined(SCROLLDEBUG) || defined(HASHDEBUG)extern NCURSES_EXPORT(void) _nc_linedump (void);#endif/* lib_acs.c */extern NCURSES_EXPORT(void) _nc_init_acs (void);	/* corresponds to traditional 'init_acs()' */extern NCURSES_EXPORT(int) _nc_msec_cost (const char *const, int);  /* used by 'tack' program *//* lib_addch.c */#if USE_WIDEC_SUPPORTNCURSES_EXPORT(int) _nc_build_wch(WINDOW *win, ARG_CH_T ch);#endif/* lib_addstr.c */#if USE_WIDEC_SUPPORT && !defined(USE_TERMLIB)extern NCURSES_EXPORT(int) _nc_wchstrlen(const cchar_t *);#endif/* lib_color.c */extern NCURSES_EXPORT(bool) _nc_reset_colors(void);/* lib_getch.c */extern NCURSES_EXPORT(int) _nc_wgetch(WINDOW *, unsigned long *, int EVENTLIST_2nd(_nc_eventlist *));/* lib_insch.c */extern NCURSES_EXPORT(int) _nc_insert_ch(WINDOW *, chtype);/* lib_mvcur.c */#define INFINITY	1000000	/* cost: too high to use */extern NCURSES_EXPORT(void) _nc_mvcur_init (void);extern NCURSES_EXPORT(void) _nc_mvcur_resume (void);extern NCURSES_EXPORT(void) _nc_mvcur_wrap (void);extern NCURSES_EXPORT(int) _nc_scrolln (int, int, int, int);extern NCURSES_EXPORT(void) _nc_screen_init (void);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);/* lib_mvcur.c */#define INFINITY	1000000	/* cost: too high to use */#define BAUDBYTE	9	/* 9 = 7 bits + 1 parity + 1 stop *//* 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_setupterm(NCURSES_CONST char *, int , int *, bool);/* lib_wacs.c */#if USE_WIDEC_SUPPORTextern NCURSES_EXPORT(void) _nc_init_wacs(void);#endiftypedef struct {    char *s_head;	/* beginning of the string (may be null) */    char *s_tail;	/* end of the string (may be null) */    size_t s_size;	/* current remaining size available */    size_t s_init;	/* total size available */} string_desc;/* strings.c */extern NCURSES_EXPORT(string_desc *) _nc_str_init (string_desc *, char *, size_t);extern NCURSES_EXPORT(string_desc *) _nc_str_null (string_desc *, size_t);extern NCURSES_EXPORT(string_desc *) _nc_str_copy (string_desc *, string_desc *);extern NCURSES_EXPORT(bool) _nc_safe_strcat (string_desc *, const char *);extern NCURSES_EXPORT(bool) _nc_safe_strcpy (string_desc *, const char *);#if !HAVE_STRSTR#define strstr _nc_strstrextern NCURSES_EXPORT(char *) _nc_strstr (const char *, const char *);#endif/* safe_sprintf.c */extern NCURSES_EXPORT(char *) _nc_printf_string (const char *, va_list);/* tries.c */extern NCURSES_EXPORT(void) _nc_add_to_try (struct tries **, const char *, unsigned short);extern NCURSES_EXPORT(char *) _nc_expand_try (struct tries *, unsigned short, int *, size_t);extern NCURSES_EXPORT(int) _nc_remove_key (struct tries **, unsigned short);extern NCURSES_EXPORT(int) _nc_remove_string (struct tries **, const char *);/* elsewhere ... */extern NCURSES_EXPORT(ENTRY *) _nc_delink_entry(ENTRY *, TERMTYPE *);extern NCURSES_EXPORT(WINDOW *) _nc_makenew (int, int, int, int, int);extern NCURSES_EXPORT(char *) _nc_home_terminfo (void);extern NCURSES_EXPORT(char *) _nc_trace_buf (int, size_t);extern NCURSES_EXPORT(char *) _nc_trace_bufcat (int, const char *);extern NCURSES_EXPORT(int) _nc_access (const char *, int);extern NCURSES_EXPORT(int) _nc_baudrate (int);extern NCURSES_EXPORT(int) _nc_freewin (WINDOW *);extern NCURSES_EXPORT(int) _nc_getenv_num (const char *);extern NCURSES_EXPORT(int) _nc_keypad (bool);extern NCURSES_EXPORT(int) _nc_ospeed (int);extern NCURSES_EXPORT(int) _nc_outch (int);extern NCURSES_EXPORT(int) _nc_setupscreen (short, short const, FILE *);extern NCURSES_EXPORT(int) _nc_timed_wait(int, int, int * EVENTLIST_2nd(_nc_eventlist *));extern NCURSES_EXPORT(void) _nc_do_color (int, int, bool, int (*)(int));extern NCURSES_EXPORT(void) _nc_flush (void);extern NCURSES_EXPORT(void) _nc_free_entry(ENTRY *, TERMTYPE *);extern NCURSES_EXPORT(void) _nc_freeall (void);extern NCURSES_EXPORT(void) _nc_hash_map (void);extern NCURSES_EXPORT(void) _nc_init_keytry (void);extern NCURSES_EXPORT(void) _nc_keep_tic_dir (const char *);extern NCURSES_EXPORT(void) _nc_make_oldhash (int i);extern NCURSES_EXPORT(void) _nc_scroll_oldhash (int n, int top, int bot);extern NCURSES_EXPORT(void) _nc_scroll_optimize (void);extern NCURSES_EXPORT(void) _nc_set_buffer (FILE *, bool);extern NCURSES_EXPORT(void) _nc_signal_handler (bool);extern NCURSES_EXPORT(void) _nc_synchook (WINDOW *);extern NCURSES_EXPORT(void) _nc_trace_tries (struct tries *);#if NO_LEAKSextern NCURSES_EXPORT(void) _nc_alloc_entry_leaks(void);extern NCURSES_EXPORT(void) _nc_captoinfo_leaks(void);extern NCURSES_EXPORT(void) _nc_comp_scan_leaks(void);#endif#ifndef USE_TERMLIBextern NCURSES_EXPORT(NCURSES_CH_T) _nc_render (WINDOW *, NCURSES_CH_T);extern NCURSES_EXPORT(int) _nc_waddch_nosync (WINDOW *, const NCURSES_CH_T);extern NCURSES_EXPORT(void) _nc_scroll_window (WINDOW *, int const, short const, short const, NCURSES_CH_T);#endif#if USE_WIDEC_SUPPORT && !defined(USE_TERMLIB)#ifdef linuxextern NCURSES_EXPORT(size_t) _nc_wcrtomb (char *, wchar_t, mbstate_t *);#else#define _nc_wcrtomb(s,wc,ps) wcrtomb(s,wc,ps)#endif#endif#if USE_SIZECHANGEextern NCURSES_EXPORT(void) _nc_update_screensize (void);#endif#if HAVE_RESIZETERMextern NCURSES_EXPORT(void) _nc_resize_margins (WINDOW *);#else#define _nc_resize_margins(wp) /* nothing */#endif#ifdef NCURSES_WGETCH_EVENTSextern NCURSES_EXPORT(int) _nc_eventlist_timeout(_nc_eventlist *);#else#define wgetch_events(win, evl) wgetch(win)#define wgetnstr_events(win, str, maxlen, evl) wgetnstr(win, str, maxlen)#endif/* * Not everyone has vsscanf(), but we'd like to use it for scanw(). */#if !HAVE_VSSCANFextern int vsscanf(const char *str, const char *format, va_list __arg);#endif/* scroll indices */extern NCURSES_EXPORT_VAR(int *) _nc_oldnums;#define USE_SETBUF_0 0#define NC_BUFFERED(flag) _nc_set_buffer(SP->_ofp, flag)#define NC_OUTPUT ((SP != 0) ? SP->_ofp : stdout)/* * On systems with a broken linker, define 'SP' as a function to force the * linker to pull in the data-only module with 'SP'. */#if BROKEN_LINKER#define SP _nc_screen()extern NCURSES_EXPORT(SCREEN *) _nc_screen (void);extern NCURSES_EXPORT(int) _nc_alloc_screen (void);extern NCURSES_EXPORT(void) _nc_set_screen (SCREEN *);#else/* current screen is private data; avoid possible linking conflicts too */extern NCURSES_EXPORT_VAR(SCREEN *) SP;#define _nc_alloc_screen() ((SP = typeCalloc(SCREEN, 1)) != 0)#define _nc_set_screen(sp) SP = sp#endif/* * We don't want to use the lines or columns capabilities internally, because * if the application is running multiple screens under X, it's quite possible * they could all have type xterm but have different sizes!  So... */#define screen_lines	SP->_lines#define screen_columns	SP->_columnsextern NCURSES_EXPORT_VAR(int) _nc_slk_format;  /* != 0 if slk_init() called */extern NCURSES_EXPORT(int) _nc_slk_initialize (WINDOW *, int);/* * Some constants related to SLK's */#define MAX_SKEY_OLD	   8	/* count of soft keys */#define MAX_SKEY_LEN_OLD   8	/* max length of soft key text */#define MAX_SKEY_PC       12    /* This is what most PC's have */#define MAX_SKEY_LEN_PC    5/* Macro to check whether or not we use a standard format */#define SLK_STDFMT(fmt) (fmt < 3)/* Macro to determine height of label window */#define SLK_LINES(fmt)  (SLK_STDFMT(fmt) ? 1 : ((fmt) - 2))#define MAX_SKEY(fmt)     (SLK_STDFMT(fmt)? MAX_SKEY_OLD : MAX_SKEY_PC)#define MAX_SKEY_LEN(fmt) (SLK_STDFMT(fmt)? MAX_SKEY_LEN_OLD : MAX_SKEY_LEN_PC)extern NCURSES_EXPORT(int) _nc_ripoffline (int line, int (*init)(WINDOW *,int));/* * Common error messages */#define MSG_NO_MEMORY "Out of memory"#define MSG_NO_INPUTS "Premature EOF"#ifdef __cplusplus}#endif#endif /* CURSES_PRIV_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -