]> wimlib.net Git - wimlib/blobdiff - src/dentry.c
win32: handle excluded reparse points correctly
[wimlib] / src / dentry.c
index 698e137c10dab4f90d0f744111e56d6629f28cde..7cd93ed1ab9e42a21aa0dfcaf6ae31d6e5e441c7 100644 (file)
@@ -1129,16 +1129,12 @@ inode_set_unnamed_stream(struct wim_inode *inode, const void *data, size_t len,
        void *buf;
 
        sha1_buffer(data, len, hash);
-
        existing_lte = __lookup_resource(lookup_table, hash);
-
        if (existing_lte) {
                wimlib_assert(wim_resource_size(existing_lte) == len);
                lte = existing_lte;
                lte->refcnt++;
        } else {
-               void *buf;
-
                lte = new_lookup_table_entry();
                if (!lte)
                        return WIMLIB_ERR_NOMEM;
@@ -1275,14 +1271,18 @@ replace_forbidden_characters(utf16lechar *name)
                if (*p == '/')
        #endif
                {
+               #ifdef __WIN32__
+                       *p = cpu_to_le16(0xfffd);
+               #else
+                       *p = '?';
+               #endif
                        if (name) {
                                WARNING("File, directory, or stream name \"%"WS"\"\n"
                                        "          contains forbidden characters; "
-                                       "replacing them with Unicode codepoint U+001A",
+                                       "substituting replacement characters.",
                                        name);
                                name = NULL;
                        }
-                       *p = 0x1a;
                }
        }
 }