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

📄 tdecfg.h

📁 该内容是《》一书的光盘内容
💻 H
字号:

#if defined( __MSC__ )
   #define  ASSEMBLE   _asm
#else
   #define  ASSEMBLE   asm
#endif


#define TRUE            1
#define FALSE           0

#define OK              0
#define ERROR           (-1)


#define MAX_KEYS        256
#define AVAIL_KEYS      233


#define MAX_TWO_KEYS    128   
#define STROKE_LIMIT    1024


#define NUM_FUNC        139

#define NUM_COLORS      14

#define NUM_MODES       23

/*
 * mode indexes
 */
#define Ins              0
#define Ind              1
#define PTAB             2
#define LTAB             3
#define Smart            4
#define Write_Z          5
#define Crlf             6
#define Trim             7
#define Eol              8
#define WW               9
#define Left            10
#define Para            11
#define Right           12
#define Size            13
#define Backup          14
#define Ruler           15
#define Date            16
#define Time            17
#define Initcase        18
#define InflateTabs     19
#define Match           20
#define Ignore          21
#define JustRM          22



#define EXIST           0

#define VIDEO_INT       0x10

#define VGA             3
#define EGA             2
#define CGA             1
#define MDA             0

#define NORMAL          7
#define COLOR_ATTR      31
#define MONO_ATTR       112


#define ESC             27
#define LEFT            (75 | 0x100)
#define RIGHT           (77 | 0x100)
#define UP              (72 | 0x100)
#define DOWN            (80 | 0x100)
#define RTURN           13
#define PGUP            (73 | 0x100)
#define PGDN            (81 | 0x100)
#define F1              (59 | 0x100)
#define F2              (60 | 0x100)
#define F3              (61 | 0x100)
#define F5              (63 | 0x100)
#define F6              (64 | 0x100)
#define F7              (65 | 0x100)
#define F8              (66 | 0x100)
#define F10             (68 | 0x100)


#define U_LEFT          218
#define U_RIGHT         191
#define VER_LINE        179
#define HOR_LINE        196
#define L_LEFT          192
#define L_RIGHT         217

#define SAVE            0
#define RESTORE         1



typedef struct win {
   int x;
   int y;
   int *buf;
   struct win *n;
} WINDOW;



struct screen {
   unsigned int   row;
   unsigned int   col;
   unsigned char *text;
};



struct vcfg {
   int color;
   int rescan;
   int mode;
   int overscan;
   int adapter;
   int attr;
   int far *videomem;
};


typedef struct {
   char sig[8];                 
   int  clr[2][NUM_COLORS];     
} COLORS;



typedef struct {
   int dply_col;        
   int dply_row;        
   int line_length;     
   int avail_lines;     
   int v_row;           
   int select;          
   int num_entries;     
   int ulft_col;        
   int ulft_row;        
   int total_col;       
   int total_row;       
} HELP_WINDOW;



typedef struct {
   char *key;           
   int  key_index;      
   unsigned char func_index;     
} KEY_DEFS;



typedef struct {
   char *key;           
   int  key_index;      
} CONFIG_DEFS;



typedef struct {
  int key;      
  int next;     
} STROKES;


typedef struct {
   char sig[8];                         
   int  first_stroke[MAX_KEYS];         
   STROKES strokes[STROKE_LIMIT];       
} MACRO;




typedef struct {
   char sig[8];                 
   int  color_scheme;           
   int  sync;                   
   int  sync_sem;               
   int  record;                 
   int  insert;                 
   int  indent;                 
   int  ptab_size;              
   int  ltab_size;              
   int  smart_tab;              
   int  inflate_tabs;           
   int  search_case;            
   int  enh_kbd;                
   int  cursor_size;            
   char *eof;                   
   int  control_z;              
   int  crlf;                   
   int  trailing;               
   int  show_eol;               
   int  word_wrap;              
   int  left_margin;            
   int  parg_margin;            
   int  right_margin;           
   int  right_justify;          
   int  format_sem;             
   int  undo_max;               
   int  do_backups;             
   int  ruler;                  
   int  date_style;             
   int  time_style;             
} MODE_INFO;


