)]}'
{
  "log": [
    {
      "commit": "697f42afdb8606f5ba431e72db065692bf61ffff",
      "tree": "900725232ca9b11d2f415544bdaea867123fbf19",
      "parents": [
        "03e9c498d4909d1f791800cae0d59db63a348328"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 14 17:00:05 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 14 17:00:05 2017 -0700"
      },
      "message": "Hide various mbstate implementation details.\n\n...by inlining them.\n\nAlso fix a couple of harmless bugs in passing. I\u0027ve added tests, but in\nboth cases I don\u0027t think it was actually possible to hit the bad behavior:\nwe\u0027d hit another test and fail immediately after in an externally\nindistinguishable way.\n\nBug: N/A\nTest: readelf\nChange-Id: I8466050b0bfe2b7b94c76b383cf10c1d9d28debd\n"
    },
    {
      "commit": "f634655e6453e7d7ec453faa16cf4c97e4a5c630",
      "tree": "ef75cd449ddf401e084a49f90bdb28109b58c6c9",
      "parents": [
        "4511a59ab461745ec8f0d520645aa88ad8390aba"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Dec 02 12:02:03 2016 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Dec 02 13:03:30 2016 -0800"
      },
      "message": "Fix wcsto* where strings begin with whitespace.\n\nThe libc++ tests caught this.\n\nTest: adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests\nBug: None\nChange-Id: I14864e006f6cf9de3f96acac6aa3eb235894f2b1\n"
    },
    {
      "commit": "89e29ee485253ad39b8bfd514f1c3b5c3e52f98d",
      "tree": "e12e4cb724035f506308849fac970a11887db661",
      "parents": [
        "cc9e9933e1b85592f96d04962b20e5051dc8ec28"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 29 17:21:43 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 29 17:26:13 2016 -0700"
      },
      "message": "Fix mbsnrtowcs where `dst` is null.\n\nPOSIX is its usual unintelligible self\n(http://pubs.opengroup.org/onlinepubs/9699919799/functions/mbsrtowcs.html),\nbut the ISO C11 standard (7.29.6.4.1 paragraph 2) is pretty clear: *src\nshould change if and only if dst is non-null.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d166381\nTest: bionic tests\nChange-Id: Ibc631cfa5b1bf4a6f56963feba9f0eea27b07984\n"
    },
    {
      "commit": "7f0849fd113691e62af0400989936d3eff151e37",
      "tree": "166fa5afeed341e2685091c89d9d8418acb66e5d",
      "parents": [
        "a2b947e0a5ff4106e36f8110232131dab1356c25"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 26 16:17:17 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 07 15:01:54 2016 -0700"
      },
      "message": "Fix sscanf/wcstod parsing of NaNs.\n\nThe parsefloat routines -- which let us pass NaNs and infinities on to\nstrto(f|d|ld) -- come from NetBSD.\n\nAlso fix LP64\u0027s strtold to return a NaN, and fix all the architectures\nto return quiet NaNs.\n\nAlso fix wcstof/wcstod/wcstold to use parsefloat so they support hex\nfloats.\n\nLots of new tests.\n\nBug: http://b/31101647\nChange-Id: Id7d46ac2d8acb8770b5e8c445e87cfabfde6f111\n"
    },
    {
      "commit": "d61ca37d35e31cae52a543e65d3ae02044abe5d3",
      "tree": "21c930e08750994a35991697790d61dd16fc4b52",
      "parents": [
        "a24cc2639f85d0b0978b18493f4f3bceebbc8ed3"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Jun 03 10:18:07 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Jun 03 10:18:07 2016 -0700"
      },
      "message": "Fix misc-macro-parentheses warnings in bionic/tests.\n\nBug: 28705665\nChange-Id: I532205b94e30acbdc97f3f4db0660c9a16a7de89\n"
    },
    {
      "commit": "3cfb52aab2548df635e9672218cc433e14922fd3",
      "tree": "eebbf162a1e5e1ed8726a9129ea17a410ebaa3ed",
      "parents": [
        "3e1b5f46c07aef5983ecf2feb1c3369b2cd200c0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 18 21:29:13 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 18 22:02:56 2015 -0800"
      },
      "message": "Add GNU extensions mempcpy and wmemcpy.\n\nUsed by elfutils. On the bright side, they stopped using __mempcpy.\n\nBug: 18374026\nChange-Id: Id29bbe6ef1c5ed5a171bb6c32182f129d8332abb\n"
    },
    {
      "commit": "e1f9ddaf0d314186da8b2a86e5a438f6ff204030",
      "tree": "14e658d45b2e519c75c66a9c4823689a5f0e7430",
      "parents": [
        "4181cc691e36546c556274d46d389d7e0cb9cfab"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Feb 14 14:11:50 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Feb 14 14:11:50 2015 -0800"
      },
      "message": "Regression test for NDK bug 80199.\n\nBionic never had this bug, but since the proposed fix is to remove the NDK\u0027s\nbroken code, we should add a regression test here.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d80199\nChange-Id: I4de21b5da9913cef990bc4d05a7e27562a71a02b\n"
    },
    {
      "commit": "5c7d9584d90f9516fb1df0dcdf3b804139794474",
      "tree": "dc637de286957d4eb9237e9a14b69cb2daa47b22",
      "parents": [
        "288fa03a5aa5ee69c321e7266cdc656d11d8c022"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Nov 13 15:48:39 2014 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Nov 13 18:56:12 2014 -0800"
      },
      "message": "Add missing function prototypes wcpcpy/wcpncpy.\n\nAlso add smoke tests for a few of the wchar functions.\n\nChange-Id: Id1be522f55a6708564d444941f42097548f16497\n"
    },
    {
      "commit": "b05ec5ae933987e6b4a4f6a318cb13e035ad33e9",
      "tree": "64f418a870ba50ccec912a11f90605418f74c844",
      "parents": [
        "8642165344217877b8a70811d19e09b584a0e10a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 23 14:53:10 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 23 14:53:10 2014 -0700"
      },
      "message": "Pull in upstream fixes to reject invalid bases.\n\nAlso add tests to make sure the full set works correctly.\n\nChange-Id: I3e7f237f12c9c93e1185a97c9717803e7e55a73c\n"
    },
    {
      "commit": "6b841db2baa24ffcf2a4e5f975d1d07f1699b918",
      "tree": "af58fa1f4b5fa777f47e9ef797c50cff964b7046",
      "parents": [
        "b6ed54076abdd337150d7a92a661247b69d26cb4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 20 16:10:49 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 20 17:03:46 2014 -0700"
      },
      "message": "Add POSIX-2008 fmemopen, open_memstream, and open_wmemstream.\n\nBug: 17164505\nChange-Id: I59e28a08ff8b6ab632230b11a5807cfd5278aeb5\n"
    },
    {
      "commit": "b6cc8e00cd562bd0f81fe44a6bc646540a862f32",
      "tree": "f4630dd8581b62020996f5f30636e593ac79c9b4",
      "parents": [
        "36bacd237de931c48714d1a8aa4aa9522283e407"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jul 31 11:31:03 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jul 31 11:31:03 2014 -0700"
      },
      "message": "Fix mbsrtowcs(3) src param for finished string.\n\nA mistake I made while cleaning this up the first time through.\nmbstrtowcs(3) sets the src param to null if it finishes the string.\n\nChange-Id: I6263646e25d9537043b7025fd1dd6ae195f365e2\n"
    },
    {
      "commit": "6b55ba54eff4657cffe053b71e1c9cce2944a8a9",
      "tree": "cec574487f5fe5c039a9b2acd90ea4dbe22e8066",
      "parents": [
        "7dd126a38ca501818b07927f310dcc0f531c0f1f"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Sun Jul 20 11:51:26 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Jul 21 11:45:48 2014 -0700"
      },
      "message": "Fix mbsrtowcs(3)\u0027s handling of len parameter.\n\nThe len parameter is a _maximum_ length. The previous code was treating\nit as an exact length, causing the following typical call to fail:\n\n    mbsrtowcs(out, \u0026in, sizeof(out), state); // sizeof(out) \u003e strlen(in)\n\nChange-Id: I48e474fd54ea5f122bc168a4d74bfe08704f28cc\n"
    },
    {
      "commit": "69f05d291d848de654c72e5278de8ca06fbf5d2f",
      "tree": "f43847693b03d7978e7234577f2d6d843f3ec356",
      "parents": [
        "8aabecf35c71a8255db259cba01005eea10485cf"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 05 20:10:09 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 05 23:19:15 2014 -0700"
      },
      "message": "Fix the printf family for non-ASCII.\n\nThe bug here turned out to be that we hadn\u0027t increased the constant\ncorresponding to the maximum number of bytes in a character to match\nour new implementation, so any character requiring more than a byte\nin UTF-8 would break our printf family.\n\nBug: 15439554\nChange-Id: I693e5e6eb11c640b5886e848502908ec5fff53b1\n"
    },
    {
      "commit": "001f8f041bf21c53d4a0b919ef2c859b047bac0a",
      "tree": "4f53609088f6d2c5a53a73b03737fdb82c8a0f38",
      "parents": [
        "e120cba31df5249b720579312e799bd1c65f8e3d"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jun 04 09:53:06 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jun 04 12:01:56 2014 -0700"
      },
      "message": "Removes wcswcs from bionic for LP64.\n\nBug: 13935372\nChange-Id: I0deb15e769da4fa81bb65a87f3c86db5163a5796\n"
    },
    {
      "commit": "8bf50d5b72193d342f2c784ecbc5068d6baee114",
      "tree": "1a7db1a8a64e8e8529f8dc161c39478706f114a3",
      "parents": [
        "d4fbb1a8617285ab1d29324308aa016377fc36f3"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 29 15:42:42 2014 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 29 15:44:34 2014 -0700"
      },
      "message": "Fix wmemmove test.\n\nI accidentally copied over the nul terminator with the test.\n\nChange-Id: I24a9aa05d4fba4f383fa38a3041bb6a6b179130c\n"
    },
    {
      "commit": "6f2bde344123d8503cd60f3ecd3420f39aa24eb9",
      "tree": "fd32dfb0c313a1d852c37450ad22bab1d232c951",
      "parents": [
        "1c4d83012fea4e6d011215bef1665cf68d2ac47c"
      ],
      "author": {
        "name": "Bernhard Rosenkraenzer",
        "email": "Bernhard.Rosenkranzer@linaro.org",
        "time": "Fri May 23 17:44:18 2014 +0200"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 23 18:49:57 2014 -0700"
      },
      "message": "Add optimized AArch64 versions of bcopy and wmemmove based on memmove\n\nAdd optimized versions of bcopy and wmemmove for AArch64 based on the\nmemmove implementation\n\nChange-Id: I82fbe8a7221ce224c567ffcfed7a94a53640fca8\nSigned-off-by: Bernhard Rosenkraenzer \u003cBernhard.Rosenkranzer@linaro.org\u003e\n"
    },
    {
      "commit": "fd0ce866ce46ed62aa17dc2959a085cb3bf5755d",
      "tree": "62e5d2aa5516f7cd82d804b7105288ede6897de2",
      "parents": [
        "8167dd7cb98e87ffe9b40e4993c330b244ca2234"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Sat May 24 01:02:22 2014 +0000"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Sat May 24 01:02:22 2014 +0000"
      },
      "message": "Revert \"Add optimized AArch64 versions of bcopy and wmemmove based on memmove\"\n\nThis reverts commit 8167dd7cb98e87ffe9b40e4993c330b244ca2234.\n\nFor some reason I thought the bcopy change was bzero. The bcopy code doesn\u0027t pass our tests, so reverting until I can figure out what\u0027s wrong.\n\nChange-Id: Id89fe959ea5105cd58dff6bba8d91a30cc4bcb07\n"
    },
    {
      "commit": "8167dd7cb98e87ffe9b40e4993c330b244ca2234",
      "tree": "8800a876d9c8866a1e76f890254d7a22d8281bfb",
      "parents": [
        "a486632e789c6db4c35f969485ebb57f503bcf48"
      ],
      "author": {
        "name": "Bernhard Rosenkraenzer",
        "email": "Bernhard.Rosenkranzer@linaro.org",
        "time": "Fri May 23 17:44:18 2014 +0200"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 23 17:54:08 2014 -0700"
      },
      "message": "Add optimized AArch64 versions of bcopy and wmemmove based on memmove\n\nAdd optimized versions of bcopy and wmemmove for AArch64 based on the\nmemmove implementation\n\nChange-Id: Ie43d0ff4f8ec4edba5b4fb5ccacd941f81ac6557\nSigned-off-by: Bernhard Rosenkraenzer \u003cBernhard.Rosenkranzer@linaro.org\u003e\n"
    },
    {
      "commit": "caff5f2e1a1c23f70ecf529a84d4d75d2445a44a",
      "tree": "3f0f50cf09a5fd34d755c06a02e544e41c4b125d",
      "parents": [
        "6c83305c9a0c43eff407f3b4a2ff10ad0be26f01"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Mon May 19 14:27:31 2014 -0700"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Mon May 19 14:27:31 2014 -0700"
      },
      "message": "Address additional warnings found by GCC 4.9.\n\nChange-Id: If668a6eb98a6ce7b2872f528b8e3527638814f68\n"
    },
    {
      "commit": "063525c61d24776094d76971f33920e2a2079530",
      "tree": "de279e25b05c43dbb06bc3ceb49f23bed3874377",
      "parents": [
        "a26dd781fe675cf94c62183da27622eb83ff6fa7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 13 11:19:57 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 13 11:19:57 2014 -0700"
      },
      "message": "Consistently use #if defined(__BIONIC__) in tests.\n\nI\u0027ve also switched some tests to be positive rather than negative,\nbecause !defined is slightly harder to reason about and there are\nonly two cases: bionic and glibc.\n\nChange-Id: I8d3ac40420ca5aead3e88c69cf293f267273c8ef\n"
    },
    {
      "commit": "15a6310e4b745add324b07a5d3d297aa95a56f59",
      "tree": "7de30694638043bf19cd6218747922364a9fc528",
      "parents": [
        "8b307e0e9843aad7e1816eb631208117df2e787b"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu May 08 14:38:35 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue May 13 00:24:25 2014 +0100"
      },
      "message": "Support mb sequences across calls to mb*to*wcs* functions\n\nBug: 13077905\nChange-Id: I5abdc7cc3c27c109b7900c94b112f18a95c35763\n"
    },
    {
      "commit": "a5c6b2ecb55afd75630cbe38dd2b88172cfa304d",
      "tree": "3cd3f255d1d1491c7b9578e057951897add71aa7",
      "parents": [
        "100168abff75f41c0179a77777f0aef622f7ed9f"
      ],
      "author": {
        "name": "Yongqin Liu",
        "email": "yongqin.liu@linaro.org",
        "time": "Thu May 08 23:21:01 2014 +0800"
      },
      "committer": {
        "name": "Yongqin Liu",
        "email": "yongqin.liu@linaro.org",
        "time": "Fri May 09 00:57:47 2014 +0800"
      },
      "message": "wchar_test.cpp: fix error between comparison signed and unsigned integer\n\nwhen compile the cts package with aarch64 gcc4.9, will get following error:\nbionic/tests/wchar_test.cpp:253:3: required from here\nexternal/gtest/include/gtest/gtest.h:1448:16:\n    error: comparison between signed and unsigned integer expressions [-Werror\u003dsign-compare]\n\nthis change fix it by using static_cast\u003cwchar_t\u003e as suggested by Calin Juravle\n\nChange-Id: I7fb9506e7b84b8a12b9d003458d4f0e78554c3cd\nSigned-off-by: Yongqin Liu \u003cyongqin.liu@linaro.org\u003e\n"
    },
    {
      "commit": "efaa461bd67cfdfcbc2b4c6b69805bc5b929ae05",
      "tree": "e6034eeddb57c9a0807453ca0322a5b7eee347e8",
      "parents": [
        "790890fd5c896a098142e0783b10fa8246462249"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 02 15:53:03 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 02 15:57:50 2014 -0700"
      },
      "message": "Use the OpenBSD wcsftime.\n\nChange-Id: I81929355d245ba1e58b4a464ca6cf45915e0238e\n"
    },
    {
      "commit": "f83e644e2c8ea041d5864c25d0aa40cff579d2f7",
      "tree": "f847bc14a278ec56aa4da1cf09c6609d913492eb",
      "parents": [
        "7da319106906ad236a0b4502cbafdd8dff7b8a39"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 01 17:14:59 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 01 17:14:59 2014 -0700"
      },
      "message": "Fix wchar.cpp MIPS narrowing conversion build failure.\n\nChange-Id: Id9103c78958d60337dbdb807b11256c1b31c632a\n"
    },
    {
      "commit": "5a0aa3dee247a313f04252cf45608097695d5953",
      "tree": "1bbc0d1e4e60717285b17b40ab155bdfbace5e37",
      "parents": [
        "9fb53dd4dbaa7633c234d9da8417827fa3d3c32f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 30 22:03:12 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 01 14:46:54 2014 -0700"
      },
      "message": "Switch to a working UTF-8 mb/wc implementation.\n\nAlthough glibc gets by with an 8-byte mbstate_t, OpenBSD uses 12 bytes (of\nthe 128 bytes it reserves!).\n\nWe can actually implement UTF-8 encoding/decoding with a 0-byte mbstate_t\nwhich means we can make things work on LP32 too, as long as we accept the\nlimitation that the caller needs to present us with a complete sequence\nbefore we\u0027ll process it.\n\nOur behavior is fine when going from characters to bytes; we just\nupdate the source wchar_t** to say how far through the input we got.\n\nI\u0027ll come back and use the 4 bytes we do have to cope with byte sequences\nsplit across multiple input buffers. The fact that we don\u0027t support\nUTF-8 sequences longer than 4 bytes plus the fact that the first byte of\na UTF-8 sequence encodes the length means we shouldn\u0027t need the other\nfields OpenBSD used (at the cost of some recomputation in cases where a\nsequence is split across buffers).\n\nThis patch also makes the minimal changes necessary to setlocale(3) to\nmake us behave like glibc when an app requests UTF-8. (The difference\nbeing that our \"C\" locale is the same as our \"C.UTF-8\" locale.)\n\nChange-Id: Ied327a8c4643744b3611bf6bb005a9b389ba4c2f\n"
    },
    {
      "commit": "3d7a0d9b08ecab054b2dff8332507644de3690b0",
      "tree": "b6c4f27e3abdd6590a452c978048ae21d934da09",
      "parents": [
        "07bab525e24725aaacd71e7cc63dfc31d48ba8a7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 29 14:46:56 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 29 14:53:11 2014 -0700"
      },
      "message": "Switch to the OpenBSD wcsto* functions.\n\nThis replaces a partial set of non-functional functions with a complete\nset of functions, all of which actually work.\n\nThis requires us to implement mbsnrtowcs and wcsnrtombs which completes\nthe set of what we need for libc++.\n\nThe mbsnrtowcs is basically a copy \u0026 paste of wcsnrtombs, but I\u0027m going\nto go straight to looking at using the OpenBSD UTF-8 implementation rather\nthan keep polishing our home-grown turd.\n\n(This patch also opportunistically switches us over to upstream btowc,\nmbrlen, and wctob, since they\u0027re all trivially expressed in terms of\nother functions.)\n\nChange-Id: I0f81443840de0f1aa73b96f0b51988976793a323\n"
    },
    {
      "commit": "0a5e26da1eae6b75a89695faf2e057c5c4717721",
      "tree": "6acf926417ef08935bfc581dc9ebadffaccdc0e8",
      "parents": [
        "0fd2e87a0cac56f772fe6fac4cd32de8a656a406"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 28 17:51:13 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 28 17:51:13 2014 -0700"
      },
      "message": "Add mbtowc and fix mbrtowc.\n\nChange-Id: I48786cd82587e61188d40f6fd6e11ac05e857ae9\n"
    },
    {
      "commit": "d299bcfdad959a3a0adf1683605b15a1c3b3ab66",
      "tree": "64549438175087f42b296e1b3143847666eb309c",
      "parents": [
        "3ac3f3fd0cab7b4ace8e15fd90ea869b26449df5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 28 16:28:51 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 28 16:46:24 2014 -0700"
      },
      "message": "Replace our broken wcswcs with the working upstream one.\n\nChange-Id: I2952684df5674d10f0564d92c2cd42597725c0e3\n"
    },
    {
      "commit": "83c07b5e50207458445262ed10b79aa6b2d2d0ce",
      "tree": "9540e1a621a0089c664a23210367f5e3e3393d24",
      "parents": [
        "f3489807af6d48f208bc796d3c9b0d83a4fd5374"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 21 18:09:46 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 21 18:09:46 2014 -0700"
      },
      "message": "Fix WCHAR_MAX, WCHAR_MIN, WINT_MAX, and WINT_MIN.\n\nGCC tells us everything we need to know. clang does its usual half-assed job.\n\nChange-Id: Id4d664529b10345274602768cd564d3df717e931\n"
    },
    {
      "commit": "1b836ee6f8e5c0f61d67c1f014819a066366ab6f",
      "tree": "95b0a2f8862ab866a65b78d7da9fe411011b79c8",
      "parents": [
        "b88da06580a22d9a1ee5a1c573c49e89207bc71b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 18 13:32:33 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 18 13:32:33 2014 -0700"
      },
      "message": "Fix a wchar.wcstombs_wcrtombs test failure.\n\nLooks like I screwed up a last-minute refactor and didn\u0027t re-run the tests.\n\nChange-Id: I90a710ae66a313a9812859650aa0b4e8c6bc57f9\n"
    },
    {
      "commit": "0549371bd74ba7c7a5a16c2a7d6cc17dbe0e6f97",
      "tree": "abc888f1515ccb74452a81472af0630a40c2d0b3",
      "parents": [
        "8da69a25b7840db23846d4bb303ef84a1775c1e1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 17 17:30:03 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 17 17:30:03 2014 -0700"
      },
      "message": "Upgrade to current vfprintf.\n\nThis gets us various bug fixes and missing C99 functionality.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d64886\nChange-Id: Ie9f8ac569e9b5eec1e4a1faacfe2c21662eaf895\n"
    },
    {
      "commit": "77e944fd46728075fe632bcb5211da9daf5b7e68",
      "tree": "078c4ed4dcd4a8d857aa948de76dec223c588e0d",
      "parents": [
        "dc5fcf3620bfc221954b3d42f459bfdcf8f48216"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 04 17:34:51 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 07 14:29:28 2014 -0700"
      },
      "message": "Implement wctomb(3) for ltrace.\n\nThis is an implementation in the style of the rest: char \u003d\u003d byte.\n\nWe might want to come back and implement UTF-8, but this is enough for ltrace.\n\nBug: 13747066\nChange-Id: Ib2b63609c9014fdef9a8491e067467c4fc5ae3cc\n"
    }
  ]
}
