version 1.24, 2006/03/17 14:43:06 |
version 1.25, 2006/03/17 19:39:46 |
|
|
static void |
static void |
transfer(char *buf, int fd, char *eofchars) |
transfer(char *buf, int fd, char *eofchars) |
{ |
{ |
int ct; |
int ct, eof; |
char c, buffer[BUFSIZ]; |
char c, buffer[BUFSIZ]; |
char *p = buffer; |
char *p = buffer; |
int cnt, eof; |
size_t cnt; |
time_t start; |
time_t start; |
sig_t f; |
sig_t f; |
char r; |
char r; |
|
|
printf("\r%d", ++lcount); |
printf("\r%d", ++lcount); |
if (boolean(value(ECHOCHECK))) { |
if (boolean(value(ECHOCHECK))) { |
timedout = 0; |
timedout = 0; |
alarm((unsigned int)value(ETIMEOUT)); |
alarm((unsigned int)lvalue(ETIMEOUT)); |
do { /* wait for prompt */ |
do { /* wait for prompt */ |
read(FD, (char *)&c, 1); |
read(FD, (char *)&c, 1); |
if (timedout || stop) { |
if (timedout || stop) { |
|
|
} |
} |
tryagain: |
tryagain: |
timedout = 0; |
timedout = 0; |
alarm((long)value(ETIMEOUT)); |
alarm((unsigned int)lvalue(ETIMEOUT)); |
read(FD, &cc, 1); |
read(FD, &cc, 1); |
alarm(0); |
alarm(0); |
if (timedout) { |
if (timedout) { |
|
|
} |
} |
} |
} |
|
|
|
/*ARGSUSED*/ |
void |
void |
timeout(int signo) |
timeout(int signo) |
{ |
{ |
|
|
while ((p = wait(&status)) > 0 && p != cpid) |
while ((p = wait(&status)) > 0 && p != cpid) |
; |
; |
} else { |
} else { |
int i; |
|
|
|
dup2(FD, 0); |
dup2(FD, 0); |
dup2(3, 1); |
dup2(3, 1); |
closefrom(3); |
closefrom(3); |
|
|
setscript(void) |
setscript(void) |
{ |
{ |
char c; |
char c; |
|
|
/* |
/* |
* enable TIPOUT side for dialogue |
* enable TIPOUT side for dialogue |
*/ |
*/ |
|
|
tipabort(NOSTR); |
tipabort(NOSTR); |
} |
} |
|
|
|
/*ARGSUSED*/ |
static void |
static void |
intcopy(int signo) |
intcopy(int signo) |
{ |
{ |