diff options
Diffstat (limited to '')
-rw-r--r-- | src/assert.c | 2 | ||||
-rw-r--r-- | src/err.c | 1 | ||||
-rw-r--r-- | src/error.c | 9 | ||||
-rw-r--r-- | src/slibc-error.c | 1 | ||||
-rw-r--r-- | src/string/strerror.c | 5 | ||||
-rw-r--r-- | src/wchar/wcsspn.c | 12 |
6 files changed, 20 insertions, 10 deletions
diff --git a/src/assert.c b/src/assert.c index 8e7561a..ffd61a3 100644 --- a/src/assert.c +++ b/src/assert.c @@ -50,7 +50,7 @@ void __assert_fail(const char* expression, int errnum, const char* file, int lin tty, line, tty, tty, file, tty, tty, func, tty, - tty, expression != NULL, (expression ? expression : stderror(errnum)), tty); + tty, expression != NULL, (expression ? expression : strerror(errnum)), tty); fflush(NULL); /* Flush all streams. */ abort(); @@ -19,6 +19,7 @@ #include <error.h> #include <errno.h> #include <stdlib.h> +#include <stdarg.h> diff --git a/src/error.c b/src/error.c index eb73276..c560d2a 100644 --- a/src/error.c +++ b/src/error.c @@ -20,6 +20,9 @@ #include <stdio.h> #include <errno.h> #include <stddef.h> +#include <string.h> +#include <stdlib.h> +#include <stdarg.h> @@ -85,7 +88,7 @@ void error_at_line(int status, int errnum, const char* filename, { va_list args; va_start(args, format); - verror_at_line(status, errnu, filename, linenum, format, args); + verror_at_line(status, errnum, filename, linenum, format, args); va_end(args); } @@ -130,7 +133,7 @@ void verror_at_line(int status, int errnum, const char* filename, } fprintf(stderr, "%(: %(\033[35m%)%s%(\033[0m%): %(\033[32m%)%u%(\033[0m%)%)%(: %s%)%(: %)", - filename != NULL, tty, filename, tty, tty, filenum, tty, + filename != NULL, tty, filename, tty, tty, linenum, tty, errnum != 0, strerror(errnum) /* TODO strerror is not MT-Safe */, format != NULL); if (filename != NULL) @@ -185,5 +188,5 @@ volatile int error_one_per_line = 1; * * This is a GNU extension. */ -volatile void (*error_print_progname)(void) = NULL; +void (*volatile error_print_progname)(void) = NULL; diff --git a/src/slibc-error.c b/src/slibc-error.c index 0680751..fd103d1 100644 --- a/src/slibc-error.c +++ b/src/slibc-error.c @@ -21,6 +21,7 @@ #include <unistd.h> #include <string.h> #include <stddef.h> +#include <stdarg.h> diff --git a/src/string/strerror.c b/src/string/strerror.c index 87f3261..ccce049 100644 --- a/src/string/strerror.c +++ b/src/string/strerror.c @@ -40,7 +40,7 @@ */ char* strerror(int errnum) { - return strerror_l(errnum, CURRENT_LOCALE /* TODO not defined */); + return strerror_l(errnum, 0 /* TODO CURRENT_LOCALE, not defined */); } @@ -63,7 +63,8 @@ char* strerror(int errnum) char* strerror_l(int errnum, locale_t locale) { /* TODO implement strerror_l */ - return (void) errnum, (void) locale, NULL: + return strerror(errnum); + (void) locale; } diff --git a/src/wchar/wcsspn.c b/src/wchar/wcsspn.c index 239b863..63dc60b 100644 --- a/src/wchar/wcsspn.c +++ b/src/wchar/wcsspn.c @@ -53,12 +53,16 @@ size_t wcsspn(const wchar_t* string, const wchar_t* skipset) */ size_t wcscspn(const wchar_t* string, const wchar_t* stopset) { - size_t end = wcslen(string); - wchar_t* p; + size_t i, end = wcslen(string); + wchar_t* s; wchar_t c; while ((c = *stopset++)) - if (p = wcsnchr(string, c, end), p != NULL) - end = (size_t)(p - string); + for (i = 0, s = string; *s && (i < end); i++, s++) + if (*s == c) + { + end = (size_t)(s - string); + break; + } return end; } |