)]}'
{
  "log": [
    {
      "commit": "ee5074db68f498a5c802dc9f1645f396c219938a",
      "tree": "1416c477555ba3ac298f08a2f9183b9d040e0718",
      "parents": [
        "ff4c60635e1f455b0a0b4200f8183fbd5a88225b",
        "c7812d1b3c333c1e11032de2d078878010c58d7d"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Tue Nov 13 07:43:25 2018"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 13 07:43:25 2018"
      },
      "message": "Merge pull request #12 from finnoleary/fix-missing-funcdefs\n\nAdd missing function definitions (utfecpy, runestrecpy)"
    },
    {
      "commit": "c7812d1b3c333c1e11032de2d078878010c58d7d",
      "tree": "1416c477555ba3ac298f08a2f9183b9d040e0718",
      "parents": [
        "ff4c60635e1f455b0a0b4200f8183fbd5a88225b"
      ],
      "author": {
        "name": "Finn O\u0027leary",
        "email": "finnoleary@inventati.org",
        "time": "Tue Nov 06 19:17:24 2018"
      },
      "committer": {
        "name": "fao_",
        "email": "finnoleary@inventati.org",
        "time": "Tue Nov 13 02:50:14 2018"
      },
      "message": "Add missing function definitions (utfecpy, runestrecpy)\n\nFixes #11\n"
    },
    {
      "commit": "ff4c60635e1f455b0a0b4200f8183fbd5a88225b",
      "tree": "93ea81d1489f480269883604183c63418cf93387",
      "parents": [
        "b17614b6264763f3eeee6943b7d2dc40570f211d"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Mon Nov 14 12:00:45 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Mon Nov 14 12:00:45 2016"
      },
      "message": "update licence\n"
    },
    {
      "commit": "b17614b6264763f3eeee6943b7d2dc40570f211d",
      "tree": "08751896089c726fddf5c152405c497d0ac39e06",
      "parents": [
        "60a0b755e5383d4f615f5f7a39b1629515105b0c"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Mon Oct 24 19:17:59 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Mon Oct 24 19:19:58 2016"
      },
      "message": "add .gitattributes for C header files\n"
    },
    {
      "commit": "60a0b755e5383d4f615f5f7a39b1629515105b0c",
      "tree": "696bb1be82e2cbc93cec76859f5e2fcfcdb68d39",
      "parents": [
        "bd0e5575af7754cac2a88bccbaa192ef31a46a00",
        "1a94efebc35b27d8b02f3a89d9596b9106b4bce3"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Mon Oct 24 19:13:09 2016"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 24 19:13:09 2016"
      },
      "message": "Merge pull request #10 from richardipsum/awk-avoid-length\n\navoid use of length() function"
    },
    {
      "commit": "1a94efebc35b27d8b02f3a89d9596b9106b4bce3",
      "tree": "696bb1be82e2cbc93cec76859f5e2fcfcdb68d39",
      "parents": [
        "bd0e5575af7754cac2a88bccbaa192ef31a46a00"
      ],
      "author": {
        "name": "Richard Ipsum",
        "email": "richardipsum@fastmail.co.uk",
        "time": "Mon Oct 24 09:58:43 2016"
      },
      "committer": {
        "name": "Richard Ipsum",
        "email": "richardipsum@fastmail.co.uk",
        "time": "Mon Oct 24 10:14:22 2016"
      },
      "message": "avoid use of length() function\n"
    },
    {
      "commit": "bd0e5575af7754cac2a88bccbaa192ef31a46a00",
      "tree": "144174772433d983bbb9885c4a6e199c1e3c9e27",
      "parents": [
        "277988f41e4775360c255119cc2fa7b3005a7080",
        "72eaffc9277b010a6d7b27b24b0cb64436dc96db"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sat Oct 22 11:16:59 2016"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 22 11:16:59 2016"
      },
      "message": "Merge pull request #9 from SametSisartenep/master\n\nUpdate to Unicode 9.0.0"
    },
    {
      "commit": "72eaffc9277b010a6d7b27b24b0cb64436dc96db",
      "tree": "144174772433d983bbb9885c4a6e199c1e3c9e27",
      "parents": [
        "277988f41e4775360c255119cc2fa7b3005a7080"
      ],
      "author": {
        "name": "SametSisartenep",
        "email": "rodrigosloop@gmail.com",
        "time": "Mon Oct 17 00:42:01 2016"
      },
      "committer": {
        "name": "SametSisartenep",
        "email": "rodrigosloop@gmail.com",
        "time": "Mon Oct 17 00:42:01 2016"
      },
      "message": "Update to Unicode 9.0.0\n"
    },
    {
      "commit": "277988f41e4775360c255119cc2fa7b3005a7080",
      "tree": "6ee2e6db4db9bed64b8988dcaa9075b65e1a7c32",
      "parents": [
        "08f4c6a4d97ebe71f4127215a524104337e5522f"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sat Jun 18 07:26:02 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sat Jun 18 07:26:02 2016"
      },
      "message": "update boundary tests for new behaviour\n"
    },
    {
      "commit": "08f4c6a4d97ebe71f4127215a524104337e5522f",
      "tree": "4317517b9f4114bc1624cbfd64b8ef983bf14c3b",
      "parents": [
        "26b2f9c053def1c166336f8e2a9f5b401503beb7"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sat Jun 18 07:20:53 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sat Jun 18 07:22:16 2016"
      },
      "message": "fix build\n"
    },
    {
      "commit": "26b2f9c053def1c166336f8e2a9f5b401503beb7",
      "tree": "c390709637723d7e7dade3e8a3bd8e2946fd276d",
      "parents": [
        "bbc8861ab58297ee7f6e0282e7d1b7465623e470"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sat Jun 18 07:07:26 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sat Jun 18 07:18:19 2016"
      },
      "message": "rune validity checks\n\nI would have liked to have separated UTF-8 and Unicode support into two\nseparate libraries. Unicode has changed the definitions of valid and\ninvalid codepoints a number of times, whilst UTF-8 has remained as it\nis, unchanging. Likewise, the current version of Unicode ought not be\nnecessary only to parse UTF-8 sequences. However, it is clear that it is\nexpected that libutf will do this, and I think adding another library as\na dependency would undermine the appeal of a minimalist UTF-8 library.\n\nIt\u0027s not a very happy situation though, since attempting to catch all\npossible sources of invalid runes, rather than only those that are truly\nmalformed UTF-8, would require much more code if it were to detect them\nat the earliest possible opportunity, as is done with things like\noverlong encodings. So my solution has been to treat those as a separate\nclass of error, and to detect validity of the rune, as opposed to the\nUTF-8 sequence, as a matter of postprocessing.\n\nAs I say, this isn\u0027t a happy situation, but I think this is the best\ncompromise between those mortal enemies, pragmatism and idealism.\n"
    },
    {
      "commit": "bbc8861ab58297ee7f6e0282e7d1b7465623e470",
      "tree": "85b0a43adf3558827950afe6aee9ddeee348f7f6",
      "parents": [
        "e023c9a2d3f802e6764cbab78635c947ed1a95ce"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Fri Jun 03 10:55:16 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Fri Jun 03 10:55:16 2016"
      },
      "message": "utflen: fix possible misuse of p\n"
    },
    {
      "commit": "e023c9a2d3f802e6764cbab78635c947ed1a95ce",
      "tree": "1cc8e0531f9715894e699666f35fb39258b12419",
      "parents": [
        "7c68fde4f6f89e4873dbf02205b2f6bee490588a"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Tue May 10 23:38:36 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Tue May 10 23:40:32 2016"
      },
      "message": "fix messy whitespace\n"
    },
    {
      "commit": "7c68fde4f6f89e4873dbf02205b2f6bee490588a",
      "tree": "4a4eafd0241e05827f5d43991369fba21d024807",
      "parents": [
        "d24f27bbee020c4e2ac172f95715fab86099265e"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Tue May 10 23:36:42 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Tue May 10 23:36:42 2016"
      },
      "message": "split src into utf, runestr, runetype\n"
    },
    {
      "commit": "d24f27bbee020c4e2ac172f95715fab86099265e",
      "tree": "cc55d35d5843a77226d0970a030d162191ec3128",
      "parents": [
        "1056250321874728e038e66d84b80a7f9f951dbd"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Tue May 10 22:07:33 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Tue May 10 22:07:33 2016"
      },
      "message": "fix build: utfnlen must keep len and mustn\u0027t return early\n"
    },
    {
      "commit": "1056250321874728e038e66d84b80a7f9f951dbd",
      "tree": "1456b191882da117f5bc2e81004a1ab4e8d7879e",
      "parents": [
        "15bc0d310d36a0c74c145d5b6c63aa90ffde9afa"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Tue May 10 21:50:05 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Tue May 10 21:50:05 2016"
      },
      "message": "fullrune: style fix\n"
    },
    {
      "commit": "15bc0d310d36a0c74c145d5b6c63aa90ffde9afa",
      "tree": "2f8d04199ae42a96945483776582f475bc75dbc4",
      "parents": [
        "d56dda5ee9eef31ad77b56e352d59f1cb960862f"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Tue May 10 21:49:42 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Tue May 10 21:49:42 2016"
      },
      "message": "utfnlen: add proper len checks\n"
    },
    {
      "commit": "d56dda5ee9eef31ad77b56e352d59f1cb960862f",
      "tree": "f57131ce7fe8ee3daf1e8c78f3c18bdef06faa3b",
      "parents": [
        "749e3a0fc9c0a70d2a7125a9076f5df877c9b3f4"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Tue May 10 21:41:20 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Tue May 10 21:41:20 2016"
      },
      "message": "chartorune: use comma operator to set *p and return\n"
    },
    {
      "commit": "749e3a0fc9c0a70d2a7125a9076f5df877c9b3f4",
      "tree": "67b915e549a5d7f0b3389412e3720dcdb21bb02f",
      "parents": [
        "d4acc61b5f0c38e3068acf1e8ae40f6b66fe9031"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Tue May 10 21:40:32 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Tue May 10 21:40:32 2016"
      },
      "message": "split out functions depending on lookup table (utftab)\n"
    },
    {
      "commit": "d4acc61b5f0c38e3068acf1e8ae40f6b66fe9031",
      "tree": "512acd58e3aa796e9aa18150533f333e234ac7c0",
      "parents": [
        "6ba8eea090a22c1017c495e7ae453b782f95727e"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Tue May 10 21:09:24 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Tue May 10 21:09:24 2016"
      },
      "message": "unmacro runestrcat, runestrcmp, runestrcpy\n"
    },
    {
      "commit": "6ba8eea090a22c1017c495e7ae453b782f95727e",
      "tree": "797aa2ef66b7471720c594ba2056501be83d31dd",
      "parents": [
        "f718f81a04549bc1316e682987a33b60d4e30331"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Fri Apr 01 14:06:08 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Fri Apr 01 14:06:08 2016"
      },
      "message": "runelen: no clever stuff\n"
    },
    {
      "commit": "f718f81a04549bc1316e682987a33b60d4e30331",
      "tree": "dcd431e02b18a45b4bd5a6691dfbeca92145b426",
      "parents": [
        "ce4eaaccf07b6ec00d9f8bc4395c50b7ea63741c"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Fri Apr 01 13:20:59 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Fri Apr 01 13:20:59 2016"
      },
      "message": "chartorune: simplify cases\n"
    },
    {
      "commit": "ce4eaaccf07b6ec00d9f8bc4395c50b7ea63741c",
      "tree": "b923cbec9fc20ebda78c1c919cd7482876f69293",
      "parents": [
        "ab8c15c17929a165e097adab587f2b2d17124d65"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Fri Apr 01 13:08:35 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Fri Apr 01 13:08:35 2016"
      },
      "message": "runelen: simplify and explain\n"
    },
    {
      "commit": "ab8c15c17929a165e097adab587f2b2d17124d65",
      "tree": "3f3d782cfb377cc462184ceb9edd9a46009b5b78",
      "parents": [
        "1b1d7d40dba8eb52bf10d788f855ec7b1fded4d4"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Fri Apr 01 12:47:46 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Fri Apr 01 12:47:46 2016"
      },
      "message": "update licence\n"
    },
    {
      "commit": "1b1d7d40dba8eb52bf10d788f855ec7b1fded4d4",
      "tree": "f1cc28e00c6fcf28321765a5395ae3e901fda55a",
      "parents": [
        "b9fc7de7fbc5985e280e432032d9741cf4ed1397"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Fri Apr 01 11:21:21 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Fri Apr 01 11:27:52 2016"
      },
      "message": "chartorune, runetochar: do it in octal\n"
    },
    {
      "commit": "b9fc7de7fbc5985e280e432032d9741cf4ed1397",
      "tree": "c18d98f28d13579e38e639c2371281a9588f47f8",
      "parents": [
        "acd90dd3f34ec1b7b7e4468e4cddf8195270a2f2"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Mon Mar 28 19:07:04 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Mon Mar 28 19:07:04 2016"
      },
      "message": "fix runes at int32_t\n"
    },
    {
      "commit": "acd90dd3f34ec1b7b7e4468e4cddf8195270a2f2",
      "tree": "c402217bdb4297835d64109adbfb167e337754b7",
      "parents": [
        "7b8c1ded81c6d19a14e37930da2e9cda3962d782"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sun Mar 20 19:48:00 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sun Mar 20 19:49:12 2016"
      },
      "message": "charntorune: check still needed for len\u003d2\n"
    },
    {
      "commit": "7b8c1ded81c6d19a14e37930da2e9cda3962d782",
      "tree": "be0736f410b0782f6549263b0bce92c5892b3729",
      "parents": [
        "06494abaa58f8c60b1ec91b5935b3140334474d1"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sun Mar 20 19:04:45 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sun Mar 20 19:04:45 2016"
      },
      "message": "update Runemax\n"
    },
    {
      "commit": "06494abaa58f8c60b1ec91b5935b3140334474d1",
      "tree": "0525f4de2f92ffc073a97892f48e7a336c77287e",
      "parents": [
        "3a37ebe707eeb152ba50ca985b85b84f2f2287ad"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sun Mar 20 18:46:41 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sun Mar 20 18:46:41 2016"
      },
      "message": "remove runetochar length cap\n"
    },
    {
      "commit": "3a37ebe707eeb152ba50ca985b85b84f2f2287ad",
      "tree": "3b45ae5d767fcd127a694ce6af7695e90c1f4676",
      "parents": [
        "4b10076deb6f05b853fad05243442459d553417e"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sun Mar 20 18:45:36 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sun Mar 20 18:45:36 2016"
      },
      "message": "simplify chartorune control flow\n"
    },
    {
      "commit": "4b10076deb6f05b853fad05243442459d553417e",
      "tree": "63ef604df1e99c930e658ac22124cf3f7d7244cd",
      "parents": [
        "da7389b9b33b6248a228cd8182e65c97287ed020"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sun Mar 20 18:41:45 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sun Mar 20 18:41:45 2016"
      },
      "message": "fix fullrune overstep\n"
    },
    {
      "commit": "da7389b9b33b6248a228cd8182e65c97287ed020",
      "tree": "f018383bc1faa81aff81e9fc86295095c57fb876",
      "parents": [
        "aacd8e45f559af01e94ab76d3baa1ca7d15a3545"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sun Mar 20 14:20:05 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sun Mar 20 14:20:05 2016"
      },
      "message": "clean up .gitignore\n"
    },
    {
      "commit": "aacd8e45f559af01e94ab76d3baa1ca7d15a3545",
      "tree": "ba81d667a10ed1e120ad7d7b3c514056fbd051f1",
      "parents": [
        "119bad84ef264a958350523f8bff23ead7560949"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sun Mar 20 14:15:40 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sun Mar 20 14:15:40 2016"
      },
      "message": "fix test suite\n"
    },
    {
      "commit": "119bad84ef264a958350523f8bff23ead7560949",
      "tree": "18fab798e0a79b62ab7ae9180a829be49aae8715",
      "parents": [
        "65f0f74565b00eed6df94983f88ae1a68e19212a"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sun Mar 20 13:56:52 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sun Mar 20 13:56:52 2016"
      },
      "message": "remove API extensions\n"
    },
    {
      "commit": "65f0f74565b00eed6df94983f88ae1a68e19212a",
      "tree": "b34e1f75bc6ad0b1d9bf408487ce57d77942e112",
      "parents": [
        "fceccfe749a57014c2fd2948d40407ad298d55de"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sun Mar 20 13:19:44 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sun Mar 20 13:19:44 2016"
      },
      "message": "update test suite\n"
    },
    {
      "commit": "fceccfe749a57014c2fd2948d40407ad298d55de",
      "tree": "d3d9466e1ce15bfd87c379bda79f1460518362b9",
      "parents": [
        "dd2c9a374651bb649354d5a9afa5731ff6ee4493"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sun Mar 20 13:19:38 2016"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sun Mar 20 13:19:38 2016"
      },
      "message": "switch to \u0027fail early\u0027 behaviour\n"
    },
    {
      "commit": "dd2c9a374651bb649354d5a9afa5731ff6ee4493",
      "tree": "4aafecba0f0b479d2f90bf7501600dbfef4ca14f",
      "parents": [
        "0bf2f34c473706efcc0df1926305d395af1e99d6"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sun Oct 11 13:24:33 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sun Oct 11 13:24:33 2015"
      },
      "message": "use char32_t in C++11, uint_least32_t otherwise\n"
    },
    {
      "commit": "0bf2f34c473706efcc0df1926305d395af1e99d6",
      "tree": "3808d86ed60063340f86e5c3c2b1dbdf0291aa57",
      "parents": [
        "ad46e690213db96cb2821dd73a9e9e9993c5c2bd"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Sep 24 18:18:41 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Sep 24 18:18:41 2015"
      },
      "message": "chartorune: halve lookup table\n"
    },
    {
      "commit": "ad46e690213db96cb2821dd73a9e9e9993c5c2bd",
      "tree": "8648ea4ec1d81b6967bd112baa1b8b0e48154184",
      "parents": [
        "b615a2ee08ab8f51ee7383565f5c28e8b2229651"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Sep 24 18:01:21 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Sep 24 18:01:21 2015"
      },
      "message": "lookup table for chartorune, optimise fullrune\n"
    },
    {
      "commit": "b615a2ee08ab8f51ee7383565f5c28e8b2229651",
      "tree": "fbbac1144f8f4cd5ad185e2abf3a6c0d0e99190d",
      "parents": [
        "073265b297ba8663d7bf552cfc4fa12cd6c07ec5",
        "8c0188a9d296e3a5667033b61bf046734a361e52"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Sep 24 16:05:04 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Sep 24 16:05:04 2015"
      },
      "message": "Merge pull request #7 from geoff-codes/UnicodeData-8.0.0\n\nUpdate to Unicode 8.0.0"
    },
    {
      "commit": "8c0188a9d296e3a5667033b61bf046734a361e52",
      "tree": "fbbac1144f8f4cd5ad185e2abf3a6c0d0e99190d",
      "parents": [
        "073265b297ba8663d7bf552cfc4fa12cd6c07ec5"
      ],
      "author": {
        "name": "Geoff Nixon",
        "email": "geoff@geoff.codes",
        "time": "Thu Sep 24 02:22:06 2015"
      },
      "committer": {
        "name": "Geoff Nixon",
        "email": "geoff@geoff.codes",
        "time": "Thu Sep 24 02:22:06 2015"
      },
      "message": "Update UnicodeData.txt from Unicode 8.0.0 UCD.\n"
    },
    {
      "commit": "073265b297ba8663d7bf552cfc4fa12cd6c07ec5",
      "tree": "bbc11e9dd3d961daa16db1e6b00166b6eb977c4f",
      "parents": [
        "0f45d09ba5d1013f0909f0c7a873d001fe217127"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 25 12:01:43 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 25 12:01:43 2015"
      },
      "message": "add .gitattributes\n"
    },
    {
      "commit": "0f45d09ba5d1013f0909f0c7a873d001fe217127",
      "tree": "b26ade83d65e809614534728a71dddb3265a8743",
      "parents": [
        "89d4832de43701248adcfd483472a6b4c9ef8bb8"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 18 17:44:43 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 18 17:44:43 2015"
      },
      "message": "simplify utfrune, utfutf\n"
    },
    {
      "commit": "89d4832de43701248adcfd483472a6b4c9ef8bb8",
      "tree": "bc89fa21c871e42e80943ad36fda823af32bce37",
      "parents": [
        "4310117e62b16196a8292a7e0600d36d77c4ebf9"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Fri Mar 13 23:27:11 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Fri Mar 13 23:27:11 2015"
      },
      "message": "add runewidth\n"
    },
    {
      "commit": "4310117e62b16196a8292a7e0600d36d77c4ebf9",
      "tree": "a582e373695ffa4e9c252dd54ddd1c113cdf0ce4",
      "parents": [
        "2c82f251c0a34d2483772b467405fcfccb4785c2"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Fri Mar 13 19:04:15 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Fri Mar 13 19:04:15 2015"
      },
      "message": "support c99/c11 features according to availability\n"
    },
    {
      "commit": "2c82f251c0a34d2483772b467405fcfccb4785c2",
      "tree": "5d0a396a68884c7888e3aa948c0b48fd84011399",
      "parents": [
        "98e9fc1832d7731f8a3e8a7295946a3059ba0835"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Mar 12 20:39:46 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Mar 12 20:39:46 2015"
      },
      "message": "some minor tweaks\n"
    },
    {
      "commit": "98e9fc1832d7731f8a3e8a7295946a3059ba0835",
      "tree": "9666b7a1f48a2c296bf0aafa4d54af6c72c19f31",
      "parents": [
        "fec59b6aa0ad4d8345315676b7b26e31e51f809b"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Mar 12 20:04:58 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Mar 12 20:04:58 2015"
      },
      "message": "charntorune may take null rune ptr; macro fullrune\n"
    },
    {
      "commit": "fec59b6aa0ad4d8345315676b7b26e31e51f809b",
      "tree": "f8ffff8dd8a1085675fc05919c1f6ad47eb20647",
      "parents": [
        "357ded5689bbdc4eca526ac4a97836da4077ce5a"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Mar 12 19:46:21 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Mar 12 19:46:21 2015"
      },
      "message": "macro chartorune, runestrcat, runestrcmp, runestrcpy\n"
    },
    {
      "commit": "357ded5689bbdc4eca526ac4a97836da4077ce5a",
      "tree": "f2c47810ba2f1d1b450f54dc820a29d79689d8d5",
      "parents": [
        "c5582082356a14b8083d8da5501a48c8cc6583a8"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Mar 12 11:07:53 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Mar 12 11:07:53 2015"
      },
      "message": "separate libfmt from libutf\n"
    },
    {
      "commit": "c5582082356a14b8083d8da5501a48c8cc6583a8",
      "tree": "6a47e29f01e50f4c85880ff1eba714fde1edb7bc",
      "parents": [
        "a36601520c414853f78f167b231de8b654052300"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Mar 12 10:53:44 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Mar 12 10:53:44 2015"
      },
      "message": "fix build\n"
    },
    {
      "commit": "a36601520c414853f78f167b231de8b654052300",
      "tree": "2ddfd08fee11d9e13b7c1d49522eecee093bbb18",
      "parents": [
        "87b944ec0d8232a15f2d4560d640b9bb2d0b9f49",
        "2502b1d0e84f19508aae6aaae8c79666d986e396"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Mar 12 10:49:57 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Mar 12 10:49:57 2015"
      },
      "message": "Merge commit \u00272502b1d0e84f19508aae6aaae8c79666d986e396\u0027\n\nConflicts:\n\tisalpharune.3\n\tmkrunetype.awk\n\trunetypebody.h\n\tutf.h\n"
    },
    {
      "commit": "2502b1d0e84f19508aae6aaae8c79666d986e396",
      "tree": "17ab4f404a11ea5d7892ac3fb8ca30d55bce53c7",
      "parents": [
        "588d13e7b641def2a6a249d8e3cb3306af1f60aa"
      ],
      "author": {
        "name": "njw",
        "email": "nick.white@durham.ac.uk",
        "time": "Fri Mar 01 10:35:24 2013"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Mar 12 10:44:02 2015"
      },
      "message": "Add iscombiningrune function, to identify combining marks\n"
    },
    {
      "commit": "87b944ec0d8232a15f2d4560d640b9bb2d0b9f49",
      "tree": "041f32f1fec7352d4eadcd42d3a1519f946cdc1a",
      "parents": [
        "5525ede8b50fdabb19834c98441674440d0dc1fe"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Mar 12 10:17:52 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Mar 12 10:19:07 2015"
      },
      "message": "separate runetypebody.h from runetype.h\n"
    },
    {
      "commit": "5525ede8b50fdabb19834c98441674440d0dc1fe",
      "tree": "4be6b7ffed4b9e9a61afbbdd044ccf8ba5c39af2",
      "parents": [
        "4787d049f827d50b2924aa160dd912a0909c1754"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Mar 12 10:14:15 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Mar 12 10:14:15 2015"
      },
      "message": "fix test/malformed test output\n"
    },
    {
      "commit": "4787d049f827d50b2924aa160dd912a0909c1754",
      "tree": "c96b62d2274b3bef5507030536c6da937e99e3b4",
      "parents": [
        "00f819514efc7e32b7c4e6e3c70758b354cc77d0"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 21:55:17 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 21:55:17 2015"
      },
      "message": "fix isxdigitrune, simplify isprintrune\n"
    },
    {
      "commit": "00f819514efc7e32b7c4e6e3c70758b354cc77d0",
      "tree": "3deafc66255d54a781c8e6215a09a5ea2b5c3cec",
      "parents": [
        "3a37a68646915a974ed3fae6df98039090775ad6"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 18:20:13 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 18:20:13 2015"
      },
      "message": "reintroduce runetype.c\n"
    },
    {
      "commit": "3a37a68646915a974ed3fae6df98039090775ad6",
      "tree": "7511998c5c17a2311c44d15ab8ae13d1705b213b",
      "parents": [
        "24c2adcb664f1942f31efef64b9b4b9f5ac419e8"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 17:52:40 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 17:52:40 2015"
      },
      "message": "rename runetype.i to runetype.h\n"
    },
    {
      "commit": "24c2adcb664f1942f31efef64b9b4b9f5ac419e8",
      "tree": "b8ae32bd43542e687bd2d7b2dead92d289cfad88",
      "parents": [
        "0fe8ec7a10db3a8162ab86b0958d9404de0bc19c"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 17:49:51 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 17:49:51 2015"
      },
      "message": "extract templating logic from mkrunetype.awk\n"
    },
    {
      "commit": "0fe8ec7a10db3a8162ab86b0958d9404de0bc19c",
      "tree": "80dc04eb0004f17971686c3b071720eebefb21cf",
      "parents": [
        "8b8eeb19a2932d34aed76ce5fe7d71c6ce068f01"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 15:12:08 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 15:12:08 2015"
      },
      "message": "move internal header runetype.h into src/\n"
    },
    {
      "commit": "8b8eeb19a2932d34aed76ce5fe7d71c6ce068f01",
      "tree": "f6eda46c7ada1579b7acc1960df96ea1b4c0772b",
      "parents": [
        "66a6edff98656c61613f368ed9ee78a9647ba117"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 14:46:37 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 14:46:37 2015"
      },
      "message": "UTF-8-test.txt superseded by test suite\n\nCloses #5.\n"
    },
    {
      "commit": "66a6edff98656c61613f368ed9ee78a9647ba117",
      "tree": "e5435644ea16f0fcae5e0fcc481d90edfaea0888",
      "parents": [
        "3e375a03d3ef8c31ab63c15d7dfce38c24a5dbbd"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 14:45:00 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 14:45:00 2015"
      },
      "message": "add test/illegal\n"
    },
    {
      "commit": "3e375a03d3ef8c31ab63c15d7dfce38c24a5dbbd",
      "tree": "ab358bca13d0bdd06a5601d7519ce5228c266840",
      "parents": [
        "8f567c0e84fc8cde0c3c009ea273ea69826ae39c"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 14:24:30 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 14:24:30 2015"
      },
      "message": "add test/overlong\n"
    },
    {
      "commit": "8f567c0e84fc8cde0c3c009ea273ea69826ae39c",
      "tree": "fc23de7cda790b35a59cd5e3b22e2e3e6a0f89c5",
      "parents": [
        "0ac8b9d4d5343da9da273d10ee3bd24c6381f352"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 13:56:52 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 13:56:52 2015"
      },
      "message": "fix fgetrunestr EOF case\n"
    },
    {
      "commit": "0ac8b9d4d5343da9da273d10ee3bd24c6381f352",
      "tree": "02bd8176f8e4b11ec05cf2342d752632adbf572f",
      "parents": [
        "8aa76ad01fd0c67fed6d83641083d2806e9a6f8c"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 13:51:05 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 13:51:05 2015"
      },
      "message": "add fgetrunestr, fputrunestr\n"
    },
    {
      "commit": "8aa76ad01fd0c67fed6d83641083d2806e9a6f8c",
      "tree": "30395ef8f6928af8d3e0ad8226adf0aefbd0cae8",
      "parents": [
        "580d706e2da60b409d4da8f561dd0bf6b9ec8b77"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 13:05:55 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 13:05:55 2015"
      },
      "message": "update README\n"
    },
    {
      "commit": "580d706e2da60b409d4da8f561dd0bf6b9ec8b77",
      "tree": "aa8cb92b6dd49e4e8d3bacf6d9beaab323cd4d97",
      "parents": [
        "4fa38d3c6432bcc801113664af6ca707ee59e441"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 12:51:25 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 12:51:25 2015"
      },
      "message": "refactor test/malformed\n"
    },
    {
      "commit": "4fa38d3c6432bcc801113664af6ca707ee59e441",
      "tree": "0be84029e74f0d3ab9a79fc3a7e76909d75b15bc",
      "parents": [
        "ad2224a82d1fe549a41a75cf4f00643a849aff3d"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 12:37:45 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 12:37:45 2015"
      },
      "message": "add test/malformed\n"
    },
    {
      "commit": "ad2224a82d1fe549a41a75cf4f00643a849aff3d",
      "tree": "e98c074a546a14b93939e48e2bbb18398976fbb7",
      "parents": [
        "1f866400237e43613583f06012a231f0defece26"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 12:37:34 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 12:37:34 2015"
      },
      "message": "refactor test/boundary\n"
    },
    {
      "commit": "1f866400237e43613583f06012a231f0defece26",
      "tree": "9d3c44ad7ce6bbc42f943a74811313fe46327405",
      "parents": [
        "ff8ffc48ee35984b768d40415fda56a6181db2be"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 11:27:16 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 11:27:16 2015"
      },
      "message": "do not treat valid noncharacters as errors\n"
    },
    {
      "commit": "ff8ffc48ee35984b768d40415fda56a6181db2be",
      "tree": "f175aa8cf42fa6813362af6d635df75cb2717a28",
      "parents": [
        "41eb983960591e1e027f47cf4be8c96cd37c703d"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 11:26:41 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 11:26:41 2015"
      },
      "message": "add boundary tests\n"
    },
    {
      "commit": "41eb983960591e1e027f47cf4be8c96cd37c703d",
      "tree": "707c2a075e0073545cbdd4b7b2b04668f36ea4f6",
      "parents": [
        "362993213031704606579af2fe181265cf77922b"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 11:03:13 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 11:03:13 2015"
      },
      "message": "Merge pull request #6 from graymalkin/master\n\nTravis CI\n"
    },
    {
      "commit": "362993213031704606579af2fe181265cf77922b",
      "tree": "494f485bcd301773c57af8b38079b924d1ff6aeb",
      "parents": [
        "3814277245a8d61bfe40a05c0461f8b09decacf4"
      ],
      "author": {
        "name": "Simon Cooksey",
        "email": "sjc80@kent.ac.uk",
        "time": "Wed Mar 04 10:14:55 2015"
      },
      "committer": {
        "name": "Simon Cooksey",
        "email": "sjc80@kent.ac.uk",
        "time": "Wed Mar 04 10:58:00 2015"
      },
      "message": "Travis CI added\nMade README file markdown\nAdded travis.ci script\nAdded build status badge to README.md\nFixed up the travis script\nGone back to the awkward hyphens to mark title in README.md\nAdded newlines to stop git complaining\n"
    },
    {
      "commit": "3814277245a8d61bfe40a05c0461f8b09decacf4",
      "tree": "f66a25fdb5d96a2dfd737195f747822f9eb12709",
      "parents": [
        "ed53db9574cd432978d03b13669bfed65e37cdf1"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 02:17:15 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 02:17:26 2015"
      },
      "message": "introduce test suite using TAP\n\nA first step towards #5. All test cases in share/UTF-8-test.txt\nshould be replicated in this more proper test suite.\n"
    },
    {
      "commit": "ed53db9574cd432978d03b13669bfed65e37cdf1",
      "tree": "b601090b21010a1c8bfb5b76b8f6c06bbc6d6150",
      "parents": [
        "02b1eab05c6d9ee7ea76df2d9f7c9a9ee588e79e"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 01:41:10 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Mar 04 01:41:54 2015"
      },
      "message": "neaten up file generation\n"
    },
    {
      "commit": "02b1eab05c6d9ee7ea76df2d9f7c9a9ee588e79e",
      "tree": "acb4d18c958b3bfdebc9eb10878e32244a7f161c",
      "parents": [
        "c0a3a81cdbf87f94b19750daf9a99d60406ed1df"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Mon Mar 02 14:12:20 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Mon Mar 02 14:12:20 2015"
      },
      "message": "further clean up\n"
    },
    {
      "commit": "c0a3a81cdbf87f94b19750daf9a99d60406ed1df",
      "tree": "0831a54673d454f5bfe801241020fe1295ced537",
      "parents": [
        "69adbcf92b93b8b239456745d8417c6e1d21d6f6"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Mon Mar 02 14:05:32 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Mon Mar 02 14:05:32 2015"
      },
      "message": "clean up and update manpages\n"
    },
    {
      "commit": "69adbcf92b93b8b239456745d8417c6e1d21d6f6",
      "tree": "74679338a687faaa4b3d94a7d0a89df280c6a0f4",
      "parents": [
        "ca82d7d426dd64b9bc58e5f1d0977ec00d5e05c0",
        "c282a5761a954fe5be29c18630c2de5481512864"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Mon Mar 02 13:54:44 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Mon Mar 02 13:54:44 2015"
      },
      "message": "Merge pull request #4 from graymalkin/master\n\nImplement runestrecpy()"
    },
    {
      "commit": "c282a5761a954fe5be29c18630c2de5481512864",
      "tree": "74679338a687faaa4b3d94a7d0a89df280c6a0f4",
      "parents": [
        "ca82d7d426dd64b9bc58e5f1d0977ec00d5e05c0"
      ],
      "author": {
        "name": "Simon Cooksey",
        "email": "sjc80@kent.ac.uk",
        "time": "Mon Mar 02 13:43:32 2015"
      },
      "committer": {
        "name": "Simon Cooksey",
        "email": "sjc80@kent.ac.uk",
        "time": "Mon Mar 02 13:51:57 2015"
      },
      "message": "Implemented runestrecpy()\n\nCloses #3.\n"
    },
    {
      "commit": "ca82d7d426dd64b9bc58e5f1d0977ec00d5e05c0",
      "tree": "5d65aa7e0494e4d9c1c3aaffa3267ae073c56dd0",
      "parents": [
        "601bdcd5399f70a00b7067eb202b134fd72b5133"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Mon Mar 02 13:03:41 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Mon Mar 02 13:03:41 2015"
      },
      "message": "reintroduce utfecpy; see #3\n"
    },
    {
      "commit": "601bdcd5399f70a00b7067eb202b134fd72b5133",
      "tree": "37d86bc7f0e214a24892ee4c0cd1d90d7aeb8607",
      "parents": [
        "193c5869d337c91e8cdbcf6d998b7a6a0c8803da"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Mon Mar 02 13:03:21 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Mon Mar 02 13:03:21 2015"
      },
      "message": "update build system\n"
    },
    {
      "commit": "193c5869d337c91e8cdbcf6d998b7a6a0c8803da",
      "tree": "c60e5ff411ab010d1793c81b708150218ec5c9bd",
      "parents": [
        "880fdc7cf4005413b896563977bc354f945de157",
        "6325d9d33bf41493103aec8983d5bd6c65911ff3"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sun Mar 01 13:06:05 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Sun Mar 01 13:06:05 2015"
      },
      "message": "Merge pull request #2 from junyer/master\n\nDeclare all functions with C linkage."
    },
    {
      "commit": "6325d9d33bf41493103aec8983d5bd6c65911ff3",
      "tree": "c60e5ff411ab010d1793c81b708150218ec5c9bd",
      "parents": [
        "880fdc7cf4005413b896563977bc354f945de157"
      ],
      "author": {
        "name": "Paul Wankadia",
        "email": "junyer@gmail.com",
        "time": "Sat Feb 28 13:43:22 2015"
      },
      "committer": {
        "name": "Paul Wankadia",
        "email": "junyer@gmail.com",
        "time": "Sat Feb 28 13:43:22 2015"
      },
      "message": "Declare all functions with C linkage.\n"
    },
    {
      "commit": "880fdc7cf4005413b896563977bc354f945de157",
      "tree": "ca8c0dd9f7829e85b9533236db5411e0adf0a145",
      "parents": [
        "418f3579c3e9e6fc1475944f69b511bdc421fce8"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Mon Feb 23 21:42:35 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Mon Feb 23 21:42:35 2015"
      },
      "message": "split awk otheris into non-generated files\n"
    },
    {
      "commit": "418f3579c3e9e6fc1475944f69b511bdc421fce8",
      "tree": "42008c8eb72cd606061d88e1be29fb54a8744545",
      "parents": [
        "01166c1143ddd12fdf77474ff02ae8ca986e2b4f"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Mon Feb 23 21:23:46 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Mon Feb 23 21:23:46 2015"
      },
      "message": "merge FRIGN\u0027s downstream sbase mkrunetype.awk\n\nNote that MAWK appears to have a bug which causes a runtime error\nin mkrunetype.awk. BWK AWK and GAWK both function as expected.\n"
    },
    {
      "commit": "01166c1143ddd12fdf77474ff02ae8ca986e2b4f",
      "tree": "1b62afb045882c2127f9dff23b427d5f74c1f07e",
      "parents": [
        "842786e7ed8bffca93933bcb7f6d3de86e237c33"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Feb 12 10:24:39 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Feb 12 10:24:39 2015"
      },
      "message": "use int32_t for Rune\n\nThis does break C89 compatibility, but only barely, and I think in this\nparticular case it\u0027s a reasonable compromise between C89 and C99.\n"
    },
    {
      "commit": "842786e7ed8bffca93933bcb7f6d3de86e237c33",
      "tree": "186fde23be0eba701909cdf570d30517a75a01bb",
      "parents": [
        "60f05578fd6cd1b67f58604f0b2feec1f7085735"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Feb 11 19:25:15 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Feb 11 19:27:15 2015"
      },
      "message": "guarantee that Rune is at least 32 bits long\n"
    },
    {
      "commit": "60f05578fd6cd1b67f58604f0b2feec1f7085735",
      "tree": "2fb2a39d8bc5ee27ee0ac5215115dd46c694f1e6",
      "parents": [
        "77dd2b29685a6bf601b3fb5ce69a1ab8bc13b517"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Feb 11 17:21:53 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Feb 11 17:21:53 2015"
      },
      "message": "introduce file hierarchy\n"
    },
    {
      "commit": "77dd2b29685a6bf601b3fb5ce69a1ab8bc13b517",
      "tree": "f40e07bf4e1344f8e15ef46ff60bc4c36a4f7e77",
      "parents": [
        "d241aba4de9cf12ae60e422f65144e4eb6a1e56a"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Feb 11 16:52:01 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Feb 11 16:52:01 2015"
      },
      "message": "add runestr functions\n"
    },
    {
      "commit": "d241aba4de9cf12ae60e422f65144e4eb6a1e56a",
      "tree": "d4ab439ac06923f3d6c57c264aedb4e140ebd458",
      "parents": [
        "edad755d40b504e6f28a83e589855d4b379a49fb"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Feb 11 12:50:02 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Feb 11 12:50:02 2015"
      },
      "message": "add utftorunestr, fgetrune, fputrune; thanks to FRIGN\n"
    },
    {
      "commit": "edad755d40b504e6f28a83e589855d4b379a49fb",
      "tree": "a8148d1394bd84b44fcb1318bb1dd0386a7274b7",
      "parents": [
        "a202fc8175473e05325f8043e7c96aa78d1aaf07"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Feb 11 12:03:27 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Feb 11 12:03:27 2015"
      },
      "message": "add UnicodeData-7.0.0.txt, remove runetypebody.h\n"
    },
    {
      "commit": "a202fc8175473e05325f8043e7c96aa78d1aaf07",
      "tree": "eba3b9a204c8c6b33e056f7d9793ba36a048a861",
      "parents": [
        "64ffb2c60c513e10da36b32b13f48eedefed4e52"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Feb 11 11:49:25 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Feb 11 11:49:48 2015"
      },
      "message": "fix make $(LIB) removal\n"
    },
    {
      "commit": "64ffb2c60c513e10da36b32b13f48eedefed4e52",
      "tree": "a5e656d7edf95574d9e726f3043232057ba03cb2",
      "parents": [
        "5b01a2047b939c49acdf2e2ac0bc687bfcf2704f"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Feb 11 11:36:46 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Feb 11 11:44:45 2015"
      },
      "message": "split up rune.c and utf.c\n"
    },
    {
      "commit": "5b01a2047b939c49acdf2e2ac0bc687bfcf2704f",
      "tree": "f990ce847de1ef3cef60f9ef51f0effe9a323015",
      "parents": [
        "c06065f58a1ec83bed2b0924b9fa1314b1e6ea7d"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Feb 11 11:24:57 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Feb 11 11:24:57 2015"
      },
      "message": "avoid MIN in continuation loop\n"
    },
    {
      "commit": "c06065f58a1ec83bed2b0924b9fa1314b1e6ea7d",
      "tree": "98d2f3afb93b86359fd2042971a8beb9c05133d7",
      "parents": [
        "b264cc6a810ee001ff147899bf98790a87077fba"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Feb 11 11:21:43 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Feb 11 11:21:43 2015"
      },
      "message": "charntorune: return immediately on ascii\n"
    },
    {
      "commit": "b264cc6a810ee001ff147899bf98790a87077fba",
      "tree": "c07231ba5334cd1d4f720dfb2006bda7cea33d82",
      "parents": [
        "79fe8c6bde569cb4701646ad081e16ccc735ebec"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Feb 11 11:14:35 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Feb 11 11:14:35 2015"
      },
      "message": "fix leading byte rune mask\n"
    },
    {
      "commit": "79fe8c6bde569cb4701646ad081e16ccc735ebec",
      "tree": "77d64f7fb24d8dfe4d9e8705f6587ed73eeab609",
      "parents": [
        "101c18486265087f52cc1788ba60f6ce9337c089"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Feb 11 10:52:01 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Feb 11 10:52:01 2015"
      },
      "message": "expand and specialise macros\n"
    },
    {
      "commit": "101c18486265087f52cc1788ba60f6ce9337c089",
      "tree": "05a6ac836e80a1231d71fb78bb2134f1a17a6e18",
      "parents": [
        "d71a4a4de4cff47dae9ab44fb52d4a3a6512ea37"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Feb 11 10:12:50 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Wed Feb 11 10:12:50 2015"
      },
      "message": "needn\u0027t use BADRUNE in charntorune: handled by runelen\n"
    },
    {
      "commit": "d71a4a4de4cff47dae9ab44fb52d4a3a6512ea37",
      "tree": "6d0b9a9492292ae5f2450cd89d792297236c51e7",
      "parents": [
        "04a93c10cda7e451c5186bd9d6d62938cd20d361"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Tue Feb 10 20:33:54 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Tue Feb 10 20:33:54 2015"
      },
      "message": "update license\n"
    },
    {
      "commit": "04a93c10cda7e451c5186bd9d6d62938cd20d361",
      "tree": "a8523e7bc5bf4fd5886842b21a88b331be0c84b1",
      "parents": [
        "b35acc0ee094ca12c12f3b1454b68cb607726b43",
        "e2adbe80cb4d737dfabdccf030fdb43f1eead433"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Tue Feb 10 20:20:50 2015"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Tue Feb 10 20:25:16 2015"
      },
      "message": "Merge branch \u0027master\u0027 into HEAD: restore runetype functions\n"
    },
    {
      "commit": "b35acc0ee094ca12c12f3b1454b68cb607726b43",
      "tree": "a8523e7bc5bf4fd5886842b21a88b331be0c84b1",
      "parents": [
        "44e2507821e1d1c1b922012272e5d2cd94e9cf06"
      ],
      "author": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Thu Oct 24 11:08:56 2013"
      },
      "committer": {
        "name": "Connor Lane Smith",
        "email": "cls@lubutu.com",
        "time": "Tue Feb 10 20:04:20 2015"
      },
      "message": "Merge pull request #1 from bpowers/master\n\nbuild: add .gitignore\n"
    }
  ],
  "next": "44e2507821e1d1c1b922012272e5d2cd94e9cf06"
}
