]> wimlib.net Git - wimlib/blobdiff - src/util.c
More documentation updates
[wimlib] / src / util.c
index a2a50faa0614d873d8611db6fd4ee3179616d502..1df757fa165f1ba42928f862e215524434d82072 100644 (file)
@@ -3,22 +3,21 @@
  */
 
 /*
- * Copyright (C) 2010 Carl Thijssen
  * Copyright (C) 2012 Eric Biggers
  *
  * This file is part of wimlib, a library for working with WIM files.
  *
  * wimlib is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
+ * terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 3 of the License, or (at your option)
  * any later version.
  *
  * wimlib is distributed in the hope that it will be useful, but WITHOUT ANY
  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more
  * details.
  *
- * You should have received a copy of the GNU Lesser General Public License
+ * You should have received a copy of the GNU General Public License
  * along with wimlib; if not, see http://www.gnu.org/licenses/.
  */
 
@@ -51,7 +50,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;
@@ -67,7 +66,8 @@ void wimlib_error_with_errno(const char *format, ...)
 
                va_start(va, format);
                errno_save = errno;
-               fputs("ERROR: ", stderr);
+               fflush(stdout);
+               fputs("[ERROR] ", stderr);
                vfprintf(stderr, format, va);
                fprintf(stderr, ": %s\n", strerror(errno_save));
                errno = errno_save;
@@ -83,7 +83,8 @@ void wimlib_warning(const char *format, ...)
 
                va_start(va, format);
                errno_save = errno;
-               fputs("WARNING: ", stderr);
+               fflush(stdout);
+               fputs("[WARNING] ", stderr);
                vfprintf(stderr, format, va);
                putc('\n', stderr);
                errno = errno_save;
@@ -127,6 +128,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",
@@ -141,8 +144,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] 
@@ -261,7 +268,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");
@@ -423,8 +430,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--;