www.pudn.com > drdossrc.zip > GLOBAL.H


/* 
;    File              : $Workfile$ 
; 
;    Description       : 
; 
;    Original Author   : DIGITAL RESEARCH 
; 
;    Last Edited By    : $CALDERA$ 
; 
;-----------------------------------------------------------------------; 
;    Copyright Work of Caldera, Inc. All Rights Reserved. 
;       
;    THIS WORK IS A COPYRIGHT WORK AND CONTAINS CONFIDENTIAL, 
;    PROPRIETARY AND TRADE SECRET INFORMATION OF CALDERA, INC. 
;    ACCESS TO THIS WORK IS RESTRICTED TO (I) CALDERA, INC. EMPLOYEES 
;    WHO HAVE A NEED TO KNOW TO PERFORM TASKS WITHIN THE SCOPE OF 
;    THEIR ASSIGNMENTS AND (II) ENTITIES OTHER THAN CALDERA, INC. WHO 
;    HAVE ACCEPTED THE CALDERA OPENDOS SOURCE LICENSE OR OTHER CALDERA LICENSE 
;    AGREEMENTS. EXCEPT UNDER THE EXPRESS TERMS OF THE CALDERA LICENSE 
;    AGREEMENT NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED, 
;    COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, 
;    CONDENSED, EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, 
;    TRANSFORMED OR ADAPTED WITHOUT THE PRIOR WRITTEN CONSENT OF 
;    CALDERA, INC. ANY USE OR EXPLOITATION OF THIS WORK WITHOUT 
;    AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO CRIMINAL AND 
;    CIVIL LIABILITY. 
;-----------------------------------------------------------------------; 
; 
;    *** Current Edit History *** 
;    *** End of Current Edit History *** 
; 
;    $Log$ 
; 
;    ENDLOG 
*/ 
 
EXTERN BOOLEAN	initflg;		/* Initial Load Flag		     */ 
EXTERN WORD	drive;			/* Current default Drive	     */ 
EXTERN UWORD	echoflg;		/* Current Echo Status		     */ 
EXTERN BOOLEAN	crlfflg;		/* CR/LF Required before prompt      */ 
 
/*	Batch File Processing Variables */ 
EXTERN UWORD	batchflg;		/* Currently processing Batch File   */ 
 
/*	FOR Sub-Command Variables	*/ 
EXTERN BOOLEAN	for_flag;		/* FOR Sub-command Active	*/ 
 
/*	I/O Redirection Control 	*/ 
EXTERN WORD	in_flag; 
EXTERN WORD	out_flag; 
EXTERN WORD	in_handle; 
EXTERN WORD	out_handle; 
 
/*	Pipe Control Data		*/ 
EXTERN BOOLEAN	pipe_out;		/* Activate Pipe output 	       */ 
EXTERN BOOLEAN	pipe_in;		/* Activate Pipe Input		       */ 
EXTERN BOOLEAN  preserve_pipe; 
EXTERN BYTE	out_pipe[];		/* Output Pipe Name "x:\filename.ext"  */ 
EXTERN BYTE	*old_pipe; 
 
EXTERN BYTE	pathchar[];		/* The current path character. This */ 
					/* can be accessed as a byte using  */ 
					/* "*pathchar" or as a string using */ 
					/* "pathchar".			    */ 
#if defined(PASSWORD) 
EXTERN BYTE	pwdchar[];		/* The Password delimiter. Which can*/ 
					/* be accessed in the same way as   */ 
					/* pathchar.			    */ 
#endif 
 
EXTERN BYTE	switchar[];		/* Switch Character		    */ 
 
EXTERN BYTE	dotdot[]; 
EXTERN BYTE	d_slash_stardotstar[]; 
 
EXTERN BOOLEAN	back_flag;		/* Execute a BackGround Task*/ 
EXTERN BOOLEAN	execed; 		/* were we execed from DOS? */ 
EXTERN WORD	page_len;		/* Screen Length	    */ 
EXTERN WORD	page_wid;		/* Screen Width 	    */ 
 
