+/* Parse the argument to --compact */
+static int
+set_compact_mode(const tchar *arg, int *extract_flags)
+{
+ int flag = 0;
+ if (!tstrcasecmp(arg, T("xpress4k")))
+ flag = WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS4K;
+ else if (!tstrcasecmp(arg, T("xpress8k")))
+ flag = WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS8K;
+ else if (!tstrcasecmp(arg, T("xpress16k")))
+ flag = WIMLIB_EXTRACT_FLAG_COMPACT_XPRESS16K;
+ else if (!tstrcasecmp(arg, T("lzx")))
+ flag = WIMLIB_EXTRACT_FLAG_COMPACT_LZX;
+
+ if (flag) {
+ *extract_flags |= flag;
+ return 0;
+ }
+
+ imagex_error(T(
+"\"%"TS"\" is not a recognized System Compression format. The options are:"
+"\n"
+" --compact=xpress4k\n"
+" --compact=xpress8k\n"
+" --compact=xpress16k\n"
+" --compact=lzx\n"
+ ), arg);
+ return -1;
+}
+
+