- if (required_features->compressed_files && !supported_features->compressed_files)
- {
- WARNING(
- "%lu files in %"TS" are marked as being transparently\n"
-" compressed, but transparent compression is not supported in\n"
-" %"TS". These files will be extracted as uncompressed.",
- required_features->compressed_files, loc, mode);
- }
-
- if (required_features->encrypted_files && !supported_features->encrypted_files)
- {
- WARNING(
- "%lu files in %"TS" are marked as being encrypted,\n"
-" but encryption is not supported in %"TS". These files\n"
-" will not be extracted.",
- required_features->encrypted_files, loc, mode);
- }
-
- if (required_features->encrypted_directories &&
- !supported_features->encrypted_directories)
- {
- WARNING(
- "%lu directories in %"TS" are marked as being encrypted,\n"
-" but encryption is not supported in %"TS".\n"
-" These directories will be extracted as unencrypted.",
- required_features->encrypted_directories, loc, mode);
- }
-
- if (required_features->not_context_indexed_files &&
- !supported_features->not_context_indexed_files)
- {
- WARNING(
- "%lu files in %"TS" are marked as not content indexed,\n"
-" but this attribute is not supported in %"TS".",
- required_features->not_context_indexed_files, loc, mode);
- }
-
- if (required_features->sparse_files && !supported_features->sparse_files)
- {
- WARNING(
- "%lu files in %"TS" are marked as sparse, but creating\n"
-" sparse files is not supported in %"TS". These files\n"
-" will be extracted as non-sparse.",
- required_features->sparse_files, loc, mode);
- }
-
- if (required_features->named_data_streams &&
- !supported_features->named_data_streams)
- {
- WARNING(
- "%lu files in %"TS" contain one or more alternate (named)\n"
-" data streams, which are not supported in %"TS".\n"
-" Alternate data streams will NOT be extracted.",
- required_features->named_data_streams, loc, mode);
- }
-
- if (unlikely(extract_flags & (WIMLIB_EXTRACT_FLAG_HARDLINK |
- WIMLIB_EXTRACT_FLAG_SYMLINK)) &&
- required_features->named_data_streams &&
- supported_features->named_data_streams)
- {
- WARNING(
- "%lu files in %"TS" contain one or more alternate (named)\n"
-" data streams, which are not supported in linked extraction mode.\n"
-" Alternate data streams will NOT be extracted.",
- required_features->named_data_streams, loc);
- }
-
- if (required_features->hard_links && !supported_features->hard_links)
- {
- WARNING(
- "%lu files in %"TS" are hard links, but hard links are\n"
-" not supported in %"TS". Hard links will be extracted as\n"
-" duplicate copies of the linked files.",
- required_features->hard_links, loc, mode);
- }
-
- if (required_features->reparse_points && !supported_features->reparse_points)
- {
- if (supported_features->symlink_reparse_points) {
- if (required_features->other_reparse_points) {
- WARNING(
- "%lu files in %"TS" are reparse points that are neither\n"
-" symbolic links nor junction points and are not supported in\n"
-" %"TS". These reparse points will not be extracted.",
- required_features->other_reparse_points, loc,
- mode);
- }
- } else {
- WARNING(
- "%lu files in %"TS" are reparse points, which are\n"
-" not supported in %"TS" and will not be extracted.",
- required_features->reparse_points, loc, mode);
- }
- }
-
- if (required_features->security_descriptors &&
- !supported_features->security_descriptors)
- {
- WARNING(
- "%lu files in %"TS" have Windows NT security descriptors,\n"
-" but extracting security descriptors is not supported in\n"
-" %"TS". No security descriptors will be extracted.",
- required_features->security_descriptors, loc, mode);
- }
-
- if (required_features->short_names && !supported_features->short_names)
- {
- WARNING(
- "%lu files in %"TS" have short (DOS) names, but\n"
-" extracting short names is not supported in %"TS".\n"
-" Short names will not be extracted.\n",
- required_features->short_names, loc, mode);
- }
+ /* Named data streams. */
+ if (required_features->named_data_streams &&
+ !supported_features->named_data_streams)
+ WARNING("Ignoring named data streams of %lu files",
+ required_features->named_data_streams);
+
+ /* File attributes. */
+ if (!(extract_flags & WIMLIB_EXTRACT_FLAG_NO_ATTRIBUTES)) {
+ /* Note: Don't bother the user about FILE_ATTRIBUTE_ARCHIVE.
+ * We're an archive program, so theoretically we can do what we
+ * want with it. */
+
+ if (required_features->hidden_files &&
+ !supported_features->hidden_files)
+ WARNING("Ignoring FILE_ATTRIBUTE_HIDDEN of %lu files",
+ required_features->hidden_files);
+
+ if (required_features->system_files &&
+ !supported_features->system_files)
+ WARNING("Ignoring FILE_ATTRIBUTE_SYSTEM of %lu files",
+ required_features->system_files);
+
+ if (required_features->compressed_files &&
+ !supported_features->compressed_files)
+ WARNING("Ignoring FILE_ATTRIBUTE_COMPRESSED of %lu files",
+ required_features->compressed_files);
+
+ if (required_features->not_context_indexed_files &&
+ !supported_features->not_context_indexed_files)
+ WARNING("Ignoring FILE_ATTRIBUTE_NOT_CONTENT_INDEXED of %lu files",
+ required_features->not_context_indexed_files);
+
+ if (required_features->sparse_files &&
+ !supported_features->sparse_files)
+ WARNING("Ignoring FILE_ATTRIBUTE_SPARSE_FILE of %lu files",
+ required_features->sparse_files);
+
+ if (required_features->encrypted_directories &&
+ !supported_features->encrypted_directories)
+ WARNING("Ignoring FILE_ATTRIBUTE_ENCRYPTED of %lu directories",
+ required_features->encrypted_directories);
+ }
+
+ /* Hard links. */
+ if (required_features->hard_links && !supported_features->hard_links)
+ WARNING("Extracting %lu hard links as independent files",
+ required_features->hard_links);