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

📄 slang.h

📁 一个C格式的脚本处理函数库源代码,可让你的C程序具有执行C格式的脚本文件
💻 H
📖 第 1 页 / 共 5 页
字号:
extern SLang_Key_Type *SLang_do_key(SLKeyMap_List_Type *, int (*)(void));/* read a key using keymap p1 with getkey function p2 */extern     FVOID_STAR     SLang_find_key_function(char *, SLKeyMap_List_Type *);extern SLKeyMap_List_Type *SLang_find_keymap(char *);extern int SLang_Last_Key_Char;extern int SLang_Key_TimeOut_Flag;/*}}}*//*{{{ SLang Readline Interface */typedef struct SLang_Read_Line_Type{   struct SLang_Read_Line_Type *prev, *next;   unsigned char *buf;   int buf_len;			       /* number of chars in the buffer */   int num;			       /* num and misc are application specific*/   int misc;} SLang_Read_Line_Type;/* Maximum size of display */#define SLRL_DISPLAY_BUFFER_SIZE 256typedef struct{   SLang_Read_Line_Type *root, *tail, *last;   unsigned char *buf;		       /* edit buffer */   int buf_len;			       /* sizeof buffer */   int point;			       /* current editing point */   int tab;			       /* tab width */   int len;			       /* current line size */   /* display variables */   int edit_width;		       /* length of display field */   int curs_pos;			       /* current column */   int start_column;		       /* column offset of display */   int dhscroll;		       /* amount to use for horiz scroll */   char *prompt;   FVOID_STAR last_fun;		       /* last function executed by rl */   /* These two contain an image of what is on the display */   unsigned char upd_buf1[SLRL_DISPLAY_BUFFER_SIZE];   unsigned char upd_buf2[SLRL_DISPLAY_BUFFER_SIZE];   unsigned char *old_upd, *new_upd;   /* pointers to previous two buffers */   int new_upd_len, old_upd_len;       /* length of output buffers */   SLKeyMap_List_Type *keymap;   /* tty variables */   unsigned int flags;		       /*  */#define SL_RLINE_NO_ECHO	1#define SL_RLINE_USE_ANSI	2#define SL_RLINE_BLINK_MATCH	4   unsigned int (*getkey)(void);       /* getkey function -- required */   void (*tt_goto_column)(int);   void (*tt_insert)(char);   void (*update_hook)(unsigned char *, int, int);   /* The update hook is called with a pointer to a buffer p1 that contains    * an image of what the update hook is suppoed to produce.  The length    * of the buffer is p2 and after the update, the cursor is to be placed    * in column p3.    */   /* This function is only called when blinking matches */   int (*input_pending)(int);   unsigned long reserved[4];} SLang_RLine_Info_Type;extern int SLang_RL_EOF_Char;extern SLang_Read_Line_Type * SLang_rline_save_line (SLang_RLine_Info_Type *);extern int SLang_init_readline (SLang_RLine_Info_Type *);extern int SLang_read_line (SLang_RLine_Info_Type *);extern int SLang_rline_insert (char *);extern void SLrline_redraw (SLang_RLine_Info_Type *);extern int SLang_Rline_Quit;/*}}}*//*{{{ Low Level Screen Output Interface */extern unsigned long SLtt_Num_Chars_Output;extern int SLtt_Baud_Rate;typedef unsigned long SLtt_Char_Type;#define SLTT_BOLD_MASK	0x01000000UL#define SLTT_BLINK_MASK	0x02000000UL#define SLTT_ULINE_MASK	0x04000000UL#define SLTT_REV_MASK	0x08000000UL#define SLTT_ALTC_MASK  0x10000000ULextern int SLtt_Screen_Rows;extern int SLtt_Screen_Cols;extern int SLtt_Term_Cannot_Insert;extern int SLtt_Term_Cannot_Scroll;extern int SLtt_Use_Ansi_Colors;extern int SLtt_Ignore_Beep;#if defined(REAL_UNIX_SYSTEM)extern int SLtt_Force_Keypad_Init;extern int SLang_TT_Write_FD;#endif#ifndef IBMPC_SYSTEMextern char *SLtt_Graphics_Char_Pairs;#endif#ifndef __GO32__#if defined(VMS) || defined(REAL_UNIX_SYSTEM)extern int SLtt_Blink_Mode;extern int SLtt_Use_Blink_For_ACS;extern int SLtt_Newline_Ok;extern int SLtt_Has_Alt_Charset;extern int SLtt_Has_Status_Line;       /* if 0, NO.  If > 0, YES, IF -1, ?? */# ifndef VMSextern int SLtt_Try_Termcap;# endif#endif#endif#if defined(IBMPC_SYSTEM)extern int SLtt_Msdos_Cheap_Video;#endiftypedef unsigned short SLsmg_Char_Type;#define SLSMG_EXTRACT_CHAR(x) ((x) & 0xFF)#define SLSMG_EXTRACT_COLOR(x) (((x)>>8)&0xFF)#define SLSMG_BUILD_CHAR(ch,color) (((SLsmg_Char_Type)(unsigned char)(ch))|((color)<<8))extern int SLtt_flush_output (void);extern void SLtt_set_scroll_region(int, int);extern void SLtt_reset_scroll_region(void);extern void SLtt_reverse_video (int);extern void SLtt_bold_video (void);extern void SLtt_begin_insert(void);extern void SLtt_end_insert(void);extern void SLtt_del_eol(void);extern void SLtt_goto_rc (int, int);extern void SLtt_delete_nlines(int);extern void SLtt_delete_char(void);extern void SLtt_erase_line(void);extern void SLtt_normal_video(void);extern void SLtt_cls(void);extern void SLtt_beep(void);extern void SLtt_reverse_index(int);extern void SLtt_smart_puts(SLsmg_Char_Type *, SLsmg_Char_Type *, int, int);extern void SLtt_write_string (char *);extern void SLtt_putchar(char);extern int SLtt_init_video (void);extern int SLtt_reset_video (void);extern void SLtt_get_terminfo(void);extern void SLtt_get_screen_size (void);extern int SLtt_set_cursor_visibility (int);extern int SLtt_set_mouse_mode (int, int);#if defined(VMS) || defined(REAL_UNIX_SYSTEM)extern int SLtt_initialize (char *);extern void SLtt_enable_cursor_keys(void);extern void SLtt_set_term_vtxxx(int *);extern void SLtt_set_color_esc (int, char *);extern void SLtt_wide_width(void);extern void SLtt_narrow_width(void);extern void SLtt_set_alt_char_set (int);extern int SLtt_write_to_status_line (char *, int);extern void SLtt_disable_status_line (void);# ifdef REAL_UNIX_SYSTEM/* These are termcap/terminfo routines that assume SLtt_initialize has * been called. */extern char *SLtt_tgetstr (char *);extern int SLtt_tgetnum (char *);extern int SLtt_tgetflag (char *);/* The following are terminfo-only routines -- these prototypes will change * in V2.x. */extern char *SLtt_tigetent (char *);extern char *SLtt_tigetstr (char *, char **);extern int SLtt_tigetnum (char *, char **);# endif#endifextern SLtt_Char_Type SLtt_get_color_object (int);extern void SLtt_set_color_object (int, SLtt_Char_Type);extern void SLtt_set_color (int, char *, char *, char *);extern void SLtt_set_mono (int, char *, SLtt_Char_Type);extern void SLtt_add_color_attribute (int, SLtt_Char_Type);extern void SLtt_set_color_fgbg (int, SLtt_Char_Type, SLtt_Char_Type);/*}}}*//*{{{ SLang Preprocessor Interface */typedef struct{   int this_level;   int exec_level;   int prev_exec_level;   char preprocess_char;   char comment_char;   unsigned char flags;#define SLPREP_BLANK_LINES_OK	1#define SLPREP_COMMENT_LINES_OK	2#define SLPREP_STOP_READING	4#define SLPREP_EMBEDDED_TEXT	8}SLPreprocess_Type;extern int SLprep_open_prep (SLPreprocess_Type *);extern void SLprep_close_prep (SLPreprocess_Type *);extern int SLprep_line_ok (char *, SLPreprocess_Type *);   extern int SLdefine_for_ifdef (char *);   /* Adds a string to the SLang #ifdef preparsing defines. SLang already      defines MSDOS, UNIX, and VMS on the appropriate system. */extern int (*SLprep_exists_hook) (char *, char);/*}}}*//*{{{ SLsmg Screen Management Functions */extern void SLsmg_fill_region (int, int, unsigned int, unsigned int, unsigned char);extern void SLsmg_set_char_set (int);#ifndef IBMPC_SYSTEMextern int SLsmg_Scroll_Hash_Border;#endifextern int SLsmg_suspend_smg (void);extern int SLsmg_resume_smg (void);extern void SLsmg_erase_eol (void);extern void SLsmg_gotorc (int, int);extern void SLsmg_erase_eos (void);extern void SLsmg_reverse_video (void);extern void SLsmg_set_color (int);extern void SLsmg_normal_video (void);extern void SLsmg_printf (char *, ...) _SLATTRIBUTE_PRINTF(1,2);/* extern void SLsmg_printf (char *, ...) _SLATTRIBUTE_PRINTF(1,2); */extern void SLsmg_vprintf (char *, va_list);extern void SLsmg_write_string (char *);extern void SLsmg_write_nstring (char *, unsigned int);extern void SLsmg_write_char (char);extern void SLsmg_write_nchars (char *, unsigned int);extern void SLsmg_write_wrapped_string (char *, int, int, unsigned int, unsigned int, int);extern void SLsmg_cls (void);extern void SLsmg_refresh (void);extern void SLsmg_touch_lines (int, unsigned int);extern void SLsmg_touch_screen (void);extern int SLsmg_init_smg (void);extern int SLsmg_reinit_smg (void);extern void SLsmg_reset_smg (void);extern SLsmg_Char_Type SLsmg_char_at(void);extern void SLsmg_set_screen_start (int *, int *);extern void SLsmg_draw_hline (unsigned int);extern void SLsmg_draw_vline (int);extern void SLsmg_draw_object (int, int, unsigned char);extern void SLsmg_draw_box (int, int, unsigned int, unsigned int);extern int SLsmg_get_column(void);extern int SLsmg_get_row(void);extern void SLsmg_forward (int);extern void SLsmg_write_color_chars (SLsmg_Char_Type *, unsigned int);extern unsigned int SLsmg_read_raw (SLsmg_Char_Type *, unsigned int);extern unsigned int SLsmg_write_raw (SLsmg_Char_Type *, unsigned int);extern void SLsmg_set_color_in_region (int, int, int, unsigned int, unsigned int);extern int SLsmg_Display_Eight_Bit;extern int SLsmg_Tab_Width;#define SLSMG_NEWLINE_IGNORED	0      /* default */#define SLSMG_NEWLINE_MOVES	1      /* moves to next line, column 0 */#define SLSMG_NEWLINE_SCROLLS	2      /* moves but scrolls at bottom of screen */#define SLSMG_NEWLINE_PRINTABLE	3      /* prints as ^J */extern int SLsmg_Newline_Behavior;extern int SLsmg_Backspace_Moves;#ifdef IBMPC_SYSTEM# define SLSMG_HLINE_CHAR	0xC4# define SLSMG_VLINE_CHAR	0xB3# define SLSMG_ULCORN_CHAR	0xDA# define SLSMG_URCORN_CHAR	0xBF# define SLSMG_LLCORN_CHAR	0xC0# define SLSMG_LRCORN_CHAR	0xD9# define SLSMG_RTEE_CHAR	0xB4# define SLSMG_LTEE_CHAR	0xC3# define SLSMG_UTEE_CHAR	0xC2# define SLSMG_DTEE_CHAR	0xC1# define SLSMG_PLUS_CHAR	0xC5/* There are several to choose from: 0xB0, 0xB1, and 0xB2 */# define SLSMG_CKBRD_CHAR	0xB0# define SLSMG_DIAMOND_CHAR	0x04# define SLSMG_DEGREE_CHAR	0xF8# define SLSMG_PLMINUS_CHAR	0xF1# define SLSMG_BULLET_CHAR	0xF9# define SLSMG_LARROW_CHAR	0x1B# define SLSMG_RARROW_CHAR	0x1A# define SLSMG_DARROW_CHAR	0x19# define SLSMG_UARROW_CHAR	0x18# define SLSMG_BOARD_CHAR	0xB2# define SLSMG_BLOCK_CHAR	0xDB#else# if defined(AMIGA)#  define SLSMG_HLINE_CHAR	'-'#  define SLSMG_VLINE_CHAR	'|'#  define SLSMG_ULCORN_CHAR	'+'#  define SLSMG_URCORN_CHAR	'+'#  define SLSMG_LLCORN_CHAR	'+'#  define SLSMG_LRCORN_CHAR	'+'#  define SLSMG_CKBRD_CHAR	'#'#  define SLSMG_RTEE_CHAR	'+'#  define SLSMG_LTEE_CHAR	'+'#  define SLSMG_UTEE_CHAR	'+'#  define SLSMG_DTEE_CHAR	'+'#  define SLSMG_PLUS_CHAR	'+'#  define SLSMG_DIAMOND_CHAR	'+'#  define SLSMG_DEGREE_CHAR	'\\'#  define SLSMG_PLMINUS_CHAR	'#'#  define SLSMG_BULLET_CHAR	'o'#  define SLSMG_LARROW_CHAR	'<'#  define SLSMG_RARROW_CHAR	'>'#  define SLSMG_DARROW_CHAR	'v'#  define SLSMG_UARROW_CHAR	'^'#  define SLSMG_BOARD_CHAR	'#'#  define SLSMG_BLOCK_CHAR	'#'# else#  define SLSMG_HLINE_CHAR	'q'#  define SLSMG_VLINE_CHAR	'x'#  define SLSMG_ULCORN_CHAR	'l'#  define SLSMG_URCORN_CHAR	'k'#  define SLSMG_LLCORN_CHAR	'm'#  define SLSMG_LRCORN_CHAR	'j'#  define SLSMG_CKBRD_CHAR	'a'#  define SLSMG_RTEE_CHAR	'u'#  define SLSMG_LTEE_CHAR	't'#  define SLSMG_UTEE_CHAR	'w'#  define SLSMG_DTEE_CHAR	'v'#  define SLSMG_PLUS_CHAR	'n'#  define SLSMG_DIAMOND_CHAR	'`'#  define SLSMG_DEGREE_CHAR	'f'#  define SLSMG_PLMINUS_CHAR	'g'#  define SLSMG_BULLET_CHAR	'~'#  define SLSMG_LARROW_CHAR	','#  define SLSMG_RARROW_CHAR	'+'#  define SLSMG_DARROW_CHAR	'.'#  define SLSMG_UARROW_CHAR	'-'#  define SLSMG_BOARD_CHAR	'h'#  define SLSMG_BLOCK_CHAR	'0'# endif				       /* AMIGA */#endif				       /* IBMPC_SYSTEM */#ifndef IBMPC_SYSTEM# define SLSMG_COLOR_BLACK		0x000000# define SLSMG_COLOR_RED		0x000001# define SLSMG_COLOR_GREEN		0x000002# define SLSMG_COLOR_BROWN		0x000003# define SLSMG_COLOR_BLUE		0x000004# define SLSMG_COLOR_MAGENTA		0x000005# define SLSMG_COLOR_CYAN		0x000006# define SLSMG_COLOR_LGRAY		0x000007# define SLSMG_COLOR_GRAY		0x000008# define SLSMG_COLOR_BRIGHT_RED		0x000009# define SLSMG_COLOR_BRIGHT_GREEN	0x00000A# define SLSMG_COLOR_BRIGHT_BROWN	0x00000B# define SLSMG_COLOR_BRIGHT_BLUE	0x00000C# define SLSMG_COLOR_BRIGHT_CYAN	0x00000D# define SLSMG_COLOR_BRIGHT_MAGENTA	0x00000E# define SLSMG_COLOR_BRIGHT_WHITE	0x00000F#endiftypedef struct{   void (*tt_normal_video)(void);   void (*tt_set_scroll_region)(int, int);   void (*tt_goto_rc)(int, int);   void (*tt_reverse_index)(int);   void (*tt_reset_scroll_region)(void);   void (*tt_delete_nlines)(int);   void (*tt_cls) (void);   void (*tt_del_eol) (void);   void (*tt_smart_puts) (SLsmg_Char_Type *, SLsmg_Char_Type *, int, int);   int (*tt_flush_output) (void);   int (*tt_reset_video) (void);   int (*tt_init_video) (void);   int *tt_screen_rows;   int *tt_screen_cols;   int *tt_term_cannot_scroll;   int *tt_has_alt_charset;   int *tt_use_blink_for_acs;   char **tt_graphic_char_pairs;   long reserved[4];

⌨️ 快捷键说明

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