]> wimlib.net Git - wimlib/blobdiff - src/lookup_table.c
Improve char encoding support (IN PROGRESS)
[wimlib] / src / lookup_table.c
index 390f63c5934401ebf810466254d90ff6b6ac0305..d9301c2ca356eadb33c6d666a87fe246d3bc8a74 100644 (file)
@@ -6,7 +6,7 @@
  */
 
 /*
- * Copyright (C) 2012 Eric Biggers
+ * Copyright (C) 2012, 2013 Eric Biggers
  *
  * This file is part of wimlib, a library for working with WIM files.
  *
@@ -86,6 +86,9 @@ clone_lookup_table_entry(const struct wim_lookup_table_entry *old)
        switch (new->resource_location) {
        case RESOURCE_IN_STAGING_FILE:
        case RESOURCE_IN_FILE_ON_DISK:
+#ifdef __WIN32__
+       case RESOURCE_WIN32:
+#endif
                BUILD_BUG_ON((void*)&old->file_on_disk !=
                             (void*)&old->staging_file_name);
                new->staging_file_name = STRDUP(old->staging_file_name);
@@ -138,6 +141,9 @@ void free_lookup_table_entry(struct wim_lookup_table_entry *lte)
                case RESOURCE_IN_STAGING_FILE:
                case RESOURCE_IN_ATTACHED_BUFFER:
                case RESOURCE_IN_FILE_ON_DISK:
+#ifdef __WIN32__
+               case RESOURCE_WIN32:
+#endif
                        BUILD_BUG_ON((void*)&lte->file_on_disk !=
                                     (void*)&lte->staging_file_name);
                        BUILD_BUG_ON((void*)&lte->file_on_disk !=
@@ -186,7 +192,7 @@ void free_lookup_table(struct wim_lookup_table *table)
  * Inserts an entry into the lookup table.
  *
  * @table:     A pointer to the lookup table.
- * @entry:     A pointer to the entry to insert.
+ * @lte:       A pointer to the entry to insert.
  */
 void lookup_table_insert(struct wim_lookup_table *table,
                         struct wim_lookup_table_entry *lte)
@@ -566,18 +572,20 @@ __lookup_resource(const struct wim_lookup_table *table, const u8 hash[])
  *
  * This is only for pre-resolved inodes.
  */
-int lookup_resource(WIMStruct *w, const char *path,
-                   int lookup_flags,
-                   struct wim_dentry **dentry_ret,
-                   struct wim_lookup_table_entry **lte_ret,
-                   u16 *stream_idx_ret)
+int
+lookup_resource(WIMStruct *w,
+               const mbchar *path,
+               int lookup_flags,
+               struct wim_dentry **dentry_ret,
+               struct wim_lookup_table_entry **lte_ret,
+               u16 *stream_idx_ret)
 {
        struct wim_dentry *dentry;
        struct wim_lookup_table_entry *lte;
        u16 stream_idx;
-       const char *stream_name = NULL;
+       const mbchar *stream_name = NULL;
        struct wim_inode *inode;
-       char *p = NULL;
+       mbchar *p = NULL;
 
        if (lookup_flags & LOOKUP_FLAG_ADS_OK) {
                stream_name = path_stream_name(path);