)]}'
{
  "log": [
    {
      "commit": "66507906673bc6159d5d620414479954c9c21c24",
      "tree": "e49bacf5159e6bc275af25bcb790467305e12cf8",
      "parents": [
        "f9438757fc49b9f86961ddb55ae430e36bb88ebb"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sun Nov 08 15:34:58 2020 +0100"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sun Nov 08 15:35:00 2020 +0100"
      },
      "message": "Use reinterpret-casting in yxml_setchar()\n\nThis avoids a memcpy() when the compiler doesn\u0027t optimize it. I\ninitially avoided doing this out of fear for triggering UB and causing\noptimizing compilers to optimize the code away, but I believe this is\nactually safe when the types involved are (unsigned) chars.\n"
    },
    {
      "commit": "f9438757fc49b9f86961ddb55ae430e36bb88ebb",
      "tree": "91b45ef5a36cda232dd44154509ac6dea233e3ef",
      "parents": [
        "5d96bbbef09e7e97a3ec133d837141028788c675"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sat Mar 07 17:25:10 2020 +0100"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sat Mar 07 17:25:10 2020 +0100"
      },
      "message": "Minor doc fixes + encoding considerations section\n"
    },
    {
      "commit": "5d96bbbef09e7e97a3ec133d837141028788c675",
      "tree": "0191845e3b9fedb730620a7f371e2b8c1d34393c",
      "parents": [
        "e89df295ee752971ea3f390ca353226962bfc93f"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Nov 18 07:40:20 2019 +0100"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Nov 18 07:40:22 2019 +0100"
      },
      "message": "Add explicit (unsigned char*) cast in yxml_init()\n\nFixes #5.\n"
    },
    {
      "commit": "e89df295ee752971ea3f390ca353226962bfc93f",
      "tree": "b77379729db7f0898c1930b069cb05c2f6123a19",
      "parents": [
        "10f968b0e78b9aeee357d0de81a46b445c3fb27b"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sat Mar 23 14:08:53 2019 +0100"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sat Mar 23 14:08:53 2019 +0100"
      },
      "message": "Convert documentation from POD to pandoc-markdown\n"
    },
    {
      "commit": "10f968b0e78b9aeee357d0de81a46b445c3fb27b",
      "tree": "493f6a1246d9e0c23dc555ddfb321764e6add8a3",
      "parents": [
        "05f8de1ea776419b1532d382737ca09df08dcae2"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Tue Oct 27 18:38:08 2015 +0100"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Tue Oct 27 18:38:08 2015 +0100"
      },
      "message": "Use yxml_ret_t internally wherever that makes sense\n"
    },
    {
      "commit": "05f8de1ea776419b1532d382737ca09df08dcae2",
      "tree": "ef45eae8b0c4d9ec9f56f7742932e523e4022376",
      "parents": [
        "822e94e03a70d916e06dd43fa0e54a0571c82e12"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Tue Oct 27 18:28:33 2015 +0100"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Tue Oct 27 18:29:08 2015 +0100"
      },
      "message": "Fix parsing of PIs that start with xml\n\nBug #2: http://dev.yorhel.nl/yxml/bug/2\n"
    },
    {
      "commit": "822e94e03a70d916e06dd43fa0e54a0571c82e12",
      "tree": "047638ae39e8df08cbd83d429903d57460774ec5",
      "parents": [
        "d66c8e55838d9d6680eb43c2d3d4088745047183"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Jul 15 07:27:11 2015 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Jul 15 07:27:11 2015 +0200"
      },
      "message": "s/ELEMCLOSE/ELEMEND/\n\nThere is no such thing as YXML_ELEMCLOSE. It\u0027s START and END. (Or OPEN\nand CLOSE, but thats not the terminology I chose to use, apparently).\n"
    },
    {
      "commit": "d66c8e55838d9d6680eb43c2d3d4088745047183",
      "tree": "096f5ea3028ea10500c497b658cfedd9167397bd",
      "parents": [
        "eb31b2a876621ae0b762507f6ba84794eeec9482"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Feb 26 09:07:15 2014 +0100"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Feb 26 09:07:15 2014 +0100"
      },
      "message": "Copyright year bump\n"
    },
    {
      "commit": "eb31b2a876621ae0b762507f6ba84794eeec9482",
      "tree": "96b3fa8956395e13a358f46634532d7810d50841",
      "parents": [
        "372cecb9a0f144b1846f7296fdee8d09b7cdae98"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Feb 26 09:03:57 2014 +0100"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Feb 26 09:03:57 2014 +0100"
      },
      "message": "define \u0027inline\u0027 for MSVC compilers\n"
    },
    {
      "commit": "372cecb9a0f144b1846f7296fdee8d09b7cdae98",
      "tree": "f06bad778434da3347793311161d0f7261b49fd9",
      "parents": [
        "e98a37a86babe066c60b67e5a3c488765c70058a"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Feb 26 09:03:21 2014 +0100"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Feb 26 09:03:21 2014 +0100"
      },
      "message": "Add yxml_symlen() utility function\n"
    },
    {
      "commit": "e98a37a86babe066c60b67e5a3c488765c70058a",
      "tree": "f20b416a120b3520846293dc318649ca45233396",
      "parents": [
        "f79b21d00bcf85682f37a923f1ab6ca1b264f2f4"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Feb 26 08:57:31 2014 +0100"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Feb 26 08:57:33 2014 +0100"
      },
      "message": "Initialize x-\u003eattr in yxml_init()\n\nShouldn\u0027t really matter to any application that respected the\ndocumentation, but it\u0027s better than leaving it uninitialized.\n"
    },
    {
      "commit": "f79b21d00bcf85682f37a923f1ab6ca1b264f2f4",
      "tree": "2f161c0333a87335955594f6d38ebb905a174da4",
      "parents": [
        "7ff7bbcbeea6815d184c3bf80f4989fa3c75dc0b"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Feb 26 08:29:14 2014 +0100"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Feb 26 08:29:14 2014 +0100"
      },
      "message": "Add extern \"C\" stuff for C++\n"
    },
    {
      "commit": "7ff7bbcbeea6815d184c3bf80f4989fa3c75dc0b",
      "tree": "4105756ef0060cadc9a495b585099cc7284be3d0",
      "parents": [
        "cf859910d50a469d0aa77084065c3eed3bcb2bce"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Fri Jan 10 13:03:38 2014 +0100"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Fri Jan 10 13:03:41 2014 +0100"
      },
      "message": "Smaller and faster entity comparison\n\nThis reduces the size by a bit over 100 bytes and improves performance a\ntiny bit.\n"
    },
    {
      "commit": "cf859910d50a469d0aa77084065c3eed3bcb2bce",
      "tree": "1fc24d22bbad58256eb1e1a39fc7aa50a13b080e",
      "parents": [
        "809b8180c9b9d7c22726049c1b3811c3a5d30905"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Thu Dec 05 14:52:03 2013 +0100"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Thu Dec 05 14:52:03 2013 +0100"
      },
      "message": "Change buffer arg of yxml_parse() to void pointer\n"
    },
    {
      "commit": "809b8180c9b9d7c22726049c1b3811c3a5d30905",
      "tree": "26908b13f4e72d20c83c8bfee3fcf4088eac9ece",
      "parents": [
        "4ea94a331657418dda2b7bca5a94d6f9213e96a5"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Thu Dec 05 14:50:06 2013 +0100"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Thu Dec 05 14:50:06 2013 +0100"
      },
      "message": "yxml.h: Add double-inclusion guards\n"
    },
    {
      "commit": "4ea94a331657418dda2b7bca5a94d6f9213e96a5",
      "tree": "d2328d39ce94a88c964c6828de20a9984852c29f",
      "parents": [
        "c28dd19f5f7f547b35afd80673d1d713e7271b26"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Thu Nov 14 12:23:13 2013 +0100"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Thu Nov 14 12:23:13 2013 +0100"
      },
      "message": "Some more documentation\n"
    },
    {
      "commit": "c28dd19f5f7f547b35afd80673d1d713e7271b26",
      "tree": "8467f47d114e31785dfae71039a1ef399f5ecd90",
      "parents": [
        "e8bd5434b34dad7c7d173c5afdf9a0abe4ce2df1"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Nov 13 10:47:28 2013 +0100"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Nov 13 10:47:28 2013 +0100"
      },
      "message": "Made a start on some documentation\n"
    },
    {
      "commit": "e8bd5434b34dad7c7d173c5afdf9a0abe4ce2df1",
      "tree": "b130f8d07b36b8dec60b9582ce32b6fad590baa5",
      "parents": [
        "0c45e3772deee153b8dfb412675de6edbfa1252f"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Tue Nov 12 13:08:50 2013 +0100"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Tue Nov 12 13:09:06 2013 +0100"
      },
      "message": "Remove function argument names in yxml.h\n"
    },
    {
      "commit": "0c45e3772deee153b8dfb412675de6edbfa1252f",
      "tree": "9f6efe9692e7a523781a5a4438f8282f0e54ef41",
      "parents": [
        "d3b12867ffb8885441496335ed69911684739f16"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Tue Nov 12 13:08:44 2013 +0100"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Tue Nov 12 13:08:44 2013 +0100"
      },
      "message": "Remove unused YXML_EATTR enum value\n"
    },
    {
      "commit": "d3b12867ffb8885441496335ed69911684739f16",
      "tree": "490948b859742ac5cf3905f7946f901af1eaa6b2",
      "parents": [
        "73563ab69fc582bda45bc58d61e05897281c2ff0"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Oct 14 11:38:01 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Oct 14 11:38:01 2013 +0200"
      },
      "message": "test: Use correct printf formatting for debug output\n"
    },
    {
      "commit": "73563ab69fc582bda45bc58d61e05897281c2ff0",
      "tree": "3a711ba88edd5430c2eb07aeed2bb2a99ea8b94f",
      "parents": [
        "29be339bee1edf57dca344148f2bbe4255bd0f1a"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Oct 14 11:32:47 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Oct 14 11:32:47 2013 +0200"
      },
      "message": "Don\u0027t use int casting hack when comparion entity references\n\nNow using plain old byte-for-byte comparisons. Performance-wise the\ndifference is acceptable, but it does add more than 100 bytes to the\nlibrary. :-(\n"
    },
    {
      "commit": "29be339bee1edf57dca344148f2bbe4255bd0f1a",
      "tree": "2571e3acae070d3266975123a2da54468c0f3e8b",
      "parents": [
        "c38aab2ac6bcd36ee746949d3ccf96531c075d52"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Thu Sep 26 16:50:28 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Thu Sep 26 16:50:28 2013 +0200"
      },
      "message": "API: Split YXML_DATA for content/pi/attr + remove start-of-content token\n\nThe start-of-content token (previous use of YXML_CONTENT) had to be\nreturned together with YXML_ELEMSTART in some cases, which resulted in\nthe ugly bitmask hack. The token is not strictly necessary for parsing,\nand I don\u0027t think that it was even that valuable, so its been removed.\n\nThe YXML_DATA token has been split up into\nYXML_(CONTENT|PICONTENT|ATTRVAL) to give the application more context as\nto what kind of data it is receiving. This has the added benefit that\nthe application doesn\u0027t need to keep track of whether it is in a context\nthat it doesn\u0027t care about (e.g. in a PI) in order to handle data. If\nthe application is interested in element content and not in PIs, then it\ncan now simply ignore the YXML_PI* tokens.\n"
    },
    {
      "commit": "c38aab2ac6bcd36ee746949d3ccf96531c075d52",
      "tree": "3853a7fb377df859e8a1cf8c1f3129ef3a296ee6",
      "parents": [
        "fe8a047a58e3f0a6771f7432d41a3b0706fa48ed"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Thu Sep 26 16:50:12 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Thu Sep 26 16:50:12 2013 +0200"
      },
      "message": "Add test for internationalized element names\n"
    },
    {
      "commit": "fe8a047a58e3f0a6771f7432d41a3b0706fa48ed",
      "tree": "bedc99e3a1414ae767dedbb21642588455b78afa",
      "parents": [
        "961af5224b84b6a40f204e737d7bf301deed4503"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Sep 25 16:28:03 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Sep 25 16:28:03 2013 +0200"
      },
      "message": "Allow non-ASCII characters in attribute and element names\n\nSimilar reasoning as for allowing non-ASCII characters in data: We can\u0027t\nvalidate them anyway because yxml operates on bytes and is unaware of\nthe encoding. This does allow a wide range of characters as\nelement/attribute names that aren\u0027t formally allowed, but the most\ncommon use of those names in applications is simply to check whether a\nparticular element/attribute name matches one that it knows, and unknown\nnames are generally ignored.\n\nWithout this change, it is impossible to parse \"international\" XML\ndocuments with yxml. It is possible now, but applications do need to do\nfurther validation on their own if they want to be conforming.\n"
    },
    {
      "commit": "961af5224b84b6a40f204e737d7bf301deed4503",
      "tree": "ada259374ad10866e03886bf42bee37e885c96b6",
      "parents": [
        "80e73e201e68a09b399bf192d97c332df59ad980"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Tue Sep 24 12:31:23 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Tue Sep 24 12:31:23 2013 +0200"
      },
      "message": "Add support for non-ASCII character references and encode them as UTF-8\n"
    },
    {
      "commit": "80e73e201e68a09b399bf192d97c332df59ad980",
      "tree": "db6f9d545fcdb77338e5219e2b8eda403dd80b58",
      "parents": [
        "cade07b53bfa48b2347d579ce8bd655cae432534"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Tue Sep 24 11:20:31 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Tue Sep 24 11:24:07 2013 +0200"
      },
      "message": "Fix returning of \u0027]\u0027 chars within CDATA + de-generalized ?-in-PI\n\nI thought I\u0027d handle the ?-in-PI and ]-in-CDATA problems in a more\ngeneral solution, but realized that wasn\u0027t any simpler or smaller than\nthese specific solutions.\n"
    },
    {
      "commit": "cade07b53bfa48b2347d579ce8bd655cae432534",
      "tree": "c1731a1b3dd244fbc698b89d20cdc30059d84d65",
      "parents": [
        "0a372a897bdd2124472f9ba09a3bc9e6562bf774"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Tue Sep 24 10:54:23 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Tue Sep 24 10:54:23 2013 +0200"
      },
      "message": "Fix returning of extra \u0027?\u0027 in processing instruction data\n"
    },
    {
      "commit": "0a372a897bdd2124472f9ba09a3bc9e6562bf774",
      "tree": "a740a643029c7f5dfa44bc6da12487f5beb69a88",
      "parents": [
        "d297de22845fd2fd090d7dba88412941c7b5dbb8"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Tue Sep 24 10:45:10 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Tue Sep 24 10:45:10 2013 +0200"
      },
      "message": "Consistent naming: s/setdata/dataset/ and s/setattrval/attrvalset/\n"
    },
    {
      "commit": "d297de22845fd2fd090d7dba88412941c7b5dbb8",
      "tree": "b9c8e6d2484eb60bcf3119319dfa632617fd701d",
      "parents": [
        "e11e36a4229035cc75a1be837382e58d61583563"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Tue Sep 24 10:39:42 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Tue Sep 24 10:42:28 2013 +0200"
      },
      "message": "API: Change \u0027data\u0027 field from a single char to a string\n\nAllowing multiple bytes to be returned in a single YXML_DATA token. This\nis (unfortunately) necessary for a few special cases:\n- \u0026#N; for N \u003e 127,\n- \u003c? ? ?\u003e\n- \u003c![CDATA[ ] ]]\u003e\n\nI\u0027ll fix those separately in the next commits. This data string is now\nalso re-used as a temporary buffer for entity/char references, removing\nthe private \u0027ref\u0027 field.\n"
    },
    {
      "commit": "e11e36a4229035cc75a1be837382e58d61583563",
      "tree": "37dfeb167a2843469003a7bf8474f3b76c21bcb1",
      "parents": [
        "5edaa48825001f0259120800c28a8b327f448046"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Sep 23 15:31:35 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Sep 23 15:31:35 2013 +0200"
      },
      "message": "Fixed one bug with CDATA and found another + added attr/content tests\n"
    },
    {
      "commit": "5edaa48825001f0259120800c28a8b327f448046",
      "tree": "b9d3094d933b963dfc5868dbc1c4a6c0046af6b2",
      "parents": [
        "5e351ff2ccca675c0010c3938f02a06398c0a1f5"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Sep 23 14:45:53 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Sep 23 14:45:53 2013 +0200"
      },
      "message": "Fix minor bug in comment parsing + add some tests for comments\n"
    },
    {
      "commit": "5e351ff2ccca675c0010c3938f02a06398c0a1f5",
      "tree": "4a9ec2496b6340f714509bf1a5397ae340470b33",
      "parents": [
        "1b6f4aa7c5503810a3222592ca0f1a0996e6fec6"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Sep 23 10:39:44 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Sep 23 10:40:23 2013 +0200"
      },
      "message": "Pass PIs to the application + verify that PI name isn\u0027t /xml/i\n"
    },
    {
      "commit": "1b6f4aa7c5503810a3222592ca0f1a0996e6fec6",
      "tree": "188cea6c442b0fab1da6f673b7a277557ba0d073",
      "parents": [
        "b6943c7407653fbf2ea9bf15c1476788afaf4c87"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sun Sep 22 17:17:50 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sun Sep 22 17:17:50 2013 +0200"
      },
      "message": "Add test suite and a bunch of tests\n\nThe tests aren\u0027t complete yet, there\u0027s still a lot of cases that aren\u0027t\ncovered.\n"
    },
    {
      "commit": "b6943c7407653fbf2ea9bf15c1476788afaf4c87",
      "tree": "076d0ea5b2b6f78eeed1620d4f927acb460d9bd5",
      "parents": [
        "db5ece903bed2ec07979d0a20d3ae751513d6ccb"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sun Sep 22 17:05:57 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sun Sep 22 17:05:57 2013 +0200"
      },
      "message": "Fix parsing of XML declaration without encoding but with standalone\n"
    },
    {
      "commit": "db5ece903bed2ec07979d0a20d3ae751513d6ccb",
      "tree": "3ef6d77d9b1d8ae7ef19c26a2bc608cb1f723b91",
      "parents": [
        "f520a71e92f375121800ff45c8d4ca848a82e3c5"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sun Sep 22 16:35:22 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sun Sep 22 16:35:22 2013 +0200"
      },
      "message": "Fix segfault when a PI is given before an XML declaration\n"
    },
    {
      "commit": "f520a71e92f375121800ff45c8d4ca848a82e3c5",
      "tree": "044c8fed903c831325d50610ac4c1898c3a6d385",
      "parents": [
        "d1ab9f7dc57e4b51d5824eaccb943d0eb202c241"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sun Sep 22 16:34:16 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sun Sep 22 16:34:16 2013 +0200"
      },
      "message": "Define YXML_ELEMSTCONT\n\nThis avoids complaints from gcc when using a yxml_ret_t variable in a\nswitch statement.\n"
    },
    {
      "commit": "d1ab9f7dc57e4b51d5824eaccb943d0eb202c241",
      "tree": "0ae98bdd0113f3c2eb130042cc89e926a351de56",
      "parents": [
        "d41923630fcf70c6e2181722d9d087dd1aa3b530"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sun Sep 22 09:37:56 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sun Sep 22 09:37:56 2013 +0200"
      },
      "message": "Improve parsing of doctype declarations\n\nThis code should handle all declarations that don\u0027t use a conditional\nsection anywhere.\n"
    },
    {
      "commit": "d41923630fcf70c6e2181722d9d087dd1aa3b530",
      "tree": "d072d1205cdc29a184cabbb5b10ea7edd98cc2dd",
      "parents": [
        "212009a15a37d73a29ea9666a89d9427a93b96c5"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sun Sep 22 09:12:36 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sun Sep 22 09:13:08 2013 +0200"
      },
      "message": "Fix incorrect reporting of ELEMSTART as ELEMEND\n"
    },
    {
      "commit": "212009a15a37d73a29ea9666a89d9427a93b96c5",
      "tree": "c4548f796943e1f76c6fc47c1d090ae6e9ce7814",
      "parents": [
        "af0f6a3996095e964a1b3f11e3401df728687e62"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sat Sep 21 17:57:42 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sat Sep 21 17:57:42 2013 +0200"
      },
      "message": "bench: Use yxml_eof()\n"
    },
    {
      "commit": "af0f6a3996095e964a1b3f11e3401df728687e62",
      "tree": "96e7b01535ec99c2db6aead0d7b76e90dd638d97",
      "parents": [
        "07eb80ad97db1288c68cc69eec8ebb5aaaf33890"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sat Sep 21 17:48:08 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sat Sep 21 17:52:59 2013 +0200"
      },
      "message": "Add \u0027misc3\u0027 state to handle \u0027Misc\u0027 data after the root element closed\n\nPreviously the misc2 state was entered after the root element has\nclosed, which would still allow for character content and new open tags\nto be parsed. The latter was already detected with the \u0027afterelem\u0027 trick\nadded in 6bc21882f (now removed again), but that commit did not disallow\ncharacter content. This also removes the YXML_EMULROOT error code, such\nerrors are now reported as YXML_ESYN.\n\nThis commit adds ~600 bytes and improves performance for one benchmark\nand worsens performance for the other. Neither difference is very\nsignificant, however.\n"
    },
    {
      "commit": "07eb80ad97db1288c68cc69eec8ebb5aaaf33890",
      "tree": "f018ff5de35b3cdc459a1573127fac869d776c7f",
      "parents": [
        "261b6e0057cf9c13fee1989c75d9bfd6a700e98b"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sat Sep 21 17:37:37 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sat Sep 21 17:37:37 2013 +0200"
      },
      "message": "Add yxml_eof() function to detect unexpected EOF errors\n"
    },
    {
      "commit": "261b6e0057cf9c13fee1989c75d9bfd6a700e98b",
      "tree": "824bf5d61d7733ce0024616945ed233152a70456",
      "parents": [
        "8fe9be27bc0a26334a31299f0d0b1c33d5266533"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sat Sep 21 16:49:41 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sat Sep 21 16:49:41 2013 +0200"
      },
      "message": "Remove \u0027retmisc\u0027 hack + implement state remembering in state machine\n\nThis is a more generic solution, and should ease the implementation of\n\"proper\" \u003c!DOCTYPE ..\u003e parsing. (Should I decide to go on with that)\n\nThis change does not affect performance, and only increases the size\nwith 50 bytes or so.\n"
    },
    {
      "commit": "8fe9be27bc0a26334a31299f0d0b1c33d5266533",
      "tree": "18934f87940f28c914024f661bd038c9d1d96889",
      "parents": [
        "6bc21882f4667ed10797472f85cfe2cf2ccdaee6"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sat Sep 21 10:00:38 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sat Sep 21 10:00:38 2013 +0200"
      },
      "message": "Renumber YXML_ constants to be more suitable for use in a switch\n"
    },
    {
      "commit": "6bc21882f4667ed10797472f85cfe2cf2ccdaee6",
      "tree": "9c4f97c8633175889bd24af18a7d2fa543b85536",
      "parents": [
        "d37231f0a172ec2064bee7dd5412a9223ac6511b"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sat Sep 21 09:40:19 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sat Sep 21 10:00:23 2013 +0200"
      },
      "message": "Remove YXML_EOD and add YXML_EMULROOT to signal error\n"
    },
    {
      "commit": "d37231f0a172ec2064bee7dd5412a9223ac6511b",
      "tree": "02ff039b3f12686af07d699b3cb063aaa3544caa",
      "parents": [
        "4d930b2cf81317b3bd1133c4621c0b712112c953"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sat Sep 21 09:40:08 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Sat Sep 21 09:40:08 2013 +0200"
      },
      "message": "bench: Upgrade to latest musl\n"
    },
    {
      "commit": "4d930b2cf81317b3bd1133c4621c0b712112c953",
      "tree": "410ea6043f117eb4248f92da438a5857b5183388",
      "parents": [
        "3ebeb7a242b14f2613cd42a1cdc499bed77319e3"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Thu Sep 05 18:41:18 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Thu Sep 05 18:41:18 2013 +0200"
      },
      "message": "Rename some YXML_ tokens for consistency + add token for end-of-attr\n\nPreviously, reading the value of an attribute required reading all DATA\ntokens until the next YXML_ATTR or the next YXML_EOA. The new\nYXML_ATTRSTART and YXML_ATTREND are more clear and provides a more\ntighter bound as to where you can stop waiting for more DATA tokens for\nthe attribute value.\n\nThe YXML_EOA token has been renamed to YXML_CONTENT, because that\u0027s what\nit actually signifies: The start of the contents of the element.\n\nI\u0027ve also documented the token ranges in which the elem, data and attr\nfields in yxml_t remain valid.\n"
    },
    {
      "commit": "3ebeb7a242b14f2613cd42a1cdc499bed77319e3",
      "tree": "8e7dbc7f9cfab43041bd48f2405d13c1ecb2db4c",
      "parents": [
        "c8b799d83bb8b2d5f51d0cd6fdc40589701e1fb0"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Thu Sep 05 08:36:15 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Thu Sep 05 08:36:15 2013 +0200"
      },
      "message": "Remove unused attrlen field + remove YXML_MAX_REF define\n"
    },
    {
      "commit": "c8b799d83bb8b2d5f51d0cd6fdc40589701e1fb0",
      "tree": "5c8127ede9072b4b68cceec3d40f3daa0b68723b",
      "parents": [
        "49f4741c72498c28806d0064d09850536cb83969"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Sep 04 17:35:20 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Sep 04 17:38:33 2013 +0200"
      },
      "message": "Use the stack buffer for attribute names\n\nThis makes the yxml_t struct a bit smaller and removes the hardcoded\nlimit on the length of an attribute name.\n\nReduces the compiled size by 200 bytes for some reason I don\u0027t\nunderstand (better code re-use?). Doesn\u0027t seem to affect the\nperformance.\n"
    },
    {
      "commit": "49f4741c72498c28806d0064d09850536cb83969",
      "tree": "7942cb7c0b95e3754e1c99334b563f4877c43af5",
      "parents": [
        "32eea7065c9a4e8af8d318620b338569b96bcb5f"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Sep 04 16:59:30 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Sep 04 16:59:30 2013 +0200"
      },
      "message": "Normalize white space in attribute value data\n"
    },
    {
      "commit": "32eea7065c9a4e8af8d318620b338569b96bcb5f",
      "tree": "b82e321aecbb039cd0d401b51e1ff037c92a413e",
      "parents": [
        "3a714480dd363d96f85cb468098e108775a043eb"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Sep 04 16:38:48 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Sep 04 16:44:10 2013 +0200"
      },
      "message": "Normalize end-of-line sequences to a single \u0027\\n\u0027\n\nDecreases performance a bit and increases the size a bit. But, well,\ncorrectness is important. :-(\n"
    },
    {
      "commit": "3a714480dd363d96f85cb468098e108775a043eb",
      "tree": "837a08b633a370d65c6a91133ac7bd1019cee96d",
      "parents": [
        "563f33788291e81021c3f89fc7554a2003e7f7a3"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Sep 04 16:23:30 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Sep 04 16:27:34 2013 +0200"
      },
      "message": "Move ch\u003e0 check to the top of yxml_parse()\n\nAnd move them out of each state (yxml_isChar()). This decreases the\ncompiled size by about 1k and doesn\u0027t seem affect performance by much\n(it\u0027s a tiny bit faster, in fact).\n\nThe real reason for making this change is to make implementing proper\nline ending normalization a bit simpler, coming in the next commit.\n"
    },
    {
      "commit": "563f33788291e81021c3f89fc7554a2003e7f7a3",
      "tree": "280e28cddd146a61e7383fe6d966fba52447b581",
      "parents": [
        "5399893617ebc52bba1976e94c9f1cc742fff48d"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Sep 04 16:10:31 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Wed Sep 04 16:10:31 2013 +0200"
      },
      "message": "bench: No need to remake yxml.c when that is the only known dependency\n"
    },
    {
      "commit": "5399893617ebc52bba1976e94c9f1cc742fff48d",
      "tree": "aa65e1362a14b402d5803032c7e8f181a8fc5374",
      "parents": [
        "377ab04bd22654a5317c8ce1c492139448513ded"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Tue Sep 03 09:42:31 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Tue Sep 03 09:42:31 2013 +0200"
      },
      "message": "Add benchmark code\n"
    },
    {
      "commit": "377ab04bd22654a5317c8ce1c492139448513ded",
      "tree": "a3ab12f5feb3cf352d3614dae9973193f030ec7f",
      "parents": [
        "60cfa172e16e86baca56c092eafa6aa58820b3a8"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Sep 02 17:21:36 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Sep 02 17:21:36 2013 +0200"
      },
      "message": "Add \u0027_\u0027 as allowed character in a Name\n\nNo idea how I missed that one.\n"
    },
    {
      "commit": "60cfa172e16e86baca56c092eafa6aa58820b3a8",
      "tree": "1273f58463027c41dc935d8c28a9bc032952e2d9",
      "parents": [
        "6e6bb9ef5173b9f138c4d9fb0e93c727128605b8"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Sep 02 13:56:35 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Sep 02 13:56:35 2013 +0200"
      },
      "message": "COPYING: Fix copyright year\n\nI suppose I shouldn\u0027t be copying these COPYING files around without at\nleast looking at them...\n"
    },
    {
      "commit": "6e6bb9ef5173b9f138c4d9fb0e93c727128605b8",
      "tree": "4de8c485bea90982d8a20639f140fbc164ebdc5a",
      "parents": [
        "e433bcb3c721983323a99d8f0e26edeccd9b1367"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Sep 02 13:53:11 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Sep 02 13:53:11 2013 +0200"
      },
      "message": "Minor typo fix in yxml-gen.pl\n"
    },
    {
      "commit": "e433bcb3c721983323a99d8f0e26edeccd9b1367",
      "tree": "5917450247ab4f63c33717eb16c1f0370359e0af",
      "parents": [
        "12f89ca36d56d518db3192344816edb3f232c3a2"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Sep 02 13:40:57 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Sep 02 13:43:43 2013 +0200"
      },
      "message": "Add special string-consuming state\n\nThis reduces the number of states by 36 and the compiled library by ~930\nbytes. It also reduces the parsing speed by ~3% for some reason I don\u0027t\nunderstand. The XML file I use for benchmarking has no CDATA sections\nand the new \u0027string\u0027 state is thus only used for some headers...\n"
    },
    {
      "commit": "12f89ca36d56d518db3192344816edb3f232c3a2",
      "tree": "13d60e373b7b35f9527ed3b190e115de17c18b29",
      "parents": [
        "ed71fbd4620ce7b9f5087d37d44961e291da858c"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Sep 02 13:14:30 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Sep 02 13:15:46 2013 +0200"
      },
      "message": "Add support for \u003c![CDATA[ sections ]]\u003e\n"
    },
    {
      "commit": "ed71fbd4620ce7b9f5087d37d44961e291da858c",
      "tree": "97cc242b5dffa466eda5b3cb12b23680bac301ae",
      "parents": [
        "52cc47b641dcd90cebba55828645a8d1d2251922"
      ],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Sep 02 13:03:25 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Sep 02 13:03:25 2013 +0200"
      },
      "message": "Allow absent XMLDecl, support PI and element contents, +hack for DTD\n"
    },
    {
      "commit": "52cc47b641dcd90cebba55828645a8d1d2251922",
      "tree": "1b74894d9d9c6807b00f6ce61d1ab83e208774d0",
      "parents": [],
      "author": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Sep 02 11:38:49 2013 +0200"
      },
      "committer": {
        "name": "Yorhel",
        "email": "git@yorhel.nl",
        "time": "Mon Sep 02 11:38:49 2013 +0200"
      },
      "message": "Initial commit\n"
    }
  ]
}
