📄 tdestr.h
字号:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <conio.h>
#include <assert.h>
#if defined( __MSC__ )
#include <malloc.h> /* for memory allocation */
#if defined( toupper )
#undef toupper
#endif
#else
#include <alloc.h> /* for memory allocation */
#endif
/*
* defines for the inline assembler.
*/
#if defined( __MSC__ )
#define ASSEMBLE _asm
#else
#define ASSEMBLE asm
#endif
#define MAX_COLS 80 /* widest screen ever used */
#define MAX_LINES 24 /* highest screen ever used */
#define BUFF_SIZE 1042 /* buffer size for lines */
#define MAX_LINE_LENGTH 1040 /* longest line allowed in file */
#define FNAME_LENGTH 45 /* maximum file name length in lite bar */
#define NO_MARKERS 3 /* maximum no. of markers */
#define UNDO_STACK_LEN 200 /* number of lines in undo stack */
/*
* when we read in a file, lets try to match the size of the read buffer
* with some multiple of a hardware or software cache that may be present.
*/
#define READ_LENGTH 1024
#define DEFAULT_BIN_LENGTH 64
#define REGX_SIZE 200 /* maximum number of nodes in nfa */
/*
* general defines.
*/
#define ERROR (-1) /* abnormal termination */
#define OK 0 /* normal termination */
#define TRUE 1 /* logical true */
#define FALSE 0 /* logical false */
#define MAX_KEYS 256 /* number of special keys recognized by TDE */
#define MAX_TWO_KEYS 128 /* number of two key-combos allowed by TDE */
#define STROKE_LIMIT 1024 /* number of key strokes in playback buffer */
#define STACK_UNDERFLOW 1 /* code for underflowing macro stack */
#define STACK_OVERFLOW 2 /* code for overflowing macro stack */
#define SAS_P 20 /* number of sas pointers to tokens */
#define NUM_FUNCS 139
#define NUM_COLORS 14 /* number of color fields in TDE */
/*
* special cases for keyboard mapping - see bottom of main.c
*/
#define RTURN 262 /* Return key = 262 */
#define ESC 258 /* Escape key = 258 */
#define CONTROL_BREAK 269 /* Control-Break = 269 */
/*
* The following defines are used by the "error" function to indicate
* how serious the error is.
*/
#define WARNING 1 /* user must acknowledge, editor continues */
#define FATAL 2 /* editor aborts - very rare! */
#define INFO 3 /* display message, acknowledge, continue */
/*
* define the type of block marked by user and block actions
*/
#define NOTMARKED 0 /* block type undefined */
#define BOX 1 /* block marked by row and column */
#define LINE 2 /* block marked by begin and end lines */
#define STREAM 3 /* block marked by begin and end characters */
#define MOVE 1
#define DELETE 2
#define COPY 3
#define KOPY 4
#define FILL 5
#define OVERLAY 6
#define NUMBER 7
#define SWAP 8
#define LEFT 1
#define RIGHT 2
#define ASCENDING 1
#define DESCENDING 2
/*
* three types of ways to update windows
*/
#define LOCAL 1
#define NOT_LOCAL 2
#define GLOBAL 3
#define CURLINE 1
#define NOTCURLINE 2
/*
* search/replace flags.
*/
#define BOYER_MOORE 0
#define REG_EXPRESSION 1
#define CLR_SEARCH 0
#define WRAPPED 1
#define SEARCHING 2
#define REPLACING 3
#define NFA_GAVE_UP 4
#define IGNORE 1
#define MATCH 2
#define PROMPT 1
#define NOPROMPT 2
#define FORWARD 1
#define BACKWARD 2
#define BEGIN 1
#define END 2
#define BEGINNING 1
#define CURRENT 2
/*
* word wrap flag.
*/
#define NO_WRAP 0
#define FIXED_WRAP 1
#define DYNAMIC_WRAP 2
/*
* date and time formats
*/
#define MM_DD_YY 0
#define DD_MM_YY 1
#define YY_MM_DD 2
#define MM_DD_YYYY 3
#define DD_MM_YYYY 4
#define YYYY_MM_DD 5
#define _12_HOUR 0
#define _24_HOUR 1
/*
* used in interrupt 0x21 function xx for checking file status
*/
#define EXIST 0
#define WRITE 2
#define READ 4
#define READ_WRITE 6
#define NORMAL 0x00
#define READ_ONLY 0x01
#define HIDDEN 0x02
#define SYSTEM 0x04
#define VOLUME_LABEL 0x08
#define SUBDIRECTORY 0x10
#define ARCHIVE 0x20
/*
* critical error def's
*/
#define RETRY 1
#define ABORT 2
#define FAIL 3
/*
* flags used for opening files to write either in binary or text mode.
* crlf is for writing files in text mode - Operating System converts
* lf to crlf automatically on output. in binary mode, lf is not translated.
*/
#define NATIVE 1
#define CRLF 2
#define LF 3
#define BINARY 4
#define TEXT 5
#define OVERWRITE 1
#define APPEND 2
/*
* characters used in tdeasm.c to display eol and column pointer in ruler
*/
#define EOL_CHAR 0x11
#define RULER_PTR 0x19
#define RULER_FILL 0x2e
#define RULER_TICK 0x04
#define LM_CHAR 0xb4
#define RM_CHAR_RAG 0x3c
#define RM_CHAR_JUS 0xc3
#define PGR_CHAR 0x14
/*
* character used two separate vertical screens
*/
#define VERTICAL_CHAR 0xba
/*
* cursor size
*/
#define SMALL_INS 0
#define BIG_INS 1
/*
* possible answers to various questions - see get_yn, get_ynaq and get_oa
*/
#define A_YES 1
#define A_NO 2
#define A_ALWAYS 3
#define A_QUIT 4
#define A_ABORT 5
#define A_OVERWRITE 6
#define A_APPEND 7
/*
* The following defines specify which video attributes give desired
* effects on different display devices.
* REVERSE is supposed to be reverse video - a different background color,
* so that even a blank space can be identified.
* HIGH is supposed to quickly draw the user's eye to the relevant part of
* the screen, either for a message or for matched text in find/replace.
* NORMAL is supposed to be something pleasant to look at for the main
* body of the text.
*/
#define VIDEO_INT 0x10
#define HERC_REVERSE 0x70
#define HERC_UNDER 0x01
#define HERC_NORMAL 0x07
#define HERC_HIGH 0x0f
#define COLOR_HEAD 0x4b
#define COLOR_TEXT 0x07
#define COLOR_DIRTY 0x02
#define COLOR_MODE 0x17
#define COLOR_BLOCK 0x71
#define COLOR_MESSAGE 0x0f
#define COLOR_HELP 0x1a
#define COLOR_DIAG 0x0e
#define COLOR_EOF 0x09
#define COLOR_CURL 0x0f
#define COLOR_RULER 0x02
#define COLOR_POINTER 0x0a
#define COLOR_OVRS 0x00
#define COLOR_80 3
#define MONO_80 7
#define VGA 3
#define EGA 2
#define CGA 1
#define MDA 0
#define SAS_DELIMITERS " \n"
/*
* let's explicitly treat characters as unsigned.
*/
typedef unsigned char far * text_ptr;
/*
* "s_line_list" contains contains struct defs for a node of text.
*/
typedef struct s_line_list {
text_ptr line; /* pointer to line */
int len; /* length of line */
int dirty; /* boolean - dirty line indicator */
struct s_line_list far *next; /* next line in doubly linked list */
struct s_line_list far *prev; /* prev line in doubly linked list */
} line_list_struc;
typedef line_list_struc far *line_list_ptr;
struct vcfg {
int color;
int rescan;
int mode;
int far *videomem;
};
typedef struct {
char sig[8]; /* signature, so we can find struct in .exe */
int clr[2][NUM_COLORS]; /* one array for mono and another for color */
} COLORS;
/*
* structure for two key combos
*/
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;
/*
* structure used in directory list.
*/
typedef struct {
char fname[14]; /* file name */
long fsize; /* file size in bytes */
} FTYPE;
/*
* stuff we need to know about how to display a directory listing.
*/
typedef struct {
int row; /* absolute row to display dir box */
int col; /* absolute column to display dir box */
int wid; /* absolute number of columns in dir box */
int hgt; /* absolute number of rows in dir box */
int max_cols; /* number of columns of files in box */
int max_lines; /* number of lines of files in box */
int cnt; /* file count */
int cols; /* logical number of columns in list */
int lines; /* logical number of rows in list */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -