mirror of
https://github.com/SEPPDROID/DR-DOS-OpenDOS.git
synced 2025-10-22 07:54:28 +00:00
169 lines
5.7 KiB
C
169 lines
5.7 KiB
C
/*
|
|
; File : $Workfile: GLOBAL.C$
|
|
;
|
|
; 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$
|
|
*/
|
|
|
|
/*
|
|
Date Comments
|
|
--------- ------------------------------------------------------------
|
|
21 Mar 88 Modify IN_PIPE and OUT_PIPE to be compatible with NOVELL 2.1
|
|
21 Sep 88 Change the default ECHO state to be ON.
|
|
*/
|
|
|
|
#include "defines.h"
|
|
#include <portab.h>
|
|
#include <command.h> /* Command Definitions */
|
|
/*.pa*/
|
|
/* General Purpose Variables */
|
|
GLOBAL BOOLEAN initflg = FALSE; /* Initial Load Flag */
|
|
GLOBAL WORD drive = 0; /* Current default Drive */
|
|
GLOBAL UWORD echoflg = ECHO_ON; /* Current Echo Status */
|
|
GLOBAL BOOLEAN crlfflg = FALSE; /* No CR/LF Required before prompt */
|
|
|
|
/* Batch File Processing Variables */
|
|
GLOBAL UWORD batchflg = 0; /* Currently processing Batch File */
|
|
|
|
/* FOR Sub-Command Variables */
|
|
GLOBAL BOOLEAN for_flag = NO; /* FOR Sub-command Active */
|
|
|
|
/* I/O Redirection Control */
|
|
GLOBAL WORD in_flag = NULL;
|
|
GLOBAL WORD out_flag = NULL;
|
|
GLOBAL UWORD in_handle = NULL;
|
|
GLOBAL UWORD out_handle = NULL;
|
|
|
|
/* Pipe Control Data */
|
|
GLOBAL BOOLEAN pipe_out = NO; /* Activate Pipe output */
|
|
GLOBAL BOOLEAN pipe_in = NO; /* Activate Pipe Input */
|
|
GLOBAL BOOLEAN preserve_pipe = NO;
|
|
|
|
/*
|
|
* The following two structures are patched by NOVELL Version 2.1
|
|
* to force the creation of the PIPE files in the current sub-directory
|
|
* rather than the root. The '/' is patched to a '.' by the NET3.COM
|
|
* program.
|
|
*/
|
|
|
|
GLOBAL BYTE out_pipe[64] = "_:/\0_______.___"; /* Output Pipe Name "x:\filename.ext" */
|
|
|
|
GLOBAL BYTE *old_pipe; /* old pipe file name */
|
|
|
|
|
|
GLOBAL BYTE pathchar[] = "\\"; /* The current path character. This */
|
|
/* can be accessed as a byte using */
|
|
/* "*pathchar" or as a string using */
|
|
/* "pathchar". */
|
|
#if defined(PASSWORD)
|
|
GLOBAL BYTE pwdchar[] = ";"; /* The Password delimiter. Which can*/
|
|
/* be accessed in the same way as */
|
|
/* pathchar. */
|
|
#endif
|
|
|
|
GLOBAL BYTE switchar[] = "/"; /* Switch Character */
|
|
|
|
GLOBAL BYTE dotdot[] = "..";
|
|
GLOBAL BYTE d_slash_stardotstar[] = "x:\\*.*";
|
|
|
|
GLOBAL BOOLEAN back_flag = FALSE; /* Execute a BackGround Task*/
|
|
GLOBAL BOOLEAN execed;
|
|
GLOBAL WORD page_len = 24; /* Screen Length */
|
|
GLOBAL WORD page_wid = 80; /* Screen Width */
|
|
|
|
GLOBAL BOOLEAN break_flag;
|
|
|
|
GLOBAL BOOLEAN err_flag;
|
|
GLOBAL UWORD err_ret;
|
|
|
|
GLOBAL WORD ddrive;
|
|
GLOBAL BYTE FAR *bufaddr; /* External Copy Buffer Address */
|
|
GLOBAL UWORD bufsize; /* External Copy Buffer Size */
|
|
|
|
GLOBAL INTERNAT country; /* country data structure */
|
|
|
|
#if defined(DOSPLUS)
|
|
GLOBAL BYTE *ftypes[] = { "com", "exe", "bat", NULL};
|
|
#else
|
|
GLOBAL BYTE *ftypes[] = { "cmd", "com", "exe", "bat", NULL};
|
|
#endif
|
|
|
|
/* This pointer is initialized by the Startup routine and */
|
|
/* would be defined there if I could persuade the compiler */
|
|
/* to reference it correctly. */
|
|
|
|
#if !defined(DOSPLUS)
|
|
#include <pd.h> /* PD Structure Declaration */
|
|
|
|
GLOBAL PD FAR * CDECL pd = (PD FAR *) 1234L; /* FAR pointer to our PD */
|
|
GLOBAL WORD CDECL sysdat_seg = 0; /* Segment address of SYSDAT */
|
|
#endif
|
|
|
|
GLOBAL BOOLEAN c_option = FALSE;
|
|
GLOBAL BOOLEAN k_option = FALSE;
|
|
GLOBAL BOOLEAN n_option = FALSE;
|
|
GLOBAL BOOLEAN allow_pexec = FALSE;
|
|
|
|
GLOBAL BYTE FAR *gp_far_buff = 0L;
|
|
GLOBAL BYTE FAR *show_file_buf = 0L;
|
|
|
|
GLOBAL UWORD FAR *parent_psp;
|
|
GLOBAL UWORD save_parent;
|
|
|
|
#define FCONTROL struct fcc
|
|
MLOCAL 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
|
|
GLOBAL 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 */
|
|
} FAR *batch, FAR *batch_save; /* Master Batch Control Stucture */
|
|
|
|
WORD global_link;
|
|
WORD global_strat;
|
|
WORD global_in_hiload = 0;
|
|
WORD hidden_umb[10];
|