summaryrefslogtreecommitdiff
path: root/libc/src/strings
AgeCommit message (Collapse)Author
2025-11-05[libc] Migrate ctype_utils to use char instead of int where applicable. ↵Alexey Samsonov
(#166225) Functions like isalpha / tolower can operate on chars internally. This allows us to get rid of unnecessary casts and open a way to creating wchar_t overloads with the same names (e.g. for isalpha), that would simplify templated code for conversion functions (see 315dfe5865962d8a3d60e21d1fffce5214fe54ef). Add the int->char converstion to public entrypoints implementation instead. We also need to introduce bounds check on the input argument values - these functions' behavior is unspecified if the argument is neither EOF nor fits in "unsigned char" range, but the tests we've had verified that they always return false for small negative values. To preserve this behavior, cover it explicitly.
2025-06-06[libc] Correct x86_64 architecture for string(s) tests. (#143150)lntue
2025-06-04[libc] Expand usage of libc null checks. (#116262)Aly ElAshram
Fixes #111546 --------- Co-authored-by: alyyelashram <150528548+alyyelashram@users.noreply.github.com>
2025-03-12[libc] implement `strings/str{n}casecmp_l` (#130407)Connector Switch
ref: https://pubs.opengroup.org/onlinepubs/9799919799/functions/strcasecmp_l.html This patch introduces the `strcasecmp_l` function. At present, the locale parameter is ignored, making it a stub implementation. This is consistent with how other locale-related functions, such as `islower_l`, are treated in our codebase as well as in [musl](https://github.com/bminor/musl/blob/master/src/string/strcasecmp.c) and [bionic](https://cs.android.com/android/platform/superproject/main/+/main:bionic/libc/bionic/strings_l.cpp). --------- Co-authored-by: Michael Jones <michaelrj@google.com>
2025-03-08[libc] implement `strings/ffs` (#129892)Connector Switch
This patch adds the `strings/ffs` function. ref: https://pubs.opengroup.org/onlinepubs/9799919799/functions/ffs.html Closes: #122054.
2024-12-10[libc] move bcmp, bzero, bcopy, index, rindex, strcasecmp, strncasecmp to ↵Nick Desaulniers
strings.h (#118899) docgen relies on the convention that we have a file foo.cpp in libc/src/\<header\>/. Because the above functions weren't in libc/src/strings/ but rather libc/src/string/, docgen could not find that we had implemented these. Rather than add special carve outs to docgen, let's fix up our sources for these 7 functions to stick with the existing conventions the rest of the codebase follows. Link: #118860 Fixes: #118875