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

📄 sc.h

📁 早期freebsd实现
💻 H
字号:
/*	SC	A Table Calculator *		Common definitions * *		original by James Gosling, September 1982 *		modified by Mark Weiser and Bruce Israel, *			University of Maryland *		R. Bond  12/86 *		More mods by Alan Silverstein, 3-4/88, see list of changes. *		$Revision: 6.8 $ * */#define	ATBL(tbl, row, col)	(*(tbl + row) + (col))#define MINROWS 40	/* minimum size at startup */#define MINCOLS 20#define	ABSMAXCOLS 702	/* absolute cols: ZZ (base 26) */#define RESCOL 4	/* columns reserved for row numbers */#define RESROW 3 /* rows reserved for prompt, error, and column numbers */#define DEFWIDTH 10	/* Default column width and precision */#define DEFPREC   2#define HISTLEN  10	/* Number of history entries for vi emulation */#define error (void)move(1,0), (void)clrtoeol(), (void) printw#define	FBUFLEN	1024	/* buffer size for a single field */#define	PATHLEN	1024	/* maximum path length */#ifndef A_CHARTEXT	/* Should be defined in curses.h */#ifdef INTERNATIONAL#define A_CHARTEXT 0xff#else#define A_CHARTEXT 0x7f#endif#endif#if (defined(BSD42) || defined(BSD43)) && !defined(strrchr)#define strrchr rindex#endifstruct ent_ptr {    int vf;    struct ent *vp;};struct range_s {	struct ent_ptr left, right;};/* * Some not too obvious things about the flags: *    is_valid means there is a valid number in v. *    label set means it points to a valid constant string. *    is_strexpr set means expr yields a string expression. *    If is_strexpr is not set, and expr points to an expression tree, the *        expression yields a numeric expression. *    So, either v or label can be set to a constant.  *        Either (but not both at the same time) can be set from an expression. */#define VALID_CELL(p, r, c) ((p = *ATBL(tbl, r, c)) && \			     ((p->flags & is_valid) || p->label))struct ent {    double v;    char *label;    struct enode *expr;    short flags;    short row, col;    struct ent *next;		/* next deleted ent */    struct ent *evnext;		/* next ent w/ a object to eval */    struct ent *evprev;		/* prev ent w/ a object to eval */};struct range {    struct ent_ptr r_left, r_right;    char *r_name;    struct range *r_next, *r_prev;    int r_is_range;};#define FIX_ROW 1#define FIX_COL 2struct enode {    int op;    union {	double k;	struct ent_ptr v;	struct range_s r;	char *s;	struct {	    struct enode *left, *right;	} o;    } e;};/* op values */#define O_VAR 'v'#define O_CONST 'k'#define O_SCONST '$'#define REDUCE 0200	/* Or'ed into OP if operand is a range */#define OP_BASE 256#define ACOS OP_BASE + 0#define ASIN OP_BASE + 1#define ATAN OP_BASE + 2#define CEIL OP_BASE + 3#define COS OP_BASE + 4#define EXP OP_BASE + 5 #define FABS OP_BASE + 6 #define FLOOR OP_BASE + 7#define HYPOT OP_BASE + 8#define LOG OP_BASE + 9#define LOG10 OP_BASE + 10#define POW OP_BASE + 11#define SIN OP_BASE + 12#define SQRT OP_BASE + 13#define TAN OP_BASE + 14#define DTR OP_BASE + 15#define RTD OP_BASE + 16#define MIN OP_BASE + 17#define MAX OP_BASE + 18#define RND OP_BASE + 19#define HOUR OP_BASE + 20#define MINUTE OP_BASE + 21#define SECOND OP_BASE + 22#define MONTH OP_BASE + 23#define DAY OP_BASE + 24#define YEAR OP_BASE + 25#define NOW OP_BASE + 26#define DATE OP_BASE + 27#define FMT OP_BASE + 28#define SUBSTR OP_BASE + 29#define STON OP_BASE + 30#define EQS OP_BASE + 31#define EXT OP_BASE + 32#define ELIST OP_BASE + 33	/* List of expressions */#define LMAX  OP_BASE + 34#define LMIN  OP_BASE + 35#define NVAL OP_BASE + 36#define SVAL OP_BASE + 37#define PV OP_BASE + 38#define FV OP_BASE + 39#define PMT OP_BASE + 40#define STINDEX OP_BASE + 41#define LOOKUP OP_BASE + 42#define ATAN2 OP_BASE + 43#define INDEX OP_BASE + 44#define DTS OP_BASE + 45#define TTS OP_BASE + 46#define ABS OP_BASE + 47 #define HLOOKUP OP_BASE + 48#define VLOOKUP OP_BASE + 49#define ROUND OP_BASE + 50#define IF OP_BASE + 51/* flag values */#define is_valid     0001#define is_changed   0002#define is_strexpr   0004#define is_leftflush 0010#define is_deleted   0020#define ctl(c) ((c)&037)#define ESC 033#define DEL 0177#define BYCOLS 1#define BYROWS 2#define BYGRAPH 4		/* Future */#define	TBL	1		/* tblprint style output for 'tbl' */#define	LATEX	2		/* tblprint style output for 'LaTeX' */#define	TEX	3		/* tblprint style output for 'TeX' *//* Types for etype() */#define NUM	1#define STR	2#define	GROWAMT	10	/* default minimum amount to grow */#define	GROWNEW		1	/* first time table */#define	GROWROW		2	/* add rows */#define	GROWCOL		3#define	GROWBOTH	4extern	struct ent ***tbl;extern	char curfile[];extern	int strow, stcol;extern	int currow, curcol;extern	int savedrow, savedcol;extern	int FullUpdate;extern	int maxrow, maxcol;extern	int maxrows, maxcols;	/* # cells currently allocated */extern	int *fwidth;extern	int *precision;extern	char *col_hidden;extern	char *row_hidden;extern	char line[FBUFLEN];extern	int linelim;extern	int changed;extern	struct ent *to_fix;extern	int showsc, showsr;extern	FILE *openout();extern	char *coltoa();extern	char *findhome();extern	char *r_name();extern	char *seval();extern	char *strrchr();extern	char *v_name();extern	char *xmalloc();extern	double dolookup();extern	double eval();extern	int RealEvalAll();extern	int are_ranges();extern	int atocol();extern	int constant();extern	int etype();extern	int fork();extern	int get_rcqual();extern	int growtbl();extern	int nmgetch();extern	int writefile();extern	int xfree();extern	int yn_ask();extern	struct enode *copye();extern	struct enode *new();extern	struct enode *new_const();extern	struct enode *new_range();extern	struct enode *new_str();extern	struct enode *new_var();extern	struct ent *lookat();extern	struct range *find_range();extern	void EvalAll();extern	void Evalall();extern	void RealEvalOne();extern	void backcol();extern	void backrow();extern	void checkbounds();extern	void clearent();extern	void closecol();extern	void closeout();extern	void closerow();extern	void colshow_op();extern	void colvalueize();extern	void colvalueize();extern	void copy();extern	void copyent();extern	void copyrtv();extern	void decompile();extern	void deletecol();extern	void deleterow();extern	void deraw();extern	void doend();extern	void doformat();extern	void dupcol();extern	void duprow();extern	void editexp();extern	void edits();extern	void editv();extern	void efree();extern	void erase_area();extern	void erasedb();extern	void eraser();extern	void fill();extern	void flush_saved();extern	void forwcol();extern	void forwrow();extern	void free_ent();extern	void go_last();extern	void goraw();extern	void help();extern	void hide_col();extern	void hide_row();extern	void hidecol();extern	void hiderow();extern	void index_arg();extern	void ins_string();extern	void insert_mode();extern	void insertcol();extern	void insertrow();extern	void kbd_again();extern	void label();extern	void let();extern	void list_arg();extern	void list_range();extern	void moveto();extern	void num_search();extern	void one_arg();extern	void opencol();extern	void openrow();extern	void printfile();extern	void pullcells();extern	void range_arg();extern	void readfile();extern	void repaint();extern	void resetkbd();extern	void rowshow_op();extern	void rowvalueize();extern	void setauto();extern	void setiterations();extern	void setorder();extern	void showcol();extern	void showdr();extern	void showrow();extern	void showstring();extern	void signals();extern	void slet();extern	void startshow();extern	void str_search();extern	void sync_refs();extern	void syncref();extern	void tblprintfile();extern	void three_arg();extern	void two_arg();extern	void two_arg_index();extern	void update();extern	void valueize_area();extern	void write_fd();extern	void write_line();extern	void yyerror();#ifdef DOBACKUPSextern	int backup_file();#endifextern	int modflg;extern	int Crypt;extern	char *mdir;extern	double prescale;extern	int extfunc;extern	int propagation;extern	int calc_order;extern	int autocalc;extern	int numeric;extern	int showcell;extern	int showtop;extern	int loading;extern	int getrcqual;extern	int tbl_style;extern	char *progname;#if BSD42 || SYSIII#ifndef cbreak#define	cbreak		crmode#define	nocbreak	nocrmode#endif#endif

⌨️ 快捷键说明

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