tcmd: read until EOF if POLLIN and POLLERR are returned from poll() - neatvi - [fork] simple vi-type editor with UTF-8 support
 (HTM) git clone git://src.adamsgaard.dk/neatvi
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
       ---
 (DIR) commit 13b5534f46724cc6200c0aeb36800c5f3b33801e
 (DIR) parent 29b4fa028ebed5c2b2a9a7e13bce07ab2ae81587
 (HTM) Author: Ali Gholami Rudi <ali@rudi.ir>
       Date:   Wed, 13 Jan 2021 20:57:55 +0330
       
       cmd: read until EOF if POLLIN and POLLERR are returned from poll()
       
       Diffstat:
         M cmd.c                               |       4 +++-
       
       1 file changed, 3 insertions(+), 1 deletion(-)
       ---
 (DIR) diff --git a/cmd.c b/cmd.c
       t@@ -82,8 +82,9 @@ char *cmd_pipe(char *cmd, char *ibuf, int iproc, int oproc)
                                int ret = read(fds[0].fd, buf, sizeof(buf));
                                if (ret > 0)
                                        sbuf_mem(sb, buf, ret);
       -                        if (ret < 0)
       +                        if (ret <= 0)
                                        close(fds[0].fd);
       +                        continue;
                        }
                        if (fds[1].revents & POLLOUT) {
                                int ret = write(fds[1].fd, ibuf + nw, slen - nw);
       t@@ -91,6 +92,7 @@ char *cmd_pipe(char *cmd, char *ibuf, int iproc, int oproc)
                                        nw += ret;
                                if (ret <= 0 || nw == slen)
                                        close(fds[1].fd);
       +                        continue;
                        }
                        if (fds[2].revents & POLLIN) {
                                int ret = read(fds[2].fd, buf, sizeof(buf));