mirror of
				https://github.com/facebook/zstd.git
				synced 2025-10-31 00:04:03 -04:00 
			
		
		
		
	Merge pull request #806 from facebook/printVersion
cli : Display supported formats on -vV command
This commit is contained in:
		
						commit
						81ec9efd4c
					
				
							
								
								
									
										1
									
								
								programs/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								programs/.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1,6 +1,7 @@ | ||||
| # local binary (Makefile) | ||||
| zstd | ||||
| zstd32 | ||||
| zstd4 | ||||
| zstd-compress | ||||
| zstd-decompress | ||||
| zstd-frugal | ||||
|  | ||||
| @ -225,7 +225,7 @@ clean: | ||||
| 	@$(RM) $(ZSTDDIR)/decompress/*.o $(ZSTDDIR)/decompress/zstd_decompress.gcda | ||||
| 	@$(RM) core *.o tmp* result* *.gcda dictionary *.zst \
 | ||||
|         zstd$(EXT) zstd32$(EXT) zstd-compress$(EXT) zstd-decompress$(EXT) \
 | ||||
|         zstd-small$(EXT) zstd-frugal$(EXT) zstd-nolegacy$(EXT) \
 | ||||
|         zstd-small$(EXT) zstd-frugal$(EXT) zstd-nolegacy$(EXT) zstd4$(EXT) \
 | ||||
|         *.gcda default.profraw have_zlib$(EXT) | ||||
| 	@echo Cleaning completed | ||||
| 
 | ||||
|  | ||||
| @ -11,7 +11,7 @@ There are however other Makefile targets that create different variations of CLI | ||||
| 
 | ||||
| 
 | ||||
| #### Compilation variables | ||||
| `zstd` tries to detect and use the following features automatically : | ||||
| `zstd` scope can be altered by modifying the following compilation variables : | ||||
| 
 | ||||
| - __HAVE_THREAD__ : multithreading is automatically enabled when `pthread` is detected. | ||||
|   It's possible to disable multithread support, by setting HAVE_THREAD=0 . | ||||
| @ -40,6 +40,17 @@ There are however other Makefile targets that create different variations of CLI | ||||
|   In which case, linking stage will fail if `lzma` library cannot be found. | ||||
|   This might be useful to prevent silent feature disabling. | ||||
| 
 | ||||
| - __ZSTD_LEGACY_SUPPORT__ : `zstd` can decompress files compressed by older versions of `zstd`. | ||||
|   Starting v0.8.0, all versions of `zstd` produce frames compliant with the [specification](../doc/zstd_compression_format.md), and are therefore compatible. | ||||
|   But older versions (< v0.8.0) produced different, incompatible, frames. | ||||
|   By default, `zstd` supports decoding legacy formats >= v0.4.0 (`ZSTD_LEGACY_SUPPORT=4`). | ||||
|   This can be altered by modifying this compilation variable. | ||||
|   `ZSTD_LEGACY_SUPPORT=1` means "support all formats >= v0.1.0". | ||||
|   `ZSTD_LEGACY_SUPPORT=2` means "support all formats >= v0.2.0", and so on. | ||||
|   `ZSTD_LEGACY_SUPPORT=0` means _DO NOT_ support any legacy format. | ||||
|   if `ZSTD_LEGACY_SUPPORT >= 8`, it's the same as `0`, since there is no legacy format after `7`. | ||||
|   Note : `zstd` only supports decoding older formats, and cannot generate any legacy format. | ||||
| 
 | ||||
| 
 | ||||
| #### Aggregation of parameters | ||||
| CLI supports aggregation of parameters i.e. `-b1`, `-e18`, and `-i1` can be joined into `-b1e18i1`. | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| . | ||||
| .TH "ZSTD" "1" "July 2017" "zstd 1.3.1" "User Commands" | ||||
| .TH "ZSTD" "1" "August 2017" "zstd 1.3.1" "User Commands" | ||||
| . | ||||
| .SH "NAME" | ||||
| \fBzstd\fR \- zstd, zstdmt, unzstd, zstdcat \- Compress or decompress \.zst files | ||||
| @ -149,7 +149,7 @@ display help/long help and exit | ||||
| . | ||||
| .TP | ||||
| \fB\-V\fR, \fB\-\-version\fR | ||||
| display version number and exit | ||||
| display version number and exit\. Advanced : \fB\-vV\fR also displays supported formats\. \fB\-vvV\fR also displays POSIX support\. | ||||
| . | ||||
| .TP | ||||
| \fB\-v\fR | ||||
|  | ||||
| @ -140,7 +140,9 @@ the last one takes effect. | ||||
| * `-h`/`-H`, `--help`: | ||||
|     display help/long help and exit | ||||
| * `-V`, `--version`: | ||||
|     display version number and exit | ||||
|     display version number and exit. | ||||
|     Advanced : `-vV` also displays supported formats. | ||||
|     `-vvV` also displays POSIX support. | ||||
| * `-v`: | ||||
|     verbose mode | ||||
| * `-q`, `--quiet`: | ||||
|  | ||||
| @ -16,7 +16,7 @@ | ||||
| #endif | ||||
| 
 | ||||
| #ifndef ZSTDCLI_CLEVEL_MAX | ||||
| #  define ZSTDCLI_CLEVEL_MAX 19   /* when not using --ultra */ | ||||
| #  define ZSTDCLI_CLEVEL_MAX 19   /* without using --ultra */ | ||||
| #endif | ||||
| 
 | ||||
