int open_flags = 0;
int add_flags = WIMLIB_ADD_FLAG_EXCLUDE_VERBOSE |
WIMLIB_ADD_FLAG_WINCONFIG |
- WIMLIB_ADD_FLAG_VERBOSE;
+ WIMLIB_ADD_FLAG_VERBOSE |
+ WIMLIB_ADD_FLAG_FILE_PATHS_UNNEEDED;
int write_flags = 0;
int compression_type = WIMLIB_COMPRESSION_TYPE_INVALID;
uint32_t chunk_size = UINT32_MAX;
wimlib_iterate_lookup_table(wim, 0, print_resource, NULL);
}
+#ifndef __WIN32__
static void
default_print_security_descriptor(const uint8_t *sd, size_t size)
{
print_byte_field(sd, size);
tputchar(T('\n'));
}
+#endif
+
+static bool
+is_null_guid(const uint8_t *guid)
+{
+ static const uint8_t null_guid[WIMLIB_GUID_LEN];
+
+ return !memcmp(guid, null_guid, WIMLIB_GUID_LEN);
+}
static void
-print_dentry_detailed(const struct wimlib_dir_entry *dentry)
+print_guid(const tchar *label, const uint8_t *guid)
{
+ if (is_null_guid(guid))
+ return;
+ tprintf(T("%-20"TS"= 0x"), label);
+ print_byte_field(guid, WIMLIB_GUID_LEN);
+ tputchar(T('\n'));
+}
+static void
+print_dentry_detailed(const struct wimlib_dir_entry *dentry)
+{
tprintf(T(
"----------------------------------------------------------------------------\n"));
tprintf(T("Full Path = \"%"TS"\"\n"), dentry->full_path);
dentry->unix_mode, dentry->unix_rdev);
}
+ if (!is_null_guid(dentry->object_id.object_id)) {
+ print_guid(T("Object ID"), dentry->object_id.object_id);
+ print_guid(T("Birth Volume ID"), dentry->object_id.birth_volume_id);
+ print_guid(T("Birth Object ID"), dentry->object_id.birth_object_id);
+ print_guid(T("Domain ID"), dentry->object_id.domain_id);
+ }
+
for (uint32_t i = 0; i <= dentry->num_named_streams; i++) {
if (dentry->streams[i].stream_name) {
tprintf(T("\tNamed data stream \"%"TS"\":\n"),
recommend_man_page(CMD_NONE, fp);
}
+#ifdef __WIN32__
+extern int wmain(int argc, wchar_t **argv);
+#define main wmain
+#endif
+
/* Entry point for wimlib's ImageX implementation. On UNIX the command
* arguments will just be 'char' strings (ideally UTF-8 encoded, but could be
* something else), while on Windows the command arguments will be UTF-16LE
* encoded 'wchar_t' strings. */
int
-#ifdef __WIN32__
-wmain(int argc, wchar_t **argv, wchar_t **envp)
-#else
-main(int argc, char **argv)
-#endif
+main(int argc, tchar **argv)
{
int ret;
int init_flags = 0;