typedef struct {
   unsigned char ignore[256];
   unsigned char match[256];
} SORT_ORDER;



typedef struct {
   int parent_key;
   int child_key;
   int func;
} TWO_KEY_TYPE;


typedef struct {
   char sig[8];
   TWO_KEY_TYPE key[MAX_TWO_KEYS];
} TWO_KEY;


typedef struct {
   char sig[8];
   unsigned char key[MAX_KEYS];
} KEY_FUNC;



void main( int, char *[] );
void build_next_table( char *, char * );
int  find_offsets( char * );
void xygoto( int, int );
void video_config( void );
int  getkey( void );
void s_output( char far *, int, int, int );
void cls( void );
void hlight_line( int, int, int, int );
void c_off( void );
void c_on( void );
void scroll_window( int, int, int, int, int, int );
void cls( void );
void show_box( int, int, struct screen *, int );
void make_window( int, int, int, int, int );
void buf_box( int, int, int, int, int );
void clear_window( int, int, int, int );
void window_control( WINDOW **, int, int, int, int, int );
void save_window( int *, int, int, int, int );
void restore_window( int *, int, int, int, int );




void tdecolor( void );
void initialize_color( void );
void restore_overscan( int );
void show_init_sample( void );
void color_number( char *, int );
void current_color_number( char *, int );
void show_help_color( void );
void show_fileheader_color( void );
void show_text_color( void );
void show_curl_color( void );
void show_dirty_color( void );
void show_warning_color( void );
void show_mode_color( void );
void show_wrapped_color( void );
void show_overscan_color( void );
void show_eof_color( void );
void show_ruler_color( void );
void show_rulerptr_color( void );
void show_block_color( void );
void show_hilitedfile_color( void );
void change_colors( void );




void tdekeys( void );
void initialize_keys( void );
void show_key_def_list( HELP_WINDOW *, KEY_DEFS * );
void show_func_list( HELP_WINDOW *, char *[] );
void position_cursor( HELP_WINDOW *, int, int *, int *, int * );
void master_help( HELP_WINDOW *, KEY_DEFS *, struct screen *, char *, int * );
void new_assignment_help( HELP_WINDOW *, char *[], struct screen *, int * );
void save_and_draw( HELP_WINDOW *, struct screen *, WINDOW ** );




void tdehelp( void );




void tdemacro( void );




void tdemodes( void );
void initialize_modes( void );
void show_init_mode( void );
void show_insert_mode( void );
void show_indent_mode( void );
void show_smart_mode( void );
void show_ptabsize( void );
void show_ltabsize( void );
void show_controlz( void );
void show_eol_out( void );
void show_trail( void );
void show_eol_display( void );
void show_ww( void );
void show_left( void );
void show_para( void );
void show_right( void );
void show_cursor_size( void );
void show_backup_mode( void );
void show_ruler_mode( void );
void show_date_style( void );
void show_time_style( void );
void show_initcase( void );
void change_modes( void );




void tdecfgfile( void );
void parse_line( char * );
char *parse_token( char *, char * );
int  search( char *, CONFIG_DEFS [], int );
void parse_macro( int, char * );
int  parse_literal( int, char *, char *, char ** );
void initialize_macro( int );
void clear_previous_macro( int );
void check_macro( int );
int  record_keys( int, int );
void new_sort_order( unsigned char *, unsigned char * );
int  get_stroke_count( void );
int  getfunc( int );
void clear_previous_twokey( int );
int  insert_twokey( int, int, int );