| 
 | ||||
| @ -26,14 +26,15 @@ | ||||
| **************************************/ | ||||
| #include "platform.h" /* IS_CONSOLE, PLATFORM_POSIX_VERSION */ | ||||
| #include "util.h"     /* UTIL_HAS_CREATEFILELIST, UTIL_createFileList */ | ||||
| #include <stdio.h>    /* fprintf(), stdin, stdout, stderr */ | ||||
| #include <string.h>   /* strcmp, strlen */ | ||||
| #include <errno.h>    /* errno */ | ||||
| #include "fileio.h" | ||||
| #include "fileio.h"   /* stdinmark, stdoutmark, ZSTD_EXTENSION */ | ||||
| #ifndef ZSTD_NOBENCH | ||||
| #  include "bench.h"  /* BMK_benchFiles, BMK_SetNbSeconds */ | ||||
| #endif | ||||
| #ifndef ZSTD_NODICT | ||||
| #  include "dibio.h" | ||||
| #  include "dibio.h"  /* ZDICT_cover_params_t, DiB_trainFromFiles() */ | ||||
| #endif | ||||
| #define ZSTD_STATIC_LINKING_ONLY   /* ZSTD_maxCLevel */ | ||||
| #include "zstd.h"     /* ZSTD_VERSION_STRING */ | ||||
| @ -64,7 +65,7 @@ | ||||
| #define MB *(1 <<20) | ||||
| #define GB *(1U<<30) | ||||
| 
 | ||||
| #define DEFAULT_DISPLAY_LEVEL 2 | ||||
| #define DISPLAY_LEVEL_DEFAULT 2 | ||||
| 
 | ||||
| static const char*    g_defaultDictName = "dictionary"; | ||||
| static const unsigned g_defaultMaxDictSize = 110 KB; | ||||
| @ -79,7 +80,7 @@ static U32 g_overlapLog = OVERLAP_LOG_DEFAULT; | ||||
| **************************************/ | ||||
| #define DISPLAY(...)         fprintf(g_displayOut, __VA_ARGS__) | ||||
| #define DISPLAYLEVEL(l, ...) { if (g_displayLevel>=l) { DISPLAY(__VA_ARGS__); } } | ||||
| static int g_displayLevel = DEFAULT_DISPLAY_LEVEL;   /* 0 : no display,  1: errors,  2 : + result + interaction + warnings,  3 : + progression,  4 : + information */ | ||||
| static int g_displayLevel = DISPLAY_LEVEL_DEFAULT;   /* 0 : no display,  1: errors,  2 : + result + interaction + warnings,  3 : + progression,  4 : + information */ | ||||
| static FILE* g_displayOut; | ||||
| 
 | ||||
