697f42afdb8606f5ba431e72db065692bf61ffff |
|
15-Jul-2017 |
Elliott Hughes <enh@google.com> |
Hide various mbstate implementation details. ...by inlining them. Also fix a couple of harmless bugs in passing. I've added tests, but in both cases I don't think it was actually possible to hit the bad behavior: we'd hit another test and fail immediately after in an externally indistinguishable way. Bug: N/A Test: readelf Change-Id: I8466050b0bfe2b7b94c76b383cf10c1d9d28debd
|
f634655e6453e7d7ec453faa16cf4c97e4a5c630 |
|
02-Dec-2016 |
Dan Albert <danalbert@google.com> |
Fix wcsto* where strings begin with whitespace. The libc++ tests caught this. Test: adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests Bug: None Change-Id: I14864e006f6cf9de3f96acac6aa3eb235894f2b1
|
89e29ee485253ad39b8bfd514f1c3b5c3e52f98d |
|
30-Sep-2016 |
Elliott Hughes <enh@google.com> |
Fix mbsnrtowcs where `dst` is null. POSIX is its usual unintelligible self (http://pubs.opengroup.org/onlinepubs/9699919799/functions/mbsrtowcs.html), but the ISO C11 standard (7.29.6.4.1 paragraph 2) is pretty clear: *src should change if and only if dst is non-null. Bug: https://code.google.com/p/android/issues/detail?id=166381 Test: bionic tests Change-Id: Ibc631cfa5b1bf4a6f56963feba9f0eea27b07984
|
7f0849fd113691e62af0400989936d3eff151e37 |
|
27-Aug-2016 |
Elliott Hughes <enh@google.com> |
Fix sscanf/wcstod parsing of NaNs. The parsefloat routines -- which let us pass NaNs and infinities on to strto(f|d|ld) -- come from NetBSD. Also fix LP64's strtold to return a NaN, and fix all the architectures to return quiet NaNs. Also fix wcstof/wcstod/wcstold to use parsefloat so they support hex floats. Lots of new tests. Bug: http://b/31101647 Change-Id: Id7d46ac2d8acb8770b5e8c445e87cfabfde6f111
|
d61ca37d35e31cae52a543e65d3ae02044abe5d3 |
|
03-Jun-2016 |
Chih-Hung Hsieh <chh@google.com> |
Fix misc-macro-parentheses warnings in bionic/tests. Bug: 28705665 Change-Id: I532205b94e30acbdc97f3f4db0660c9a16a7de89
|
3cfb52aab2548df635e9672218cc433e14922fd3 |
|
19-Feb-2015 |
Elliott Hughes <enh@google.com> |
Add GNU extensions mempcpy and wmemcpy. Used by elfutils. On the bright side, they stopped using __mempcpy. Bug: 18374026 Change-Id: Id29bbe6ef1c5ed5a171bb6c32182f129d8332abb
|
e1f9ddaf0d314186da8b2a86e5a438f6ff204030 |
|
14-Feb-2015 |
Elliott Hughes <enh@google.com> |
Regression test for NDK bug 80199. Bionic never had this bug, but since the proposed fix is to remove the NDK's broken code, we should add a regression test here. Bug: https://code.google.com/p/android/issues/detail?id=80199 Change-Id: I4de21b5da9913cef990bc4d05a7e27562a71a02b
|
5c7d9584d90f9516fb1df0dcdf3b804139794474 |
|
14-Nov-2014 |
Christopher Ferris <cferris@google.com> |
Add missing function prototypes wcpcpy/wcpncpy. Also add smoke tests for a few of the wchar functions. Change-Id: Id1be522f55a6708564d444941f42097548f16497
|
b05ec5ae933987e6b4a4f6a318cb13e035ad33e9 |
|
23-Sep-2014 |
Elliott Hughes <enh@google.com> |
Pull in upstream fixes to reject invalid bases. Also add tests to make sure the full set works correctly. Change-Id: I3e7f237f12c9c93e1185a97c9717803e7e55a73c
|
6b841db2baa24ffcf2a4e5f975d1d07f1699b918 |
|
21-Aug-2014 |
Elliott Hughes <enh@google.com> |
Add POSIX-2008 fmemopen, open_memstream, and open_wmemstream. Bug: 17164505 Change-Id: I59e28a08ff8b6ab632230b11a5807cfd5278aeb5
|
938a8008a61ecb6e975aa974dbf30ea7e1f298e2 |
|
31-Jul-2014 |
Dan Albert <danalbert@google.com> |
Fix mbsrtowcs(3) src param for finished string. A mistake I made while cleaning this up the first time through. mbstrtowcs(3) sets the src param to null if it finishes the string. Change-Id: I6263646e25d9537043b7025fd1dd6ae195f365e2 (cherry picked from commit b6cc8e00cd562bd0f81fe44a6bc646540a862f32)
|
b6cc8e00cd562bd0f81fe44a6bc646540a862f32 |
|
31-Jul-2014 |
Dan Albert <danalbert@google.com> |
Fix mbsrtowcs(3) src param for finished string. A mistake I made while cleaning this up the first time through. mbstrtowcs(3) sets the src param to null if it finishes the string. Change-Id: I6263646e25d9537043b7025fd1dd6ae195f365e2
|
4e5860958767ecc7bc455d2a5e1d2a2096a1c79f |
|
20-Jul-2014 |
Dan Albert <danalbert@google.com> |
Fix mbsrtowcs(3)'s handling of len parameter. The len parameter is a _maximum_ length. The previous code was treating it as an exact length, causing the following typical call to fail: mbsrtowcs(out, &in, sizeof(out), state); // sizeof(out) > strlen(in) Change-Id: I48e474fd54ea5f122bc168a4d74bfe08704f28cc (cherry picked from commit 6b55ba54eff4657cffe053b71e1c9cce2944a8a9)
|
6b55ba54eff4657cffe053b71e1c9cce2944a8a9 |
|
20-Jul-2014 |
Dan Albert <danalbert@google.com> |
Fix mbsrtowcs(3)'s handling of len parameter. The len parameter is a _maximum_ length. The previous code was treating it as an exact length, causing the following typical call to fail: mbsrtowcs(out, &in, sizeof(out), state); // sizeof(out) > strlen(in) Change-Id: I48e474fd54ea5f122bc168a4d74bfe08704f28cc
|
3b9da0f99a6629d5283844922327711c985c78eb |
|
06-Jun-2014 |
Elliott Hughes <enh@google.com> |
Fix the printf family for non-ASCII. The bug here turned out to be that we hadn't increased the constant corresponding to the maximum number of bytes in a character to match our new implementation, so any character requiring more than a byte in UTF-8 would break our printf family. Bug: 15439554 (cherry picked from commit 69f05d291d848de654c72e5278de8ca06fbf5d2f) Change-Id: Ia5467e22ccb022e8d118de82291916050656147e
|
69f05d291d848de654c72e5278de8ca06fbf5d2f |
|
06-Jun-2014 |
Elliott Hughes <enh@google.com> |
Fix the printf family for non-ASCII. The bug here turned out to be that we hadn't increased the constant corresponding to the maximum number of bytes in a character to match our new implementation, so any character requiring more than a byte in UTF-8 would break our printf family. Bug: 15439554 Change-Id: I693e5e6eb11c640b5886e848502908ec5fff53b1
|
001f8f041bf21c53d4a0b919ef2c859b047bac0a |
|
04-Jun-2014 |
Dan Albert <danalbert@google.com> |
Removes wcswcs from bionic for LP64. Bug: 13935372 Change-Id: I0deb15e769da4fa81bb65a87f3c86db5163a5796
|
8bf50d5b72193d342f2c784ecbc5068d6baee114 |
|
30-May-2014 |
Christopher Ferris <cferris@google.com> |
Fix wmemmove test. I accidentally copied over the nul terminator with the test. Change-Id: I24a9aa05d4fba4f383fa38a3041bb6a6b179130c
|
6f2bde344123d8503cd60f3ecd3420f39aa24eb9 |
|
23-May-2014 |
Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org> |
Add optimized AArch64 versions of bcopy and wmemmove based on memmove Add optimized versions of bcopy and wmemmove for AArch64 based on the memmove implementation Change-Id: I82fbe8a7221ce224c567ffcfed7a94a53640fca8 Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
|
fd0ce866ce46ed62aa17dc2959a085cb3bf5755d |
|
24-May-2014 |
Christopher Ferris <cferris@google.com> |
Revert "Add optimized AArch64 versions of bcopy and wmemmove based on memmove" This reverts commit 8167dd7cb98e87ffe9b40e4993c330b244ca2234. For some reason I thought the bcopy change was bzero. The bcopy code doesn't pass our tests, so reverting until I can figure out what's wrong. Change-Id: Id89fe959ea5105cd58dff6bba8d91a30cc4bcb07
|
8167dd7cb98e87ffe9b40e4993c330b244ca2234 |
|
23-May-2014 |
Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org> |
Add optimized AArch64 versions of bcopy and wmemmove based on memmove Add optimized versions of bcopy and wmemmove for AArch64 based on the memmove implementation Change-Id: Ie43d0ff4f8ec4edba5b4fb5ccacd941f81ac6557 Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
|
caff5f2e1a1c23f70ecf529a84d4d75d2445a44a |
|
19-May-2014 |
Ben Cheng <bccheng@google.com> |
Address additional warnings found by GCC 4.9. Change-Id: If668a6eb98a6ce7b2872f528b8e3527638814f68
|
063525c61d24776094d76971f33920e2a2079530 |
|
13-May-2014 |
Elliott Hughes <enh@google.com> |
Consistently use #if defined(__BIONIC__) in tests. I've also switched some tests to be positive rather than negative, because !defined is slightly harder to reason about and there are only two cases: bionic and glibc. Change-Id: I8d3ac40420ca5aead3e88c69cf293f267273c8ef
|
15a6310e4b745add324b07a5d3d297aa95a56f59 |
|
08-May-2014 |
Calin Juravle <calin@google.com> |
Support mb sequences across calls to mb*to*wcs* functions Bug: 13077905 Change-Id: I5abdc7cc3c27c109b7900c94b112f18a95c35763
|
a5c6b2ecb55afd75630cbe38dd2b88172cfa304d |
|
08-May-2014 |
Yongqin Liu <yongqin.liu@linaro.org> |
wchar_test.cpp: fix error between comparison signed and unsigned integer when compile the cts package with aarch64 gcc4.9, will get following error: bionic/tests/wchar_test.cpp:253:3: required from here external/gtest/include/gtest/gtest.h:1448:16: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare] this change fix it by using static_cast<wchar_t> as suggested by Calin Juravle Change-Id: I7fb9506e7b84b8a12b9d003458d4f0e78554c3cd Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
|
efaa461bd67cfdfcbc2b4c6b69805bc5b929ae05 |
|
03-May-2014 |
Elliott Hughes <enh@google.com> |
Use the OpenBSD wcsftime. Change-Id: I81929355d245ba1e58b4a464ca6cf45915e0238e
|
f83e644e2c8ea041d5864c25d0aa40cff579d2f7 |
|
02-May-2014 |
Elliott Hughes <enh@google.com> |
Fix wchar.cpp MIPS narrowing conversion build failure. Change-Id: Id9103c78958d60337dbdb807b11256c1b31c632a
|
5a0aa3dee247a313f04252cf45608097695d5953 |
|
01-May-2014 |
Elliott Hughes <enh@google.com> |
Switch to a working UTF-8 mb/wc implementation. Although glibc gets by with an 8-byte mbstate_t, OpenBSD uses 12 bytes (of the 128 bytes it reserves!). We can actually implement UTF-8 encoding/decoding with a 0-byte mbstate_t which means we can make things work on LP32 too, as long as we accept the limitation that the caller needs to present us with a complete sequence before we'll process it. Our behavior is fine when going from characters to bytes; we just update the source wchar_t** to say how far through the input we got. I'll come back and use the 4 bytes we do have to cope with byte sequences split across multiple input buffers. The fact that we don't support UTF-8 sequences longer than 4 bytes plus the fact that the first byte of a UTF-8 sequence encodes the length means we shouldn't need the other fields OpenBSD used (at the cost of some recomputation in cases where a sequence is split across buffers). This patch also makes the minimal changes necessary to setlocale(3) to make us behave like glibc when an app requests UTF-8. (The difference being that our "C" locale is the same as our "C.UTF-8" locale.) Change-Id: Ied327a8c4643744b3611bf6bb005a9b389ba4c2f
|
3d7a0d9b08ecab054b2dff8332507644de3690b0 |
|
29-Apr-2014 |
Elliott Hughes <enh@google.com> |
Switch to the OpenBSD wcsto* functions. This replaces a partial set of non-functional functions with a complete set of functions, all of which actually work. This requires us to implement mbsnrtowcs and wcsnrtombs which completes the set of what we need for libc++. The mbsnrtowcs is basically a copy & paste of wcsnrtombs, but I'm going to go straight to looking at using the OpenBSD UTF-8 implementation rather than keep polishing our home-grown turd. (This patch also opportunistically switches us over to upstream btowc, mbrlen, and wctob, since they're all trivially expressed in terms of other functions.) Change-Id: I0f81443840de0f1aa73b96f0b51988976793a323
|
0a5e26da1eae6b75a89695faf2e057c5c4717721 |
|
29-Apr-2014 |
Elliott Hughes <enh@google.com> |
Add mbtowc and fix mbrtowc. Change-Id: I48786cd82587e61188d40f6fd6e11ac05e857ae9
|
d299bcfdad959a3a0adf1683605b15a1c3b3ab66 |
|
29-Apr-2014 |
Elliott Hughes <enh@google.com> |
Replace our broken wcswcs with the working upstream one. Change-Id: I2952684df5674d10f0564d92c2cd42597725c0e3
|
83c07b5e50207458445262ed10b79aa6b2d2d0ce |
|
22-Apr-2014 |
Elliott Hughes <enh@google.com> |
Fix WCHAR_MAX, WCHAR_MIN, WINT_MAX, and WINT_MIN. GCC tells us everything we need to know. clang does its usual half-assed job. Change-Id: Id4d664529b10345274602768cd564d3df717e931
|
1b836ee6f8e5c0f61d67c1f014819a066366ab6f |
|
18-Apr-2014 |
Elliott Hughes <enh@google.com> |
Fix a wchar.wcstombs_wcrtombs test failure. Looks like I screwed up a last-minute refactor and didn't re-run the tests. Change-Id: I90a710ae66a313a9812859650aa0b4e8c6bc57f9
|
0549371bd74ba7c7a5a16c2a7d6cc17dbe0e6f97 |
|
18-Apr-2014 |
Elliott Hughes <enh@google.com> |
Upgrade to current vfprintf. This gets us various bug fixes and missing C99 functionality. Bug: https://code.google.com/p/android/issues/detail?id=64886 Change-Id: Ie9f8ac569e9b5eec1e4a1faacfe2c21662eaf895
|
77e944fd46728075fe632bcb5211da9daf5b7e68 |
|
05-Apr-2014 |
Elliott Hughes <enh@google.com> |
Implement wctomb(3) for ltrace. This is an implementation in the style of the rest: char == byte. We might want to come back and implement UTF-8, but this is enough for ltrace. Bug: 13747066 Change-Id: Ib2b63609c9014fdef9a8491e067467c4fc5ae3cc
|