From c292a3ae50bd0605b015f80266418e391c3c10fe Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Sat, 11 Nov 2000 19:50:27 +0000 Subject: Sven: 13108: Handle traps synchronously pws: 13109, 13111: clear up zle display when output produced in trap. --- Src/Modules/zftp.c | 20 ++++++++++---------- Src/Modules/zpty.c | 4 ++-- 2 files changed, 12 insertions(+), 12 deletions(-) (limited to 'Src/Modules') diff --git a/Src/Modules/zftp.c b/Src/Modules/zftp.c index e39994733..ef37dbdc7 100644 --- a/Src/Modules/zftp.c +++ b/Src/Modules/zftp.c @@ -801,7 +801,7 @@ zfgetline(char *ln, int lnsize, int tmout) cmdbuf[0] = (char)IAC; cmdbuf[1] = (char)DONT; cmdbuf[2] = ch; - write(zfsess->cfd, cmdbuf, 3); + ztrapwrite(zfsess->cfd, cmdbuf, 3); continue; case DO: @@ -811,7 +811,7 @@ zfgetline(char *ln, int lnsize, int tmout) cmdbuf[0] = (char)IAC; cmdbuf[1] = (char)WONT; cmdbuf[2] = ch; - write(zfsess->cfd, cmdbuf, 3); + ztrapwrite(zfsess->cfd, cmdbuf, 3); continue; case EOF: @@ -996,7 +996,7 @@ zfsendcmd(char *cmd) return 6; } zfalarm(tmout); - ret = write(zfsess->cfd, cmd, strlen(cmd)); + ret = ztrapwrite(zfsess->cfd, cmd, strlen(cmd)); alarm(0); if (ret <= 0) { @@ -1470,7 +1470,7 @@ zfread(int fd, char *bf, off_t sz, int tmout) int ret; if (!tmout) - return read(fd, bf, sz); + return ztrapread(fd, bf, sz); if (setjmp(zfalrmbuf)) { alarm(0); @@ -1479,7 +1479,7 @@ zfread(int fd, char *bf, off_t sz, int tmout) } zfalarm(tmout); - ret = read(fd, bf, sz); + ret = ztrapread(fd, bf, sz); /* we don't bother turning off the whole alarm mechanism here */ alarm(0); @@ -1495,7 +1495,7 @@ zfwrite(int fd, char *bf, off_t sz, int tmout) int ret; if (!tmout) - return write(fd, bf, sz); + return ztrapwrite(fd, bf, sz); if (setjmp(zfalrmbuf)) { alarm(0); @@ -1504,7 +1504,7 @@ zfwrite(int fd, char *bf, off_t sz, int tmout) } zfalarm(tmout); - ret = write(fd, bf, sz); + ret = ztrapwrite(fd, bf, sz); /* we don't bother turning off the whole alarm mechanism here */ alarm(0); @@ -2846,7 +2846,7 @@ zfclose(int leaveparams) if (!zfnopen) { /* Write the final status in case this is a subshell */ lseek(zfstatfd, zfsessno*sizeof(int), 0); - write(zfstatfd, zfstatusp+zfsessno, sizeof(int)); + ztrapwrite(zfstatfd, zfstatusp+zfsessno, sizeof(int)); close(zfstatfd); zfstatfd = -1; @@ -3123,7 +3123,7 @@ bin_zftp(char *name, char **args, char *ops, int func) /* Get the status in case it was set by a forked process */ int oldstatus = zfstatusp[zfsessno]; lseek(zfstatfd, 0, 0); - read(zfstatfd, zfstatusp, sizeof(int)*zfsesscnt); + ztrapread(zfstatfd, zfstatusp, sizeof(int)*zfsesscnt); if (zfsess->cfd != -1 && (zfstatusp[zfsessno] & ZFST_CLOS)) { /* got closed in subshell without us knowing */ zcfinish = 2; @@ -3212,7 +3212,7 @@ bin_zftp(char *name, char **args, char *ops, int func) * but only for the active session. */ lseek(zfstatfd, zfsessno*sizeof(int), 0); - write(zfstatfd, zfstatusp+zfsessno, sizeof(int)); + ztrapwrite(zfstatfd, zfstatusp+zfsessno, sizeof(int)); } return ret; } diff --git a/Src/Modules/zpty.c b/Src/Modules/zpty.c index d25c3a865..e76411a8b 100644 --- a/Src/Modules/zpty.c +++ b/Src/Modules/zpty.c @@ -536,7 +536,7 @@ ptywritestr(Ptycmd cmd, char *s, int len) for (; !errflag && !breaks && !retflag && !contflag && len; len -= written, s += written) { - if ((written = write(cmd->fd, s, len)) < 0 && cmd->nblock && + if ((written = ztrapwrite(cmd->fd, s, len)) < 0 && cmd->nblock && #ifdef EWOULDBLOCK errno == EWOULDBLOCK #else @@ -578,7 +578,7 @@ ptywrite(Ptycmd cmd, char **args, int nonl) int n; char buf[BUFSIZ]; - while ((n = read(0, buf, BUFSIZ)) > 0) + while ((n = ztrapread(0, buf, BUFSIZ)) > 0) if (ptywritestr(cmd, buf, n)) return 1; } -- cgit 1.4.1