)]}'
{
  "log": [
    {
      "commit": "78289203031afc23585035c362beec10db54958d",
      "tree": "c887b848b776747f019dc1951a0c9cc74a785751",
      "parents": [
        "b89af5ed5c95ebe0466830d90eedd430593a3584"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Oct 03 03:29:38 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Oct 03 03:29:38 2017 -0500"
      },
      "message": "Workaround from Patrick Oppenlander for a bug in config2help.h that resulted\nin segfaults on newer toolchains. (That entire section is due for a rewrite.)\n"
    },
    {
      "commit": "b89af5ed5c95ebe0466830d90eedd430593a3584",
      "tree": "946632d0bceddb6209681b04480bc969d529589c",
      "parents": [
        "b542295cd8d906647e013056ab049323ce11e910"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 20 13:53:23 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun Oct 01 16:55:06 2017 -0500"
      },
      "message": "Fix xargs to obey POSIX\u0027s ARG_MAX restrictions.\n\nThis avoids \"xargs: exec echo: Argument list too long\" errors in practice.\n\nfind(1) needs to be fixed too, but that\u0027s a bit more complicated and a working\nxargs provides a workaround.\n\nBug: http://b/65818597\nTest: find /proc | strace -f -e execve ./toybox xargs echo \u003e /dev/null\n"
    },
    {
      "commit": "b542295cd8d906647e013056ab049323ce11e910",
      "tree": "8f19984606efd895da508eb68fc6dbc2e04b6232",
      "parents": [
        "eb95221609892a20cf4d15d6ee5769a082ad8026"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 25 09:59:48 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon Sep 25 13:24:58 2017 -0500"
      },
      "message": "Basic Mach-O support in file(1).\n\nThe Nexus Player build was subtly broken in that it assumed that the host was\nusing ELF. No-one noticed until a Mac user tried to flash their build, which\ncontained a Mach-O x86 binary instead of an ELF x86 binary. Hilarity ensued.\n\n(On the same day, file(1) was able to explain a mixup with an ELF hexagon\nbinary. Next time we see a Mach-O binary on an Android device, we\u0027ll be ready!)\n\nBug: http://b/66741960\n"
    },
    {
      "commit": "eb95221609892a20cf4d15d6ee5769a082ad8026",
      "tree": "5d9bf2792dadea602eb39edcfb5d24dcf8d61f49",
      "parents": [
        "d3e68149128fe4b28bf56202e87c8ec3b48c6a3b"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Thu Sep 21 15:33:01 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Thu Sep 21 15:33:01 2017 -0500"
      },
      "message": "Add #warning about musl intentionally breaking chrt.\n"
    },
    {
      "commit": "d3e68149128fe4b28bf56202e87c8ec3b48c6a3b",
      "tree": "98625c92a979c9727290954e5c91f5feb6310d94",
      "parents": [
        "f900298d7932af7930da362b0d5b92fef5545b01"
      ],
      "author": {
        "name": "Zach Riggle",
        "email": "zachriggle@users.noreply.github.com",
        "time": "Wed Sep 13 12:15:45 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sat Sep 16 11:53:49 2017 -0500"
      },
      "message": "Fix URL typo\n"
    },
    {
      "commit": "f900298d7932af7930da362b0d5b92fef5545b01",
      "tree": "0db170282fe687744639e98eb23f492e3ab4f69c",
      "parents": [
        "7f2b0ceabdf5121bb2f502e93e1ed6c738493d51"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sat Sep 09 22:05:10 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sat Sep 09 22:05:10 2017 -0500"
      },
      "message": "Last commit used xstrtod(), forgot to check it in.\n"
    },
    {
      "commit": "7f2b0ceabdf5121bb2f502e93e1ed6c738493d51",
      "tree": "d79eee6d2d6659c815bab9d742ae2c5f20561fbf",
      "parents": [
        "5f6850fa5eccca80cd446593a21edc462a1dfad1"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sat Sep 09 21:35:19 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sat Sep 09 21:35:19 2017 -0500"
      },
      "message": "Redo/add seq precision logic.\n\nJosh Gao hit a case where \"seq 1000000 1000001\" output 1e+06, and while he\nwas there changed several things to work like existing seq implementations.\nI changed a couple back (commenting out the test cases) until somebody\ncame come up with a reason (or existing use case) to do it that way.\n"
    },
    {
      "commit": "5f6850fa5eccca80cd446593a21edc462a1dfad1",
      "tree": "cab75e93589d751c0638a716fa9b810d733dc189",
      "parents": [
        "b9613842c3ac1a874b56dff4d1f8ce80c2dbab9d"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Wed Sep 06 06:12:09 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Wed Sep 06 06:12:09 2017 -0500"
      },
      "message": "Tighten up wc -m tests (which no longer depend on $LANG).\n"
    },
    {
      "commit": "b9613842c3ac1a874b56dff4d1f8ce80c2dbab9d",
      "tree": "8aca598bae078a1fa8c3fbe66884a640c05bd6e7",
      "parents": [
        "b3e70932b6534e603b03d28c45133b8f991f48fe"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Sep 05 21:04:43 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Sep 05 21:04:43 2017 -0500"
      },
      "message": "Replace remaining mb*towc() calls with utf8towc().\n"
    },
    {
      "commit": "b3e70932b6534e603b03d28c45133b8f991f48fe",
      "tree": "da3eff855103f5efd8ae82302bcd8b941c3611c7",
      "parents": [
        "6e766936396e2da7fb3820cadb3a9ae823caa9a8"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Sep 05 02:36:24 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Sep 05 02:36:24 2017 -0500"
      },
      "message": "Tweak utf8towc() to return -1 earlier sometimes (instead of -2), and add test\nprogram to compare against libc output.\n"
    },
    {
      "commit": "6e766936396e2da7fb3820cadb3a9ae823caa9a8",
      "tree": "2f451efca683de7858d201fb8de7b3719f7429df",
      "parents": [
        "67ddade3373d0fefeff25b48430e5f08c3a7711b"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sat Sep 02 20:40:24 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sat Sep 02 20:40:24 2017 -0500"
      },
      "message": "utf8towc() has to be in lib.c if strlower() is going to use it, because\nscripts/*.c builds against lib.c but not linestack.c.\n"
    },
    {
      "commit": "67ddade3373d0fefeff25b48430e5f08c3a7711b",
      "tree": "ead8c34b2a28655eef456b0afa104a438cae2a02",
      "parents": [
        "bebf14cc298eb41d8e5c245e3800aea69ecca08c"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sat Sep 02 18:15:09 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sat Sep 02 18:15:09 2017 -0500"
      },
      "message": "In wc, replace mbrtowc() with new utf8towc() which doesn\u0027t have a context struct\nor care about locale.\n"
    },
    {
      "commit": "bebf14cc298eb41d8e5c245e3800aea69ecca08c",
      "tree": "05d7c9dc75befb23cc954e6f39d154c8025eedc2",
      "parents": [
        "709a44246456a49c06d73dfbe84daa5b4ba5fec5"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Thu Aug 31 16:50:27 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Thu Aug 31 16:50:27 2017 -0500"
      },
      "message": "Another try at fixing the ps segfault resulting from /proc entries vanishing\nout from under us due to asyncronous process exit.\n\nThe directory we\u0027re traversing vanishing can result in DIRTREE_ABORTVAL\nbeing returned, which we turn into a NUL entry, but then we were trying to\nlook at that null entry\u0027s children. Oops.\n"
    },
    {
      "commit": "709a44246456a49c06d73dfbe84daa5b4ba5fec5",
      "tree": "c561a059c45eeebbeac20fe3f6088384373d6c7b",
      "parents": [
        "138915a0d75c9b8c8d5e0b0d168091277b68c350"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 22 14:03:45 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Wed Aug 23 02:21:54 2017 -0500"
      },
      "message": "Fix iconv build and add trivial test.\n"
    },
    {
      "commit": "138915a0d75c9b8c8d5e0b0d168091277b68c350",
      "tree": "1ecda1e97fd67ff9189c567da6fb2f95d3cafbe3",
      "parents": [
        "9bde24520215737f8706e911fcc7283f04185b66"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Thu Aug 17 21:50:27 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Thu Aug 17 21:50:27 2017 -0500"
      },
      "message": "lsof cleanup.\n"
    },
    {
      "commit": "9bde24520215737f8706e911fcc7283f04185b66",
      "tree": "a02f3fcb4d9d5d6b6cc48027971d845ed836c645",
      "parents": [
        "ec306e9244ffb5b6dfc82c0ef8a10be52d0e21e8"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun Aug 06 20:42:34 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun Aug 06 20:42:34 2017 -0500"
      },
      "message": "Check for .git before setting GITHASH.\n\nThe GITHASH problem was building a tarball version under an existing git repo,\nwhere git describe found ../../../../.git so only call git if we have a .git\ndirectory in the source.\n"
    },
    {
      "commit": "ec306e9244ffb5b6dfc82c0ef8a10be52d0e21e8",
      "tree": "0721af704041efefa06393fd0170aeb2b2a4e88a",
      "parents": [
        "94a898150d5e1fbb89ec46ba56a8600be954a809"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sat Aug 05 20:12:57 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sat Aug 05 20:12:57 2017 -0500"
      },
      "message": "Allow GITHASH to be set on the command line, to work around a yocto bug.\n"
    },
    {
      "commit": "94a898150d5e1fbb89ec46ba56a8600be954a809",
      "tree": "6a976472496ba67b2933aa7b544ddf7383adcbd6",
      "parents": [
        "105595524ead12dbbc03da683042960b8cbba072"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 03 17:13:20 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Fri Aug 04 03:01:22 2017 -0500"
      },
      "message": "Don\u0027t unnecessarily use printf in wc.test when echo will do.\n\n(And is much faster if your shell doesn\u0027t have a builtin printf.)\n"
    },
    {
      "commit": "105595524ead12dbbc03da683042960b8cbba072",
      "tree": "12f50286b5aa6e9f2c3f467245e8e80c1ab3a365",
      "parents": [
        "cd64fbd192ba304ea8b94c5192bd8b613dd96834"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Jul 25 15:13:16 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Jul 25 15:13:16 2017 -0500"
      },
      "message": "Test that our rm -rf can zap chmod 000 directories. (Skip test on host\nbecause ubuntu\u0027s can\u0027t.)\n"
    },
    {
      "commit": "cd64fbd192ba304ea8b94c5192bd8b613dd96834",
      "tree": "f3870bb519a9e8c08bdaace7439335a0549d4c72",
      "parents": [
        "6e2ef60264d99022ed2a435b09e1fcf4f6bac178"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun Jul 23 14:32:27 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun Jul 23 14:32:27 2017 -0500"
      },
      "message": "Add basic env.test\n"
    },
    {
      "commit": "6e2ef60264d99022ed2a435b09e1fcf4f6bac178",
      "tree": "1670289a0df9011a73ce0b6212bd38b08581a596",
      "parents": [
        "da230831caf80a2bb781783d4289328cd1ab19ca"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sat Jul 22 17:00:11 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sat Jul 22 17:00:11 2017 -0500"
      },
      "message": "testcmd should only use absolute path to command when not doing TEST_HOST.\n"
    },
    {
      "commit": "da230831caf80a2bb781783d4289328cd1ab19ca",
      "tree": "d3c8430a08ea3c9be90c3672351d448b7899fd43",
      "parents": [
        "67bf48c1cb3ed55249c27e6f02f5c938b20e027d"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sat Jul 22 16:44:00 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sat Jul 22 16:44:00 2017 -0500"
      },
      "message": "Typo (env -0 was checking the flag wrong).\n"
    },
    {
      "commit": "67bf48c1cb3ed55249c27e6f02f5c938b20e027d",
      "tree": "c11174ecd9eaf81ed92499d16c48d5b2ec4ef486",
      "parents": [
        "8d6d9bf4f1a3caa0decb058dece8c4b4bd463e4a"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jun 09 10:51:18 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Fri Jul 21 13:43:29 2017 -0500"
      },
      "message": "netcat: make -l exit after handling a request.\n\nBug: http://b/62305466\n"
    },
    {
      "commit": "8d6d9bf4f1a3caa0decb058dece8c4b4bd463e4a",
      "tree": "f048f6045eda683c1a9fcb9120775a322fce9472",
      "parents": [
        "e3993eb9ed8e2d5015702400bc2ce9dd6ffa4f2a"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon Jul 17 05:37:05 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon Jul 17 05:37:05 2017 -0500"
      },
      "message": "typo\n"
    },
    {
      "commit": "e3993eb9ed8e2d5015702400bc2ce9dd6ffa4f2a",
      "tree": "85c906bdc9a93030472f457e23e7c0eccd81459f",
      "parents": [
        "92b6026fa55eb1a6d76dfa549e173fc7b863dda5"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon Jul 17 05:24:34 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon Jul 17 05:24:34 2017 -0500"
      },
      "message": "Redo ping plumbing. Actual ping part isn\u0027t there yet because kernel weirdness.\n"
    },
    {
      "commit": "92b6026fa55eb1a6d76dfa549e173fc7b863dda5",
      "tree": "93d148eee63cb4aea260f3faad60ba60b75fe43e",
      "parents": [
        "d4adb3f8e2ec39674e34ed518983ed6e85560c91"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon Jul 17 05:23:45 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon Jul 17 05:23:45 2017 -0500"
      },
      "message": "Split out xgetaddrinfo() from xconnect()\n"
    },
    {
      "commit": "d4adb3f8e2ec39674e34ed518983ed6e85560c91",
      "tree": "9ef31b4338b81ae98664e73bac0e268738538336",
      "parents": [
        "58fea0ea98ed7145f15acc851b8dbaa17e111ebd"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Jul 11 05:17:35 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Jul 11 05:17:35 2017 -0500"
      },
      "message": "Don\u0027t remove \"remount\" from the option list during early parsing, the mount\nflag doesn\u0027t get set right otherwise and it tries to overmount instead.\n"
    },
    {
      "commit": "58fea0ea98ed7145f15acc851b8dbaa17e111ebd",
      "tree": "9cdb9e7462f22511630e4338e4a4138d9c5cd5d7",
      "parents": [
        "d1e85b9c4688c52a5c97dfe097fb932f0c7c3bbd"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Jul 11 05:16:09 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Jul 11 05:16:09 2017 -0500"
      },
      "message": "comma_scan()\u0027s clean option wasn\u0027t removing entry at end of list.\n"
    },
    {
      "commit": "d1e85b9c4688c52a5c97dfe097fb932f0c7c3bbd",
      "tree": "eae7604737472e8b3330ad5ed48b73d9ce8eebc8",
      "parents": [
        "352efdf18d98be859d19bbae2cd2732d2b7f01cf"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun Jul 09 02:13:00 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun Jul 09 02:13:00 2017 -0500"
      },
      "message": "dd cleanup: binary search is overkill, eliminate struct pair,\nsimplify strstarteq, use local variable \"conv\" instead of toys.optargs.\n"
    },
    {
      "commit": "352efdf18d98be859d19bbae2cd2732d2b7f01cf",
      "tree": "2af6bdf89b3e8fe3b523879aa3d827a58e7b76f6",
      "parents": [
        "61d0115171681e63366e1321c03ba0ad2d904f6f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 07 13:06:36 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun Jul 09 01:55:17 2017 -0500"
      },
      "message": "Fix -Wformat compiler warning in expr.c.\n\nAndroid forces -Wformat on for all source.\n\n  toys/pending/expr.c:116:28: warning: field precision should have type \u0027int\u0027,\n                                       but argument has type \u0027long\u0027 [-Wformat]\n      ret-\u003es \u003d xmprintf(\"%.*s\", m[1].rm_eo-m[1].rm_so, target+m[1].rm_so);\n                         ~~^~   ~~~~~~~~~~~~~~~~~~~~~\n"
    },
    {
      "commit": "61d0115171681e63366e1321c03ba0ad2d904f6f",
      "tree": "7adae9c97fdfdc8c47e2a28e29db65791c2b7ea4",
      "parents": [
        "1ae3703a9faa7165ebc46dbf80895971ca64a004"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Fri Jul 07 16:36:45 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Fri Jul 07 16:36:45 2017 -0500"
      },
      "message": "Posix says strings should only output hits that end with NUL or newline.\nWe don\u0027t currently do that, but a test suite checking that we don\u0027t\ndo that is requiring us to violate posix to pass it.\n"
    },
    {
      "commit": "1ae3703a9faa7165ebc46dbf80895971ca64a004",
      "tree": "1cb410550a931723f496421ac4395ae44f2defe1",
      "parents": [
        "a0e2e7d3057a5b7344c13e2349d683a0ca3d3899"
      ],
      "author": {
        "name": "Ilya Kuzmich",
        "email": "ilya.kuzmich@gmail.com",
        "time": "Mon May 29 17:57:09 2017 +0300"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Fri Jul 07 16:27:56 2017 -0500"
      },
      "message": "strings -t oxd tests\n"
    },
    {
      "commit": "a0e2e7d3057a5b7344c13e2349d683a0ca3d3899",
      "tree": "b9427b05af92fa6b3e7288b42b45bf6f445860ab",
      "parents": [
        "7450ecd568e94e9bdde01afc3b60dc953a12bdc1"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Fri Jul 07 03:51:47 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Fri Jul 07 03:51:47 2017 -0500"
      },
      "message": "Make dd use atolx_range(), and teach atolx_range() about \"w\" suffix (word, *2).\n"
    },
    {
      "commit": "7450ecd568e94e9bdde01afc3b60dc953a12bdc1",
      "tree": "fdbfcd63b7ea7acc60f5ec93abc1e77f1bc9a2a8",
      "parents": [
        "557ca7e55b7ca5c1e91b628440fe17cb9bb81c63"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Fri Jul 07 03:43:24 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Fri Jul 07 03:43:24 2017 -0500"
      },
      "message": "Fix dd tests so TEST_HOST passes. (Ubuntu\u0027s dd doesn\u0027t support hex values\nand don\u0027t expect a specific error message, just that it errored.)\n"
    },
    {
      "commit": "557ca7e55b7ca5c1e91b628440fe17cb9bb81c63",
      "tree": "93b344679a394bfcb2643cbdea27603b3a0abde1",
      "parents": [
        "24dfc146470aa8098c49f37a6f10a0687aa66c72"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun Jul 02 21:39:32 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun Jul 02 21:39:32 2017 -0500"
      },
      "message": "Add -t, deviations from posix, redo loop to have fewer duplicate tests.\n"
    },
    {
      "commit": "24dfc146470aa8098c49f37a6f10a0687aa66c72",
      "tree": "6e412a33e84a08f395335a609cbfd808e7262943",
      "parents": [
        "b8e0920c180f81f86f0888804445f67a2a76fe2b"
      ],
      "author": {
        "name": "Ilya Kuzmich",
        "email": "ilya.kuzmich@gmail.com",
        "time": "Mon May 29 07:05:16 2017 +0300"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun Jul 02 20:28:47 2017 -0500"
      },
      "message": "strings tests and bugfixes\n\nFixes missing newline in output if last byte of the input is string.\nFixes one-off offset bug.\nAdds strings tests.\n\nSigned-off-by: Ilya Kuzmich \u003cilya.kuzmich@gmail.com\u003e\n"
    },
    {
      "commit": "b8e0920c180f81f86f0888804445f67a2a76fe2b",
      "tree": "b5e46141eaa1c50abdbbe7d217e520bc79fdd9bd",
      "parents": [
        "77997b8e774318631b373a443dc073d3b38b5d84"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Jun 27 14:57:28 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Jun 27 14:57:28 2017 -0500"
      },
      "message": "whitespace/comment tweaks.\n"
    },
    {
      "commit": "77997b8e774318631b373a443dc073d3b38b5d84",
      "tree": "1c7dc8c8a7ce757bfe5a447221714239c5a5ea27",
      "parents": [
        "f30035e88bad1748e8e5546ef43409862db1d91e"
      ],
      "author": {
        "name": "Ilya Kuzmich",
        "email": "ilya.kuzmich@gmail.com",
        "time": "Sun May 28 18:29:19 2017 +0300"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Jun 27 14:55:29 2017 -0500"
      },
      "message": "teach head -c\n\nNot POSIX, but implemented in coreutils, busybox and freebsd.\n"
    },
    {
      "commit": "f30035e88bad1748e8e5546ef43409862db1d91e",
      "tree": "61e7cd6b90a72d735e069e2e2574fe09efb5b5f7",
      "parents": [
        "279eb227c54edec20ce2dcc6dc1e397ec778a464"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon Jun 26 15:32:27 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon Jun 26 15:32:27 2017 -0500"
      },
      "message": "Most things seem to want the \"b\" suffix to mean 512 instead of 1.\n(According to the git history I added \"b\" for \"od\" but the man page says 512\nthere too.)\n"
    },
    {
      "commit": "279eb227c54edec20ce2dcc6dc1e397ec778a464",
      "tree": "cb7ca4c0d51595f7e398b1ae541c724c4e55642b",
      "parents": [
        "f5907c9546fb25acd95133f2243f210408fa1505"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon Jun 19 12:34:50 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon Jun 19 12:34:50 2017 -0500"
      },
      "message": "Past time for 0.7.4.\n"
    },
    {
      "commit": "f5907c9546fb25acd95133f2243f210408fa1505",
      "tree": "60be25c84b9a9ea48de5b1de49c20e23439ee684",
      "parents": [
        "f19b20f57e5354bcae72f0348bd9e503af79f073"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon Jun 19 07:51:58 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon Jun 19 07:51:58 2017 -0500"
      },
      "message": "Manually inline TOP_COMMON and PGKILL_COMMON help text until I can teach\nthe help infrastructure to handle it.\n\n(The lifetime rules are all wrong for hunks that get reused. Needs a largeish\nrewrite.)\n"
    },
    {
      "commit": "f19b20f57e5354bcae72f0348bd9e503af79f073",
      "tree": "e172c4c1888b40a366a40cfaddce8ecf97d2660e",
      "parents": [
        "e59d2e49efd187bc8f0e67f1e9fb018903ce6e0a"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Wed Jun 14 11:23:01 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Wed Jun 14 11:23:01 2017 -0500"
      },
      "message": "Grep exits with 2 for errors, which can happen at any time ( \u003e /dev/full).\n"
    },
    {
      "commit": "e59d2e49efd187bc8f0e67f1e9fb018903ce6e0a",
      "tree": "b472a62e8b8734a513eb3d60ca62b2c9e38ce0a8",
      "parents": [
        "38248431e8013fcdb1fd5d7a2758cb6e32ca483a"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Jun 13 16:33:13 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Jun 13 16:33:13 2017 -0500"
      },
      "message": "config2help.c: Rename trim() to skip_spaces(), fluff out comments a bit.\n"
    },
    {
      "commit": "38248431e8013fcdb1fd5d7a2758cb6e32ca483a",
      "tree": "de998dae06cbbadbf73aa2939f567114a40b60d8",
      "parents": [
        "bc308973ffb671084328da6e20f146cba1454466"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon Jun 12 11:26:07 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon Jun 12 11:26:07 2017 -0500"
      },
      "message": "Add grep -M match and -S skip supporting wildcard patterns.\n\nThey don\u0027t imply -r because you might do find . -type f | xargs -S blah regex\n"
    },
    {
      "commit": "bc308973ffb671084328da6e20f146cba1454466",
      "tree": "3ed6818b49c5b8be122b3f7cc01def23a46b9741",
      "parents": [
        "fa8a33c57ef8fb0d32e36289bbdbd8ce7cf18726"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun Jun 11 15:39:03 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun Jun 11 15:39:03 2017 -0500"
      },
      "message": "Twitter\u0027s code of conduct page went down, so mirror the old archive.org version.\nMove link from README to header.html menu bar.\n"
    },
    {
      "commit": "fa8a33c57ef8fb0d32e36289bbdbd8ce7cf18726",
      "tree": "07838e5971d60452611b58ca30732340e1cc2944",
      "parents": [
        "24b1cc829fef3a2501ace6ac7e803e3642de45ad"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun Jun 11 12:23:00 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun Jun 11 12:23:00 2017 -0500"
      },
      "message": "Provide error messages for files we can open but not read (ala directories).\n"
    },
    {
      "commit": "24b1cc829fef3a2501ace6ac7e803e3642de45ad",
      "tree": "a9bedd1e2c9d733c0a1540ad666960e9be9c9b84",
      "parents": [
        "1f33eeb683e729681419c29ac831c6e71e6774fa"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sat Jun 10 13:17:31 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sat Jun 10 13:17:31 2017 -0500"
      },
      "message": "Fix bug where grep stopped at first dangling symlink and error_exited().\n"
    },
    {
      "commit": "1f33eeb683e729681419c29ac831c6e71e6774fa",
      "tree": "2a2e3e1dadbf0d2a97aeba161a17646a7d41a225",
      "parents": [
        "6fbe288e988f87b23b610da8c5046910b6171eb9"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Fri Jun 09 15:01:07 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Fri Jun 09 15:01:07 2017 -0500"
      },
      "message": "Promote dmesg back to lsb.\n"
    },
    {
      "commit": "6fbe288e988f87b23b610da8c5046910b6171eb9",
      "tree": "02ce081cd82bef7ec1780039daf84823c876ca80",
      "parents": [
        "e1ee741930349a4daaada29bd6ff4cbc0e313641"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Fri Jun 09 14:59:51 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Fri Jun 09 14:59:51 2017 -0500"
      },
      "message": "Cleanup dmesg (as posted to the list).\n"
    },
    {
      "commit": "e1ee741930349a4daaada29bd6ff4cbc0e313641",
      "tree": "b0395d2469a5b224743d75105f031b3c0e9721cc",
      "parents": [
        "ab33097058b05a173113832fcca6b8d6c3b6143d"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Jun 06 13:21:03 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Jun 06 13:21:03 2017 -0500"
      },
      "message": "Add comment explaining strend()\n"
    },
    {
      "commit": "ab33097058b05a173113832fcca6b8d6c3b6143d",
      "tree": "b4f3a2aee03982b059d0cdf5d674126e09328e15",
      "parents": [
        "32550751997db5b15baca56e72c54ed8ade53bd6"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon Jun 05 21:22:02 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon Jun 05 21:22:02 2017 -0500"
      },
      "message": "Have help_exit() give a brief \"See %s --help\" message instead of the\nfull help text, and put it back in the args constraint failures.\n"
    },
    {
      "commit": "32550751997db5b15baca56e72c54ed8ade53bd6",
      "tree": "b4d89a5bd7287c554eb8c5635fc4ea93dcd6d28d",
      "parents": [
        "51a1e91d263ad14ffd4b57ff0c22d3ff02799ceb"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun Jun 04 13:15:51 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun Jun 04 13:15:51 2017 -0500"
      },
      "message": "Don\u0027t add cpio TRAILER!!! entry by default, add new --trailer option if you\nwant that. (This lets you concatenate cpio archives with \"cat\". Kernel\u0027s\ninitramfs extractor doesn\u0027t need it.)\n"
    },
    {
      "commit": "51a1e91d263ad14ffd4b57ff0c22d3ff02799ceb",
      "tree": "8c182a7ed7efd5f33c64ee01639fc273597bd137",
      "parents": [
        "1abba7db3df9cd4b7e86355504d39a29312ebedb"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 31 11:01:11 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Thu Jun 01 01:03:13 2017 -0500"
      },
      "message": "Allow \u0027:\u0027 in property names.\n\nBug: http://b/62114389\nTest: setprop\nChange-Id: I165bcc01bb2422d991f746c5e6490cbdfb74472f\n"
    },
    {
      "commit": "1abba7db3df9cd4b7e86355504d39a29312ebedb",
      "tree": "bdddadf4aa573f0d446bdb1a867ea6c271d735ae",
      "parents": [
        "cf2e8d08b3e06a7bdf95c30282a976bbf072a168"
      ],
      "author": {
        "name": "Ilya Kuzmich",
        "email": "ilya.kuzmich@gmail.com",
        "time": "Sun May 28 17:03:26 2017 +0300"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun May 28 17:08:19 2017 -0500"
      },
      "message": "teach head -v and -q\n\nNot POSIX, but implemented in coreutils and busybox.\nTests use sed to compensate for the stdin naming difference.\n\nSigned-off-by: Ilya Kuzmich \u003cilya.kuzmich@gmail.com\u003e\n"
    },
    {
      "commit": "cf2e8d08b3e06a7bdf95c30282a976bbf072a168",
      "tree": "3d1181cfa282776d46c593bee59f9466244ca546",
      "parents": [
        "8fb41fc77ff29091a562c42f6ad83ba19d24fa03"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sat May 27 15:54:16 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sat May 27 15:54:16 2017 -0500"
      },
      "message": "Replace two space indents with tab indents in help text (for consistency).\n"
    },
    {
      "commit": "8fb41fc77ff29091a562c42f6ad83ba19d24fa03",
      "tree": "cc2fb9d0353c9a3a90852e72b66b585cf71072ff",
      "parents": [
        "eb7e847adcecf11cd8fd99077ba3a582abe60146"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sat May 27 14:57:45 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sat May 27 14:57:45 2017 -0500"
      },
      "message": "Add separators in help -a with command name.\n"
    },
    {
      "commit": "eb7e847adcecf11cd8fd99077ba3a582abe60146",
      "tree": "dbd4676b2b1b2d072cead3beefa52de3a081e820",
      "parents": [
        "8ab2d8a3fc7be48f327037c477bd58d038ea13b5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 25 17:56:11 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Fri May 26 02:01:57 2017 -0500"
      },
      "message": "Be more consistent about periods in help text.\n"
    },
    {
      "commit": "8ab2d8a3fc7be48f327037c477bd58d038ea13b5",
      "tree": "044934cbede4328d95192813e27d8e5664a89391",
      "parents": [
        "e6ac7c1cf4aa18ef01cb29d00b4012f005e2f123"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Thu May 25 13:27:22 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Thu May 25 13:27:22 2017 -0500"
      },
      "message": "Add -0 to env.\n"
    },
    {
      "commit": "e6ac7c1cf4aa18ef01cb29d00b4012f005e2f123",
      "tree": "0ea85d2d08e344139db901b768af4fd27c44cd23",
      "parents": [
        "12f0744f340746b3a1c1accfdf993d6548f33e56"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Thu May 25 13:00:00 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Thu May 25 13:00:00 2017 -0500"
      },
      "message": "Teach env that - as first argument means -i for some reason. (Posix!)\n"
    },
    {
      "commit": "12f0744f340746b3a1c1accfdf993d6548f33e56",
      "tree": "7fa4ac6625bcaff12c300f4ef54d53649cfe7628",
      "parents": [
        "5a159cceb35fe08e444bd5a1771f8059888b03ff"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 23 17:35:49 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Wed May 24 19:56:58 2017 -0500"
      },
      "message": "Add and use xmmap.\n\nEveryone forgets that mmap returns MAP_FAILED rather than NULL on failure.\nEvery use of mmap in toybox was either doing the wrong check, or no check\nat all (including the two I personally added).\n"
    },
    {
      "commit": "5a159cceb35fe08e444bd5a1771f8059888b03ff",
      "tree": "de7fc8d4809d0515e972eb507ca53db27f6b74ee",
      "parents": [
        "77f9c7700604127f9e9f46d44764ca3db978f706"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue May 23 15:48:26 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue May 23 15:48:26 2017 -0500"
      },
      "message": "Add minof/maxof macros that autodetect type. Make xzcat use them.\n"
    },
    {
      "commit": "77f9c7700604127f9e9f46d44764ca3db978f706",
      "tree": "c0b3c893ebb6de4b26feebc5883cb0d9bad6252b",
      "parents": [
        "00e6da98f31cce57fbbd768fc78649442d7ba494"
      ],
      "author": {
        "name": "Joyounger",
        "email": "aquanox@163.com",
        "time": "Wed May 24 00:36:35 2017 +0800"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue May 23 15:29:18 2017 -0500"
      },
      "message": "fixup code style\n\nSigned-off-by: Joyounger \u003caquanox@163.com\u003e\n"
    },
    {
      "commit": "00e6da98f31cce57fbbd768fc78649442d7ba494",
      "tree": "98c7705ac503bf3e1ac5977649f11f0a66b008fd",
      "parents": [
        "f86f2f4e9a20d235b24ea86e4dddd0485165306f"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun May 21 13:23:34 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun May 21 13:23:34 2017 -0500"
      },
      "message": "Promote chrt\n"
    },
    {
      "commit": "f86f2f4e9a20d235b24ea86e4dddd0485165306f",
      "tree": "83e2341019727a29ef59210926e6c83e15ccd146",
      "parents": [
        "83b3531ec2876fa76817501bf1a38d4438ac39e6"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun May 21 13:11:42 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun May 21 13:11:42 2017 -0500"
      },
      "message": "Cleaup chrt\n"
    },
    {
      "commit": "83b3531ec2876fa76817501bf1a38d4438ac39e6",
      "tree": "8f8ac8464695f54d269f286af18d6ccff74347b6",
      "parents": [
        "d852ec18900ef635a38f99ed769a636f15af72c6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 12 18:30:03 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Fri May 19 13:11:12 2017 -0500"
      },
      "message": "Add bzip2 support to tar.\n\nAlso trivial cleanup of pipe -\u003e xpipe.\n\nBug: http://b/38215123\n"
    },
    {
      "commit": "d852ec18900ef635a38f99ed769a636f15af72c6",
      "tree": "48c34a2717618e39f494a8e7fe11786c71b83144",
      "parents": [
        "57605d2b481a87af4ba444761ece592d441950b1"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Fri May 19 12:35:36 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Fri May 19 12:35:36 2017 -0500"
      },
      "message": "Implement date %N, loosely inspired by Elliott Hughes\u0027s patch.\n\nI didn\u0027t implement %37N\u0027s ability to insert zeroes, so removed those\ntwo tests. If you really need it, I can add the divide loop back.\n"
    },
    {
      "commit": "57605d2b481a87af4ba444761ece592d441950b1",
      "tree": "a44926c087be33da8a0e4c11d527cc64b4e5006e",
      "parents": [
        "cf6a235279e84028e8edd3e75f585cd6dbfa40d5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat May 13 12:48:35 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun May 14 23:21:34 2017 -0500"
      },
      "message": "factor shouldn\u0027t give incorrect answers for \u003e64-bit integers.\n"
    },
    {
      "commit": "cf6a235279e84028e8edd3e75f585cd6dbfa40d5",
      "tree": "db5c7a37183a46727e8501c0f0fe242e5aa989d0",
      "parents": [
        "aa1a5d2798432fb4230b43b9215be2ca66664db2"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun May 14 15:10:29 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun May 14 15:10:29 2017 -0500"
      },
      "message": "Minor tweaks to install.sh.\n"
    },
    {
      "commit": "aa1a5d2798432fb4230b43b9215be2ca66664db2",
      "tree": "1cda9db6a7d610c42a32a88638e46336d578eb80",
      "parents": [
        "0a558836e7c19899b3a719c79d6d472366cb0f30"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Thu May 11 12:31:43 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Thu May 11 12:31:43 2017 -0500"
      },
      "message": "Switch to testcmd and add \"-e all but \\c\" test.\n"
    },
    {
      "commit": "0a558836e7c19899b3a719c79d6d472366cb0f30",
      "tree": "489fe34581c39449add680a374c556b3fc09b1a0",
      "parents": [
        "d74b562f508475192b6783b0b2d4dae4e5c2fa93"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 10 13:51:44 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Thu May 11 12:15:49 2017 -0500"
      },
      "message": "Make fewer assumptions about the shell in echo.test.\n\nThis test fails with mksh, but we\u0027re not here to test mksh.\n"
    },
    {
      "commit": "d74b562f508475192b6783b0b2d4dae4e5c2fa93",
      "tree": "fd654c847b9b50924b26b37ed47af16b28e63a64",
      "parents": [
        "71921dc74d051fb352bbb65dc92c3416e219dbb9"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon May 08 23:01:06 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon May 08 23:01:06 2017 -0500"
      },
      "message": "Move strend() to lib/lib.c\n"
    },
    {
      "commit": "71921dc74d051fb352bbb65dc92c3416e219dbb9",
      "tree": "e9fa49c14f7f524859fff675ad9b60a00fde200e",
      "parents": [
        "c4ca233e4011deff5a5f8e9db05f1a2a819801a5"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon May 08 22:09:08 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon May 08 22:09:08 2017 -0500"
      },
      "message": "Remove old uClibc compatibility glue. It\u0027s been 5 years since the last release.\nSee http://lists.busybox.net/pipermail/buildroot/2016-December/180102.html\nfor a full post-mortem on the project.\n"
    },
    {
      "commit": "c4ca233e4011deff5a5f8e9db05f1a2a819801a5",
      "tree": "5b943a6f4459233baae8c05ffdfc2ff818495a5d",
      "parents": [
        "31b18720cc8aea4e531bcff4fc5a719b42a5d24b"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon May 08 18:25:22 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon May 08 18:25:22 2017 -0500"
      },
      "message": "Now that xopen() no longer returns stdio, !fd doesn\u0027t need strcmp(\"-\") to verify\n"
    },
    {
      "commit": "31b18720cc8aea4e531bcff4fc5a719b42a5d24b",
      "tree": "55738f4ac97b6dd4cdcf6f3dd78bfcf0386574ea",
      "parents": [
        "75eea7d5aa6a7eb69fd842e376932fbf45423228"
      ],
      "author": {
        "name": "Mike Moreton",
        "email": "mike.moreton@frontier-silicon.com",
        "time": "Fri Sep 23 08:46:11 2016 +0100"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun May 07 23:08:14 2017 -0500"
      },
      "message": "Fix error in writing output that was causing zcat to always fail.\n"
    },
    {
      "commit": "75eea7d5aa6a7eb69fd842e376932fbf45423228",
      "tree": "3102a782b4ebf25a106a34f18c4d3b3ca37347a7",
      "parents": [
        "be3e318a591be62e8f670b8d78a0a2716eb78510"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun May 07 22:48:44 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun May 07 22:48:44 2017 -0500"
      },
      "message": "Error if we can\u0027t autodetect filesystem type.\n"
    },
    {
      "commit": "be3e318a591be62e8f670b8d78a0a2716eb78510",
      "tree": "f31f810b180b2ad440959b7621b86233393d28ea",
      "parents": [
        "333b4d37e23a94392c7610d7a503b3c3ede1d21d"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun Apr 30 02:46:36 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun Apr 30 02:46:36 2017 -0500"
      },
      "message": "Android NDK doesn\u0027t have cutils/sched_policy.h so add a probed config symbol.\n"
    },
    {
      "commit": "333b4d37e23a94392c7610d7a503b3c3ede1d21d",
      "tree": "658955aceec55c5ee01563d0e556b6f6da4ef5e3",
      "parents": [
        "6c74ee8d02cfab6dd8a45de56150afbd11452bee"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 28 15:25:56 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun Apr 30 02:11:26 2017 -0500"
      },
      "message": "Android needs -llog to link.\n"
    },
    {
      "commit": "6c74ee8d02cfab6dd8a45de56150afbd11452bee",
      "tree": "21dbf1b77936983cd452d1ae6f13db13a01a9088",
      "parents": [
        "de3e5ea4fe9c42f27d442aa87b7d16e090e72485"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 28 15:21:36 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun Apr 30 02:09:38 2017 -0500"
      },
      "message": "Building mkpasswd on Android makes no sense.\n\nAnd won\u0027t work anyway because we don\u0027t have crypt(3).\n"
    },
    {
      "commit": "de3e5ea4fe9c42f27d442aa87b7d16e090e72485",
      "tree": "3a0b150798c41933cf3f6d7cfd251545951db6ab",
      "parents": [
        "083c9bca70a327c7ca452310b6a3e047d446ca59"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 26 15:01:41 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sun Apr 30 02:08:59 2017 -0500"
      },
      "message": "Implement zlib-based gzip/gunzip/zcat.\n"
    },
    {
      "commit": "083c9bca70a327c7ca452310b6a3e047d446ca59",
      "tree": "42490d9cf4992fcea9d7416b63e119701dcc7895",
      "parents": [
        "2d06767f568495d57e43c30b02c22851da9b15db"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Wed Apr 26 16:36:19 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Wed Apr 26 16:36:19 2017 -0500"
      },
      "message": "Elliott wants to run the toybox tests on android host and there\u0027s an sh but\nit isn\u0027t toysh, so test for a bash alias.\n"
    },
    {
      "commit": "2d06767f568495d57e43c30b02c22851da9b15db",
      "tree": "4d96c46218d7941cd13efea9f1208578edf8531f",
      "parents": [
        "5ffa45661c50be1e6d384156be9b83fbed1356b3"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Apr 25 02:21:39 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Apr 25 02:21:39 2017 -0500"
      },
      "message": "Forgot to check in one of the files for bzcat.test\n"
    },
    {
      "commit": "5ffa45661c50be1e6d384156be9b83fbed1356b3",
      "tree": "8f7bbec249b85efd62bfce0c3f6d88abbb1ee89a",
      "parents": [
        "bf28043f54ac5a447caa35b8ad68fb48fb1408ae"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon Apr 24 19:01:33 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon Apr 24 19:01:33 2017 -0500"
      },
      "message": "Another FAQ, and some related tweaks as long as I was there.\n"
    },
    {
      "commit": "bf28043f54ac5a447caa35b8ad68fb48fb1408ae",
      "tree": "85e41a709c003ba2f12ce895ce8185320845c7b3",
      "parents": [
        "9be140ebb29f92be2b3924eb1442b38a9e062966"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Wed Apr 19 01:44:16 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Wed Apr 19 01:44:16 2017 -0500"
      },
      "message": "Add ls -ll (with --full-time as a compatibility synonym) to show nanoseconds.\n(And, for some reason, timezone. Individual files have timezones?)\n"
    },
    {
      "commit": "9be140ebb29f92be2b3924eb1442b38a9e062966",
      "tree": "50d8ea87974e0f34b6ceb44adb5c6d93900028ca",
      "parents": [
        "8d826bf4499d390f91296dd286cd5e847070fd78"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Apr 18 13:19:07 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Apr 18 13:19:07 2017 -0500"
      },
      "message": "The kernel needs bc to build because\nhttps://landley.net/notes-2013.html#28-03-2013 so add it to the airlock install.\n"
    },
    {
      "commit": "8d826bf4499d390f91296dd286cd5e847070fd78",
      "tree": "3a8414b71fb590b92e61553f578360fa463287c4",
      "parents": [
        "151ac30a9fb2252f5fa77e0238c5f944d5b4659c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 15 11:27:18 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon Apr 17 13:04:58 2017 -0500"
      },
      "message": "Use $(( rather than $[ for arithmetic in expand.test.\n\nI can\u0027t find any reference to $[ for arithmetic on the bash man page, but it\nseems to be a synonym for $((. mksh doesn\u0027t support this, so the expand tests\nthat use it fail on Android. No other toybox tests are using $[.\n"
    },
    {
      "commit": "151ac30a9fb2252f5fa77e0238c5f944d5b4659c",
      "tree": "f4fefded1c297e9fe701dc9a35fcff98756d5147",
      "parents": [
        "060a9f3380c5c778ab100f52fe5d1a41b0fd8a6c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 14 13:43:16 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon Apr 17 12:31:14 2017 -0500"
      },
      "message": "Make ls.test work without awk.\n"
    },
    {
      "commit": "060a9f3380c5c778ab100f52fe5d1a41b0fd8a6c",
      "tree": "2a28a86a9b0ee3048fa506b2550fb8d06473a5a8",
      "parents": [
        "007af3537d18c15de1e632e5731ee57b5b817067"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 07 23:15:52 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sat Apr 15 23:14:19 2017 -0500"
      },
      "message": "Speed up tail.test for shells without builtin printf.\n\nThe test only needs echo, and Android currently doesn\u0027t use mksh\u0027s\nbuiltin printf; the toybox printf is fuller featured and less buggy,\nbut a lot slower to call in a loop like this (and mksh doesn\u0027t fall\nback to the printf on the path if given something it can\u0027t handle,\nso we can\u0027t have the best of both worlds).\n\nWithout this hack, the tail test takes as long as all the other\ntests put together.\n"
    },
    {
      "commit": "007af3537d18c15de1e632e5731ee57b5b817067",
      "tree": "16f97912a09674dab23352f94552f65d81982dae",
      "parents": [
        "a9c20a4ad92199b1c67e09d6e4d5b9e1cc9609e1"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Wed Apr 12 13:41:10 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Wed Apr 12 13:41:10 2017 -0500"
      },
      "message": "Default to -b rather than -q when output is to a tty.\n"
    },
    {
      "commit": "a9c20a4ad92199b1c67e09d6e4d5b9e1cc9609e1",
      "tree": "43548a01b7fa0cad351246082b7ec79397e4bfdb",
      "parents": [
        "3354319e3d3e0b4f5f113d65fa508608f278092c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 07 23:00:54 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Apr 11 14:42:41 2017 -0500"
      },
      "message": "Fix \"make test_split\".\n\nThe test shouldn\u0027t assume there\u0027s a toybox binary on the path.\n"
    },
    {
      "commit": "3354319e3d3e0b4f5f113d65fa508608f278092c",
      "tree": "bfb90a786ed61c04231489ef8547c8a54bf3286a",
      "parents": [
        "42704b702d3d479f96074501ea574fa7e2694855"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Apr 11 13:38:37 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Apr 11 13:38:37 2017 -0500"
      },
      "message": "Silence a broken warning by hitting it with a rock.\n"
    },
    {
      "commit": "42704b702d3d479f96074501ea574fa7e2694855",
      "tree": "056ba54cfcc1e4066cdf7f3dd7c57bb4975364f5",
      "parents": [
        "36b6eb775f8913dbb6ded4fe05a8bfd5e0130a38"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 05 10:13:47 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Apr 11 12:25:40 2017 -0500"
      },
      "message": "Make fdisk buildable.\n\nThe argument to help_exit is a char*, not a FILE*.\n"
    },
    {
      "commit": "36b6eb775f8913dbb6ded4fe05a8bfd5e0130a38",
      "tree": "79ed4f9df1327db4a88bb7f5706a47d47b4a14bc",
      "parents": [
        "0956d16785fd8df1a57d8bf063cddd5b5c1ec221"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 06 14:44:45 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Apr 11 12:25:13 2017 -0500"
      },
      "message": "Fix touch -a/-m (and add the missing tests).\n\nutimensat takes atime in [0] and mtime in [1], but since we\u0027re overwriting\nwith UTIME_OMIT, we actually want to flip the comparison so -a blats 1 and\n-m blats 0.\n"
    },
    {
      "commit": "0956d16785fd8df1a57d8bf063cddd5b5c1ec221",
      "tree": "5bf256cebe0287e5c7703dba46163dfb3d0330ef",
      "parents": [
        "fea6d56777a3063b5af8b262df2a4a2573142962"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 03 14:12:08 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Mon Apr 10 15:20:00 2017 -0500"
      },
      "message": "Add \"uudecode -o -\" support.\n\nbusybox uudecode supports this, and POSIX explicitly mentions it (albeit\nonly in the \"STDOUT\" section). Plus Android doesn\u0027t have /dev/stdout and\n/dev/stdin, so this lets us rewrite the uudecode tests so they pass on\nAndroid too.\n"
    },
    {
      "commit": "fea6d56777a3063b5af8b262df2a4a2573142962",
      "tree": "f4ee45653248d6dd2796eda2b300d53ddac43322",
      "parents": [
        "a0d0af0f734aa1edd9336089c5da1b813e0ab125"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sat Apr 08 13:52:18 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Sat Apr 08 13:52:18 2017 -0500"
      },
      "message": "Fix the ls -m test (which is just a whitespace issue, but eh).\n\nWhile we\u0027re at it, ls -m wordwrap was one column early.\n"
    },
    {
      "commit": "a0d0af0f734aa1edd9336089c5da1b813e0ab125",
      "tree": "0129955543c84a47417f2c51e2eba37548042a24",
      "parents": [
        "2f6c9e87b1c4cdba68ff2de6159ddfd4d05f1d8d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 03 08:57:42 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Fri Apr 07 11:53:18 2017 -0500"
      },
      "message": "Make renice.test work without awk.\n\nAlso try to only kill processes we created.\n"
    },
    {
      "commit": "2f6c9e87b1c4cdba68ff2de6159ddfd4d05f1d8d",
      "tree": "af8490e3746ab1b9ff22afc710f5c01378831612",
      "parents": [
        "fc0385fb2bae2d82622b76ebb39067db0bdd7baf"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 03 08:33:23 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Fri Apr 07 11:45:48 2017 -0500"
      },
      "message": "Remove mount.test awk dependency.\n\nParsing file(1) output isn\u0027t a good way to determine file system type anyway.\n"
    },
    {
      "commit": "fc0385fb2bae2d82622b76ebb39067db0bdd7baf",
      "tree": "dc5c11897c83ac607aaac58ad1e48a88cec076ac",
      "parents": [
        "92ca5af53128aba511c4144c173283a3e810af8b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Apr 02 12:29:39 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Fri Apr 07 11:41:20 2017 -0500"
      },
      "message": "Make pgrep tests runnable on toybox-only systems.\n\nAlso make the cleanup kill more focused.\n"
    },
    {
      "commit": "92ca5af53128aba511c4144c173283a3e810af8b",
      "tree": "e6fd3385e50ad6a8e92af7f7a0dd1e7297fec011",
      "parents": [
        "f966da9e6efed946209a68e53970ad3488a55456"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Apr 02 12:20:53 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Fri Apr 07 11:40:14 2017 -0500"
      },
      "message": "Make pkill tests runnable on a toybox-only system.\n\nAlso use a much stricter regex in the regex test to avoid killing innocent\nbystanders.\n"
    },
    {
      "commit": "f966da9e6efed946209a68e53970ad3488a55456",
      "tree": "7b79d6a7cf8a16090a522dd1dfb60889ad45f465",
      "parents": [
        "216e4dab193458ba396db861a5eb6d410f80d1c8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Apr 02 12:27:38 2017 -0700"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Fri Apr 07 11:37:04 2017 -0500"
      },
      "message": "Make bzcat tests runnable on a toybox-only system.\n"
    },
    {
      "commit": "216e4dab193458ba396db861a5eb6d410f80d1c8",
      "tree": "54f96586d3c58824eeee4d49df6e0343b26c3c5c",
      "parents": [
        "a456c2fc6b219d29294aa54c41fdad141b1d4254"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Apr 04 18:13:51 2017 -0500"
      },
      "committer": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Tue Apr 04 18:13:51 2017 -0500"
      },
      "message": "Add \"testcmd\" function as an alternative to \"testing\" for tests/*.test, and\ncheck in two converted commands.\n"
    }
  ],
  "next": "a456c2fc6b219d29294aa54c41fdad141b1d4254"
}
