diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/lib.h | 1 | ||||
-rw-r--r-- | lib/xwrap.c | 6 |
2 files changed, 7 insertions, 0 deletions
@@ -119,6 +119,7 @@ void xaccess(char *path, int flags); void xunlink(char *path); int xcreate(char *path, int flags, int mode); int xopen(char *path, int flags); +void xpipe(int pp); void xclose(int fd); int xdup(int fd); FILE *xfdopen(int fd, char *mode); diff --git a/lib/xwrap.c b/lib/xwrap.c index 65e3018d..76b0ff37 100644 --- a/lib/xwrap.c +++ b/lib/xwrap.c @@ -33,6 +33,7 @@ void xexit(void) if (toys.rebound) longjmp(*toys.rebound, 1); if (fflush(NULL) || ferror(stdout)) if (!toys.exitval) perror_msg("write"); + exit(toys.exitval); } @@ -309,6 +310,11 @@ int xopen(char *path, int flags) return xcreate(path, flags, 0); } +void xpipe(int pp) +{ + if (pipe(pp)) perror_exit("xpipe"); +} + void xclose(int fd) { if (close(fd)) perror_exit("xclose"); |