#include "config.h"
-#define MINGW_HAS_SECURE_API
-
#undef _GNU_SOURCE
/* Make sure the POSIX-compatible strerror_r() is declared, rather than the GNU
* version, which has a different return type. */
#include <unistd.h> /* for getpid() */
+#ifdef __WIN32__
+#include "win32.h"
+#endif
+
static size_t
utf16le_strlen(const utf16lechar *s)
{
tchar *tstr;
size_t tstr_nbytes;
utf16lechar *ucs = va_arg(va, utf16lechar*);
- size_t ucs_nbytes = utf16le_strlen(ucs);
- ret = utf16le_to_tstr(ucs, ucs_nbytes,
- &tstr, &tstr_nbytes);
- if (ret) {
- ret = tfprintf(fp, T("??????"));
+ if (ucs) {
+ size_t ucs_nbytes = utf16le_strlen(ucs);
+
+ ret = utf16le_to_tstr(ucs, ucs_nbytes,
+ &tstr, &tstr_nbytes);
+ if (ret) {
+ ret = tfprintf(fp, T("??????"));
+ } else {
+ ret = tfprintf(fp, T("%"TS), tstr);
+ FREE(tstr);
+ }
+ if (ret < 0)
+ return -1;
+ else
+ n += ret;
} else {
- ret = tfprintf(fp, T("%"TS), tstr);
- FREE(tstr);
+ n += tfprintf(fp, T("(null)"));
}
- if (ret < 0)
- return -1;
- else
- n += ret;
p++;
} else {
if (tputc(*p, fp) == EOF)
tfprintf(stderr, T(": %"TS), buf);
}
tputc(T('\n'), stderr);
+ fflush(stderr);
errno = errno_save;
#ifndef DEBUG
}
va_list va;
va_start(va, format);
- wimlib_vmsg(T("[ERROR] "), format, va, false);
+ wimlib_vmsg(T("\r[ERROR] "), format, va, false);
va_end(va);
}
va_list va;
va_start(va, format);
- wimlib_vmsg(T("[ERROR] "), format, va, true);
+ wimlib_vmsg(T("\r[ERROR] "), format, va, true);
va_end(va);
}
va_list va;
va_start(va, format);
- wimlib_vmsg(T("[WARNING] "), format, va, false);
+ wimlib_vmsg(T("\r[WARNING] "), format, va, false);
va_end(va);
}
va_list va;
va_start(va, format);
- wimlib_vmsg(T("[WARNING] "), format, va, true);
+ wimlib_vmsg(T("\r[WARNING] "), format, va, true);
va_end(va);
}
void wimlib_debug(const tchar *file, int line, const char *func,
const tchar *format, ...)
{
-
va_list va;
tchar buf[tstrlen(file) + strlen(func) + 30];
- tsprintf(buf, "[%"TS" %d] %s(): ", file, line, func);
+ tsprintf(buf, T("[%"TS" %d] %s(): "), file, line, func);
va_start(va, format);
wimlib_vmsg(buf, format, va, false);
= T("The WIM file is marked with an unknown version number"),
[WIMLIB_ERR_UNSUPPORTED]
= T("The requested operation is unsupported"),
+ [WIMLIB_ERR_VOLUME_LACKS_FEATURES]
+ = T("The volume did not support a feature necessary to complete the operation"),
[WIMLIB_ERR_WRITE]
= T("Failed to write data to a file"),
[WIMLIB_ERR_XML]