1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
|
#ifdef MSDOS
# include <icce.h>
# include <conio.h>
# include <process.h>
# include <direct.h>
# include <io.h>
# include <dos.h>
#else
# include <unistd.h>
#endif
#include <errno.h>
#include <malloc.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include "../icm.h"
#include "../rss/icrss.h"
extern char
nullstring [],
orgdir [],
*arghead,
*argtail,
*bimname,
*cmdhead,
version[],
release[],
*cmdtail;
extern void
(*procfun []) ARG ((void)),
(*builtinfun []) ARG ((void));
extern FILE
*infile;
extern BIN_HEADER_
*headerp;
extern int
echo,
retval;
extern UNS16
nvar,
bp,
sp;
extern unsigned
curoffs;
extern VAR_
reg,
*var,
*stack;
extern char
**addcmd ARG ((char **, char *)),
**execmd ARG ((char **, int)),
*getarg ARG ((int, int *)),
*getexecarg ARG ((int, int *)),
*setstring ARG ((char *));
extern int
getcmdlen ARG ((char **)),
inlist ARG ((VAR_, char *)),
istrue ARG ((void));
extern VAR_
addtolist ARG ((VAR_, char *)),
copylist ARG ((VAR_)),
delfromlist ARG ((VAR_, char *)),
discard ARG ((VAR_)),
envp2list ARG ((char **)),
*getdest ARG ((void)),
newvar ARG ((E_TYPE_)),
pop ARG ((void)),
sortlist ARG ((VAR_));
extern void
abnormal ARG ((int sig, int subcode)),
cleanup ARG ((void)),
compare ARG ((VAR_, VAR_)),
fun_jmp ARG ((void)),
fun_jmp_false ARG ((void)),
fun_jmp_true ARG ((void)),
fun_push_1_jmp_end ARG ((void)),
fun_push_0 ARG ((void)),
fun_push_imm ARG ((void)),
fun_push_strconst ARG ((void)),
fun_push_var ARG ((void)),
fun_push_reg ARG ((void)),
fun_pop_var ARG ((void)),
fun_umin ARG ((void)),
fun_atoi ARG ((void)),
fun_itoa ARG ((void)),
fun_atol ARG ((void)),
fun_mul ARG ((void)),
fun_div ARG ((void)),
fun_mod ARG ((void)),
fun_add ARG ((void)),
fun_sub ARG ((void)),
fun_eq ARG ((void)),
fun_neq ARG ((void)),
fun_sm ARG ((void)),
fun_gr ARG ((void)),
fun_younger ARG ((void)),
fun_older ARG ((void)),
fun_smeq ARG ((void)),
fun_greq ARG ((void)),
fun_call_rss ARG ((void)),
fun_asp ARG ((void)),
fun_exit ARG ((void)),
fun_band (void),
fun_bor (void),
fun_bnot (void),
fun_xor (void),
fun_shl (void),
fun_shr (void),
fun_arg_head ARG ((void)),
fun_arg_tail ARG ((void)),
fun_ascii_int (void),
fun_ascii_str (void),
fun_stat (void),
fun_putenv ARG ((void)),
fun_chdir ARG ((void)),
fun_cmd_tail ARG ((void)),
fun_c_base ARG ((void)),
fun_c_ext ARG ((void)),
fun_c_path ARG ((void)),
fun_fields ARG ((void)),
fun_fgets ARG ((void)),
fun_fprintf ARG ((void)),
fun_g_base ARG ((void)),
fun_getch ARG ((void)),
fun_getpid (void),
fun_gets ARG ((void)),
fun_g_ext ARG ((void)),
fun_g_path ARG ((void)),
fun_echo ARG ((void)),
fun_element ARG ((void)),
fun_exec ARG ((void)),
fun_exists ARG ((void)),
fun_makelist ARG ((void)),
fun_printf ARG ((void)),
fun_sizeoflist ARG ((void)),
fun_str_el ARG ((void)),
fun_copy_var ARG ((void)),
fun_system ARG ((void)),
fun_cmd_head ARG ((void)),
fun_inc ARG ((void)),
fun_dec ARG ((void)),
fun_call ARG ((void)),
fun_frame ARG ((void)),
fun_ret ARG ((void)),
fun_pop_reg ARG ((void)),
fun_empty ARG ((void)),
outstring ARG ((char *)),
process ARG ((void)),
push ARG ((VAR_));
|