mirror of
https://github.com/sheumann/hush.git
synced 2024-12-22 14:30:31 +00:00
bzcat and bunzip -c support from Thomas Lundquist
This commit is contained in:
parent
fedce06b7f
commit
fff11f1ab7
@ -1,4 +1,5 @@
|
|||||||
/* Modified for busybox by Glenn McGrath <bug1@optushome.com.au> */
|
/* Modified for busybox by Glenn McGrath <bug1@optushome.com.au> */
|
||||||
|
/* Added support output to stdout by Thomas Lundquist <thomasez@zelow.no> */
|
||||||
/*--
|
/*--
|
||||||
This file is a part of bzip2 and/or libbzip2, a program and
|
This file is a part of bzip2 and/or libbzip2, a program and
|
||||||
library for lossless, block-sorting data compression.
|
library for lossless, block-sorting data compression.
|
||||||
@ -56,6 +57,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <getopt.h>
|
||||||
#include <busybox.h>
|
#include <busybox.h>
|
||||||
|
|
||||||
//#define TRUE 1
|
//#define TRUE 1
|
||||||
@ -2316,15 +2318,38 @@ errhandler_io:
|
|||||||
|
|
||||||
int bunzip2_main(int argc, char **argv)
|
int bunzip2_main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
const int bunzip_to_stdout = 1;
|
||||||
|
int flags = 0;
|
||||||
|
int opt = 0;
|
||||||
|
|
||||||
FILE *src_stream;
|
FILE *src_stream;
|
||||||
FILE *dst_stream;
|
FILE *dst_stream;
|
||||||
char *save_name;
|
char *save_name;
|
||||||
char *save_name_ptr;
|
char *save_name_ptr;
|
||||||
if (argc != 2) {
|
|
||||||
|
/* if called as bzcat */
|
||||||
|
if (strcmp(applet_name, "bzcat") == 0)
|
||||||
|
flags |= bunzip_to_stdout;
|
||||||
|
|
||||||
|
while ((opt = getopt(argc, argv, "ch")) != -1) {
|
||||||
|
switch (opt) {
|
||||||
|
case 'c':
|
||||||
|
flags |= bunzip_to_stdout;
|
||||||
|
break;
|
||||||
|
case 'h':
|
||||||
|
default:
|
||||||
|
show_usage(); /* exit's inside usage */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
save_name = xstrdup(argv[optind]);
|
||||||
|
|
||||||
|
if (save_name == NULL) {
|
||||||
show_usage();
|
show_usage();
|
||||||
}
|
}
|
||||||
src_stream = xfopen(argv[1], "r");
|
|
||||||
save_name = xstrdup(argv[1]);
|
src_stream = xfopen(argv[optind], "r");
|
||||||
|
|
||||||
save_name_ptr = strrchr(save_name, '.');
|
save_name_ptr = strrchr(save_name, '.');
|
||||||
if (save_name_ptr == NULL) {
|
if (save_name_ptr == NULL) {
|
||||||
return(FALSE);
|
return(FALSE);
|
||||||
@ -2333,7 +2358,12 @@ int bunzip2_main(int argc, char **argv)
|
|||||||
error_msg("Invalid extension, expected .bz2");
|
error_msg("Invalid extension, expected .bz2");
|
||||||
}
|
}
|
||||||
*save_name_ptr = '\0';
|
*save_name_ptr = '\0';
|
||||||
dst_stream = xfopen(save_name, "w");
|
|
||||||
|
if (flags & bunzip_to_stdout) {
|
||||||
|
dst_stream = stdout;
|
||||||
|
} else {
|
||||||
|
dst_stream = xfopen(save_name, "w");
|
||||||
|
}
|
||||||
uncompressStream(src_stream, dst_stream);
|
uncompressStream(src_stream, dst_stream);
|
||||||
|
|
||||||
return(TRUE);
|
return(TRUE);
|
||||||
|
@ -68,6 +68,9 @@
|
|||||||
APPLET(bunzip2, bunzip2_main, _BB_DIR_USR_BIN)
|
APPLET(bunzip2, bunzip2_main, _BB_DIR_USR_BIN)
|
||||||
#endif
|
#endif
|
||||||
APPLET_NOUSAGE("busybox", busybox_main, _BB_DIR_BIN)
|
APPLET_NOUSAGE("busybox", busybox_main, _BB_DIR_BIN)
|
||||||
|
#ifdef CONFIG_BUNZIP2
|
||||||
|
APPLET(bzcat, bunzip2_main, _BB_DIR_USR_BIN)
|
||||||
|
#endif
|
||||||
#ifdef CONFIG_CAT
|
#ifdef CONFIG_CAT
|
||||||
APPLET(cat, cat_main, _BB_DIR_BIN)
|
APPLET(cat, cat_main, _BB_DIR_BIN)
|
||||||
#endif
|
#endif
|
||||||
|
@ -52,11 +52,17 @@
|
|||||||
"bar"
|
"bar"
|
||||||
|
|
||||||
#define bunzip2_trivial_usage \
|
#define bunzip2_trivial_usage \
|
||||||
"FILE"
|
"[-c] FILE"
|
||||||
#define bunzip2_full_usage \
|
#define bunzip2_full_usage \
|
||||||
"Uncompress FILE to current directory, stripping its .bz2 extension.\n"\
|
"Uncompress FILE to current directory, stripping its .bz2 extension.\n"\
|
||||||
|
" -c output to stdout\n"\
|
||||||
" -k is assumed"
|
" -k is assumed"
|
||||||
|
|
||||||
|
#define bzcat_trivial_usage \
|
||||||
|
"FILE"
|
||||||
|
#define bzcat_full_usage \
|
||||||
|
"Uncompress to stdout."
|
||||||
|
|
||||||
#define cat_trivial_usage \
|
#define cat_trivial_usage \
|
||||||
"[FILE]..."
|
"[FILE]..."
|
||||||
#define cat_full_usage \
|
#define cat_full_usage \
|
||||||
|
Loading…
Reference in New Issue
Block a user