X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Ferror.c;h=cccb815f58373483f44c398bc7e4b851e3c4a6a5;hb=HEAD;hp=af212db04b3f3f117470699ae40155be88a98de2;hpb=89698ed953532a5ccbeca5414cc10873aa33af71;p=wimlib diff --git a/src/error.c b/src/error.c index af212db0..ff3d00bb 100644 --- a/src/error.c +++ b/src/error.c @@ -16,7 +16,7 @@ * details. * * You should have received a copy of the GNU Lesser General Public License - * along with this file; if not, see http://www.gnu.org/licenses/. + * along with this file; if not, see https://www.gnu.org/licenses/. */ #ifdef HAVE_CONFIG_H @@ -42,10 +42,10 @@ #include "wimlib.h" #include "wimlib/error.h" +#include "wimlib/test_support.h" #include "wimlib/util.h" #include "wimlib/win32.h" -#ifdef ENABLE_ERROR_MESSAGES bool wimlib_print_errors = false; FILE *wimlib_error_file = NULL; /* Set in wimlib_global_init() */ static bool wimlib_owns_error_file = false; @@ -68,7 +68,7 @@ wimlib_vmsg(const tchar *tag, const tchar *format, va_list va, bool perror) T("unknown error (errno=%d)"), errno_save); } - #ifdef WIN32 + #ifdef _WIN32 if (errno_save == EBUSY) tstrcpy(buf, T("Resource busy")); #endif @@ -118,7 +118,6 @@ wimlib_warning_with_errno(const tchar *format, ...) wimlib_vmsg(T("\r[WARNING] "), format, va, true); va_end(va); } -#endif /* ENABLE_ERROR_MESSAGES */ void print_byte_field(const u8 *field, size_t len, FILE *out) @@ -130,37 +129,27 @@ print_byte_field(const u8 *field, size_t len, FILE *out) WIMLIBAPI int wimlib_set_print_errors(bool show_error_messages) { -#ifdef ENABLE_ERROR_MESSAGES wimlib_print_errors = show_error_messages; -#else - if (show_error_messages) - return WIMLIB_ERR_UNSUPPORTED; -#endif return 0; } WIMLIBAPI int wimlib_set_error_file(FILE *fp) { -#ifdef ENABLE_ERROR_MESSAGES if (wimlib_owns_error_file) fclose(wimlib_error_file); wimlib_error_file = fp; wimlib_print_errors = (fp != NULL); wimlib_owns_error_file = false; return 0; -#else - return WIMLIB_ERR_UNSUPPORTED; -#endif } WIMLIBAPI int wimlib_set_error_file_by_name(const tchar *path) { -#ifdef ENABLE_ERROR_MESSAGES FILE *fp; -#ifdef __WIN32__ +#ifdef _WIN32 fp = win32_open_logfile(path); #else fp = fopen(path, "a"); @@ -170,9 +159,6 @@ wimlib_set_error_file_by_name(const tchar *path) wimlib_set_error_file(fp); wimlib_owns_error_file = true; return 0; -#else - return WIMLIB_ERR_UNSUPPORTED; -#endif } static const tchar * const error_strings[] = { @@ -181,14 +167,11 @@ static const tchar * const error_strings[] = { [WIMLIB_ERR_ALREADY_LOCKED] = T("The WIM is already locked for writing"), [WIMLIB_ERR_DECOMPRESSION] - = T("Failed to decompress compressed data"), + = T("The WIM contains invalid compressed data"), [WIMLIB_ERR_FUSE] = T("An error was returned by fuse_main()"), [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"), [WIMLIB_ERR_IMAGE_COUNT] = T("Inconsistent image count among the metadata " "resources, the WIM header, and/or the XML data"), @@ -214,8 +197,6 @@ static const tchar * const error_strings[] = { = T("An entry in the WIM's lookup table is invalid"), [WIMLIB_ERR_INVALID_METADATA_RESOURCE] = T("The metadata resource is invalid"), - [WIMLIB_ERR_INVALID_MULTIBYTE_STRING] - = T("A string was not valid in the current locale's character encoding"), [WIMLIB_ERR_INVALID_OVERLAY] = T("Conflicting files in overlay when creating a WIM image"), [WIMLIB_ERR_INVALID_PARAM] @@ -229,9 +210,9 @@ static const tchar * const error_strings[] = { [WIMLIB_ERR_INVALID_RESOURCE_HASH] = T("The SHA-1 message digest of a WIM resource did not match the expected value"), [WIMLIB_ERR_INVALID_UTF8_STRING] - = T("A string provided as input by the user was not a valid UTF-8 string"), + = T("A string was not a valid UTF-8 string"), [WIMLIB_ERR_INVALID_UTF16_STRING] - = T("A string in a WIM dentry is not a valid UTF-16LE string"), + = T("A string was not a valid UTF-16 string"), [WIMLIB_ERR_IS_DIRECTORY] = T("One of the specified paths to delete was a directory"), [WIMLIB_ERR_IS_SPLIT_WIM] @@ -240,7 +221,7 @@ static const tchar * const error_strings[] = { = 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"), + = T("The WIM does not contain image metadata; it only contains file data"), [WIMLIB_ERR_MKDIR] = T("Failed to create a directory"), [WIMLIB_ERR_MQUEUE] @@ -263,7 +244,7 @@ static const tchar * const error_strings[] = { = T("The WIM was not captured such that it can be " "applied from a pipe"), [WIMLIB_ERR_NTFS_3G] - = T("NTFS-3g encountered an error (check errno)"), + = T("NTFS-3G encountered an error (check errno)"), [WIMLIB_ERR_OPEN] = T("Failed to open a file"), [WIMLIB_ERR_OPENDIR] @@ -340,6 +321,20 @@ static const tchar * const error_strings[] = { [WIMLIB_ERR_IMAGE_HAS_MULTIPLE_REFERENCES] = T("The WIM image cannot be modified because it is currently " "referenced from multiple places"), + [WIMLIB_ERR_DUPLICATE_EXPORTED_IMAGE] + = T("The destination WIM already contains one of the source images"), + [WIMLIB_ERR_CONCURRENT_MODIFICATION_DETECTED] + = T("A file being added to a WIM image was concurrently modified"), + [WIMLIB_ERR_SNAPSHOT_FAILURE] + = T("Unable to create a filesystem snapshot"), + [WIMLIB_ERR_INVALID_XATTR] + = T("An extended attribute entry in the WIM image is invalid"), + [WIMLIB_ERR_SET_XATTR] + = T("Failed to set an extended attribute on an extracted file"), +#ifdef ENABLE_TEST_SUPPORT + [WIMLIB_ERR_IMAGES_ARE_DIFFERENT] + = T("A difference was detected between the two images being compared"), +#endif }; WIMLIBAPI const tchar *