aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/lib.h1
-rw-r--r--lib/xwrap.c6
2 files changed, 7 insertions, 0 deletions
diff --git a/lib/lib.h b/lib/lib.h
index 5733103b..c111aeb0 100644
--- a/lib/lib.h
+++ b/lib/lib.h
@@ -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");