more locale_t interfaces (string stuff) and header updates

this should be everything except for some functions where the non-_l
version isn't even implemented yet (mainly some non-ISO-C wcs*
functions).
This commit is contained in:
Rich Felker 2012-02-06 21:51:02 -05:00
parent c09b6f8ab6
commit 36bf56940a
10 changed files with 63 additions and 0 deletions

View File

@ -13,6 +13,11 @@ extern "C" {
#endif
#define __NEED_size_t
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
#define __NEED_locale_t
#endif
#include <bits/alltypes.h>
void *memcpy (void *, const void *, size_t);
@ -57,6 +62,9 @@ size_t strnlen (const char *, size_t);
char *strdup (const char *);
char *strndup (const char *, size_t);
char *strsignal(int);
char *strerror_l (int, locale_t);
int strcoll_l (const char *, const char *, locale_t);
size_t strxfrm_l (char *, const char *, size_t, locale_t);
#endif
#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)

View File

@ -7,6 +7,7 @@ extern "C" {
#define __NEED_size_t
#define __NEED_locale_t
#include <bits/alltypes.h>
@ -22,6 +23,9 @@ char *rindex (const char *, int);
int strcasecmp (const char *, const char *);
int strncasecmp (const char *, const char *, size_t);
int strcasecmp_l (const char *, const char *, locale_t);
int strncasecmp_l (const char *, const char *, size_t, locale_t);
#ifdef __cplusplus
}
#endif

View File

@ -23,6 +23,7 @@ extern "C" {
#define __NEED_clockid_t
#define __NEED_timer_t
#define __NEED_pid_t
#define __NEED_locale_t
#endif
#include <bits/alltypes.h>
@ -58,6 +59,8 @@ char *ctime (const time_t *);
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
size_t strftime_l (char *, size_t, const char *, const struct tm *, locale_t);
struct tm *gmtime_r (const time_t *, struct tm *);
struct tm *localtime_r (const time_t *, struct tm *);
char *asctime_r (const struct tm *, char *);

View File

@ -0,0 +1,7 @@
#include <locale.h>
#include <langinfo.h>
char *nl_langinfo_l(nl_item item, locale_t l)
{
return nl_langinfo(item);
}

View File

@ -0,0 +1,7 @@
#include <strings.h>
#include <ctype.h>
int strcasecmp_l(const char *l, const char *r, locale_t loc)
{
return strcasecmp(l, r);
}

7
src/locale/strcoll_l.c Normal file
View File

@ -0,0 +1,7 @@
#include <string.h>
#include <locale.h>
int strcoll_l(const char *l, const char *r, locale_t loc)
{
return strcoll(l, r);
}

7
src/locale/strerror_l.c Normal file
View File

@ -0,0 +1,7 @@
#include <string.h>
#include <locale.h>
char *strerror_l(int err, locale_t l)
{
return strerror(err);
}

7
src/locale/strftime_l.c Normal file
View File

@ -0,0 +1,7 @@
#include <locale.h>
#include <time.h>
size_t strftime_l(char *s, size_t n, const char *f, const struct tm *tm, locale_t l)
{
return strftime(s, n, f, tm);
}

View File

@ -0,0 +1,7 @@
#include <strings.h>
#include <locale.h>
int strncasecmp_l(const char *l, const char *r, size_t n, locale_t loc)
{
return strncasecmp(l, r, n);
}

6
src/locale/strxfrm_l.c Normal file
View File

@ -0,0 +1,6 @@
#include <string.h>
size_t strxfrm_l(char *dest, const char *src, size_t n, locale_t l)
{
return strxfrm(dest, src, n);
}