summaryrefslogtreecommitdiff
path: root/archival/libunarchive/open_transformer.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-02-16 13:20:56 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-02-16 13:20:56 +0000
commit3718832a1542f7bf786a1678741b8566ad3a35c6 (patch)
treeac5851de53237fb3a0c77c9cead27acd279897f0 /archival/libunarchive/open_transformer.c
parent1e18f1bab3400246129756a35bb5752ba98f4c90 (diff)
downloadbusybox-w32-3718832a1542f7bf786a1678741b8566ad3a35c6.tar.gz
busybox-w32-3718832a1542f7bf786a1678741b8566ad3a35c6.tar.bz2
busybox-w32-3718832a1542f7bf786a1678741b8566ad3a35c6.zip
*: more readable handling of pipe fds. No code changes.
Diffstat (limited to 'archival/libunarchive/open_transformer.c')
-rw-r--r--archival/libunarchive/open_transformer.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/archival/libunarchive/open_transformer.c b/archival/libunarchive/open_transformer.c
index d6f5e6271..3c551de06 100644
--- a/archival/libunarchive/open_transformer.c
+++ b/archival/libunarchive/open_transformer.c
@@ -15,10 +15,10 @@ int open_transformer(int src_fd,
15 USE_DESKTOP(long long) int (*transformer)(int src_fd, int dst_fd), 15 USE_DESKTOP(long long) int (*transformer)(int src_fd, int dst_fd),
16 const char *transform_prog) 16 const char *transform_prog)
17{ 17{
18 int fd_pipe[2]; 18 struct fd_pair fd_pipe;
19 int pid; 19 int pid;
20 20
21 xpipe(fd_pipe); 21 xpiped_pair(fd_pipe);
22 22
23#if BB_MMU 23#if BB_MMU
24 pid = fork(); 24 pid = fork();
@@ -30,12 +30,12 @@ int open_transformer(int src_fd,
30 30
31 if (pid == 0) { 31 if (pid == 0) {
32 /* child process */ 32 /* child process */
33 close(fd_pipe[0]); /* We don't want to read from the parent */ 33 close(fd_pipe.rd); /* We don't want to read from the parent */
34 // FIXME: error check? 34 // FIXME: error check?
35#if BB_MMU 35#if BB_MMU
36 transformer(src_fd, fd_pipe[1]); 36 transformer(src_fd, fd_pipe.wr);
37 if (ENABLE_FEATURE_CLEAN_UP) { 37 if (ENABLE_FEATURE_CLEAN_UP) {
38 close(fd_pipe[1]); /* Send EOF */ 38 close(fd_pipe.wr); /* Send EOF */
39 close(src_fd); 39 close(src_fd);
40 } 40 }
41 exit(0); 41 exit(0);
@@ -43,7 +43,7 @@ int open_transformer(int src_fd,
43 { 43 {
44 char *argv[4]; 44 char *argv[4];
45 xmove_fd(src_fd, 0); 45 xmove_fd(src_fd, 0);
46 xmove_fd(fd_pipe[1], 1); 46 xmove_fd(fd_pipe.wr, 1);
47 argv[0] = (char*)transform_prog; 47 argv[0] = (char*)transform_prog;
48 argv[1] = (char*)"-cf"; 48 argv[1] = (char*)"-cf";
49 argv[2] = (char*)"-"; 49 argv[2] = (char*)"-";
@@ -56,7 +56,7 @@ int open_transformer(int src_fd,
56 } 56 }
57 57
58 /* parent process */ 58 /* parent process */
59 close(fd_pipe[1]); /* Don't want to write to the child */ 59 close(fd_pipe.wr); /* Don't want to write to the child */
60 60
61 return fd_pipe[0]; 61 return fd_pipe.rd;
62} 62}