#define   Help                        1
#define   Rturn                       2
#define   NextLine                    3
#define   BegNextLine                 4
#define   LineDown                    5
#define   LineUp                      6
#define   CharRight                   7
#define   CharLeft                    8
#define   PanRight                    9
#define   PanLeft                    10
#define   WordRight                  11
#define   WordLeft                   12
#define   ScreenDown                 13
#define   ScreenUp                   14
#define   EndOfFile                  15
#define   TopOfFile                  16
#define   BotOfScreen                17
#define   TopOfScreen                18
#define   EndOfLine                  19
#define   BegOfLine                  20
#define   JumpToLine                 21
#define   CenterWindow               22
#define   CenterLine                 23
#define   HorizontalScreenRight      24
#define   HorizontalScreenLeft       25
#define   ScrollDnLine               26
#define   ScrollUpLine               27
#define   PanUp                      28
#define   PanDn                      29
#define   ToggleOverWrite            30
#define   ToggleSmartTabs            31
#define   ToggleIndent               32
#define   ToggleWordWrap             33
#define   ToggleCRLF                 34
#define   ToggleTrailing             35
#define   ToggleZ                    36
#define   ToggleEol                  37
#define   ToggleSync                 38
#define   ToggleRuler                39
#define   ToggleTabInflate           40
#define   SetTabs                    41
#define   SetLeftMargin              42
#define   SetRightMargin             43
#define   SetParagraphMargin         44
#define   FormatParagraph            45
#define   FormatText                 46
#define   LeftJustify                47
#define   RightJustify               48
#define   CenterJustify              49
#define   Tab                        50
#define   BackTab                    51
#define   ParenBalance               52
#define   BackSpace                  53
#define   DeleteChar                 54
#define   StreamDeleteChar           55
#define   DeleteLine                 56
#define   DelEndOfLine               57
#define   WordDelete                 58
#define   AddLine                    59
#define   SplitLine                  60
#define   JoinLine                   61
#define   DuplicateLine              62
#define   AbortCommand               63
#define   UndoLine                   64
#define   UndoDelete                 65
#define   ToggleSearchCase           66
#define   FindForward                67
#define   FindBackward               68
#define   RepeatFindForward1         69
#define   RepeatFindForward2         70
#define   RepeatFindBackward1        71
#define   RepeatFindBackward2        72
#define   ReplaceString              73
#define   DefineDiff                 74
#define   RepeatDiff                 75
#define   MarkBox                    76
#define   MarkLine                   77
#define   MarkStream                 78
#define   UnMarkBlock                79
#define   FillBlock                  80
#define   NumberBlock                81
#define   CopyBlock                  82
#define   KopyBlock                  83
#define   MoveBlock                  84
#define   OverlayBlock               85
#define   DeleteBlock                86
#define   SwapBlock                  87
#define   BlockToFile                88
#define   PrintBlock                 89
#define   BlockExpandTabs            90
#define   BlockCompressTabs          91
#define   BlockIndentTabs            92
#define   BlockTrimTrailing          93
#define   BlockUpperCase             94
#define   BlockLowerCase             95
#define   BlockRot13                 96
#define   BlockFixUUE                97
#define   BlockEmailReply            98
#define   BlockStripHiBit            99
#define   SortBoxBlock              100
#define   DateTimeStamp             101
#define   EditFile                  102
#define   DirList                   103
#define   File                      104
#define   Save                      105
#define   SaveAs                    106
#define   SetFileAttributes         107
#define   EditNextFile              108
#define   DefineGrep                109
#define   RepeatGrep                110
#define   RedrawScreen              111
#define   SizeWindow                112
#define   SplitHorizontal           113
#define   SplitVertical             114
#define   NextWindow                115
#define   PreviousWindow            116
#define   ZoomWindow                117
#define   NextHiddenWindow          118
#define   SetMark1                  119
#define   SetMark2                  120
#define   SetMark3                  121
#define   GotoMark1                 122
#define   GotoMark2                 123
#define   GotoMark3                 124
#define   RecordMacro               125
#define   PlayBack                  126
#define   SaveMacro                 127
#define   LoadMacro                 128
#define   ClearAllMacros            129
#define   Pause                     130
#define   Quit                      131
#define   NextDirtyLine             132
#define   PrevDirtyLine             133
#define   FindRegX                  134
#define   RepeatFindRegX            135
#define   RepeatFindRegXBackward    136
#define   DefineRegXGrep            137

⌨️ 快捷键说明

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