refactor : --rm is ignored with stdout
`zstd` CLI has progressively moved to the policy of ignoring `--rm` command when the output is `stdout`. The primary drive is to feature a behavior more consistent with `gzip`, when `--rm` is the default, but is also ignored when output is `stdout`. Other policies are certainly possible, but would break from this `gzip` convention. The new policy was inconsistenly enforced, depending on the exact list of commands. For example, it was possible to circumvent it by using `-c --rm` in this order, which would re-establish source removal. - Update the CLI so that it necessarily catch these situations and ensure that `--rm` is always disabled when output is `stdout`. - Added a warning message in this case (for verbosity 3 `-v`). - Added an `assert()`, which controls that `--rm` is no longer active with `stdout` - Added tests, which control the behavior, even when `--rm` is added after `-c` - Removed some legacy code which where trying to apply a specific policy for the `stdout` + `--rm` case, which is no longer possible
This commit is contained in:
+1
-1
@@ -86,7 +86,7 @@ void FIO_setLdmMinMatch(FIO_prefs_t* const prefs, int ldmMinMatch);
|
||||
void FIO_setMemLimit(FIO_prefs_t* const prefs, unsigned memLimit);
|
||||
void FIO_setNbWorkers(FIO_prefs_t* const prefs, int nbWorkers);
|
||||
void FIO_setOverlapLog(FIO_prefs_t* const prefs, int overlapLog);
|
||||
void FIO_setRemoveSrcFile(FIO_prefs_t* const prefs, unsigned flag);
|
||||
void FIO_setRemoveSrcFile(FIO_prefs_t* const prefs, int flag);
|
||||
void FIO_setSparseWrite(FIO_prefs_t* const prefs, int sparse); /**< 0: no sparse; 1: disable on stdout; 2: always enabled */
|
||||
void FIO_setRsyncable(FIO_prefs_t* const prefs, int rsyncable);
|
||||
void FIO_setStreamSrcSize(FIO_prefs_t* const prefs, size_t streamSrcSize);
|
||||
|
||||
Reference in New Issue
Block a user