]> granicus.if.org Git - xz/commitdiff
Fixed suffix handling with --format=raw.
authorLasse Collin <lasse.collin@tukaani.org>
Fri, 3 Oct 2008 04:06:48 +0000 (07:06 +0300)
committerLasse Collin <lasse.collin@tukaani.org>
Fri, 3 Oct 2008 04:06:48 +0000 (07:06 +0300)
src/lzma/suffix.c

index 41b4c3522f35a74aae045bc19af5d218dab83c72..460acee2134a35509da03a540d0e51de21f8be3d 100644 (file)
@@ -72,12 +72,22 @@ uncompressed_name(const char *src_name, const size_t src_len)
        const char *new_suffix = "";
        size_t new_len = 0;
 
-       for (size_t i = 0; i < ARRAY_SIZE(suffixes); ++i) {
-               new_len = test_suffix(suffixes[i].compressed,
-                               src_name, src_len);
-               if (new_len != 0) {
-                       new_suffix = suffixes[i].uncompressed;
-                       break;
+       if (opt_format == FORMAT_RAW) {
+               // Don't check for known suffixes when --format=raw was used.
+               if (opt_suffix == NULL) {
+                       errmsg(V_ERROR, _("%s: With --format=raw, "
+                                       "--suffix=.SUF is required unless "
+                                       "writing to stdout"), src_name);
+                       return NULL;
+               }
+       } else {
+               for (size_t i = 0; i < ARRAY_SIZE(suffixes); ++i) {
+                       new_len = test_suffix(suffixes[i].compressed,
+                                       src_name, src_len);
+                       if (new_len != 0) {
+                               new_suffix = suffixes[i].uncompressed;
+                               break;
+                       }
                }
        }
 
@@ -154,9 +164,9 @@ compressed_name(const char *src_name, const size_t src_len)
        // TODO: Hmm, maybe it would be better to validate this in args.c,
        // since the suffix handling when decoding is weird now.
        if (opt_format == FORMAT_RAW && opt_suffix == NULL) {
-               errmsg(V_ERROR, _("%s: With --format=raw, --suffix=.SUF is "
-                               "required unless writing to stdout"),
-                               src_name);
+               errmsg(V_ERROR, _("%s: With --format=raw, "
+                               "--suffix=.SUF is required unless "
+                               "writing to stdout"), src_name);
                return NULL;
        }