/**
* @mainpage
*
- * This is the documentation for the library interface of wimlib 1.9.0, a C
+ * This is the documentation for the library interface of wimlib 1.9.2, a C
* library for creating, modifying, extracting, and mounting files in the
* Windows Imaging Format. This documentation is intended for developers only.
* If you have installed wimlib and want to know how to use the @b wimlib-imagex
* program, please see the manual pages and also the <a
- * href="https://wimlib.net/gitlist/wimlib/blob/master/README">README
- * file</a>.
+ * href="https://wimlib.net/git/?p=wimlib;a=blob;f=README">README file</a>.
*
* @section sec_installing Installing
*
* distribution. Also see @ref sec_basic_wim_handling_concepts below.
*
* There is also the <a
- * href="https://wimlib.net/gitlist/wimlib/blob/master/programs/imagex.c">
+ * href="https://wimlib.net/git/?p=wimlib;a=blob;f=programs/imagex.c">
* source code of <b>wimlib-imagex</b></a>, which is complicated but uses most
* capabilities of wimlib.
*
* messages and strings (as well as all documentation, for that matter) are only
* available in English.
*
- * @section sec_encodings Locales and character encodings
+ * @section sec_encodings Character encoding
*
* To support Windows as well as UNIX-like systems, wimlib's API typically takes
- * and returns strings of ::wimlib_tchar, which are in a platform-dependent
- * encoding.
+ * and returns strings of ::wimlib_tchar which have a platform-dependent type
+ * and encoding.
*
- * On Windows, each ::wimlib_tchar is 2 bytes and is the same as a "wchar_t",
- * and the encoding is UTF-16LE.
+ * On Windows, each ::wimlib_tchar is a 2-byte <tt>wchar_t</tt>. The encoding
+ * is meant to be UTF-16LE. However, unpaired surrogates are permitted because
+ * neither Windows nor the NTFS filesystem forbids them in filenames.
*
- * On UNIX-like systems, each ::wimlib_tchar is 1 byte and is simply a "char",
- * and the encoding is the locale-dependent multibyte encoding. I recommend you
- * set your locale to a UTF-8 capable locale to avoid any issues. Also, by
- * default, wimlib on UNIX will assume the locale is UTF-8 capable unless you
- * call wimlib_global_init() after having set your desired locale.
+ * On UNIX-like systems, each ::wimlib_tchar is a 1 byte <tt>char</tt>. The
+ * encoding is meant to be UTF-8. However, for compatibility with Windows-style
+ * filenames that are not valid UTF-16LE, surrogate codepoints are permitted.
+ * Other multibyte encodings (e.g. ISO-8859-1) or garbage sequences of bytes are
+ * not permitted.
*
* @section sec_advanced Additional information and features
*
* such as wimlib_join(), also take the progress function directly using an
* extended version of the function, such as wimlib_join_with_progress().
*
- * In wimlib v1.7.0 and later, progress functions are no longer just
- * unidirectional. You can now return ::WIMLIB_PROGRESS_STATUS_ABORT to cause
- * the current operation to be aborted. wimlib v1.7.0 also added the third
- * argument to ::wimlib_progress_func_t, which is a user-supplied context.
+ * Since wimlib v1.7.0, progress functions are no longer just unidirectional.
+ * You can now return ::WIMLIB_PROGRESS_STATUS_ABORT to cause the current
+ * operation to be aborted. wimlib v1.7.0 also added the third argument to
+ * ::wimlib_progress_func_t, which is a user-supplied context.
*/
/** @defgroup G_writing_and_overwriting_wims Writing and Overwriting WIMs
#define WIMLIB_MINOR_VERSION 9
/** Patch version of the library (for example, the 5 in 1.2.5). */
-#define WIMLIB_PATCH_VERSION 0
+#define WIMLIB_PATCH_VERSION 2
#ifdef __cplusplus
extern "C" {
/** Name of the split WIM part that is about to be started
* (::WIMLIB_PROGRESS_MSG_SPLIT_BEGIN_PART) or has just been
- * finished (::WIMLIB_PROGRESS_MSG_SPLIT_END_PART).
- * As of wimlib v1.7.0, the library user may change this when
+ * finished (::WIMLIB_PROGRESS_MSG_SPLIT_END_PART). Since
+ * wimlib v1.7.0, the library user may change this when
* receiving ::WIMLIB_PROGRESS_MSG_SPLIT_BEGIN_PART in order to
* cause the next split WIM part to be written to a different
* location. */
};
/**
- * An object ID, which is an extra piece of metadata that may be associated with
- * a file on NTFS filesystems. See:
+ * Since wimlib v1.9.1: an object ID, which is an extra piece of metadata that
+ * may be associated with a file on NTFS filesystems. See:
* https://msdn.microsoft.com/en-us/library/windows/desktop/aa363997(v=vs.85).aspx
*/
struct wimlib_object_id {
/** @addtogroup G_general
* @{ */
-/** Assume that strings are represented in UTF-8, even if this is not the
- * locale's character encoding. This flag is ignored on Windows, where wimlib
- * always uses UTF-16LE. */
+/** Deprecated; no longer has any effect. */
#define WIMLIB_INIT_FLAG_ASSUME_UTF8 0x00000001
/** Windows-only: do not attempt to acquire additional privileges (currently
WIMLIB_ERR_DECOMPRESSION = 2,
WIMLIB_ERR_FUSE = 6,
WIMLIB_ERR_GLOB_HAD_NO_MATCHES = 8,
- WIMLIB_ERR_ICONV_NOT_AVAILABLE = 9,
WIMLIB_ERR_IMAGE_COUNT = 10,
WIMLIB_ERR_IMAGE_NAME_COLLISION = 11,
WIMLIB_ERR_INSUFFICIENT_PRIVILEGES = 12,
WIMLIB_ERR_INVALID_INTEGRITY_TABLE = 19,
WIMLIB_ERR_INVALID_LOOKUP_TABLE_ENTRY = 20,
WIMLIB_ERR_INVALID_METADATA_RESOURCE = 21,
- WIMLIB_ERR_INVALID_MULTIBYTE_STRING = 22,
WIMLIB_ERR_INVALID_OVERLAY = 23,
WIMLIB_ERR_INVALID_PARAM = 24,
WIMLIB_ERR_INVALID_PART_NUMBER = 25,
* to match no files, and there is a flag (::WIMLIB_EXTRACT_FLAG_STRICT_GLOB) to
* enable the strict behavior if desired.
*
- * Symbolic are not be dereferenced when paths in the image are interpreted.
+ * Symbolic links are not dereferenced when paths in the image are interpreted.
*
* @param wim
* WIM from which to extract the paths, specified as a pointer to the
*
* Initialization function for wimlib. Call before using any other wimlib
* function (except possibly wimlib_set_print_errors()). If not done manually,
- * this function will be called automatically with @p init_flags set to
- * ::WIMLIB_INIT_FLAG_ASSUME_UTF8. This function does nothing if called again
- * after it has already successfully run.
+ * this function will be called automatically with a flags argument of 0. This
+ * function does nothing if called again after it has already successfully run.
*
* @param init_flags
* Bitwise OR of flags prefixed with WIMLIB_INIT_FLAG.
* @ingroup G_mounting_wim_images
*
* Same as wimlib_unmount_image(), but allows specifying a progress function.
- * If changes are committed from a read-write mount, the progress function will
- * receive ::WIMLIB_PROGRESS_MSG_WRITE_STREAMS messages.
+ * The progress function will receive a ::WIMLIB_PROGRESS_MSG_UNMOUNT_BEGIN
+ * message. In addition, if changes are committed from a read-write mount, the
+ * progress function will receive ::WIMLIB_PROGRESS_MSG_WRITE_STREAMS messages.
*/
extern int
wimlib_unmount_image_with_progress(const wimlib_tchar *dir,