]> wimlib.net Git - wimlib/blobdiff - include/wimlib/util.h
Add WIMLIB_OPEN_FLAG_WRITE_ACCESS flag
[wimlib] / include / wimlib / util.h
index e077950394cce201a3b2ca4a8b8a73d29e0ab80b..7b3e724a68ce677859eaa44ddf552cdf3ca1c6c0 100644 (file)
@@ -75,7 +75,7 @@ wimlib_strdup(const char *str) _malloc_attribute;
 #  define      REALLOC wimlib_realloc
 #  define      CALLOC  wimlib_calloc
 #  define      STRDUP  wimlib_strdup
-#  define      WSTRDUP wimlib_wcsdup
+#  define      WCSDUP  wimlib_wcsdup
 #else /* ENABLE_CUSTOM_MEMORY_ALLOCATOR */
 #  include <stdlib.h>
 #  include <string.h>
@@ -84,9 +84,11 @@ wimlib_strdup(const char *str) _malloc_attribute;
 #  define      REALLOC realloc
 #  define      CALLOC  calloc
 #  define      STRDUP  strdup
-#  define       WSTRDUP wcsdup
+#  define       WCSDUP  wcsdup
 #endif /* !ENABLE_CUSTOM_MEMORY_ALLOCATOR */
 
+extern void *
+memdup(const void *mem, size_t size) _malloc_attribute;
 
 /* util.c */
 extern void
@@ -120,4 +122,27 @@ hash_u64(u64 n)
        return n * 0x9e37fffffffc0001ULL;
 }
 
+/* is_any_path_separator() - characters treated as path separators in WIM path
+ * specifications and capture configuration files (the former will be translated
+ * to WIM_PATH_SEPARATOR; the latter will be translated to
+ * OS_PREFERRED_PATH_SEPARATOR)
+ *
+ * OS_PREFERRED_PATH_SEPARATOR - preferred (or only) path separator on the
+ * operating system.  Used when constructing filesystem paths to extract or
+ * archive.
+ *
+ * WIM_PATH_SEPARATOR - character treated as path separator for WIM paths.
+ * Currently needs to be '/' on UNIX for the WIM mounting code to work properly.
+ */
+
+#ifdef __WIN32__
+#  define OS_PREFERRED_PATH_SEPARATOR L'\\'
+#  define is_any_path_separator(c) ((c) == L'/' || (c) == L'\\')
+#else
+#  define OS_PREFERRED_PATH_SEPARATOR '/'
+#  define is_any_path_separator(c) ((c) == '/' || (c) == '\\')
+#endif
+
+#define WIM_PATH_SEPARATOR WIMLIB_WIM_PATH_SEPARATOR
+
 #endif /* _WIMLIB_UTIL_H */