mirror of
https://github.com/facebook/zstd.git
synced 2025-08-01 09:47:01 +03:00
Merge pull request #30 from jforberg/dev
Add `unzstd` program for decompression.
This commit is contained in:
@ -99,16 +99,20 @@ install: zstd
|
|||||||
@install -d -m 755 $(DESTDIR)$(BINDIR)/ $(DESTDIR)$(MANDIR)/
|
@install -d -m 755 $(DESTDIR)$(BINDIR)/ $(DESTDIR)$(MANDIR)/
|
||||||
@install -m 755 zstd$(EXT) $(DESTDIR)$(BINDIR)/zstd$(EXT)
|
@install -m 755 zstd$(EXT) $(DESTDIR)$(BINDIR)/zstd$(EXT)
|
||||||
@ln -sf zstd$(EXT) $(DESTDIR)$(BINDIR)/zstdcat
|
@ln -sf zstd$(EXT) $(DESTDIR)$(BINDIR)/zstdcat
|
||||||
|
@ln -sf zstd$(EXT) $(DESTDIR)$(BINDIR)/unzstd
|
||||||
@echo Installing man pages
|
@echo Installing man pages
|
||||||
@install -m 644 zstd.1 $(DESTDIR)$(MANDIR)/zstd.1
|
@install -m 644 zstd.1 $(DESTDIR)$(MANDIR)/zstd.1
|
||||||
@install -m 644 zstdcat.1 $(DESTDIR)$(MANDIR)/zstdcat.1
|
@install -m 644 zstdcat.1 $(DESTDIR)$(MANDIR)/zstdcat.1
|
||||||
|
@install -m 644 unzstd.1 $(DESTDIR)$(MANDIR)/unzstd.1
|
||||||
@echo zstd installation completed
|
@echo zstd installation completed
|
||||||
|
|
||||||
uninstall:
|
uninstall:
|
||||||
rm -f $(DESTDIR)$(BINDIR)/zstdcat
|
rm -f $(DESTDIR)$(BINDIR)/zstdcat
|
||||||
|
rm -f $(DESTDIR)$(BINDIR)/unzstd
|
||||||
[ -x $(DESTDIR)$(BINDIR)/zstd$(EXT) ] && rm -f $(DESTDIR)$(BINDIR)/zstd$(EXT)
|
[ -x $(DESTDIR)$(BINDIR)/zstd$(EXT) ] && rm -f $(DESTDIR)$(BINDIR)/zstd$(EXT)
|
||||||
[ -f $(DESTDIR)$(MANDIR)/zstd.1 ] && rm -f $(DESTDIR)$(MANDIR)/zstd.1
|
[ -f $(DESTDIR)$(MANDIR)/zstd.1 ] && rm -f $(DESTDIR)$(MANDIR)/zstd.1
|
||||||
[ -f $(DESTDIR)$(MANDIR)/zstdcat.1 ] && rm -f $(DESTDIR)$(MANDIR)/zstdcat.1
|
[ -f $(DESTDIR)$(MANDIR)/zstdcat.1 ] && rm -f $(DESTDIR)$(MANDIR)/zstdcat.1
|
||||||
|
[ -f $(DESTDIR)$(MANDIR)/unzstd.1 ] && rm -f $(DESTDIR)$(MANDIR)/unzstd.1
|
||||||
@echo zstd programs successfully uninstalled
|
@echo zstd programs successfully uninstalled
|
||||||
|
|
||||||
test: test-zstd test-fullbench test-fuzzer test-mem
|
test: test-zstd test-fullbench test-fuzzer test-mem
|
||||||
|
31
programs/unzstd.1
Normal file
31
programs/unzstd.1
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
\"
|
||||||
|
\" unzstd.1: This is a manual page for 'unzstd' program. This file is part of
|
||||||
|
\" the zstd <https://github.com/Cyan4973/zstd/> project.
|
||||||
|
\"
|
||||||
|
|
||||||
|
\" No hyphenation
|
||||||
|
.hy 0
|
||||||
|
.nr HY 0
|
||||||
|
|
||||||
|
.TH unzstd "1" "2014-06-20" "unzstd" "User Commands"
|
||||||
|
.SH NAME
|
||||||
|
\fBunzstd\fR - Utility based on zstd
|
||||||
|
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.TP 5
|
||||||
|
\fBunzstd\fR [\fBOPTIONS\fR] [-|INPUT-FILE]
|
||||||
|
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.PP
|
||||||
|
\fBunzstd\fR is an utility based on \fBzstd\fR, a fast lossless compression algorithm.
|
||||||
|
|
||||||
|
\fBunzstd\fR decompress input file, it is equivalent to \fBzstd -d\fR,
|
||||||
|
|
||||||
|
Available options are the same as \fBzstd\fR ones (man zstd).
|
||||||
|
|
||||||
|
|
||||||
|
.SH BUGS
|
||||||
|
Report bugs at:- https://github.com/Cyan4973/zstd/
|
||||||
|
|
||||||
|
.SH AUTHOR
|
||||||
|
Yann Collet
|
@ -76,6 +76,7 @@
|
|||||||
#define WELCOME_MESSAGE "*** %s %i-bits %s, by %s (%s) ***\n", COMPRESSOR_NAME, (int)(sizeof(void*)*8), ZSTD_VERSION, AUTHOR, __DATE__
|
#define WELCOME_MESSAGE "*** %s %i-bits %s, by %s (%s) ***\n", COMPRESSOR_NAME, (int)(sizeof(void*)*8), ZSTD_VERSION, AUTHOR, __DATE__
|
||||||
#define ZSTD_EXTENSION ".zst"
|
#define ZSTD_EXTENSION ".zst"
|
||||||
#define ZSTD_CAT "zstdcat"
|
#define ZSTD_CAT "zstdcat"
|
||||||
|
#define ZSTD_UNZSTD "unzstd"
|
||||||
|
|
||||||
#define KB *(1 <<10)
|
#define KB *(1 <<10)
|
||||||
#define MB *(1 <<20)
|
#define MB *(1 <<20)
|
||||||
@ -172,9 +173,24 @@ int main(int argc, char** argv)
|
|||||||
char* dynNameSpace = NULL;
|
char* dynNameSpace = NULL;
|
||||||
char extension[] = ZSTD_EXTENSION;
|
char extension[] = ZSTD_EXTENSION;
|
||||||
|
|
||||||
|
/* Pick out basename component. Don't rely on stdlib because of conflicting behaviour. */
|
||||||
|
for (i = strlen(programName); i > 0; i--)
|
||||||
|
{
|
||||||
|
if (programName[i] == '/')
|
||||||
|
{
|
||||||
|
i++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
programName += i;
|
||||||
|
|
||||||
/* zstdcat behavior */
|
/* zstdcat behavior */
|
||||||
if (!strcmp(programName, ZSTD_CAT)) { decode=1; forceStdout=1; displayLevel=1; outFileName=stdoutmark; }
|
if (!strcmp(programName, ZSTD_CAT)) { decode=1; forceStdout=1; displayLevel=1; outFileName=stdoutmark; }
|
||||||
|
|
||||||
|
/* unzstd behavior */
|
||||||
|
if (!strcmp(programName, ZSTD_UNZSTD))
|
||||||
|
decode=1;
|
||||||
|
|
||||||
// command switches
|
// command switches
|
||||||
for(i=1; i<argc; i++)
|
for(i=1; i<argc; i++)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user