You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2023/09/21 06:02:31 UTC
[nuttx] 06/10: libs/libc/wchar: add the wcschr implementatioin
This is an automated email from the ASF dual-hosted git repository.
xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit 34346e38e1cde69c55ce4d5f2139e170982a8c7a
Author: guoshichao <gu...@xiaomi.com>
AuthorDate: Sat Aug 19 16:08:02 2023 +0800
libs/libc/wchar: add the wcschr implementatioin
Signed-off-by: guoshichao <gu...@xiaomi.com>
---
libs/libc/wchar/Make.defs | 2 +-
libs/libc/wchar/lib_wcschr.c | 62 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 63 insertions(+), 1 deletion(-)
diff --git a/libs/libc/wchar/Make.defs b/libs/libc/wchar/Make.defs
index 6b752d8696..500e2d6ebf 100644
--- a/libs/libc/wchar/Make.defs
+++ b/libs/libc/wchar/Make.defs
@@ -27,7 +27,7 @@ CSRCS += lib_wcscoll.c lib_wcstol.c lib_wcstoll.c lib_wcstoul.c
CSRCS += lib_wcstoull.c lib_wcstold.c lib_wcstof.c lib_wcstod.c
CSRCS += lib_swprintf.c lib_mbsnrtowcs.c lib_wcsnrtombs.c lib_mbsinit.c
CSRCS += lib_mbrlen.c lib_mbsrtowcs.c lib_wcsrtombs.c lib_wcscpy.c
-CSRCS += lib_wcscat.c lib_wcslcat.c lib_wcsncat.c lib_wcsrchr.c
+CSRCS += lib_wcscat.c lib_wcslcat.c lib_wcsncat.c lib_wcsrchr.c lib_wcschr.c
# Add the wchar directory to the build
diff --git a/libs/libc/wchar/lib_wcschr.c b/libs/libc/wchar/lib_wcschr.c
new file mode 100644
index 0000000000..5bc3dc03a1
--- /dev/null
+++ b/libs/libc/wchar/lib_wcschr.c
@@ -0,0 +1,62 @@
+/****************************************************************************
+ * libs/libc/wchar/lib_wcschr.c
+ *
+ * Copyright © 2005-2014 Rich Felker, et al.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <wchar.h>
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: wcschr
+ *
+ * Description:
+ * Locate first occurrence of character in wide string
+ *
+ * Input Parameters:
+ * s - the source wide string that to search on
+ * c - the wide character to be located.
+ *
+ * Returned Value:
+ * A pointer to the first occurrence of the wide character wc in the C
+ * wide string ws.
+ *
+ ****************************************************************************/
+
+FAR wchar_t *wcschr(FAR const wchar_t *s, wchar_t c)
+{
+ if (!c)
+ {
+ return (FAR wchar_t *)s + wcslen(s);
+ }
+
+ for (; *s && *s != c; s++);
+ return *s ? (FAR wchar_t *)s : 0;
+}