X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Futil.c;h=728dae3f13b1c181bb5a98a619ebdd28deb3ffdc;hb=5944d11442d5df847c3393951a8563412d16e640;hp=7a101f377ee62b594e5d802882c3dd36e0951561;hpb=61db93f82eca3fe9f7676355c709c58cc425a6ad;p=wimlib diff --git a/src/util.c b/src/util.c index 7a101f37..728dae3f 100644 --- a/src/util.c +++ b/src/util.c @@ -153,9 +153,10 @@ static void wimlib_vmsg(const tchar *tag, const tchar *format, va_list va, bool perror) { -#ifndef DEBUG - if (wimlib_print_errors) { +#if !defined(ENABLE_DEBUG) + if (wimlib_print_errors) #endif + { int errno_save = errno; fflush(stdout); tfputs(tag, stderr); @@ -169,14 +170,16 @@ wimlib_vmsg(const tchar *tag, const tchar *format, T("unknown error (errno=%d)"), errno_save); } + #ifdef WIN32 + if (errno_save == EBUSY) + tstrcpy(buf, T("Resource busy")); + #endif tfprintf(stderr, T(": %"TS), buf); } tputc(T('\n'), stderr); fflush(stderr); errno = errno_save; -#ifndef DEBUG } -#endif } #endif @@ -282,6 +285,8 @@ static const tchar *error_strings[] = { [WIMLIB_ERR_FUSERMOUNT] = T("Could not execute the `fusermount' program, or it exited " "with a failure status"), + [WIMLIB_ERR_GLOB_HAD_NO_MATCHES] + = T("The provided file glob did not match any files"), [WIMLIB_ERR_ICONV_NOT_AVAILABLE] = T("The iconv() function does not seem to work. " "Maybe check to make sure the directory /usr/lib/gconv exists"), @@ -290,13 +295,14 @@ static const tchar *error_strings[] = { "resources, the WIM header, and/or the XML data"), [WIMLIB_ERR_IMAGE_NAME_COLLISION] = T("Tried to add an image with a name that is already in use"), + [WIMLIB_ERR_INSUFFICIENT_PRIVILEGES] + = T("The user does not have sufficient privileges"), [WIMLIB_ERR_INTEGRITY] = T("The WIM failed an integrity check"), [WIMLIB_ERR_INVALID_CAPTURE_CONFIG] = T("The capture configuration string was invalid"), [WIMLIB_ERR_INVALID_CHUNK_SIZE] - = T("The WIM is compressed but does not have a chunk " - "size of 32768"), + = T("The WIM chunk size was invalid"), [WIMLIB_ERR_INVALID_COMPRESSION_TYPE] = T("The WIM is compressed, but is not marked as having LZX or " "XPRESS compression"), @@ -333,12 +339,16 @@ static const tchar *error_strings[] = { = T("A string in a WIM dentry is not a valid UTF-16LE string"), [WIMLIB_ERR_IS_DIRECTORY] = T("One of the specified paths to delete was a directory"), + [WIMLIB_ERR_IS_SPLIT_WIM] + = T("The WIM is part of a split WIM, which is not supported for this operation"), [WIMLIB_ERR_LIBXML_UTF16_HANDLER_NOT_AVAILABLE] = T("libxml2 was unable to find a character encoding conversion handler " "for UTF-16LE"), [WIMLIB_ERR_LINK] = T("Failed to create a hard or symbolic link when extracting " "a file from the WIM"), + [WIMLIB_ERR_METADATA_NOT_FOUND] + = T("A required metadata resource could not be located"), [WIMLIB_ERR_MKDIR] = T("Failed to create a directory"), [WIMLIB_ERR_MQUEUE] @@ -381,17 +391,17 @@ static const tchar *error_strings[] = { [WIMLIB_ERR_RESOURCE_ORDER] = T("The components of the WIM were arranged in an unexpected order"), [WIMLIB_ERR_SET_ATTRIBUTES] - = T("Failed to set file attributes"), + = T("Failed to set attributes on extracted file"), + [WIMLIB_ERR_SET_REPARSE_DATA] + = T("Failed to set reparse data on extracted file"), [WIMLIB_ERR_SET_SECURITY] - = T("Failed to set file owner, group, or other permissions"), + = T("Failed to set file owner, group, or other permissions on extracted file"), + [WIMLIB_ERR_SET_SHORT_NAME] + = T("Failed to set short name on extracted file"), [WIMLIB_ERR_SET_TIMESTAMPS] - = T("Failed to set file timestamps"), - [WIMLIB_ERR_SPECIAL_FILE] - = T("Encountered a special file that cannot be archived"), + = T("Failed to set timestamps on extracted file"), [WIMLIB_ERR_SPLIT_INVALID] = T("The WIM is part of an invalid split WIM"), - [WIMLIB_ERR_SPLIT_UNSUPPORTED] - = T("The WIM is part of a split WIM, which is not supported for this operation"), [WIMLIB_ERR_STAT] = T("Could not read the metadata for a file or directory"), [WIMLIB_ERR_TIMEOUT] @@ -404,6 +414,8 @@ static const tchar *error_strings[] = { = T("The WIM file is marked with an unknown version number"), [WIMLIB_ERR_UNSUPPORTED] = T("The requested operation is unsupported"), + [WIMLIB_ERR_UNSUPPORTED_FILE] + = T("A file in the directory tree to archive was not of a supported type"), [WIMLIB_ERR_VOLUME_LACKS_FEATURES] = T("The volume did not support a feature necessary to complete the operation"), [WIMLIB_ERR_WIM_IS_READONLY] @@ -572,3 +584,10 @@ void print_byte_field(const u8 field[], size_t len, FILE *out) while (len--) tfprintf(out, T("%02hhx"), *field++); } + +#ifndef HAVE_MEMPCPY +void *mempcpy(void *dst, const void *src, size_t n) +{ + return memcpy(dst, src, n) + n; +} +#endif