📄 curses.priv.h
字号:
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(int) _nc_retrace_int (int);extern NCURSES_EXPORT(unsigned) _nc_retrace_unsigned (unsigned);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 returnChar(code) return code#define returnCode(code) return code#define returnPtr(code) return code#define returnSP(code) return code#define returnVoid return#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 IGNORE_COLOR_OFF FALSE#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 (IGNORE_COLOR_OFF == TRUE) {\ if (PAIR_NUMBER(at) == 0xff) /* turn off color */\ (S) &= ~(at);\ else /* leave color alone */\ (S) &= ~((at)&ALL_BUT_COLOR);\ } else {\ if (PAIR_NUMBER(at) > 0x00) /* turn off color */\ (S) &= ~(at|A_COLOR);\ else /* leave color alone */\ (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(a) if (SP->_current_attr != (a)) { \ attr_t chg = SP->_current_attr; \ vidattr((a)); \ if (magic_cookie_glitch > 0 \ && XMC_CHANGES((chg ^ SP->_current_attr))) { \ T(("%s @%d before glitch %d,%d", \ __FILE__, __LINE__, \ SP->_cursrow, \ SP->_curscol)); \ _nc_do_xmc_glitch(chg); \ } \ }#else#define UpdateAttrs(a) if (SP->_current_attr != (a)) \ vidattr((a));#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 (chtype);#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_addstr.c */#if USE_WIDEC_SUPPORTextern 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(void) _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);/* 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 *);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);#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(NCURSES_CH_T) _nc_render (WINDOW *, NCURSES_CH_T);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(int) _nc_waddch_nosync (WINDOW *, const NCURSES_CH_T);extern NCURSES_EXPORT(void) _nc_do_color (int, int, bool, int (*)(int));extern NCURSES_EXPORT(void) _nc_flush (void);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_scroll_window (WINDOW *, int const, short const, short const, NCURSES_CH_T);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 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 + -