Imported Upstream version 3.23.2
[platform/upstream/cmake.git] / Utilities / cmlibarchive / libarchive / archive_write_set_format_7zip.c
index 7f2e6ac..87b3586 100644 (file)
@@ -755,6 +755,10 @@ _7z_close(struct archive_write *a)
                 */
 #if HAVE_LZMA_H
                header_compression = _7Z_LZMA1;
+               if(zip->opt_compression == _7Z_LZMA2 ||
+                  zip->opt_compression == _7Z_COPY)
+                       header_compression = zip->opt_compression;
+
                /* If the stored file is only one, do not encode the header.
                 * This is the same way 7z command does. */
                if (zip->total_number_entry == 1)
@@ -762,7 +766,8 @@ _7z_close(struct archive_write *a)
 #else
                header_compression = _7Z_COPY;
 #endif
-               r = _7z_compression_init_encoder(a, header_compression, 6);
+               r = _7z_compression_init_encoder(a, header_compression,
+                                                zip->opt_compression_level);
                if (r < 0)
                        return (r);
                zip->crc32flg = PRECODE_CRC32;