platform_bionic/libc/bionic
Dan Albert 3a8fed1ac3 Fix mismatched return types for surrogate pairs.
We've had these backward all this time. The relevant quote is in a
code comment in the implementation, but the first call after
completely decoding a code point that requires a surrogate pair should
return the number of bytes decoded by the most recent call, and the
second call should return -3 (if only C had given those some named
constants that might have been more obviously wrong).

Bug: https://issuetracker.google.com/289419882
Test: Fixed the test, tests run against glibc and musl to confirm
Change-Id: Idabf01075b1cad35b604ede8d676d6f0b1dc91e6
2023-08-04 19:48:35 +00:00
..
__bionic_get_shell_path.cpp system(3) uses /bin/sh when built for host 2020-10-26 22:02:53 +09:00
__cmsg_nxthdr.cpp Modernize codebase by replacing NULL with nullptr 2018-08-02 18:09:44 -07:00
__cxa_guard.cpp Remove now unneeded #undef in __cxa_guard.cpp 2019-08-07 11:10:22 -07:00
__cxa_pure_virtual.cpp Move libc_log code into libasync_safe. 2017-05-03 08:50:43 -07:00
__cxa_thread_atexit_impl.cpp Fix dlclose for libraries with thread_local dtors 2018-01-10 10:24:06 +01:00
__errno.cpp Move errno to a pthread_internal_t field. 2018-12-11 12:59:23 -08:00
__gnu_basename.cpp Modernize codebase by replacing NULL with nullptr 2018-08-02 18:09:44 -07:00
__libc_current_sigrtmax.cpp Remove <signal.h> inlines for obsolete API levels. 2023-02-24 00:28:20 +00:00
__libc_current_sigrtmin.cpp Move sigrtmin.h into platform headers. 2020-01-02 14:14:15 -08:00
__libc_init_main_thread.cpp Consistently use %m rather than strerror() in logging. 2023-07-12 21:16:31 +00:00
__set_errno.cpp
__stack_chk_fail.cpp Move libc_log code into libasync_safe. 2017-05-03 08:50:43 -07:00
abort.cpp Generalize abort's inline_tgkill, use it in fdsan. 2018-08-31 16:39:23 -07:00
accept.cpp
access.cpp
android_profiling_dynamic.cpp Consistently use %m rather than strerror() in logging. 2023-07-12 21:16:31 +00:00
android_set_abort_message.cpp In android_set_abort_message, check for nullptr. 2022-04-12 13:46:48 -07:00
android_unsafe_frame_pointer_chase.cpp Add a hack for a RISC-V bug. 2022-11-11 17:12:57 +00:00
arpa_inet.cpp
assert.cpp Remove dead longjmperror. 2017-08-23 15:40:03 -07:00
atexit.cpp Consistently use %m rather than strerror() in logging. 2023-07-12 21:16:31 +00:00
atexit.h Rewrite __cxa_atexit / __cxa_finalize 2020-03-06 21:04:32 -08:00
atof.cpp Modernize codebase by replacing NULL with nullptr 2018-08-02 18:09:44 -07:00
bionic_allocator.cpp Consistently use %m rather than strerror() in logging. 2023-07-12 21:16:31 +00:00
bionic_arc4random.cpp Replace TLS_SLOT_BIONIC_PREINIT w/ shared globals 2018-12-04 13:51:56 -08:00
bionic_call_ifunc_resolver.cpp riscv64: pass a null argument to ifunc resolvers. 2023-07-31 19:34:38 +00:00
bionic_elf_tls.cpp Remove PAGE_SIZE call sites. 2023-06-12 10:59:39 -07:00
bionic_futex.cpp Support priority inheritance mutex in 64bit programs. 2018-01-24 16:11:07 -08:00
bionic_netlink.cpp Add the ScopedFd that we've never quite gotten around to. 2019-10-31 21:16:18 -07:00
bionic_netlink.h Add the ScopedFd that we've never quite gotten around to. 2019-10-31 21:16:18 -07:00
bionic_systrace.cpp Fix recursive deadlock inside bionic_systrace 2022-01-25 20:50:12 +00:00
bionic_time_conversions.cpp Always use CLOCK_MONOTONIC for pthreads and semaphores 2017-08-18 09:11:05 -07:00
brk.cpp Modernize codebase by replacing NULL with nullptr 2018-08-02 18:09:44 -07:00
c16rtomb.cpp Optimize the mbs fast path slightly. 2021-11-16 11:03:19 -08:00
c32rtomb.cpp Make multibyte result constants public. 2023-08-04 19:48:35 +00:00
chmod.cpp
chown.cpp
clearenv.cpp Modernize codebase by replacing NULL with nullptr 2018-08-02 18:09:44 -07:00
clock.cpp clock: buff our coverage numbers slightly. 2020-05-29 15:36:16 -07:00
clock_getcpuclockid.cpp
clock_nanosleep.cpp Remove the ___ hack. 2019-06-19 15:38:42 -07:00
clone.cpp Move bionic_macros.h from private to platform. 2020-01-02 14:09:50 -08:00
ctype.cpp <ctype.h>: inline the ASCII functions. 2020-02-05 08:18:51 -08:00
dirent.cpp Modernize codebase by replacing NULL with nullptr 2018-08-02 18:09:44 -07:00
dl_iterate_phdr_static.cpp Add additional dl_phdr_info fields 2019-08-22 12:43:17 -07:00
dup.cpp Add a tool to track down fd leaks. 2020-01-30 13:55:10 -08:00
empty_android_ids.h getgrnam, getgrgid, getpwnam, getpwuid for host 2020-10-29 07:52:54 +09:00
environ.cpp Mark __BIONIC_WEAK_FOR_NATIVE_BRIDGE symbols 2017-10-27 10:01:46 +02:00
error.cpp Modernize codebase by replacing NULL with nullptr 2018-08-02 18:09:44 -07:00
ether_aton.c
ether_ntoa.c
eventfd.cpp fdtrack: add wrapper for eventfd. 2020-04-29 17:21:16 -07:00
exec.cpp Make fork equivalent to vfork when HWASan or MTE stack tagging is enabled. 2023-05-08 15:26:00 -07:00
execinfo.cpp Add execinfo functionality. 2021-10-20 21:53:07 +00:00
exit.cpp Make fork equivalent to vfork when HWASan or MTE stack tagging is enabled. 2023-05-08 15:26:00 -07:00
faccessat.cpp Document more clearly that we don't plan on using faccessat2(2). 2021-06-25 09:16:18 -07:00
fchmod.cpp Remove the ___ hack. 2019-06-19 15:38:42 -07:00
fchmodat.cpp Add the ScopedFd that we've never quite gotten around to. 2019-10-31 21:16:18 -07:00
fcntl.cpp fcntl: remove some duplication, fix a bug. 2022-12-02 02:56:50 +00:00
fdsan.cpp Consistently use %m rather than strerror() in logging. 2023-07-12 21:16:31 +00:00
fdtrack.cpp Disable fdtrack post-fork. 2021-04-07 19:00:45 -07:00
ffs.cpp Add ffsl(3), ffsll(3). 2020-03-26 11:43:05 -07:00
fgetxattr.cpp Improve <sys/xattr.h> coverage. 2021-03-08 14:09:43 -08:00
flistxattr.cpp Improve <sys/xattr.h> coverage. 2021-03-08 14:09:43 -08:00
fork.cpp Disable fdtrack post-fork. 2021-04-07 19:00:45 -07:00
fortify.cpp Increase the implementation of __memcpy_chk assembly 2023-03-21 02:05:14 +00:00
fpclassify.cpp Remove some legacy declarations from <math.h>. 2017-10-19 14:15:31 -07:00
fsetxattr.cpp Remove the ___ hack. 2019-06-19 15:38:42 -07:00
ftruncate.cpp
fts.c Export fts as a static library for use with musl 2021-09-08 15:53:10 -07:00
ftw.cpp Fix various ftw/nftw "shall fail"s from POSIX. 2018-05-08 15:20:07 -07:00
futimens.cpp Modernize codebase by replacing NULL with nullptr 2018-08-02 18:09:44 -07:00
get_device_api_level.cpp Add android_get_device_api_level. 2018-09-06 14:19:46 -07:00
getauxval.cpp Changes for #inclusivefixit. 2020-07-21 16:34:58 -07:00
getcwd.cpp Modernize codebase by replacing NULL with nullptr 2018-08-02 18:09:44 -07:00
getdomainname.cpp
getentropy.cpp Add the ScopedFd that we've never quite gotten around to. 2019-10-31 21:16:18 -07:00
gethostname.cpp Various coverage improvements. 2020-08-12 15:52:14 -07:00
getloadavg.cpp Add getloadavg(3). 2018-10-23 11:23:00 -07:00
getpagesize.cpp Remove PAGE_SIZE call sites. 2023-06-12 10:59:39 -07:00
getpgrp.cpp
getpid.cpp Introduce api to track fd ownership in libc. 2018-07-19 14:28:54 -07:00
getpriority.cpp
gettid.cpp Shave another uninteresting stack frame off aborts. 2017-06-20 14:58:16 -07:00
grp_pwd.cpp getgrnam, getgrgid, getpwnam, getpwuid for host 2020-10-29 07:52:54 +09:00
grp_pwd_file.cpp getgrnam, getgrgid, getpwnam, getpwuid for host 2020-10-29 07:52:54 +09:00
grp_pwd_file.h getgrnam, getgrgid, getpwnam, getpwuid for host 2020-10-29 07:52:54 +09:00
gwp_asan_wrappers.cpp Revert "Add debug logging for memtag level" 2023-05-17 20:59:14 +00:00
gwp_asan_wrappers.h [GWP-ASan] Provide runtime configuration through an env var + sysprop. 2022-04-20 11:26:00 -07:00
heap_tagging.cpp [HWASan] add comment to explain why we can use __has_feature 2023-06-22 14:56:18 -07:00
heap_tagging.h Allow init to upgrade MTE to sync. 2022-08-10 10:11:08 -07:00
heap_zero_init.cpp [MemInit] Remove old API, introduce new MemInit API. 2021-01-25 15:19:31 -08:00
heap_zero_init.h [MemInit] Remove old API, introduce new MemInit API. 2021-01-25 15:19:31 -08:00
iconv.cpp Make multibyte result constants public. 2023-08-04 19:48:35 +00:00
icu.cpp Replace libandroidicu usage in bionic with the new libicu.so available in NDK 2020-10-20 15:44:20 +01:00
icu_static.cpp Add libc_nopthread. 2017-10-16 21:31:37 -07:00
icu_wrappers.cpp Implement wcwidth(3) in terms of icu4c. 2017-07-27 17:08:24 -07:00
ifaddrs.cpp Consistently use %m rather than strerror() in logging. 2023-07-12 21:16:31 +00:00
initgroups.c
inotify_init.cpp
ioctl.cpp
isatty.c
jemalloc.h Rename iterate to malloc_iterate internally. 2019-11-08 11:49:14 -08:00
jemalloc_wrapper.cpp Add new mallopt M_LOG_STATS. 2023-06-17 00:00:02 +00:00
killpg.cpp Replace killpg. 2017-07-11 15:00:17 -07:00
langinfo.cpp
lchown.cpp
legacy_32_bit_support.cpp Add preadv2/pwritev2 wrappers. 2021-10-18 12:58:47 -07:00
lfs64_support.cpp
libc_init_common.cpp Consistently use %m rather than strerror() in logging. 2023-07-12 21:16:31 +00:00
libc_init_common.h Allow init to upgrade MTE to sync. 2022-08-10 10:11:08 -07:00
libc_init_dynamic.cpp Allow init to upgrade MTE to sync. 2022-08-10 10:11:08 -07:00
libc_init_static.cpp Consistently use %m rather than strerror() in logging. 2023-07-12 21:16:31 +00:00
libgen.cpp Modernize codebase by replacing NULL with nullptr 2018-08-02 18:09:44 -07:00
link.cpp
locale.cpp Avoid using new/delete in locale.cpp 2022-06-13 17:39:32 -07:00
lockf.cpp
lstat.cpp
malloc_common.cpp Add android_mallopt to query MTE stack state 2022-09-07 23:38:42 +00:00
malloc_common.h [GWP-ASan] Integrate GWP-ASan into bionc's malloc() (using hooks). 2020-02-10 10:51:23 -08:00
malloc_common_dynamic.cpp Plumb scudo_ring_buffer_size to debuggerd_process_info 2023-01-05 14:07:22 -08:00
malloc_common_dynamic.h [GWP-ASan] Integrate GWP-ASan into bionc's malloc() (using hooks). 2020-02-10 10:51:23 -08:00
malloc_heapprofd.cpp malloc_heapprofd: Avoid a spurious error log 2021-10-07 17:25:00 +01:00
malloc_heapprofd.h allow for heapprofd's signal to be multiplexed 2020-01-15 22:55:03 +00:00
malloc_limit.cpp [malloc dispatch] Install dispatch over the top of GWP-ASan. 2020-02-11 15:29:21 -08:00
malloc_limit.h [malloc dispatch] Install dispatch over the top of GWP-ASan. 2020-02-11 15:29:21 -08:00
malloc_tagged_pointers.h [Tagged Pointers] Point to SAC documentation in abort message. 2021-01-05 13:10:21 -08:00
mblen.cpp
mbrtoc16.cpp Fix mismatched return types for surrogate pairs. 2023-08-04 19:48:35 +00:00
mbrtoc32.cpp Make multibyte result constants public. 2023-08-04 19:48:35 +00:00
mempcpy.cpp
memset_explicit.cpp Add C23's memset_explicit(). 2022-08-10 23:36:16 +00:00
mkdir.cpp
mkfifo.cpp
mknod.cpp
mmap.cpp Remove PAGE_SIZE call sites. 2023-06-12 10:59:39 -07:00
mntent.cpp Modernize codebase by replacing NULL with nullptr 2018-08-02 18:09:44 -07:00
mremap.cpp Remove PAGE_SIZE call sites. 2023-06-12 10:59:39 -07:00
ndk_cruft.cpp More cleanup for #inclusivefixit. 2020-07-31 10:35:03 -07:00
ndk_cruft_data.cpp Optimize tolower(3)/toupper(3) from <ctype.h>. 2019-09-27 14:42:39 -07:00
net_if.cpp Add the ScopedFd that we've never quite gotten around to. 2019-10-31 21:16:18 -07:00
netdb.cpp Complete <netdb.h>. 2017-10-15 10:37:51 -07:00
NetdClient.cpp libnetd_client: support hooking sendto/sendmsg/sendmmsg too. 2019-06-20 08:32:24 -07:00
NetdClientDispatch.cpp Add a tool to track down fd leaks. 2020-01-30 13:55:10 -08:00
netinet_in.cpp
new.cpp Make our definition of std::nothrow weak. 2020-12-08 14:40:30 -08:00
nl_types.cpp
open.cpp Add a tool to track down fd leaks. 2020-01-30 13:55:10 -08:00
pathconf.cpp
pause.cpp Add sigset64_t and accompanying functions. 2018-01-30 18:47:16 -08:00
pidfd.cpp Add wrappers for pidfd_{open,getfd,send_signal}. 2021-02-25 13:55:12 -08:00
pipe.cpp fdtrack: add wrappers for pipe, pipe2. 2020-04-29 17:21:16 -07:00
poll.cpp De-pessimize SigSetConverter usage. 2023-07-19 12:20:07 -07:00
posix_fadvise.cpp
posix_fallocate.cpp
posix_madvise.cpp
posix_timers.cpp Modernize codebase by replacing NULL with nullptr 2018-08-02 18:09:44 -07:00
preadv_pwritev.cpp Add preadv2/pwritev2 wrappers. 2021-10-18 12:58:47 -07:00
pthread_atfork.cpp Move bionic_macros.h from private to platform. 2020-01-02 14:09:50 -08:00
pthread_attr.cpp Consistently use %m rather than strerror() in logging. 2023-07-12 21:16:31 +00:00
pthread_barrier.cpp
pthread_cond.cpp Remove <pthread.h> cruft. 2023-02-27 21:31:11 +00:00
pthread_create.cpp Consistently use %m rather than strerror() in logging. 2023-07-12 21:16:31 +00:00
pthread_detach.cpp Pass caller names to __pthread_internal_find for better errors. 2019-02-01 16:31:10 -08:00
pthread_equal.cpp
pthread_exit.cpp riscv64 SCS support. 2023-02-23 01:21:07 +00:00
pthread_getcpuclockid.cpp Make more pthread functions weak for native bridge 2019-09-25 16:55:47 +02:00
pthread_getschedparam.cpp Make pthread_get/setschedparam weak for native bridge 2019-04-25 16:43:24 +02:00
pthread_gettid_np.cpp Pass caller names to __pthread_internal_find for better errors. 2019-02-01 16:31:10 -08:00
pthread_internal.cpp Add an API for per-process disabling memory initialization. 2020-10-08 14:02:36 -07:00
pthread_internal.h Merge "Make fork equivalent to vfork when HWASan or MTE stack tagging is enabled." 2023-05-09 00:53:48 +00:00
pthread_join.cpp Pass caller names to __pthread_internal_find for better errors. 2019-02-01 16:31:10 -08:00
pthread_key.cpp Reorganize static TLS memory for ELF TLS 2019-01-11 15:34:22 -08:00
pthread_kill.cpp Make more pthread functions weak for native bridge 2019-09-25 16:55:47 +02:00
pthread_mutex.cpp Remove <pthread.h> cruft. 2023-02-27 21:31:11 +00:00
pthread_once.cpp
pthread_rwlock.cpp Implement new clock wait functions 2019-07-15 09:06:19 -07:00
pthread_self.cpp
pthread_setname_np.cpp Make more pthread functions weak for native bridge 2019-09-25 16:55:47 +02:00
pthread_setschedparam.cpp Make pthread_get/setschedparam weak for native bridge 2019-04-25 16:43:24 +02:00
pthread_sigqueue.cpp Make more pthread functions weak for native bridge 2019-09-25 16:55:47 +02:00
pthread_spinlock.cpp
ptrace.cpp
pty.cpp Cleanup for #inclusivefixit. 2020-07-28 12:12:20 -07:00
raise.cpp Make raise/abort work with stale cached pid/tid values. 2017-05-10 16:42:04 -07:00
rand.cpp
readlink.cpp Remove outdated _FORTIFY_SOURCE #undefs 2017-07-21 11:25:52 -07:00
realpath.cpp Reimplement realpath. 2020-01-22 18:30:50 -08:00
reboot.cpp Modernize codebase by replacing NULL with nullptr 2018-08-02 18:09:44 -07:00
recv.cpp Modernize codebase by replacing NULL with nullptr 2018-08-02 18:09:44 -07:00
recvmsg.cpp Make the atomic load explicit 2021-01-08 01:21:52 +00:00
rename.cpp Rewrite renameat(). 2022-10-04 20:13:49 +00:00
rmdir.cpp
scandir.cpp scandir: clarity improvements. 2023-03-28 22:35:24 +00:00
sched_cpualloc.c bionic: fix assorted static analyzer warnings 2017-06-28 15:03:15 -07:00
sched_cpucount.c Type of second __sched_cpucount should be "const cpu_set_t*". 2018-04-13 16:07:21 -07:00
sched_getaffinity.cpp
sched_getcpu.cpp Modernize codebase by replacing NULL with nullptr 2018-08-02 18:09:44 -07:00
scudo.h Add support for scudo svelte. 2019-12-16 16:22:55 -08:00
semaphore.cpp Stop using the __ANDROID_API_x__ constants. 2019-12-20 13:26:14 -08:00
send.cpp Modernize codebase by replacing NULL with nullptr 2018-08-02 18:09:44 -07:00
setegid.cpp
seteuid.cpp
setjmp_cookie.cpp Replace TLS_SLOT_BIONIC_PREINIT w/ shared globals 2018-12-04 13:51:56 -08:00
setpgrp.cpp
sigaction.cpp sigaction: don't call interposable symbol. 2020-05-19 18:40:50 -07:00
signal.cpp De-pessimize SigSetConverter usage. 2023-07-19 12:20:07 -07:00
sigprocmask.cpp De-pessimize SigSetConverter usage. 2023-07-19 12:20:07 -07:00
sleep.cpp sleep/usleep: switch to trivial implementations. 2019-10-28 22:25:02 -07:00
socketpair.cpp fdtrack: add wrapper for socketpair. 2020-04-29 17:21:16 -07:00
spawn.cpp De-pessimize SigSetConverter usage. 2023-07-19 12:20:07 -07:00
stat.cpp
stdlib_l.cpp Move non-locale.h APIs out of locale.cpp. 2017-07-12 12:41:47 -07:00
strchr.cpp Remove outdated _FORTIFY_SOURCE #undefs 2017-07-21 11:25:52 -07:00
strchrnul.cpp
strerror.cpp POSIX strerror_r returns an error number, not -1 2021-07-30 09:39:21 -07:00
string_l.cpp Move non-locale.h APIs out of locale.cpp. 2017-07-12 12:41:47 -07:00
strings_l.cpp Move non-locale.h APIs out of locale.cpp. 2017-07-12 12:41:47 -07:00
strnlen.c
strrchr.cpp Remove outdated _FORTIFY_SOURCE #undefs 2017-07-21 11:25:52 -07:00
strsignal.cpp Workaround string-plus-int warning 2019-02-28 15:54:58 -08:00
strtol.cpp Remove strtoq() and strtouq(). 2022-11-09 16:15:05 +00:00
strtold.cpp Remove __RENAME_LDBL. 2023-06-07 17:20:53 +00:00
swab.cpp Make swab(3) inline prior to API 28. 2020-08-07 13:10:51 -07:00
symlink.cpp
sync_file_range.cpp
sys_epoll.cpp De-pessimize SigSetConverter usage. 2023-07-19 12:20:07 -07:00
sys_msg.cpp Remove dead code. 2020-02-13 22:25:02 -08:00
sys_sem.cpp Remove dead code. 2020-02-13 22:25:02 -08:00
sys_shm.cpp Remove dead code. 2020-02-13 22:25:02 -08:00
sys_signalfd.cpp De-pessimize SigSetConverter usage. 2023-07-19 12:20:07 -07:00
sys_statfs.cpp Support statvfs on API levels before 19. 2019-08-29 21:57:58 -07:00
sys_statvfs.cpp Remove <sys/statvfs.h> inlines for API level 19. 2023-02-22 21:58:24 +00:00
sys_thread_properties.cpp Fix bug in finding another thread's TCB. 2020-10-15 10:28:19 -04:00
sys_time.cpp
sysconf.cpp Remove PAGE_SIZE call sites. 2023-06-12 10:59:39 -07:00
sysinfo.cpp Remove PAGE_SIZE call sites. 2023-06-12 10:59:39 -07:00
syslog.cpp syslog.h: implement LOG_PERROR. 2023-05-03 14:19:40 -07:00
sysprop_helpers.cpp Revert "Add debug logging for memtag level" 2023-05-17 20:59:14 +00:00
sysprop_helpers.h Revert "Add debug logging for memtag level" 2023-05-17 20:59:14 +00:00
system.cpp Add the missing '--' to shell invocations. 2021-11-04 17:29:35 -07:00
system_property_api.cpp Revert "Revert "Make system property reads wait-free"" 2019-11-12 20:41:55 +00:00
system_property_set.cpp Consistently use %m rather than strerror() in logging. 2023-07-12 21:16:31 +00:00
tdestroy.cpp Modernize codebase by replacing NULL with nullptr 2018-08-02 18:09:44 -07:00
termios.cpp Make inline tcsetattr definition match constants. 2017-07-05 12:00:29 -07:00
thread_private.cpp Reimplement popen(3)/pclose(3). 2018-07-11 12:15:26 -07:00
threads.cpp threads.h: Add C11 thread support. 2019-04-24 09:12:29 -07:00
time.cpp <time.h>: change the new C23 TIME_ constants. 2023-05-03 15:37:46 -07:00
time64.c Bump tzcode from 2016g to 2022a*. 2022-06-07 09:59:16 +01:00
time64_config.h
time_l.cpp Sync strptime.c with upstream. 2022-12-12 20:56:12 +00:00
tmpfile.cpp Make tmpfile() respect $TMPDIR. 2023-04-18 17:11:06 -07:00
umount.cpp
unlink.cpp
usleep.cpp sleep/usleep: switch to trivial implementations. 2019-10-28 22:25:02 -07:00
utmp.cpp Reimplement our no-op utmp.h functions more simply. 2020-08-07 17:07:31 -07:00
vdso.cpp riscv64: use vdso for __riscv_hwprobe(). 2023-07-31 12:24:31 -07:00
wait.cpp Modernize codebase by replacing NULL with nullptr 2018-08-02 18:09:44 -07:00
wchar.cpp Make multibyte result constants public. 2023-08-04 19:48:35 +00:00
wchar_l.cpp Expose tzalloc()/localtime_rz()/mktime_z()/tzfree(). 2023-06-16 08:10:47 -07:00
wcstod.cpp Remove __RENAME_LDBL. 2023-06-07 17:20:53 +00:00
wctype.cpp Optimize tolower(3)/toupper(3) from <ctype.h>. 2019-09-27 14:42:39 -07:00
wcwidth.cpp Implement wcwidth(3) in terms of icu4c. 2017-07-27 17:08:24 -07:00
wmempcpy.cpp