EXTERN BOOLEAN	break_flag; 
EXTERN BOOLEAN	err_flag; 
EXTERN UWORD	err_ret; 
 
EXTERN WORD	ddrive; 
EXTERN BYTE FAR	*bufaddr;		/* External Copy Buffer Address	*/ 
EXTERN UWORD	bufsize; 		/* External Copy Buffer Size	*/ 
 
EXTERN INTERNAT country;		/* country data structure	*/ 
#define	JAPAN		81		/* country.code for Japan       */ 
 
EXTERN BYTE	*ftypes[]; 
 
EXTERN BOOLEAN	c_option; 
EXTERN BOOLEAN	k_option; 
EXTERN BOOLEAN	n_option; 
EXTERN BOOLEAN	allow_pexec; 
 
EXTERN BYTE FAR *gp_far_buff; 
EXTERN BYTE FAR *show_file_buf; 
EXTERN UWORD FAR *parent_psp; 
EXTERN UWORD save_parent; 
 
#define FCONTROL struct fcc 
FCONTROL { 
	BOOLEAN  sflg;			/* FOR File Search Flag 	*/ 
	DTA	 search;		/* FOR Search structure 	*/ 
	BYTE	 *files;		/* FOR File list		*/ 
	BYTE	 *cmd;			/* FOR Command Line		*/ 
	BYTE	 forvar;		/* FOR variable char		*/ 
}; 
 
#define BCONTROL struct bcc 
BCONTROL { 
	BCONTROL FAR *bcontrol;		/* Previous Batch Control Structure  */ 
	BOOLEAN  eof;			/* End of File Flag		     */ 
	LONG	 offset;		/* Offset in BATCH file 	     */ 
	LONG	 ret_offset[4];		/* return offset from gosub          */ 
	BYTE	 *batcmd;		/* Batch File Input parameters	     */ 
	UWORD	 batshift;		/* Shift Offset 		     */ 
	BYTE	 batfile[MAX_PATHLEN];	/* Batch File Name		     */ 
	UWORD	 stream;		/* Stream for this Batch File	     */ 
	FCONTROL *fcontrol;		/* Pointer to previous FOR command   */ 
	BYTE	 *heap_start;		/* Heap pointer before extra bytes   */ 
	WORD	 heap_size;		/* are added to shift to segment     */ 
	BYTE     save_area[1];		/* boundary. - EJH		     */ 
};  
EXTERN BCONTROL FAR *batch; 
EXTERN BCONTROL FAR *batch_save; 
 
 
EXTERN	WORD	global_link; 
EXTERN	WORD	global_strat; 
EXTERN	WORD	global_in_hiload; 
EXTERN	WORD	hidden_umb[10]; 
 
/* 
 *	File type index's returned by the Concurrent DOS P_PATH function 
 *	and emulated in the findfile function. DOSPLUS does not search 
 *	for the ".CMD" and therefore uses a modified index. 
 * 
 */  
#if defined(DOSPLUS) || defined(NETWARE)  
#define COM_FILETYPE	0		/* MicroSoft .COM	*/ 
#define EXE_FILETYPE	1		/* MicroSoft .EXE	*/ 
#define BAT_FILETYPE	2		/* Batch File		*/ 
#else 
#define CMD_FILETYPE	0		/* Digital Reseach .CMD */ 
#define COM_FILETYPE	1		/* MicroSoft .COM	*/ 
#define EXE_FILETYPE	2		/* MicroSoft .EXE	*/ 
#define BAT_FILETYPE	3		/* Batch File		*/ 
#endif 
 
#define ERROR_EXIT	0x0200		/* Exit because of a Critical Error */ 
#define BREAK_EXIT	0x0100		/* Exit because of a Control-Break  */