X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Futil.c;h=8f4e0c0be53756db28ef2974d43de4b1f08b8b3e;hb=1dde5fb0d809f2f5e032e4d5241d1cb15ff3eb65;hp=8bcfa2028807422302fa543c1c1dcb9c53bd763a;hpb=b1c4e6a269ae4c969060e33685db12f76a204a58;p=wimlib diff --git a/src/util.c b/src/util.c index 8bcfa202..8f4e0c0b 100644 --- a/src/util.c +++ b/src/util.c @@ -25,6 +25,8 @@ #include "wimlib_internal.h" #include "endianness.h" #include "sha1.h" +#include "timestamp.h" +#include #include @@ -49,7 +51,7 @@ void wimlib_error(const char *format, ...) va_start(va, format); errno_save = errno; - fputs("ERROR: ", stderr); + fputs("[ERROR] ", stderr); vfprintf(stderr, format, va); putc('\n', stderr); errno = errno_save; @@ -65,7 +67,7 @@ void wimlib_error_with_errno(const char *format, ...) va_start(va, format); errno_save = errno; - fputs("ERROR: ", stderr); + fputs("[ERROR] ", stderr); vfprintf(stderr, format, va); fprintf(stderr, ": %s\n", strerror(errno_save)); errno = errno_save; @@ -81,7 +83,7 @@ void wimlib_warning(const char *format, ...) va_start(va, format); errno_save = errno; - fputs("WARNING: ", stderr); + fputs("[WARNING] ", stderr); vfprintf(stderr, format, va); putc('\n', stderr); errno = errno_save; @@ -125,6 +127,8 @@ static const char *error_strings[] = { = "Tried to add an image with a name that is already in use", [WIMLIB_ERR_INTEGRITY] = "The WIM failed an integrity check", + [WIMLIB_ERR_INVALID_CAPTURE_CONFIG] + = "The capture configuration string was invalid", [WIMLIB_ERR_INVALID_CHUNK_SIZE] = "The WIM is compressed but does not have a chunk " "size of 32768", @@ -139,8 +143,12 @@ static const char *error_strings[] = { = "Tried to select an image that does not exist in the WIM", [WIMLIB_ERR_INVALID_INTEGRITY_TABLE] = "The WIM's integrity table is invalid", + [WIMLIB_ERR_INVALID_LOOKUP_TABLE_ENTRY] + = "An entry in the WIM's lookup table is invalid", [WIMLIB_ERR_INVALID_PARAM] = "An invalid parameter was given", + [WIMLIB_ERR_INVALID_RESOURCE_HASH] + = "The SHA1 message digest of a WIM resource did not match the expected value", [WIMLIB_ERR_INVALID_RESOURCE_SIZE] = "A resource entry in the WIM is invalid", [WIMLIB_ERR_LINK] @@ -259,7 +267,7 @@ static iconv_t cd_utf16_to_utf8 = (iconv_t)(-1); /* Converts a string in the UTF-16 encoding to a newly allocated string in the * UTF-8 encoding. */ char *utf16_to_utf8(const char *utf16_str, size_t utf16_len, - size_t *utf8_len_ret) + size_t *utf8_len_ret) { if (cd_utf16_to_utf8 == (iconv_t)(-1)) { cd_utf16_to_utf8 = iconv_open("UTF-8", "UTF-16LE"); @@ -421,8 +429,13 @@ const char *path_basename(const char *path) p--; /* Trailing slashes. */ - while ((p != path - 1) && *p == '/') + while (1) { + if (p == path - 1) + return ""; + if (*p != '/') + break; p--; + } while ((p != path - 1) && *p != '/') p--; @@ -503,3 +516,12 @@ void print_string(const void *string, size_t len) p++; } } + +u64 get_wim_timestamp() +{ + struct timeval tv; + gettimeofday(&tv, NULL); + return timeval_to_wim_timestamp(&tv); +} + +