diff options
Diffstat (limited to 'libbb/gz_open.c')
-rw-r--r-- | libbb/gz_open.c | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/libbb/gz_open.c b/libbb/gz_open.c deleted file mode 100644 index dbaf3bb..0000000 --- a/libbb/gz_open.c +++ /dev/null @@ -1,58 +0,0 @@ -/* vi: set sw=4 ts=4: */ -/* - * Utility routines. - * - * Copyright (C) many different people. If you wrote this, please - * acknowledge your work. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ - -#include <sys/types.h> -#include <sys/wait.h> -#include <signal.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> -#include "libbb.h" - -extern FILE *gz_open(FILE *compressed_file, int *pid) -{ - int unzip_pipe[2]; - - if (pipe(unzip_pipe)!=0) { - error_msg("pipe error"); - return(NULL); - } - if ((*pid = fork()) == -1) { - error_msg("fork failed"); - return(NULL); - } - if (*pid==0) { - /* child process */ - close(unzip_pipe[0]); - unzip(compressed_file, fdopen(unzip_pipe[1], "w")); - fflush(NULL); - fclose(compressed_file); - close(unzip_pipe[1]); - exit(EXIT_SUCCESS); - } - close(unzip_pipe[1]); - if (unzip_pipe[0] == -1) { - error_msg("gzip stream init failed"); - } - return(fdopen(unzip_pipe[0], "r")); -} |