diff options
| -rw-r--r-- | src/errno/strerror.c | 13 | ||||
| -rw-r--r-- | src/locale/langinfo.c | 1 | ||||
| -rw-r--r-- | src/locale/strerror_l.c | 7 | ||||
| -rw-r--r-- | src/network/gai_strerror.c | 4 | ||||
| -rw-r--r-- | src/network/hstrerror.c | 4 | ||||
| -rw-r--r-- | src/regex/regerror.c | 2 | ||||
| -rw-r--r-- | src/string/strsignal.c | 5 | 
7 files changed, 23 insertions, 13 deletions
| diff --git a/src/errno/strerror.c b/src/errno/strerror.c index b5559cbe..24c94d37 100644 --- a/src/errno/strerror.c +++ b/src/errno/strerror.c @@ -1,5 +1,7 @@  #include <errno.h>  #include <string.h> +#include "locale_impl.h" +#include "libc.h"  #define E(a,b) ((unsigned char)a),  static const unsigned char errid[] = { @@ -12,7 +14,7 @@ static const char errmsg[] =  #include "__strerror.h"  ; -char *strerror(int e) +char *__strerror_l(int e, locale_t loc)  {  	const char *s;  	int i; @@ -24,5 +26,12 @@ char *strerror(int e)  	}  	for (i=0; errid[i] && errid[i] != e; i++);  	for (s=errmsg; i; s++, i--) for (; *s; s++); -	return (char *)s; +	return (char *)LCTRANS(s, LC_MESSAGES, loc); +} + +char *strerror(int e) +{ +	return __strerror_l(e, CURRENT_LOCALE);  } + +weak_alias(__strerror_l, strerror_l); diff --git a/src/locale/langinfo.c b/src/locale/langinfo.c index aa0e8de6..a1ada246 100644 --- a/src/locale/langinfo.c +++ b/src/locale/langinfo.c @@ -57,6 +57,7 @@ char *__nl_langinfo_l(nl_item item, locale_t loc)  	}  	for (; idx; idx--, str++) for (; *str; str++); +	if (cat != LC_NUMERIC && *str) str = LCTRANS(str, cat, loc);  	return (char *)str;  } diff --git a/src/locale/strerror_l.c b/src/locale/strerror_l.c deleted file mode 100644 index 765f5c69..00000000 --- a/src/locale/strerror_l.c +++ /dev/null @@ -1,7 +0,0 @@ -#include <string.h> -#include <locale.h> - -char *strerror_l(int err, locale_t l) -{ -	return strerror(err); -} diff --git a/src/network/gai_strerror.c b/src/network/gai_strerror.c index 0bf3e379..9596580e 100644 --- a/src/network/gai_strerror.c +++ b/src/network/gai_strerror.c @@ -1,4 +1,5 @@  #include <netdb.h> +#include "locale_impl.h"  static const char msgs[] =  	"Invalid flags\0" @@ -19,5 +20,6 @@ const char *gai_strerror(int ecode)  {  	const char *s;  	for (s=msgs, ecode++; ecode && *s; ecode++, s++) for (; *s; s++); -	return *s ? s : s+1; +	if (!*s) s++; +	return LCTRANS_CUR(s);  } diff --git a/src/network/hstrerror.c b/src/network/hstrerror.c index b7a6ab6c..a4d001c5 100644 --- a/src/network/hstrerror.c +++ b/src/network/hstrerror.c @@ -1,5 +1,6 @@  #define _GNU_SOURCE  #include <netdb.h> +#include "locale_impl.h"  static const char msgs[] =  	"Host not found\0" @@ -12,5 +13,6 @@ const char *hstrerror(int ecode)  {  	const char *s;  	for (s=msgs, ecode--; ecode && *s; ecode--, s++) for (; *s; s++); -	return *s ? s : s+1; +	if (!*s) s++; +	return LCTRANS_CUR(s);  } diff --git a/src/regex/regerror.c b/src/regex/regerror.c index df4afa4f..5b347cc7 100644 --- a/src/regex/regerror.c +++ b/src/regex/regerror.c @@ -1,6 +1,7 @@  #include <string.h>  #include <regex.h>  #include <stdio.h> +#include "locale_impl.h"  /* Error message strings for error codes listed in `regex.h'.  This list     needs to be in sync with the codes listed there, naturally. */ @@ -31,5 +32,6 @@ size_t regerror(int e, const regex_t *restrict preg, char *restrict buf, size_t  	const char *s;  	for (s=messages; e && *s; e--, s+=strlen(s)+1);  	if (!*s) s++; +	s = LCTRANS_CUR(s);  	return 1+snprintf(buf, size, "%s", s);  } diff --git a/src/string/strsignal.c b/src/string/strsignal.c index 905c0956..96bfe841 100644 --- a/src/string/strsignal.c +++ b/src/string/strsignal.c @@ -1,5 +1,6 @@  #include <signal.h>  #include <string.h> +#include "locale_impl.h"  #if (SIGHUP == 1) && (SIGINT == 2) && (SIGQUIT == 3) && (SIGILL == 4) \   && (SIGTRAP == 5) && (SIGABRT == 6) && (SIGBUS == 7) && (SIGFPE == 8) \ @@ -104,12 +105,12 @@ static const char strings[] =  char *strsignal(int signum)  { -	char *s = (char *)strings; +	const char *s = strings;  	signum = sigmap(signum);  	if (signum - 1U >= _NSIG-1) signum = 0;  	for (; signum--; s++) for (; *s; s++); -	return s; +	return (char *)LCTRANS_CUR(s);  } | 