| 
 | ||||
| @ -312,6 +313,35 @@ static unsigned parseCompressionParameters(const char* stringPtr, ZSTD_compressi | ||||
|     return 1; | ||||
| } | ||||
| 
 | ||||
| static void printVersion(void) | ||||
| { | ||||
|     DISPLAY(WELCOME_MESSAGE); | ||||
|     /* format support */ | ||||
|     DISPLAYLEVEL(3, "*** supports: zstd"); | ||||
| #if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT>0) && (ZSTD_LEGACY_SUPPORT<8) | ||||
|     DISPLAYLEVEL(3, ", zstd legacy v0.%d+", ZSTD_LEGACY_SUPPORT); | ||||
| #endif | ||||
| #ifdef ZSTD_GZCOMPRESS | ||||
|     DISPLAYLEVEL(3, ", gzip"); | ||||
| #endif | ||||
| #ifdef ZSTD_LZ4COMPRESS | ||||
|     DISPLAYLEVEL(3, ", lz4"); | ||||
| #endif | ||||
| #ifdef ZSTD_LZMACOMPRESS | ||||
|     DISPLAYLEVEL(3, ", lzma, xz "); | ||||
| #endif | ||||
|     DISPLAYLEVEL(3, "\n"); | ||||
|     /* posix support */ | ||||
| #ifdef _POSIX_C_SOURCE | ||||
|     DISPLAYLEVEL(4, "_POSIX_C_SOURCE defined: %ldL\n", (long) _POSIX_C_SOURCE); | ||||
| #endif | ||||
| #ifdef _POSIX_VERSION | ||||
|     DISPLAYLEVEL(4, "_POSIX_VERSION defined: %ldL \n", (long) _POSIX_VERSION); | ||||
| #endif | ||||
| #ifdef PLATFORM_POSIX_VERSION | ||||
|     DISPLAYLEVEL(4, "PLATFORM_POSIX_VERSION defined: %ldL\n", (long) PLATFORM_POSIX_VERSION); | ||||
| #endif | ||||
| } | ||||
| 
 | ||||
| typedef enum { zom_compress, zom_decompress, zom_test, zom_bench, zom_train, zom_list } zstd_operation_mode; | ||||
| 
 | ||||
| @ -491,7 +521,7 @@ int main(int argCount, const char* argv[]) | ||||
|                     switch(argument[0]) | ||||
|                     { | ||||
|                         /* Display help */ | ||||
|                     case 'V': g_displayOut=stdout; DISPLAY(WELCOME_MESSAGE); CLEAN_RETURN(0);   /* Version Only */ | ||||
|                     case 'V': g_displayOut=stdout; printVersion(); CLEAN_RETURN(0);   /* Version Only */ | ||||
|                     case 'H': | ||||
|                     case 'h': g_displayOut=stdout; CLEAN_RETURN(usage_advanced(programName)); | ||||
| 
 | ||||
| @ -641,15 +671,6 @@ int main(int argCount, const char* argv[]) | ||||
| 
 | ||||
|     /* Welcome message (if verbose) */ | ||||
|     DISPLAYLEVEL(3, WELCOME_MESSAGE); | ||||
| #ifdef _POSIX_C_SOURCE | ||||
|     DISPLAYLEVEL(4, "_POSIX_C_SOURCE defined: %ldL\n", (long) _POSIX_C_SOURCE); | ||||
| #endif | ||||
| #ifdef _POSIX_VERSION | ||||
|     DISPLAYLEVEL(4, "_POSIX_VERSION defined: %ldL \n", (long) _POSIX_VERSION); | ||||
| #endif | ||||
| #ifdef PLATFORM_POSIX_VERSION | ||||
|     DISPLAYLEVEL(4, "PLATFORM_POSIX_VERSION defined: %ldL\n", (long) PLATFORM_POSIX_VERSION); | ||||
| #endif | ||||
| 
 | ||||
|     if (nbThreads == 0) { | ||||
|         /* try to guess */ | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user