)]}'
{
  "log": [
    {
      "commit": "76efafba2af36ae5f6c7b79b56c537fcbcdb386c",
      "tree": "8b8793c31801fc05d1c5595f14a79261417e86b6",
      "parents": [
        "2b529bb6260b52246e92429375d995b9b5ce76b6"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 27 14:21:21 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 27 14:21:21 2016 +0200"
      },
      "message": "patch 7.4.2265\nProblem:    printf() isn\u0027t tested much.\nSolution:   Add more tests for printf(). (Dominique Pelle)\n"
    },
    {
      "commit": "989f592f7ffcbafdc4ec35cee4dc65bd053e2077",
      "tree": "122c18af5dbbd1b69e025a7d0293ff0b55e4a93b",
      "parents": [
        "dd1248143e56b1450903fe40813e40c63691b071"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 21 15:26:54 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 21 15:26:54 2016 +0200"
      },
      "message": "patch 7.4.2235\nProblem:    submatch() does not check for a valid argument.\nSolution:   Give an error if the argument is out of range. (Dominique Pelle)\n"
    },
    {
      "commit": "843b884461de1c79a1d2748549776fb13fc94360",
      "tree": "6c51e94545370536734e3033f67b19e5c23cbb49",
      "parents": [
        "e07e797db0c5ef1aafc650d8bb0d39fb052cf1e1"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 21 14:36:15 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 21 14:36:15 2016 +0200"
      },
      "message": "patch 7.4.2233\nProblem:    Crash when using funcref() with invalid name. (Dominique Pelle)\nSolution:   Check for NULL translated name.\n"
    },
    {
      "commit": "91984b9034d3b698459622be277d963e0c6df60e",
      "tree": "329479725a833a6bc5ae7b42cf7c1686c6542597",
      "parents": [
        "e5a8f35b4286135f3469f3b00a6c2220553d9658"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 16 21:58:41 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 16 21:58:41 2016 +0200"
      },
      "message": "patch 7.4.2221\nProblem:    printf() does not support binary format.\nSolution:   Add %b and %B. (Ozaki Kiichi)\n"
    },
    {
      "commit": "e5a8f35b4286135f3469f3b00a6c2220553d9658",
      "tree": "a7505fde61e414d9664d99be9136677584277521",
      "parents": [
        "f5a39447a8ebe162ee62caa2ee502cd0e65eecaa"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 16 21:30:54 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 16 21:30:54 2016 +0200"
      },
      "message": "patch 7.4.2220\nProblem:    printf() gives an error when the argument for %s is not a string.\n            (Ozaki Kiichi)\nSolution:   Behave like invoking string() on the argument. (Ken Takata)\n"
    },
    {
      "commit": "7ab6defcafe017a3ad58580a3e56dab705b1ed8b",
      "tree": "cbb3ca004311c7e7ed9aced83886e3804eac9035",
      "parents": [
        "7dc5e2e486fe0287601968e535902a41a39f65bb"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Aug 05 22:51:13 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Aug 05 22:51:13 2016 +0200"
      },
      "message": "patch 7.4.2161\nProblem:    Expression test fails without conceal feature.\nSolution:   Only check \"conceal\" with the conceal feature.\n"
    },
    {
      "commit": "7dc5e2e486fe0287601968e535902a41a39f65bb",
      "tree": "7dae219602d36900e7c309d44a17f4e800bf90aa",
      "parents": [
        "5971dab1126d6279c6e523f4fedc2f1e6fb9b4c9"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Aug 05 22:22:06 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Aug 05 22:22:06 2016 +0200"
      },
      "message": "patch 7.4.2160\nProblem:    setmatches() mixes up values. (Nikolai Pavlov)\nSolution:   Save the string instead of reusing a shared buffer.\n"
    },
    {
      "commit": "437bafe4c8a83ed71ee006eda7f54b65a90f0d4c",
      "tree": "dac9426b1bafe44f050bbb13c027de31117c089d",
      "parents": [
        "580164481924ed8611eb79f0247a0eb1ca0b3b9a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 01 15:40:54 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 01 15:40:54 2016 +0200"
      },
      "message": "patch 7.4.2137\nProblem:    Using function() with a name will find another function when it is\n            redefined.\nSolution:   Add funcref().  Refer to lambda using a partial.  Fix several\n            reference counting issues.\n"
    },
    {
      "commit": "b54c3ff3174dbb5dfbfcabdf95200b047beaa644",
      "tree": "a230032c07f9373c65ca64e4b9c237e70b4d6a54",
      "parents": [
        "fc1f2015e833e69b89b994faf4b2c4fc1e09220f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jul 31 14:11:58 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jul 31 14:11:58 2016 +0200"
      },
      "message": "patch 7.4.2134\nProblem:    No error for using function() badly.\nSolution:   Check for passing wrong function name. (Ken Takata)\n"
    },
    {
      "commit": "df48fb456fb6bf63d94cad9b302ff01d8ee8d311",
      "tree": "e40ac7facad1b205bf5990a535c8c1686fbeb05b",
      "parents": [
        "36edf0685c8b55ee3ce709058d83ada8027fec1e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jul 22 21:50:18 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jul 22 21:50:18 2016 +0200"
      },
      "message": "patch 7.4.2090\nProblem:    Using submatch() in a lambda passed to substitute() is verbose.\nSolution:   Use a static list and pass it as an optional argument to the\n            function.  Fix memory leak.\n"
    },
    {
      "commit": "72ab729c3dcdea0fba44d8e676602c847e841bcd",
      "tree": "82fb5790a50f308a743f4a58c9bdf5d83bcbc5a1",
      "parents": [
        "f562e72df726c6191fa305e1c0a113f1cfb87f76"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jul 19 19:10:51 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jul 19 19:10:51 2016 +0200"
      },
      "message": "patch 7.4.2072\nProblem:    substitute() does not support a Funcref argument.\nSolution:   Support a Funcref like it supports  a string starting with \"\\\u003d\".\n"
    },
    {
      "commit": "38ee6b041e73ad31c3b6b99d56d20833b59b2b57",
      "tree": "e53ca4b85111a162ad9a68280c761d6226e7395b",
      "parents": [
        "5498a41f5a62c3877fee0185adf3bf7245a9a547"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jul 12 21:11:33 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jul 12 21:11:33 2016 +0200"
      },
      "message": "patch 7.4.2029\nProblem:    printf() does not work with 64 bit numbers.\nSolution:   use the \"L\" length modifier. (Ken Takata)\n"
    },
    {
      "commit": "2acfbed9dbea990f129535de7ff3df360365130b",
      "tree": "a7a0be95e7ed13ae5450de39b948a1ef34d318c0",
      "parents": [
        "c5af40ae646ceda817eff93b4f9ba274f031bea6"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jul 01 23:14:02 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jul 01 23:14:02 2016 +0200"
      },
      "message": "patch 7.4.1979\nProblem:    Getting value of binary option is wrong. (Kent Sibilev)\nSolution:   Fix type cast.  Add a test.\n"
    },
    {
      "commit": "1d90a5a5af84250e226f8a9121e771f7b72aa894",
      "tree": "a389742a425e6f06966959bd744c96c3a4f296a3",
      "parents": [
        "6747fabc7348bf5f41ccfe851e2be3e900ec8ee0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jul 01 11:59:47 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jul 01 11:59:47 2016 +0200"
      },
      "message": "patch 7.4.1968\nProblem:    Invalid memory access with \"\\\u003cC-\"\u003e.\nSolution:   Do not recognize this as a special character. (Dominique Pelle)\n"
    },
    {
      "commit": "13ddc5c35921efa69e980284117b6db6465e019c",
      "tree": "2095963774e746cecb256591e4c4f02feeb8b08c",
      "parents": [
        "54c10ccf9274880e83093a99690e7bfa9a2d2fa8"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 25 22:51:17 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 25 22:51:17 2016 +0200"
      },
      "message": "patch 7.4.1847\nProblem:    Getting an item from a NULL dict crashes.  Setting a register to a\n            NULL list crashes. (Nikolai Pavlov, issue #768)  Comparing a NULL\n            dict with a NULL dict fails.\nSolution:   Properly check for NULL.\n"
    },
    {
      "commit": "574860b5ee9da281c875dad07a607454e135eaee",
      "tree": "c4eed36a67682b8fb209142b3f7081e11fee7f8b",
      "parents": [
        "c67e89213476b5f4756d92208b57ce9ef4a4cf24"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 24 17:33:34 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 24 17:33:34 2016 +0200"
      },
      "message": "patch 7.4.1838\nProblem:    Functions specifically for testing do not sort together.\nSolution:   Rename garbagecollect_for_testing() to test_garbagecollect_now().\n            Add test_null_list(), test_null_dict(), etc.\n"
    },
    {
      "commit": "d8585eded6359f1d7e1981e96ae775efd077c638",
      "tree": "38d8334bedc5b982160b8a4d55e35805a2b64010",
      "parents": [
        "9a3b3311d26c990208150255ad65472bb4eefaa4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 01 23:05:53 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 01 23:05:53 2016 +0200"
      },
      "message": "patch 7.4.1816\nProblem:    Looping over a null list throws an error.\nSolution:   Skip over the for loop.\n"
    },
    {
      "commit": "517ffbee0d5b7b46320726faaa330b61f54e867c",
      "tree": "9ca3dee43fb4353bdf64586d12a55ab731be7656",
      "parents": [
        "c3691332f72169c486066200c0f3935418364900"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Apr 20 14:59:29 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Apr 20 14:59:29 2016 +0200"
      },
      "message": "patch 7.4.1755\nProblem:    When using getreg() on a non-existing register a NULL list is\n            returned. (Bjorn Linse)\nSolution:   Allocate an empty list. Add a test.\n"
    },
    {
      "commit": "0f518a8f4d4be4cac10389680f6bd5e3781f94b0",
      "tree": "03e73f418451f8a7019a60fae27ccf5561529467",
      "parents": [
        "839e954aaa72ef62f65416d177f829e681c15466"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Apr 14 16:57:10 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Apr 14 16:57:10 2016 +0200"
      },
      "message": "patch 7.4.1734\nProblem:    Test fails when not using utf-8.\nSolution:   Split test in regularand utf-8 part.\n"
    },
    {
      "commit": "58de0e2dcc1f2d251b74892a06d71a14973f3187",
      "tree": "73357af1942325ac46de5990a06d872d1e626118",
      "parents": [
        "6244a0fc29163ba1c734f92b55a89e01e6cf2a67"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Apr 14 15:13:46 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Apr 14 15:13:46 2016 +0200"
      },
      "message": "patch 7.4.1730\nProblem:    It is not easy to get a character out of a string.\nSolution:   Add strgetchar() and strcharpart().\n"
    },
    {
      "commit": "0921ecff1c5a74541bad6c073e8ade32247403d8",
      "tree": "b35a348a88d035fbb75131cbfee3bdcb7809ac40",
      "parents": [
        "e185c1efba3cb2611ac303c39a08e908497cbac4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Apr 03 22:44:36 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Apr 03 22:44:36 2016 +0200"
      },
      "message": "patch 7.4.1707\nProblem:    Cannot use empty dictionary key, even though it can be useful.\nSolution:   Allow using an empty dictionary key.\n"
    },
    {
      "commit": "819821c5a95fc60797ecbb5e5ca1302e397e3d9a",
      "tree": "0d38f7806dc07d66132078c1e5f6d13ebe6bdc9a",
      "parents": [
        "e1581307d281ceb35726e1b4ca30ef773a2ef23e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Mar 26 21:24:14 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Mar 26 21:24:14 2016 +0100"
      },
      "message": "patch 7.4.1660\nProblem:    has(\u0027patch-7.4.1\u0027) doesn\u0027t work.\nSolution:   Fix off-by-one error. (Thinca)\n"
    },
    {
      "commit": "f0e86a0dbddc18568910e9e4aaae0cd88ca8087a",
      "tree": "cd3a18a36ff0037bfc7f47c83ed2e4c66967cb8e",
      "parents": [
        "953cc7fb139dc2ba8590f8b03a095b63f4e1208f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Mar 19 19:38:12 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Mar 19 19:38:12 2016 +0100"
      },
      "message": "patch 7.4.1607\nProblem:    Comparing a function that exists on two dicts is not backwards\n            compatible. (Thinca)\nSolution:   Only compare the function, not what the partial adds.\n"
    }
  ]
}
