From cdc781bdfd261e20b3840a763e1322a2f4ef1cdc Mon Sep 17 00:00:00 2001 From: Xiang Xiao Date: Wed, 28 Jul 2021 22:44:44 +0800 Subject: [PATCH] libc: Implement local_t related functions since local_t isn't really implemented on NuttX, we can simply redirect to the non-locale version. Signed-off-by: Xiang Xiao --- include/ctype.h | 20 ++++++++++++++++++++ include/stdlib.h | 6 ++++++ include/string.h | 8 ++++++++ include/strings.h | 3 +++ include/time.h | 5 +++-- include/wchar.h | 8 ++++++++ include/wctype.h | 19 +++++++++++++++++++ 7 files changed, 67 insertions(+), 2 deletions(-) diff --git a/include/ctype.h b/include/ctype.h index c24c026f9bd..9b9463f3365 100644 --- a/include/ctype.h +++ b/include/ctype.h @@ -32,6 +32,26 @@ #include +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +#define isalnum_l(c, l) isalnum(c) +#define isalpha_l(c, l) isalpha(c) +#define isascii_l(c, l) isascii(c) +#define isblank_l(c, l) isblank(c) +#define iscntrl_l(c, l) iscntrl(c) +#define isdigit_l(c, l) isdigit(c) +#define isgraph_l(c, l) isgraph(c) +#define islower_l(c, l) islower(c) +#define isprint_l(c, l) isprint(c) +#define ispunct_l(c, l) ispunct(c) +#define isspace_l(c, l) isspace(c) +#define isupper_l(c, l) isupper(c) +#define isxdigit_l(c, l) isxdigit(c) +#define tolower_l(c, l) tolower(c) +#define toupper_l(c, l) toupper(c) + /**************************************************************************** * Inline Functions ****************************************************************************/ diff --git a/include/stdlib.h b/include/stdlib.h index 690b29448af..93ac5fd845a 100644 --- a/include/stdlib.h +++ b/include/stdlib.h @@ -66,6 +66,12 @@ # define environ get_environ_ptr() #endif +#define strtof_l(s, e, l) strtof(s, e) +#define strtod_l(s, e, l) strtod(s, e) +#define strtold_l(s, e, l) strtold(s, e) +#define strtoll_l(s, e, b, l) strtoll(s, e, b) +#define strtoull_l(s, e, b, l) strtoull(s, e, b) + /**************************************************************************** * Public Type Definitions ****************************************************************************/ diff --git a/include/string.h b/include/string.h index d90e1124905..ef331bd9d8d 100644 --- a/include/string.h +++ b/include/string.h @@ -35,6 +35,14 @@ #include +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +#define strcoll_l(s1, s2, l) strcoll(s1, s2) +#define strerror_l(e, l) strerror(e) +#define strxfrm_l(s1, s2, n, l) strxfrm(s1, s2, n) + /**************************************************************************** * Public Function Prototypes ****************************************************************************/ diff --git a/include/strings.h b/include/strings.h index 2ceba616420..f0c216db325 100644 --- a/include/strings.h +++ b/include/strings.h @@ -53,6 +53,9 @@ #define bzero(s,n) (void)memset(s,0,n) #endif +#define strcasecmp_l(s1, s2, l) strcasecmp(s1, s2) +#define strncasecmp_l(s1, s2, n, l) strncasecmp(s1, s2, n) + /**************************************************************************** * Inline Functions ****************************************************************************/ diff --git a/include/time.h b/include/time.h index 6bca5791024..8f045e3afee 100644 --- a/include/time.h +++ b/include/time.h @@ -91,9 +91,10 @@ #define TIME_UTC 1 -/* Redirect the timelocal */ +/* Redirect the timelocal and strftime_l */ -#define timelocal mktime +#define timelocal mktime +#define strftime_l(s, m, f, t, l) strftime(s, m, f, t) /******************************************************************************** * Public Types diff --git a/include/wchar.h b/include/wchar.h index 8883414c80b..805d4de0c0b 100644 --- a/include/wchar.h +++ b/include/wchar.h @@ -65,6 +65,14 @@ # define NULL ((FAR void *)0) #endif +#define wcsftime_l(s, m, f, t, l) wcsftime(s, m, f, t) +#define wcscasecmp_l(s1, s2, l) wcscasecmp(s1, s2) +#define wcsncasecmp_l(s1, s2, n, l) wcsncasecmp(s1, s2, n) +#define wcscoll_l(s1, s2, l) wcscoll(s1, s2) +#define wcstold_l(s, e, l) wcstold(s, e) +#define wcstoull_l(s, e, l) wcstoull(s, e) +#define wcsxfrm_l(s1, s2, n, l) wcsxfrm(s1, s2, n) + /**************************************************************************** * Type Definitions ****************************************************************************/ diff --git a/include/wctype.h b/include/wctype.h index ec619cdbc6d..6336292b88e 100644 --- a/include/wctype.h +++ b/include/wctype.h @@ -52,6 +52,25 @@ #define WC_UPPER 11 #define WC_XDIGIT 12 +#define iswalnum_l(c, l) iswalnum(c) +#define iswalpha_l(c, l) iswalpha(c) +#define iswblank_l(c, l) iswblank(c) +#define iswcntrl_l(c, l) iswcntrl(c) +#define iswdigit_l(c, l) iswdigit(c) +#define iswgraph_l(c, l) iswgraph(c) +#define iswlower_l(c, l) iswlower(c) +#define iswprint_l(c, l) iswprint(c) +#define iswpunct_l(c, l) iswpunct(c) +#define iswspace_l(c, l) iswspace(c) +#define iswupper_l(c, l) iswupper(c) +#define iswxdigit_l(c, l) iswxdigit(c) +#define iswctype_l(c, d, l) iswctype(c, d) +#define towlower_l(c, l) towlower(c) +#define towupper_l(c, l) towupper(c) +#define towctrans_l(c, d, l) towctrans(c, d) +#define wctrans_l(p, l) wctrans(p) +#define wctype_l(p, l) wctype(p) + /**************************************************************************** * Public Types ****************************************************************************/