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

📄 defs

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻
字号:
/*		@(#)defs	4.2	(ULTRIX)	10/16/90			      *//************************************************************************ *									* *			Copyright (c) 1986,1987,1988,1989 by		* *		Digital Equipment Corporation, Maynard, MA		* *			All rights reserved.				* *									* *   This software is furnished under a license and may be used and	* *   copied  only  in accordance with the terms of such license and	* *   with the  inclusion  of  the  above  copyright  notice.   This	* *   software  or  any  other copies thereof may not be provided or	* *   otherwise made available to any other person.  No title to and	* *   ownership of the software is hereby transferred.			* *									* *   This software is  derived  from  software  received  from  the	* *   University    of   California,   Berkeley,   and   from   Bell	* *   Laboratories.  Use, duplication, or disclosure is  subject  to	* *   restrictions  under  license  agreements  with  University  of	* *   California and with AT&T.						* *									* *   The information in this software is subject to change  without	* *   notice  and should not be construed as a commitment by Digital	* *   Equipment Corporation.						* *									* *   Digital assumes no responsibility for the use  or  reliability	* *   of its software on equipment which is not supplied by Digital.	* *									* ************************************************************************//*******************************************	Revision History**	20-Sep-90   Lee R. Miller**	made max args on exec 2047, fix for qar 5741**	14-Apr-89	Tim N*	Removed mips conditionals around MAXPATHLEN and includes for*	param.h dir.h and signal.h.  Removed sys_siglist[] which is*	not used.  Removed nopdir which is not used.  Removed EQ_*'s*	which are not used.  Removed mips conditionals around firstod.*	Added this comment block.  Added defines of POSIX_ON and SYSV_ON.*	These values are used to turn on global flag sysvmode, POSIX_ON*	acts just like SYSV except for special handling of SHELL and*	MAKESHELL macro values.********************************************/#include <stdio.h>#include <sys/types.h>#include <sys/param.h>#include <sys/dir.h>#include <signal.h>#include <limits.h>#ifndef MAXPATHLEN#define MAXPATHLEN	1023#endif MAXPATHLEN#define NEWLINE	'\n'#define CNULL	'\0'#define BLANK	' '#define TAB	'\t'#define DOT	'.'#define WIGGLE	'~'#define AT	'@'#define MINUS	'-'#define EQUALS	'='#define SLASH	'/'#define STAR	'*'#define LCURLY	'{'#define RCURLY	'}'#define LPAREN	'('#define RPAREN	')'#define LSQUAR	'['#define RSQUAR	']'#define QUESTN	'?'#define KOLON	':'#define SKOLON	';'#define DOLLAR	'$'#define GREATR	'>'#define POUND	'#'#define BACKSLASH	'\\'/* *	Flags */char *calloc_return;#define ALLOC(x) (((calloc_return = calloc(1,sizeof(struct x))) ? \		  (struct x *) calloc_return : \		  (struct x *) fatal("out of memory")))#define TURNON(a)	(Mflags |= (a))#define TURNOFF(a)	(Mflags &= (~(a)))#define IS_ON(a)	(Mflags&(a))#define IS_OFF(a)	(!(IS_ON(a)))#define DBUG	0000001		/* debug flag */#define ENVOVER	0000002		/* environ overides file defines */#define EXPORT	0000004		/* put current variable in environ */#define PRTR	0000010		/* set `-p' flag */#define SIL	0000020		/* set `-s' flag */#define NOEX	0000040		/* set `-n' flag */#define INTRULE	0000100		/* use internal rules */#define TOUCH	0000200		/* set `-t' flag */#define GET	0000400		/* do a $(GET) if file not found */#define QUEST	0001000		/* set `-q' flag */#define INARGS	0002000		/* currently reading cmd args */#define IGNERR	0004000		/* set `-i' flag */#define KEEPGO	0010000		/* set `-k' flag */#define GF_KEEP	0020000		/* keep auto get files */#define MH_DEP	0040000		/* use old question about whether cmd exists */#define MEMMAP	0100000		/* print memory map */#define SYSV_ON		1	/* turn on sysv mode of handling 'SHELL' */#define POSIX_ON	2	/* sysv mode with POSIX handling of 'SHELL' */typedef char *CHARSTAR;typedef int  *INTSTAR;typedef long int TIMETYPE;typedef struct gothead *GOTHEAD;typedef struct gotf *GOTF;typedef struct chain *CHAIN;typedef struct dirhdr *DIRHDR;typedef struct opendir *OPENDIR;typedef struct pattern *PATTERN;typedef struct varblock *VARBLOCK;typedef struct shblock *SHBLOCK;typedef struct depblock *DEPBLOCK;typedef struct lineblock *LINEBLOCK;typedef struct nameblock *NAMEBLOCK;extern CHARSTAR *environ;extern int Mflags;extern FILE *fin;extern CHARSTAR *linesptr;extern int sysvmode;/* *	flags for get() */#define CD	0#define NOCD	1#define max(a,b)	((a)>(b)?(a):(b))#define SHELLCOM	"/bin/sh"#ifdef unix/*  to install metering, add a statement like *//*******#define METERFILE "/usr/sif/make/Meter"******//* to turn metering on, set external variable meteron to 1 */#endif/* define FSTATIC to be static on systems with C compilers   supporting file-static; otherwise define it to be null*/#define FSTATIC static#define NO 0#define YES 1#define catstr(p,str)	{register char *ptr;\			 for(ptr=(str);*ptr;)*(p)++ = *ptr++;}#define equal(a,b)	(a[0] == b[0] ? !strcmp((a),(b)) : NO )#define any(a,b)	strchr( (a), (b) )#define HASHSIZE ((1<<13)-1)	/* must be 2**n -1  so that hashloc() works */#define NLEFTS 512#define INMAX 20480#define OUTMAX 20480#define MAXODIR	10#define MAXEXECARGS 2048		/* maximum size of argv on an exec */NAMEBLOCK hashtab[HASHSIZE+1];#define srchname(s)	((NAMEBLOCK) hashtab[hashloc(s)])#define ALLDEPS  1#define SOMEDEPS 2#define META 01#define TERMINAL 02extern char funny[128];extern int sigivalue;extern int sigqvalue;extern int waitpid;extern int ndocoms;extern int okdel;extern CHARSTAR prompt;extern char junkname[];extern char RELEASE[];struct nameblock{	NAMEBLOCK nextname;		/* pointer to next nameblock */	NAMEBLOCK backname;		/* pointer to predecessor */	CHARSTAR namep;		/* ASCII name string */	CHARSTAR alias;		/* ASCII alias (when namep translates to another				 * pathstring.				 */	LINEBLOCK linep; /* pointer to dependents */	int done:3;		/* flag used to tell when finished */	int septype:3;		/* distinguishes between single and double : */	int rundep:1;		/* flag indicating runtime translation done */	TIMETYPE modtime;	/* set by exists() */};extern NAMEBLOCK mainname ;extern NAMEBLOCK firstname;struct lineblock{	LINEBLOCK nextline;	DEPBLOCK depp;	SHBLOCK shp;};extern LINEBLOCK sufflist;struct depblock{	DEPBLOCK nextdep;	NAMEBLOCK depname;};struct shblock{	SHBLOCK nextsh;	CHARSTAR shbp;};struct varblock{	VARBLOCK nextvar;	CHARSTAR varname;	CHARSTAR varval;	int noreset:1;	int used:1;	int envflg:1;	int v_aflg:1;};extern VARBLOCK firstvar;struct pattern{	PATTERN nextpattern;	CHARSTAR patval;};extern PATTERN firstpat;struct	dirhdr{	DIRHDR nextdirhdr;	DIR * dirfc;	CHARSTAR dirn;};struct	opendir{	OPENDIR nextopendir;	DIR * dirfc;	CHARSTAR dirn;};extern DIRHDR firstdir;#define firstod ((OPENDIR)firstdir)struct chain{	CHAIN nextchain;	CHARSTAR datap;};/* *	The following two structures are used to cleanup after *	`make' does an automatic get of a file. See get() and *	cleanup(). */struct gotf			/* list of files */{	GOTF gnextp;	CHARSTAR gnamep;};struct gothead			/* first member of list of files */{	GOTF gnextp;	CHARSTAR gnamep;	GOTF endp;};extern char Nullstr[];extern CHARSTAR badptr;CHARSTAR copys();CHARSTAR copstr();CHARSTAR concat();CHARSTAR colontrans();CHARSTAR dftrans();CHARSTAR straightrans();CHARSTAR mkqlist();CHARSTAR findfl();CHARSTAR addstars();CHARSTAR strshift();INTSTAR  intalloc();VARBLOCK varptr();VARBLOCK srchvar();TIMETYPE prestime(), exists();DEPBLOCK srchdir();NAMEBLOCK makename();LINEBLOCK runtime();CHARSTAR strrchr();CHARSTAR strchr();CHARSTAR sdot();CHARSTAR trysccs();CHARSTAR calloc();

⌨️ 快捷键说明

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