diff options
Diffstat (limited to 'archival/libunarchive/open_transformer.c')
-rw-r--r-- | archival/libunarchive/open_transformer.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/archival/libunarchive/open_transformer.c b/archival/libunarchive/open_transformer.c index a5ee971..42fdd96 100644 --- a/archival/libunarchive/open_transformer.c +++ b/archival/libunarchive/open_transformer.c @@ -11,7 +11,7 @@ * On MMU machine, the transform_prog is removed by macro magic * in include/unarchive.h. On NOMMU, transformer is removed. */ -int FAST_FUNC open_transformer(int src_fd, +void FAST_FUNC open_transformer(int fd, USE_DESKTOP(long long) int FAST_FUNC (*transformer)(int src_fd, int dst_fd), const char *transform_prog) { @@ -32,20 +32,20 @@ int FAST_FUNC open_transformer(int src_fd, if (pid == 0) { /* child process */ - close(fd_pipe.rd); /* We don't want to read from the parent */ + close(fd_pipe.rd); /* we don't want to read from the parent */ // FIXME: error check? #if BB_MMU - transformer(src_fd, fd_pipe.wr); + transformer(fd, fd_pipe.wr); if (ENABLE_FEATURE_CLEAN_UP) { - close(fd_pipe.wr); /* Send EOF */ - close(src_fd); + close(fd_pipe.wr); /* send EOF */ + close(fd); } /* must be _exit! bug was actually seen here */ _exit(EXIT_SUCCESS); #else { char *argv[4]; - xmove_fd(src_fd, 0); + xmove_fd(fd, 0); xmove_fd(fd_pipe.wr, 1); argv[0] = (char*)transform_prog; argv[1] = (char*)"-cf"; @@ -59,9 +59,6 @@ int FAST_FUNC open_transformer(int src_fd, } /* parent process */ - close(fd_pipe.wr); /* Don't want to write to the child */ - -//TODO: get rid of return value (become void)? - xmove_fd(fd_pipe.rd, src_fd); - return src_fd; + close(fd_pipe.wr); /* don't want to write to the child */ + xmove_fd(fd_pipe.rd, fd); } |