version 1.12, 2001/09/26 06:07:28 |
version 1.13, 2001/10/24 18:38:58 |
|
|
char *buf, *eofchars; |
char *buf, *eofchars; |
int fd; |
int fd; |
{ |
{ |
register int ct; |
int ct; |
char c, buffer[BUFSIZ]; |
char c, buffer[BUFSIZ]; |
char *p = buffer; |
char *p = buffer; |
register int cnt, eof; |
int cnt, eof; |
time_t start; |
time_t start; |
sig_t f; |
sig_t f; |
char r; |
char r; |
|
|
int cpid, pdes[2]; |
int cpid, pdes[2]; |
char buf[256]; |
char buf[256]; |
int status, p; |
int status, p; |
extern int errno; |
|
|
|
if (prompt("Local command? ", buf, sizeof(buf))) |
if (prompt("Local command? ", buf, sizeof(buf))) |
return; |
return; |
|
|
; |
; |
} |
} |
} else { |
} else { |
register int f; |
int f; |
|
|
dup2(pdes[0], 0); |
dup2(pdes[0], 0); |
close(pdes[0]); |
close(pdes[0]); |
|
|
while ((p = wait(&status)) > 0 && p != cpid) |
while ((p = wait(&status)) > 0 && p != cpid) |
; |
; |
} else { |
} else { |
register int i; |
int i; |
|
|
dup2(FD, 1); |
dup2(FD, 1); |
for (i = 3; i < 20; i++) |
for (i = 3; i < 20; i++) |
|
|
while ((p = wait(&status)) > 0 && p != cpid) |
while ((p = wait(&status)) > 0 && p != cpid) |
; |
; |
} else { |
} else { |
register int i; |
int i; |
|
|
dup2(FD, 0); |
dup2(FD, 0); |
dup2(3, 1); |
dup2(3, 1); |
|
|
chdirectory() |
chdirectory() |
{ |
{ |
char dirname[PATH_MAX]; |
char dirname[PATH_MAX]; |
register char *cp = dirname; |
char *cp = dirname; |
|
|
if (prompt("[cd] ", dirname, sizeof(dirname))) { |
if (prompt("[cd] ", dirname, sizeof(dirname))) { |
if (stoprompt) |
if (stoprompt) |
|
|
execute(s) |
execute(s) |
char *s; |
char *s; |
{ |
{ |
register char *cp; |
char *cp; |
|
|
if ((cp = strrchr(value(SHELL), '/')) == NULL) |
if ((cp = strrchr(value(SHELL), '/')) == NULL) |
cp = value(SHELL); |
cp = value(SHELL); |
|
|
char *buf, *a[]; |
char *buf, *a[]; |
int num; |
int num; |
{ |
{ |
register char *p = buf, *start; |
char *p = buf, *start; |
register char **parg = a; |
char **parg = a; |
register int n = 0; |
int n = 0; |
|
|
do { |
do { |
while (*p && (*p == ' ' || *p == '\t')) |
while (*p && (*p == ' ' || *p == '\t')) |
|
|
char *s; |
char *s; |
time_t a; |
time_t a; |
{ |
{ |
register int i; |
int i; |
int nums[3]; |
int nums[3]; |
|
|
for (i = 0; i < 3; i++) { |
for (i = 0; i < 3; i++) { |
|
|
{ |
{ |
static char xname[BUFSIZ]; |
static char xname[BUFSIZ]; |
char cmdbuf[BUFSIZ]; |
char cmdbuf[BUFSIZ]; |
register int pid, l; |
int pid, l; |
register char *cp, *Shell; |
char *cp, *Shell; |
int s, pivec[2]; |
int s, pivec[2]; |
|
|
if (!anyof(name, "~{[*?$`'\"\\")) |
if (!anyof(name, "~{[*?$`'\"\\")) |
|
|
*/ |
*/ |
int |
int |
anyof(s1, s2) |
anyof(s1, s2) |
register char *s1, *s2; |
char *s1, *s2; |
{ |
{ |
register int c; |
int c; |
|
|
while ((c = *s1++)) |
while ((c = *s1++)) |
if (any(c, s2)) |
if (any(c, s2)) |