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

📄 config.h

📁 Calc Software Package for Number Calc
💻 H
字号:
/* * config - configuration routines * * Copyright (C) 1999-2004  Landon Curt Noll and David I. Bell * * Primary author:  Landon Curt Noll * * Calc is open software; you can redistribute it and/or modify it under * the terms of the version 2.1 of the GNU Lesser General Public License * as published by the Free Software Foundation. * * Calc is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU Lesser General * Public License for more details. * * A copy of version 2.1 of the GNU Lesser General Public License is * distributed with calc under the filename COPYING-LGPL.  You should have * received a copy with calc; if not, write to Free Software Foundation, Inc. * 59 Temple Place, Suite 330, Boston, MA  02111-1307, USA. * * @(#) $Revision: 29.21 $ * @(#) $Id: config.h,v 29.21 2006/12/15 16:16:59 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/config.h,v $ * * Under source code control:	1995/11/01 22:20:17 * File existed as early as:	1995 * * chongo <was here> /\oo/\	http://www.isthe.com/chongo/ * Share and enjoy!  :-)	http://www.isthe.com/chongo/tech/comp/calc/ */#if !defined(__CONFIG_H__)#define __CONFIG_H__#if defined(CALC_SRC)	/* if we are building from the calc source tree */# include "win32dll.h"# include "nametype.h"# include "qmath.h"#else# include <calc/win32dll.h># include <calc/nametype.h># include <calc/qmath.h>#endif/* * configuration element types */#define CONFIG_ALL	0	/* not a real configuration parameter */#define CONFIG_MODE	1	/* types of configuration parameters */#define CONFIG_DISPLAY	2#define CONFIG_EPSILON	3#define CONFIG_EPSILONPREC 3	/* not a real type -- tied to CONFIG_EPSILON */#define CONFIG_TRACE	4#define CONFIG_MAXPRINT 5#define CONFIG_MUL2	6#define CONFIG_SQ2	7#define CONFIG_POW2	8#define CONFIG_REDC2	9#define CONFIG_TILDE	10#define CONFIG_TAB	11#define CONFIG_QUOMOD	12#define CONFIG_QUO	13#define CONFIG_MOD	14#define CONFIG_SQRT	15#define CONFIG_APPR	16#define CONFIG_CFAPPR	17#define CONFIG_CFSIM	18#define CONFIG_OUTROUND 19#define CONFIG_ROUND	20#define CONFIG_LEADZERO 21#define CONFIG_FULLZERO 22#define CONFIG_MAXSCAN	23#define CONFIG_PROMPT	24#define CONFIG_MORE	25#define CONFIG_BLKMAXPRINT 26#define CONFIG_BLKVERBOSE 27#define CONFIG_BLKBASE	28#define CONFIG_BLKFMT	29#define CONFIG_RESOURCE_DEBUG 30#define CONFIG_LIB_DEBUG CONFIG_RESOURCE_DEBUG#define CONFIG_CALC_DEBUG 31#define CONFIG_USER_DEBUG 32#define CONFIG_VERBOSE_QUIT 33#define CONFIG_CTRL_D	34#define CONFIG_PROGRAM	35#define CONFIG_BASENAME	36#define CONFIG_VERSION	37#define CONFIG_WINDOWS	38#define CONFIG_MODE2	39#define CONFIG_CYGWIN	40#define CONFIG_COMPILE_CUSTOM	41#define CONFIG_ALLOW_CUSTOM	42#define CONFIG_BASEB	43#define CONFIG_REDECL_WARN	44#define CONFIG_DUPVAR_WARN	45#define CONFIG_HZ	46/* * config default symbols */#define DISPLAY_DEFAULT 20	/* default digits for float display */#define EPSILON_DEFAULT "1e-20" /* allowed error for float calculations */#define EPSILONPREC_DEFAULT 67	/* 67 ==> 2^-67 <= EPSILON_DEFAULT < 2^-66 */#define MAXPRINT_DEFAULT 16	/* default number of elements printed */#define MAXSCANCOUNT 20		/* default max scan errors before an abort *//* * configuration object * * If you add elements to this structure, you need to also update: * *	quickhash.c	- config_hash() *	hash.c		- hash_value() *	config.c	- configs[], oldstd, newstd, setconfig(), *			  config_value(), config_cmp(), *			  and perhaps config_copy(), config_free() *	config.h	- CONFIG_XYZ_SYMBOL (see above) */struct config {	int outmode;		/* current output mode */	int outmode2;		/* current secondary output mode */	LEN outdigits;		/* current output digits for float or exp */	NUMBER *epsilon;	/* default error for real functions */	    long epsilonprec;	/* epsilon binary precision (tied to epsilon) */	FLAG traceflags;	/* tracing flags */	LEN maxprint;		/* number of elements to print */	LEN mul2;		/* size of number to use multiply algorithm 2 */	LEN sq2;		/* size of number to use square algorithm 2 */	LEN pow2;		/* size of modulus to use REDC for powers */	LEN redc2;		/* size of modulus to use REDC algorithm 2 */	BOOL tilde_ok;		/* ok to print a tilde on aproximations */	BOOL tab_ok;		/* ok to print tab before numeric values */	LEN quomod;		/* quomod() default rounding mode */	LEN quo;		/* quotient // default rounding mode */	LEN mod;		/* mod % default rounding mode */	LEN sqrt;		/* sqrt() default rounding mode */	LEN appr;		/* appr() default rounding mode */	LEN cfappr;		/* cfappr() default rounding mode */	LEN cfsim;		/* cfsim() default rounding mode */	LEN outround;		/* output default rounding mode */	LEN round;		/* round()/bround() default rounding mode */	BOOL leadzero;		/* ok to print leading 0 before decimal pt */	BOOL fullzero;		/* ok to print trailing 0's */	long maxscancount;	/* max scan errors before abort */	char *prompt1;		/* normal prompt */	char *prompt2;		/* prompt when inside multi-line input */	int blkmaxprint;	/* octets of a block to print, 0 => all */	BOOL blkverbose;	/* TRUE => print all lines if a block */	int blkbase;		/* block output base */	int blkfmt;		/* block output style */	long calc_debug;	/* internal debug, see CALC_DEBUG_XYZ below */	long resource_debug;	/* resource debug, see RSCDBG_XYZ below */	long user_debug;	/* user defined debug value: 0 default */	BOOL verbose_quit;	/* TRUE => print Quit or abort executed msg */	int ctrl_d;		/* see CTRL_D_xyz below */	char *program;		/* our name */	char *base_name;	/* basename of our name */	BOOL windows;		/* TRUE => running under MS windows */	BOOL cygwin;		/* TRUE => compiled with cygwin */	BOOL compile_custom;	/* TRUE => compiled with -DCUSTOM */	BOOL *allow_custom;	/* ptr to if custom functions are allowed */	char *version;		/* calc version string */	int baseb;		/* base for calculations */	BOOL redecl_warn;	/* TRUE => warn of redeclating variables */	BOOL dupvar_warn;	/* TRUE => warn of var name collisions */};typedef struct config CONFIG;/* * resource_debug bit masks */#define RSCDBG_STDIN_FUNC   (0x00000001)    /* interactive func define debug */#define RSCDBG_FILE_FUNC    (0x00000002)    /* file read func define debug */#define RSCDBG_FUNC_INFO    (0x00000004)    /* print extra info for show func */#define RSCDBG_PRINT_DBG    (0x00000008)    /* print debug messages */#define RSCDBG_MASK	    (0x0000000f)/* * calc_debug bit masks */#define CALCDBG_SYSTEM	    (0x00000001)    /* print system cmd prior to exec */#define CALCDBG_FUNC_QUIT   (0x00000002)    /* active functions when quit */#define CALCDBG_HASH_STATE  (0x00000004)    /* hash state details */#define CALCDBG_BLOCK	    (0x00000008)    /* block debug */#define CALCDBG_TTY	    (0x00000010)    /* report TTY state changes */#define CALCDBG_RUNSTATE    (0x00000020)    /* report run_state changes */#define CALCDBG_RAND	    (0x00000040)    /* report rand() activity */#define CALCDBG_MASK	    (0x0000007f)/* * ctrl-d meanings */#define CTRL_D_VIRGIN_EOF  (0)	/* ^D only exits on virgin command lines */#define CTRL_D_NEVER_EOF   (1)	/* ^D never exits, emacs binding meaning only */#define CTRL_D_EMPTY_EOF   (2)	/* ^D always exits at start of line *//* * global configuration states and aliases */extern DLL CONFIG *conf;	/* current configuration */extern DLL CONFIG oldstd;	/* old classic standard configuration */extern DLL CONFIG newstd;	/* default compatible configuration */extern DLL char *calc_debug;	/* !=NULL => value of config("calc_debug") */extern DLL char *resource_debug; /* !=NULL => config("resource_debug") value */extern DLL char *user_debug;	/* !=NULL => value of config("user_debug") *//* * configuration externals */extern DLL CONFIG *config_copy(CONFIG *src);extern DLL void config_free(CONFIG *cfg);extern DLL void config_print(CONFIG *cfg);extern DLL int configtype(char*);extern DLL void config_print(CONFIG*);extern DLL BOOL config_cmp(CONFIG*, CONFIG*);#endif /* !__CONFIG_H__ */

⌨️ 快捷键说明

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