X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=src%2Fwrite.c;h=8886f8f5a61ae401d0aa8c21082926f689b4833c;hp=fcaa52e41f3d47ac59af073918638d4b36f0cb08;hb=2c6340d0ccb0710950b0acdc3bde04179f6e0f28;hpb=8895e346ab7a4df65c980ba435d1e5d1c2654d3f diff --git a/src/write.c b/src/write.c index fcaa52e4..8886f8f5 100644 --- a/src/write.c +++ b/src/write.c @@ -64,6 +64,7 @@ #define WRITE_RESOURCE_FLAG_PIPABLE 0x00000002 #define WRITE_RESOURCE_FLAG_SOLID 0x00000004 #define WRITE_RESOURCE_FLAG_SEND_DONE_WITH_FILE 0x00000008 +#define WRITE_RESOURCE_FLAG_SOLID_SORT 0x00000010 static inline int write_flags_to_resource_flags(int write_flags) @@ -78,6 +79,10 @@ write_flags_to_resource_flags(int write_flags) write_resource_flags |= WRITE_RESOURCE_FLAG_SOLID; if (write_flags & WIMLIB_WRITE_FLAG_SEND_DONE_WITH_FILE_MESSAGES) write_resource_flags |= WRITE_RESOURCE_FLAG_SEND_DONE_WITH_FILE; + if ((write_flags & (WIMLIB_WRITE_FLAG_SOLID | + WIMLIB_WRITE_FLAG_NO_SOLID_SORT)) == + WIMLIB_WRITE_FLAG_SOLID) + write_resource_flags |= WRITE_RESOURCE_FLAG_SOLID_SORT; return write_resource_flags; } @@ -1590,7 +1595,7 @@ write_stream_list(struct list_head *stream_list, compute_stream_list_stats(stream_list, &ctx); - if (write_resource_flags & WRITE_RESOURCE_FLAG_SOLID) { + if (write_resource_flags & WRITE_RESOURCE_FLAG_SOLID_SORT) { ret = sort_stream_list_for_solid_compression(stream_list); if (unlikely(ret)) WARNING("Failed to sort streams for solid compression. Continuing anyways.");