You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by gu...@apache.org on 2021/07/30 12:43:34 UTC
[incubator-nuttx] 02/03: libc: Implement local_t related functions
This is an automated email from the ASF dual-hosted git repository.
gustavonihei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit cdc781bdfd261e20b3840a763e1322a2f4ef1cdc
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Wed Jul 28 22:44:44 2021 +0800
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 <xi...@xiaomi.com>
---
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 c24c026..9b9463f 100644
--- a/include/ctype.h
+++ b/include/ctype.h
@@ -33,6 +33,26 @@
#include <nuttx/compiler.h>
/****************************************************************************
+ * 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 690b294..93ac5fd 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 d90e112..ef331bd 100644
--- a/include/string.h
+++ b/include/string.h
@@ -36,6 +36,14 @@
#include <nuttx/b2c.h>
/****************************************************************************
+ * 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 2ceba61..f0c216d 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 6bca579..8f045e3 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 8883414..805d4de 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 ec619cd..6336292 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
****************************************************************************/