)]}'
{
  "log": [
    {
      "commit": "f4fba6dcd508cb369ffa6916d9cb3fcf3d7ed548",
      "tree": "eadfcc55dff51f143e33a228f91c9c60302fbd20",
      "parents": [
        "d388d2ac8bf8c770bf97dc406e99a20ba5104855"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 26 16:44:24 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 26 16:44:24 2016 +0200"
      },
      "message": "patch 7.4.1955\nProblem:    Using 32-bit Perl with 64-bit time_t causes memory corruption.\n            (Christian Brabandt)\nSolution:   Use time_T instead of time_t for global variables. (Ken Takata)\n"
    },
    {
      "commit": "945ec093cd4ddefab930239990564b12eb232153",
      "tree": "f0bbaf6b699d1d3e758e6b3a395413ef64d00742",
      "parents": [
        "5ce4a0b96ab688b1ea2481c2516e2889ff6713bf"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jun 08 21:17:43 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jun 08 21:17:43 2016 +0200"
      },
      "message": "patch 7.4.1909\nProblem:    Doubled semicolons.\nSolution:   Reduce to one. (Dominique Pelle)\n"
    },
    {
      "commit": "b89a25f17e274dc308c584ea69a129ffbb26bc3d",
      "tree": "455bf3eab43488d41987e9e5ef1cebd50e099b71",
      "parents": [
        "3c809343c72d9964475f421fd03bb892bc584a51"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jun 01 23:08:39 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jun 01 23:08:39 2016 +0200"
      },
      "message": "patch 7.4.1868\nProblem:    Setting really_exiting causes memory leaks to be reported.\nSolution:   Add the in_free_all_mem flag.\n"
    },
    {
      "commit": "a96732150cda2f242133228579b05437a39b8daa",
      "tree": "d47ae09c2dfccdb4331471cecbc3b35b43aab0a4",
      "parents": [
        "9ad73239c26467832a5b553b2a4b99d7ffbaa25e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jun 01 22:21:06 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jun 01 22:21:06 2016 +0200"
      },
      "message": "patch 7.4.1866\nProblem:    Invalid memory access when exiting with EXITFREE defined.\n            (Dominique Pelle)\nSolution:   Set \"really_exiting\" and skip error messages.\n"
    },
    {
      "commit": "655da31a18ef3f888acf10e68b438e2a851f7b14",
      "tree": "83d8a9b03a2d926d7b94092e975a66f679fd1b70",
      "parents": [
        "d80629cef03cd40b0bf06c402dfe0b720b3bf608"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 28 22:22:34 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 28 22:22:34 2016 +0200"
      },
      "message": "patch 7.4.1855\nProblem:    Valgrind reports memory leak for job that is not freed.\nSolution:   Free all jobs on exit.  Add test for failing job.\n"
    },
    {
      "commit": "8b877ac38e96424a08a8b8eb713ef4b3cf0064be",
      "tree": "c72ac7aa90e66ad1e6d6c82fb27ab7d74de3eea9",
      "parents": [
        "ee1f7b3cb71684aaa9bf457e2caf9d02187e6b7c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Mar 28 19:16:20 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Mar 28 19:16:20 2016 +0200"
      },
      "message": "patch 7.4.1669\nProblem:    When writing buffer lines to a pipe Vim may block.\nSolution:   Avoid blocking, write more lines later.\n"
    },
    {
      "commit": "44a2f923c00f1384c9ecde12fb5b4711bc20702e",
      "tree": "ff48a0f263f488b023e5b4c7d45af05dade92e8f",
      "parents": [
        "cc6cf9b9f9045a7d8b5923ea0c556e9a4c2567d3"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Mar 19 22:11:51 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Mar 19 22:11:51 2016 +0100"
      },
      "message": "patch 7.4.1611\nProblem:    The versplit feature makes the code uneccessary complicated.\nSolution:   Remove FEAT_VERTSPLIT, always support vertical splits when\n            FEAT_WINDOWS is defined.\n"
    },
    {
      "commit": "509ce2a558e7e0c03242e32e844255af52f1c821",
      "tree": "a79ac8c1e42f2f9eefa81016328194a346dade06",
      "parents": [
        "de27989157f35172b25f9e01e0c147ed8f6ae3ce"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Mar 11 22:52:15 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Mar 11 22:52:15 2016 +0100"
      },
      "message": "patch 7.4.1537\nProblem:    Too many feature flags for pipes, jobs and channels.\nSolution:   Only use FEAT_JOB_CHANNEL.\n"
    },
    {
      "commit": "2f6271b1e7cff985cac66f6850116bcf3fcccd58",
      "tree": "e19881c35030148e1c4981e8589b7c49bdddd23d",
      "parents": [
        "a86f14a923d9a242107c16d0852f61f3daf985a8"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Feb 29 21:20:48 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Feb 29 21:20:48 2016 +0100"
      },
      "message": "patch 7.4.1462\nProblem:    Two more rarily used functions with errors.\nSolution:   Add proper argument types. (Dominique Pelle)\n"
    },
    {
      "commit": "48e330aff911be1c798c88a973af6437a8141fce",
      "tree": "4945b46753c6220ae5e8cd406d139e5640bd39c4",
      "parents": [
        "4e221c99e85ed40c98892068a01270b9e7492d98"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 23 14:53:34 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 23 14:53:34 2016 +0100"
      },
      "message": "patch 7.4.1399\nProblem:    The MS-DOS code does not build.\nSolution:   Remove the old MS-DOS code.\n"
    },
    {
      "commit": "ee1cffc07a42441924c5353af7fd7ab6e97e5aae",
      "tree": "f3d7bf205c1d93a2844352237ced27046d468a60",
      "parents": [
        "b7522a2f0ca6c970df37241c9e70024465d8596b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 21 19:14:41 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 21 19:14:41 2016 +0100"
      },
      "message": "patch 7.4.1380\nProblem:    The job exit callback is not implemented.\nSolution:   Add the \"exit-cb\" option.\n"
    },
    {
      "commit": "b7522a2f0ca6c970df37241c9e70024465d8596b",
      "tree": "67c9867f97c1339af9da874ff290a55a58bc9b21",
      "parents": [
        "65edff8f51e9e54f85407bdb9156ae8e3e1b76a1"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 21 17:20:55 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 21 17:20:55 2016 +0100"
      },
      "message": "patch 7.4.1379\nProblem:    Channel test fails on Win32 console.\nSolution:   Don\u0027t sleep when timeout is zero. Call channel_wait() before\n            channel_read(). Channels are not polled during \":sleep\". (Yukihiro\n            Nakadaira)\n"
    },
    {
      "commit": "cf7164a088664961e7d70dd100c5874dc5ceb293",
      "tree": "93cf8f7643786a9cb9488852b73c1ef480031ee1",
      "parents": [
        "065bbac8adfe29a09958570237d223457f235c6c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 20 13:55:06 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 20 13:55:06 2016 +0100"
      },
      "message": "patch 7.4.1364\nProblem:    The Win 16 code is not maintained and unused.\nSolution:   Remove the Win 16 support.\n"
    },
    {
      "commit": "7707344ddec9069b495b2a5ed41f2104466fc88b",
      "tree": "9c6b21f811c7c38a89daf010c61453d7d6eaa8da",
      "parents": [
        "e516c39ee97cb85fa230fbb1b1f54ad1346920d9"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 13 23:23:53 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 13 23:23:53 2016 +0100"
      },
      "message": "patch 7.4.1315\nProblem:    Using a channel handle does not allow for freeing it when unused.\nSolution:   Add the Channel variable type.\n"
    },
    {
      "commit": "20fb9f346497daca4d19402fdfa5de7958642477",
      "tree": "a5f484e21e755b04f4e2ab195c8aac3e8c299daa",
      "parents": [
        "ba4ef2757cfc126f342b710f1ad9ea39e6b56cec"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 30 23:20:33 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 30 23:20:33 2016 +0100"
      },
      "message": "patch 7.4.1217\nProblem:    Execution of command on channel doesn\u0027t work yet.\nSolution:   Implement the \"ex\" and \"normal\" commands.\n"
    },
    {
      "commit": "ba4ef2757cfc126f342b710f1ad9ea39e6b56cec",
      "tree": "6cf877a8c549b74c010e51be5ca91cd436b39162",
      "parents": [
        "b638a7be952544ceb03052c25b84224577a6494b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 30 21:48:49 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 30 21:48:49 2016 +0100"
      },
      "message": "patch 7.4.1216\nProblem:    Still using HAVE_STDARG_H.\nSolution:   Assume it\u0027s always defined.\n"
    },
    {
      "commit": "9b57814db13c29ecb08260b36923c0e1c8a373a9",
      "tree": "518df78530838cc70b222930955e2c0522ddd393",
      "parents": [
        "52ea13da0fe86df1abf34de52841e367035170c0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 30 19:39:49 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 30 19:39:49 2016 +0100"
      },
      "message": "patch 7.4.1211\nProblem:    Using old style function declarations.\nSolution:   Change to new style function declarations. (script by Hirohito\n            Higashi)\n"
    },
    {
      "commit": "92b8b2d307e34117f146319872010b0ccc9d2713",
      "tree": "14592978271f07a5bebd2e7001c2c1f2e7c3a60b",
      "parents": [
        "d25c16e2f2776d50245bf31d6e4d5364f12d188e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 29 22:36:45 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 29 22:36:45 2016 +0100"
      },
      "message": "patch 7.4.1198\nProblem:    Still using __ARGS.\nSolution:   Remove __ARGS in several files. (script by Hirohito Higashi)\n            Also remove use of HAVE_STDARG_H.\n"
    },
    {
      "commit": "b20e334859334be35de4b295023a2b49bdabbfa9",
      "tree": "adc41d9170de34857be2de9628d10174d1501766",
      "parents": [
        "61ff4dd6a4d47bd32383fe28087be2b37dec53f4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 18 23:29:01 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 18 23:29:01 2016 +0100"
      },
      "message": "patch 7.4.1131\nProblem:    New lines in the viminfo file are dropped.\nSolution:   Copy lines starting with \"|\".  Fix that when using :rviminfo in a\n            function global variables were restored as function-local\n            variables.\n"
    },
    {
      "commit": "58adb14739fa240ca6020cede9ab1f1cb07bd90a",
      "tree": "659dac4baa05f277c760ffe5f73f128c4ee20536",
      "parents": [
        "da440d21a6b94d7f525fa7be9b1417c78dd9aa4c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 16 21:50:51 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 16 21:50:51 2016 +0100"
      },
      "message": "patch 7.4.1108\nProblem:    Expanding \"~\" halfway a file name.\nSolution:   Handle the file name as one name. (Marco Hinz)  Add a test.\n            Closes #564.\n"
    },
    {
      "commit": "a260b87d9da17f605666630f18c1ed909c2b8bae",
      "tree": "03fb7aaf4b31ace780c4b040537e65c695b63457",
      "parents": [
        "3d6d5cc3a417c04d9772596ea83f8e6b41321781"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 15 20:48:22 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 15 20:48:22 2016 +0100"
      },
      "message": "patch 7.4.1096\nProblem:    Need several lines to verify a command produces an error.\nSolution:   Add assert_fails(). (suggested by Nikolay Pavlov)\n            Make the quickfix alloc test actually work.\n"
    },
    {
      "commit": "28fb79db6b52d1154e8dc63d227673648c2fce15",
      "tree": "4a1a10e264249d9851ffb9b7396ade0fc808fec6",
      "parents": [
        "44132a10aeb45c957959cafb4ac39d3f478be98c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 09 22:28:33 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 09 22:28:33 2016 +0100"
      },
      "message": "patch 7.4.1073\nProblem:    Alloc_id depends on numbers, may use the same one twice.  It\u0027s not\n            clear from the number what it\u0027s for.\nSolution:   Use an enum.  Add a function to lookup the enum value from the\n            name.\n"
    },
    {
      "commit": "5f24542e5eda590acdbee89b120fa2e19ec7596e",
      "tree": "4a19716237a78cc9972291544c16ad9ff3c2c4c2",
      "parents": [
        "71bcfdf30109c3d6e40d143adcaf33964b18a70b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 09 18:52:40 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 09 18:52:40 2016 +0100"
      },
      "message": "patch 7.4.1069\nProblem:    Compiler warning for unused argument.\nSolution:   Add UNUSED.\n"
    },
    {
      "commit": "285bf84b4b9aca828828a8729b04cd59ab333dac",
      "tree": "287c997dd02a830ec8b3c29e005d789cabbfced0",
      "parents": [
        "6602af7fe069246dbcf419c3e904a78b60e7d4dc"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 07 22:34:01 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 07 22:34:01 2016 +0100"
      },
      "message": "patch 7.4.1061\nProblem:    Compiler warning for ignoring return value of fwrite().\nSolution:   Do use the return value. (idea: Charles Campbell)\n"
    },
    {
      "commit": "75bdf6aa30a5c99d67c42886cf7a4a000bbaa422",
      "tree": "e3e1a3fea418f892524eeec3cb0c2eaa31f5ad61",
      "parents": [
        "2b7db933b0418f3964da5399047ce8998007874c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 07 21:25:08 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 07 21:25:08 2016 +0100"
      },
      "message": "patch 7.4.1058\nProblem:    It is not possible to test code that is only reached when memory\n            allocation fails.\nSolution:   Add the alloc_fail() function.  Try it out with :vimgrep.\n"
    },
    {
      "commit": "887c1fea4a114e7170091942d0446c8882701b5b",
      "tree": "23173526918b54763e5eed1b26a7bdad3ac7884a",
      "parents": [
        "acf92d27c94811e3bd6b84cfd54246e91d44c355"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 02 17:56:35 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 02 17:56:35 2016 +0100"
      },
      "message": "patch 7.4.1027\nProblem:    No support for binary numbers.\nSolution:   Add \"bin\" to nrformats. (Jason Schulz)\n"
    },
    {
      "commit": "e7fedb6ebe72d9a475aa65109b77d5ed4667067a",
      "tree": "19327fc9d1ca538d9c5c81c7284adf492e790e6d",
      "parents": [
        "e3303cb0817e826e3c25d5dc4ac10b569d0841e1"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 31 19:07:19 2015 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 31 19:07:19 2015 +0100"
      },
      "message": "patch 7.4.1008\nProblem:    The OS/2 code pollutes the source while nobody uses it these days.\nSolution:   Drop the support for OS/2.\n"
    },
    {
      "commit": "43345546ae63710441f066648b8485fb545b3801",
      "tree": "6856441fbdb36ee40e5225b97b1e0e698fc72d62",
      "parents": [
        "48a969b48898fb08dce636c6b918408c6fbd3ea0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Nov 29 17:35:35 2015 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Nov 29 17:35:35 2015 +0100"
      },
      "message": "patch 7.4.944\nProblem:    Writing tests for Vim script is hard.\nSolution:   Add assertEqual(), assertFalse() and assertTrue() functions.  Add\n            the v:errors variable.  Add the runtest script. Add a first new\n            style test script.\n"
    },
    {
      "commit": "8648357841065295e39831d2b559d87ca01a7a7c",
      "tree": "519b0f114a3e4d8256743ad2866f023b8988e1ed",
      "parents": [
        "174674743d9a2d7361c9cd89836f8dd8651edeeb"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Nov 10 19:04:23 2015 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Nov 10 19:04:23 2015 +0100"
      },
      "message": "patch 7.4.916\nProblem:    When running out of memory while copying a dict memory may be\n            freed twice. (ZyX)\nSolution:   Do not call the garbage collector when running out of memory.\n"
    },
    {
      "commit": "c79a5452acd695238798947e40086f9823c400e7",
      "tree": "40e16832af4e827bb20eeaf65c05eb7204bc26c4",
      "parents": [
        "ca63501fbcd1cf9c8aa9ff12c093c95b62a89ed7"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Sep 29 12:08:42 2015 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Sep 29 12:08:42 2015 +0200"
      },
      "message": "patch 7.4.885\nProblem:    When doing an upwards search without wildcards the search fails if\n            the initial directory doesn\u0027t exist.\nSolution:   Fix the non-wildcard case. (Stefan Kempf)\n"
    },
    {
      "commit": "4d0c7bc74ac6fad5cb599dc3ade6996e848d83b6",
      "tree": "08b12183ff166ec76ffdcfbf4b147b5501f124e4",
      "parents": [
        "b0262f239e77480f81fa3345491b7b6d52a17f6d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 25 16:38:01 2015 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 25 16:38:01 2015 +0200"
      },
      "message": "patch 7.4.877\nProblem:    \":find\" sometimes fails. (Excanoe)\nSolution:   Compare current characters instead of previous ones.\n"
    },
    {
      "commit": "9534680731ea342c2fed01a812559958923480da",
      "tree": "a44dee71d6a0ebff4f71d9e0dbd2d81d342341d1",
      "parents": [
        "93c88e0f6a4a8f7634ed84721daf4af46fc0d5db"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Sep 15 15:57:29 2015 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Sep 15 15:57:29 2015 +0200"
      },
      "message": "patch 7.4.867\nProblem:    Can\u0027t build on MS-Windows. (Taro Muraoka)\nSolution:   Adjust #ifdef.\n"
    },
    {
      "commit": "93c88e0f6a4a8f7634ed84721daf4af46fc0d5db",
      "tree": "b325606d26d69c3804a9007cf7d1fa4a8034f4aa",
      "parents": [
        "ed84b76021df763619cabaedddc44eb5ee849136"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Sep 15 14:12:05 2015 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Sep 15 14:12:05 2015 +0200"
      },
      "message": "patch 7.4.866\nProblem:    Crash when changing the \u0027tags\u0027 option from a remote command.\n            (Benjamin Fritz)\nSolution:   Instead of executing messages immediately, use a queue, like for\n            netbeans. (James Kolb)\n"
    },
    {
      "commit": "d43f0951bca162d4491d57df9277b5dbc462944f",
      "tree": "991fb61c507ad6a26a63b735118c07ca442e93f4",
      "parents": [
        "cdf0442d009ea97fad06d72231f7de309c75205a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 27 22:30:47 2015 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 27 22:30:47 2015 +0200"
      },
      "message": "patch 7.4.843\nProblem:    Still possible to go beyond the end of a string.\nSolution:   Check for NUL also in second string. (Dominique Pelle)\n"
    },
    {
      "commit": "f6470c288cb6f8efd60a507baf2c070f9d209ae6",
      "tree": "9cce4dad7812c2537f5a613abd547de61c655ee8",
      "parents": [
        "7e47d1ac6a9ae0e5a7167aa34ff651a9c39c1641"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 25 16:31:40 2015 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 25 16:31:40 2015 +0200"
      },
      "message": "patch 7.4.835\nProblem:    Comparing utf-8 sequences does not handle different byte sizes\n            correctly.\nSolution:   Get the byte size of each character. (Dominique Pelle)\n"
    },
    {
      "commit": "2536d4f396680f079e2cb96f9787a434846b5ce7",
      "tree": "0f7a7d0a8d1b24aef3970a03252346c875a8c005",
      "parents": [
        "5d1bc78a2b9fbe3e3112afcde7c80eb19d5989f4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jul 17 13:22:51 2015 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jul 17 13:22:51 2015 +0200"
      },
      "message": "patch 7.4.783\nProblem:    copy_chars() and copy_spaces() are inefficient.\nSolution:   Use memset() instead. (Dominique Pelle)\n"
    },
    {
      "commit": "5d1bc78a2b9fbe3e3112afcde7c80eb19d5989f4",
      "tree": "5063777a3da9f1820380678fb550a554d55b7081",
      "parents": [
        "fe6f18687761403470979feef8fe8ce582ae3b60"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jul 17 13:03:48 2015 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jul 17 13:03:48 2015 +0200"
      },
      "message": "patch 7.4.782\nProblem:    Still a few problems with CTRL-A and CTRL-X in Visual mode.\nSolution:   Fix the reported problems. (Christian Brabandt)\n"
    },
    {
      "commit": "d82a2a990bc329754e1b61c5af669c76ac202497",
      "tree": "b7655ae9701795e9646749c9b0a08a7b0de43a49",
      "parents": [
        "f9bde2b152d3344c694c5e1ca629156b34f1a627"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Apr 21 14:02:35 2015 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Apr 21 14:02:35 2015 +0200"
      },
      "message": "patch 7.4.704\nProblem:    Searching for a character matches an illegal byte and causes\n            invalid memory access. (Dominique Pelle)\nSolution:   Do not match an invalid byte when search for a character in a\n            string.  Fix equivalence classes using negative numbers, which\n            result in illegal bytes.\n"
    },
    {
      "commit": "cf48767cd17130958a3076eed1872b6950947a0a",
      "tree": "3d00f129961e7193884854fb49b6a3ea6a0a0c46",
      "parents": [
        "f3c2afb77f8b1f2591337fcaa90ba0fb45365cbc"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 05 13:36:00 2015 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Mar 05 13:36:00 2015 +0100"
      },
      "message": "updated for version 7.4.649\nProblem:    Compiler complains about ignoring return value of fwrite().\n            (Michael Jarvis)\nSolution:   Add (void).\n"
    },
    {
      "commit": "d45c07ac7499358c5cb096cadb675ce74ae3eaf6",
      "tree": "13875945fd62b050fb38fed1b109fedb350c2301",
      "parents": [
        "dfd7691bb85b345bd86cf30945a66acf7c782920"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Feb 27 17:19:10 2015 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Feb 27 17:19:10 2015 +0100"
      },
      "message": "updated for version 7.4.642\nProblem:    When using \"gf\" escaped spaces are not handled.\nSolution:   Recognize escaped spaces.\n"
    },
    {
      "commit": "1db60c47d9a0f14f4586702bfd8fccd8ea96f83f",
      "tree": "27a97f7d73f1053fad6153531df62fcd79bbf0c8",
      "parents": [
        "b8ee25acabe887aec5008fd254c4e5c61bebbb04"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Sep 23 16:49:46 2014 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Sep 23 16:49:46 2014 +0200"
      },
      "message": "updated for version 7.4.457\nProblem:    Using getchar() in an expression mapping may result in\n            K_CURSORHOLD, which can\u0027t be recognized.\nSolution:   Add the \u003cCursorHold\u003e key.  (Hirohito Higashi)\n"
    },
    {
      "commit": "5d2bae8b1c2bb8059010ea604e092de9cf3c1baf",
      "tree": "4e08dc4660c82fa64e4da92e50e7e99698119d25",
      "parents": [
        "714db3bb819bb7f9f52270f2352b274bba3a9ff4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 19 14:26:36 2014 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 19 14:26:36 2014 +0200"
      },
      "message": "updated for version 7.4.446\nProblem:    In some situations, when setting up an environment to trigger an\n            autocommand, the environment is not properly restored.\nSolution:   Check the return value of switch_win() and call restore_win()\n            always.  (Daniel Hahler)\n"
    },
    {
      "commit": "8f4ac01544b44bdd906d241e4f203de7496e5ac8",
      "tree": "52ee7ff7368d7953f2baa3d7d015c539b11a345e",
      "parents": [
        "0106b4b89127b043eddf711c750364b487deb794"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 10 13:38:34 2014 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 10 13:38:34 2014 +0200"
      },
      "message": "updated for version 7.4.399\nProblem:    Encryption implementation is messy.  Blowfish encryption has a\n            weakness.\nSolution:   Refactor the encryption, store the state in an allocated struct\n            instead of using a save/restore mechanism.  Introduce the\n            \"blowfish2\" method, which does not have the weakness and encrypts\n            the whole undo file. (largely by David Leadbeater)\n"
    },
    {
      "commit": "597a422416f37f8e22ed8f561667d6bab8814958",
      "tree": "8bada5798d608ac2a37b7f0ddbf7a24e8da4bd25",
      "parents": [
        "15a35c4f4a1670dd6ca228068a451f78d2bf75e0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jun 25 14:39:50 2014 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jun 25 14:39:50 2014 +0200"
      },
      "message": "updated for version 7.4.338\nProblem:    Cannot wrap lines taking indent into account.\nSolution:   Add the \u0027breakindent\u0027 option. (many authors, final improvements by\n            Christian Brabandt)\n"
    },
    {
      "commit": "1b1063af58b015b7827168f8fa2631efb60c252b",
      "tree": "ecebaed1979aee36aa61e9a7ea1bebdb597be0d6",
      "parents": [
        "3ec7f4e4025c5a78ccd312f8516ac0740aa65dfe"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 07 18:35:30 2014 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 07 18:35:30 2014 +0200"
      },
      "message": "updated for version 7.4.279\nProblem:    globpath() returns a string, making it difficult to get a list of\n            matches. (Greg Novack)\nSolution:   Add an optional argument like with glob(). (Adnan Zafar)\n"
    },
    {
      "commit": "f7ff6e85e8a4e84cff023f5db4b66ef85986605a",
      "tree": "813913a9c1d1418b5b85e3a4bc414dbeb2b3f6a3",
      "parents": [
        "a68783751647e3243ca6f22df62907efbdbccb02"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Mar 23 15:13:05 2014 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Mar 23 15:13:05 2014 +0100"
      },
      "message": "updated for version 7.4.212\nProblem:    Now that the +visual feature is always enabled the #ifdefs for it\n            are not useful.\nSolution:   Remove the checks for FEAT_VISUAL.\n"
    },
    {
      "commit": "26df092843de91ea0c5c5c130d0d0695d2d81c07",
      "tree": "a049c605f9dee06d777ad030b291ddf782cfcdb9",
      "parents": [
        "581966e8323c2bab6f9e54729708dc46de8f9fc5"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 23 23:39:13 2014 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 23 23:39:13 2014 +0100"
      },
      "message": "updated for version 7.4.191\nProblem:    Escaping a file name for shell commands can\u0027t be done without a\n            function.\nSolution:   Add the :S file name modifier.\n"
    },
    {
      "commit": "5f4c8406a2c58320a94de77f49b35eda7058f328",
      "tree": "c2cd71fa39c02d25b35d2ffbcb26e0902ed7dd6e",
      "parents": [
        "3f1138e8aefc91768cd3d94b4d15671204c117c3"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 06 06:19:11 2014 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 06 06:19:11 2014 +0100"
      },
      "message": "updated for version 7.4.133\nProblem:    Clang warns for using NUL.\nSolution:   Change NUL to NULL. (Dominique Pelle)\n"
    },
    {
      "commit": "0bd7b3f4ce0e70ff762689dc0fd9f41b54692694",
      "tree": "6f961d0fff73bc7d25b8598e7fcf834b62570c84",
      "parents": [
        "959a143f2e17d81c108b60493815419c7772aa63"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Dec 14 12:48:58 2013 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Dec 14 12:48:58 2013 +0100"
      },
      "message": "updated for version 7.4.130\nProblem:    Relative line numbers mix up windows when using folds.\nSolution:   Use hasFoldingWin() instead of hasFolding(). (Lech Lorens)\n"
    },
    {
      "commit": "95235e64d8329b8c0fbd9311d98626afe86ad911",
      "tree": "f6c9b24ce2ea44482eceebdba5fe54e104a3288e",
      "parents": [
        "0300e465aa9b034455f2c98d9996d5a3b04e9900"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Sep 08 16:07:07 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Sep 08 16:07:07 2013 +0200"
      },
      "message": "updated for version 7.4.026\nProblem:    Clang warning for int shift overflow.\nSolution:   Use unsigned and cast back to int. (Dominique Pelle)\n"
    },
    {
      "commit": "e8785f2c39de588883e505cc58c3dac1902c945c",
      "tree": "38b367379a193f736d18857a85485f97b930c349",
      "parents": [
        "3c04cc09cdbe1ceb6582d6179475017241edcb0c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jul 07 16:15:35 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jul 07 16:15:35 2013 +0200"
      },
      "message": "updated for version 7.4a.002\nProblem:    Valgrind errors in test 89. (Simon Ruderich)\nSolution:   Allocate one more byte. (Dominique Pelle)\n"
    },
    {
      "commit": "61214040e91dc4635170a0c985a0ef2f5ffa2c55",
      "tree": "89bfda9e3691f98d82aff0ad4a3a8aef56a596e7",
      "parents": [
        "a3c084cbfa553e9d7b91004755a2cc0508cfb1a9"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jul 04 21:19:33 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jul 04 21:19:33 2013 +0200"
      },
      "message": "updated for version 7.3.1305\nProblem:    Warnings from 64 bit compiler.\nSolution:   Add type casts.\n"
    },
    {
      "commit": "ee0ee2a04638c6b511c909197ba597d329c6f3e0",
      "tree": "a953c0778106fa6a4434122f212f0d7a4cdbcd1b",
      "parents": [
        "3437b911029ac92ae066fa861d886155a4b97064"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jul 03 21:19:07 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jul 03 21:19:07 2013 +0200"
      },
      "message": "updated for version 7.3.1301\nProblem:    Some tests fail on MS-Windows.\nSolution:   Fix path separators in test 89 and 96.  Omit test 97, escaping\n            works differently.  Make findfile() work on MS-Windows.\n"
    },
    {
      "commit": "0f5a5ed8bb3c014ef9de0480852a3e5737c33fc6",
      "tree": "d268f8ab82ae455ad78eb1a23b411775daa66103",
      "parents": [
        "f4c5fcb3ad0b98d6827d5f95e5c66cdd54e66a02"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jul 03 17:51:17 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jul 03 17:51:17 2013 +0200"
      },
      "message": "updated for version 7.3.1298\nProblem:    Crash.\nSolution:   Use STRCPY() instead of STRCAT() and allocate one more byte.\n"
    },
    {
      "commit": "f4c5fcb3ad0b98d6827d5f95e5c66cdd54e66a02",
      "tree": "b90fb10d1d9e99ac323b2b6469a84ebbf5f98d44",
      "parents": [
        "8968a31179c8142cc4ccc2f27cf09e03135c35c7"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jul 03 17:14:00 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jul 03 17:14:00 2013 +0200"
      },
      "message": "updated for version 7.3.1297\nProblem:    findfile() directory matching does not work when a star follows\n            text. (Markus Braun)\nSolution:   Make a wildcard work properly. (Christian Brabandt)\n"
    },
    {
      "commit": "473de61b0409f8f8c86585733f099f882122b280",
      "tree": "0c2b031a29a283c70d63368c38031517572d954c",
      "parents": [
        "cd9c46265e4a12cf716187bc8188c7399797f806"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jun 08 18:19:48 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jun 08 18:19:48 2013 +0200"
      },
      "message": "updated for version 7.3.1149\nProblem:    New regexp engine: Matching plain text could be faster.\nSolution:   Detect a plain text match and handle it specifically.  Add\n            vim_regfree().\n"
    },
    {
      "commit": "84a05acc8c341c2be383198496764992ae971a46",
      "tree": "061887e2e1327a2d0c688cba306b8ec66b3f8477",
      "parents": [
        "84e0f6ca9adcbdca254060713878ebc29faaaa65"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon May 06 04:24:17 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon May 06 04:24:17 2013 +0200"
      },
      "message": "updated for version 7.3.925\nProblem:    Typos in source files.\nSolution:   Fix the typos. (Ken Takata)\n"
    },
    {
      "commit": "38ec50bea8ecb60fa4dd50cfca7c29c98a7a8df0",
      "tree": "72871db4faba143134dcf04963bb0daa4766274a",
      "parents": [
        "e3e6e573d10760a808e02514c350f136e9d9c7e4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Apr 12 14:42:39 2013 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Apr 12 14:42:39 2013 +0200"
      },
      "message": "updated for version 7.3.888\nProblem:    Filename completion with \u0027fileignorecase\u0027 does not work for\n            multi-byte characters.\nSolution:   Make \u0027fileignorecase\u0027 work properly. (Hirohito Higashi)\n"
    },
    {
      "commit": "d0e2d94589d11cad514d1d66ade76d497e9d7567",
      "tree": "158439512a9e8af7f411f006d12a22335dadaee0",
      "parents": [
        "c2c355df6f094cdb9e599fd395a78c14486ec697"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Mar 19 18:31:49 2013 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Mar 19 18:31:49 2013 +0100"
      },
      "message": "updated for version 7.3.874\nProblem:    Comparing file names does not handle multi-byte characters\n            properly.\nSolution:   Implement multi-byte handling.\n"
    },
    {
      "commit": "71afbfe6cd697de30a9e0d57e5a6434cf4bb0f13",
      "tree": "981f8a151ec2a29321c8ef579101f82403e6e38b",
      "parents": [
        "db333a5b8d0c72b7342d6d65ad2895a19a1c29d2"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Mar 19 16:49:16 2013 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Mar 19 16:49:16 2013 +0100"
      },
      "message": "updated for version 7.3.872\nProblem:    On some systems case of file names is always ignored, on others\n            never.\nSolution:   Add the \u0027fileignorecase\u0027 option to control this at runtime.\n            Implies \u0027wildignorecase\u0027.\n"
    },
    {
      "commit": "97d4ea71d613ab69c25851950f9299687a80da01",
      "tree": "e77ff0bfc7f9c8fda11fc6148e995872aae883dc",
      "parents": [
        "f4f1956724f70a7def3bcf8a2d77cf1f8c9dd28c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Nov 28 18:31:54 2012 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Nov 28 18:31:54 2012 +0100"
      },
      "message": "updated for version 7.3.740\nProblem:    IOC tool complains about undefined behavior for int.\nSolution:   Change to unsigned int. (Dominique Pelle)\n"
    },
    {
      "commit": "2b9578f0f8cdba144e996273bca586b384e33d90",
      "tree": "02ae5bd4f971f8f08c62248baeae4d5f62939de5",
      "parents": [
        "2430586629dfccd637a23c45793fc182d2cb2b87"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 15 16:21:32 2012 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 15 16:21:32 2012 +0200"
      },
      "message": "updated for version 7.3.632\nProblem:    Cannot select beyond 222 columns with the mouse in xterm.\nSolution:   Add support for SGR mouse tracking. (Hayaki Saito)\n"
    },
    {
      "commit": "2430586629dfccd637a23c45793fc182d2cb2b87",
      "tree": "d6063a8fdcab84a237d8d6ed02b05ad2716c9e27",
      "parents": [
        "2dac213ac6896bffbbfdd9afbdb0ad0e8b032532"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 15 14:05:05 2012 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 15 14:05:05 2012 +0200"
      },
      "message": "updated for version 7.3.631\nProblem:    Cannot complete user names.\nSolution:   Add user name completion.  (Dominique Pelle)\n"
    },
    {
      "commit": "11b73d668f6209acbe06988a804028c5c86799d2",
      "tree": "befc146fa851f6e6ad217701d02b65fb8ee19b46",
      "parents": [
        "96b7ca5142d72d2c8e79d15f9c38f41d6657be40"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jun 29 15:51:30 2012 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jun 29 15:51:30 2012 +0200"
      },
      "message": "updated for version 7.3.577\nProblem:    Size of memory does not fit in 32 bit unsigned.\nSolution:   Use Kbyte instead of byte.  Call GlobalMemoryStatusEx() instead of\n            GlobalMemoryStatus() when available.\n"
    },
    {
      "commit": "4336cdf31860c5b590c2e5188b0abb6d6e030de0",
      "tree": "6e24c9f9cc37d4f93e364b7e90cc5fb2a8849d97",
      "parents": [
        "7f29f7a2f47160acef0477770d3cebf1357470a8"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Feb 29 13:58:47 2012 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Feb 29 13:58:47 2012 +0100"
      },
      "message": "updated for version 7.3.459\nProblem:    Win32: Warnings for type conversion.\nSolution:   Add type casts. (Mike Williams)\n"
    },
    {
      "commit": "7282bc3e7e06c77675fd6e7da3d859f26d0f5114",
      "tree": "6c82833ad233a6412f14007adc1b2d2e47f8e611",
      "parents": [
        "58437e0409e35852c32f8633bdc0a3daa01e001d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Feb 22 18:12:32 2012 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Feb 22 18:12:32 2012 +0100"
      },
      "message": "updated for version 7.3.454\nProblem:    Re-allocating memory slows Vim down.\nSolution:   Use realloc() in ga_grow(). (Dominique Pelle)\n"
    },
    {
      "commit": "42ec656524db254001caee8feb58d26f67b52fbe",
      "tree": "1ca4411bcc3addd4cd05a3ed629193c6ca04409c",
      "parents": [
        "fb7df7be2f7c80428a3379010ca701689c85aa12"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Feb 22 14:58:37 2012 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Feb 22 14:58:37 2012 +0100"
      },
      "message": "updated for version 7.3.449\nProblem:    Crash when a BufWinLeave autocommand closes the only other window.\n            (Daniel Hunt)\nSolution:   Abort closing a buffer when it becomes the only one.\n"
    },
    {
      "commit": "f66b3fcf6ce2801e3f378827e0ed19596901a9ba",
      "tree": "46a1543aae183a8b03ce18b3572d57e04656e3f2",
      "parents": [
        "034b115568a1fc40b374b0b755d89f0a40f6d940"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Feb 20 22:18:30 2012 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Feb 20 22:18:30 2012 +0100"
      },
      "message": "updated for version 7.3.446\nProblem:    Win32: External commands with special characters don\u0027t work.\nSolution:   Add the \u0027shellxescape\u0027 option.\n"
    },
    {
      "commit": "034b115568a1fc40b374b0b755d89f0a40f6d940",
      "tree": "b2e6a8d5cd41cfe50311996e1fb8e6935981a5c8",
      "parents": [
        "5dc6252d331013e397a8d71e8f7ee9fd1cf514c1"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 19 18:19:30 2012 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Feb 19 18:19:30 2012 +0100"
      },
      "message": "updated for version 7.3.445\nProblem:    Can\u0027t properly escape commands for cmd.exe.\nSolution:   Default \u0027shellxquote\u0027 to \u0027(\u0027.  Append \u0027)\u0027 to make \u0027(command)\u0027.\n            No need to use \"/s\" for \u0027shellcmdflag\u0027.\n"
    },
    {
      "commit": "5af7d712763904e2018efb0485c520cd12935d54",
      "tree": "0d6332c7655d411585793a8d552bea25fe79f4df",
      "parents": [
        "6d6cec83750a4158044a25696e8ae69eda1c3798"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 20 17:15:51 2012 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 20 17:15:51 2012 +0100"
      },
      "message": "updated for version 7.3.405\nProblem:    When xterm gets back the function keys it may delete the urxvt\n            mouse termcap code.\nSolution:   Check for the whole code, not just the start. (Egmont Koblinger)\n"
    },
    {
      "commit": "70b2a56d5a8fd54f3d0707fa77dea86a4bd8195f",
      "tree": "2144b21b49d79de16665fb585daf1e9cf66e85c0",
      "parents": [
        "1f5965b3c4d2b29e167a5dfecdf0ec59fe4c45c0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 10 22:26:17 2012 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 10 22:26:17 2012 +0100"
      },
      "message": "updated for version 7.3.400\nProblem:    Compiler warnings for shadowed variables.\nSolution:   Remove or rename the variables.\n"
    },
    {
      "commit": "10b7b39b3d5bc22d6798cd69fd01c4471669980a",
      "tree": "da50f4f535a78f1543e23b979bafcc37e0384f80",
      "parents": [
        "6ee8d89cf9c283992323ab6d9ff3b59390639ee9"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 10 16:28:45 2012 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 10 16:28:45 2012 +0100"
      },
      "message": "updated for version 7.3.397\nProblem:    \":helpgrep\" does not work properly when \u0027encoding\u0027 is not utf-8 or\n            latin1.\nSolution:   Convert non-ascii lines to \u0027encoding\u0027. (Yasuhiro Matsumoto)\n"
    },
    {
      "commit": "b9ba403542b4bbd37ea10a4d7db7e307e0108de8",
      "tree": "87c6d78588c3fcc1f5d97ebd00a26cd09c26d341",
      "parents": [
        "fa263a517b5e6c11055fa8fe8517f6a3e102ccc6"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 08 17:49:35 2011 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 08 17:49:35 2011 +0100"
      },
      "message": "updated for version 7.3.371\nProblem:    Crash in autocomplete. (Greg Weber)\nSolution:   Check not going over allocated buffer size.\n"
    },
    {
      "commit": "79739e163ba7f4b8fe1ad8374d24521b2e595331",
      "tree": "b144e97cc42ef4ac48024c83a27616375c42259f",
      "parents": [
        "b931d74b060461c47008aba7b3eb6a9ab1471c69"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Oct 26 11:41:00 2011 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Oct 26 11:41:00 2011 +0200"
      },
      "message": "updated for version 7.3.348\nProblem:    \"call range(1, 947948399)\" causes a crash. (ZyX)\nSolution:   Avoid a loop in the out of memory message.\n"
    },
    {
      "commit": "792826c0c715e037d7cca4d1a671c3b325e801a0",
      "tree": "77256b5d1b1e9181a2b0df73e4a4057b528b4234",
      "parents": [
        "b8bf541f8944a9a0ea0a4b75f8d18a565f5d91d1"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Aug 19 22:29:02 2011 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Aug 19 22:29:02 2011 +0200"
      },
      "message": "updated for version 7.3.285\nProblem:    Mapping \u003cChar-123\u003e no longer works.\nSolution:   Properly check for \"char-\".  Add a test for it.\n"
    },
    {
      "commit": "b8bf541f8944a9a0ea0a4b75f8d18a565f5d91d1",
      "tree": "edfac684d6d04e6566e4508fdeb24c70c6b44aef",
      "parents": [
        "f6f4a01ab15d6c962af1210d75a5dc3876e42f39"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 17 20:33:22 2011 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 17 20:33:22 2011 +0200"
      },
      "message": "updated for version 7.3.284\nProblem:    The str2special() function doesn\u0027t handle multi-byte characters\n            properly.\nSolution:   Recognize multi-byte characters. (partly by Vladimir Vichniakov)\n"
    },
    {
      "commit": "0b573a58e63f43f462e6824080c633bbd1a8a5dd",
      "tree": "12c949bd62bf37417834b51a1fd26c0c05d838f7",
      "parents": [
        "a171162356bd7f8b11f9af1061591316fc8dad3d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jul 27 17:31:47 2011 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jul 27 17:31:47 2011 +0200"
      },
      "message": "updated for version 7.3.264\nProblem:    When the current directory name contains wildcard characters, such\n            as \"foo[with]bar\", the tags file can\u0027t be found.  (Jeremy\n            Erickson)\nSolution:   When searching for matching files also match without expanding\n            wildcards.  This is a bit of a hack.\n"
    },
    {
      "commit": "b5ce04dd281d2923693255a1f565d2170c2ca504",
      "tree": "151dae5917713d4243f75298c83abf1387ee641b",
      "parents": [
        "80ae7b2287d712069243d8ebe2e4a39bd79737a4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jul 07 17:15:33 2011 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jul 07 17:15:33 2011 +0200"
      },
      "message": "updated for version 7.3.242\nProblem:    Illegal memory access in after_pathsep().\nSolution:   Check that the pointer is not at the start of the file name.\n            (Dominique Pelle)\n"
    },
    {
      "commit": "4b9669f1dc0b1f30a378624810ca144b9ca49a8e",
      "tree": "0ece3d6ce68a283ebb37ccf0334a8a37c510e53c",
      "parents": [
        "03a807aaf45e5f85a10cd3b0c4e4913d170f8f5a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jul 07 16:20:52 2011 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jul 07 16:20:52 2011 +0200"
      },
      "message": "updated for version 7.3.240\nProblem:    External commands can\u0027t use pipes on MS-Windows.\nSolution:   Implement pipes and use them when \u0027shelltemp\u0027 isn\u0027t set. (Vincent\n            Berthoux)\n"
    },
    {
      "commit": "03a807aaf45e5f85a10cd3b0c4e4913d170f8f5a",
      "tree": "2a1889c39ffc1fcb52dd2950e9327fec7ee01648",
      "parents": [
        "5cfe2d760db119718287ad3d4ee11d6914ceee58"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jul 07 15:08:58 2011 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jul 07 15:08:58 2011 +0200"
      },
      "message": "updated for version 7.3.239\nProblem:    Python corrects the cursor column without taking \u0027virtualedit\u0027\n            into account. (lilydjwg)\nSolution:   Call check_cursor_col_win().\n"
    },
    {
      "commit": "ef9d6aa70d68cd3a765ed55f4c3781aeb8aeea23",
      "tree": "e099b52d0ebf51c535ebe3cd875d8f70c06332df",
      "parents": [
        "0d35e91abfa9e17f7c554bfd33b119b879448c72"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Apr 11 16:56:35 2011 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Apr 11 16:56:35 2011 +0200"
      },
      "message": "updated for version 7.3.160\nProblem:    Unsafe string copying.\nSolution:   Use vim_strncpy() instead of strcpy().  Use vim_strcat() instead\n            of strcat().\n"
    },
    {
      "commit": "e980d8a934393c4da5ff0d5ece6f3e158fa98306",
      "tree": "a54d79f0937f2d6d4a196615fc5f39f7330f1877",
      "parents": [
        "005c3c27ee586126d7a40c41911cf600b9bbe3d1"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Dec 08 13:11:21 2010 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Dec 08 13:11:21 2010 +0100"
      },
      "message": "updated for version 7.3.076\nProblem:    Clang warnings for dead code.\nSolution:   Remove it. (Carlo Teubner)\n"
    },
    {
      "commit": "2f1e050414935410da55560d017543fa210e19c0",
      "tree": "62a246a43418e49ab255c3eb2ff7d7887b593a1f",
      "parents": [
        "0e97531298ad9febb655bc93271be9f26ae547ab"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Aug 13 11:18:02 2010 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Aug 13 11:18:02 2010 +0200"
      },
      "message": "Avoid warnings from the clang compiler. (Dominique Pelle)\n"
    },
    {
      "commit": "e2b590ebf618fb7dc15012579875c3d649dd74c1",
      "tree": "d03cf3f5ee1a594cc60b02617cc5e1bc7fa8d6de",
      "parents": [
        "463ee340d065dab803b9bd459fc5827adb6fcc64"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 08 18:29:48 2010 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 08 18:29:48 2010 +0200"
      },
      "message": "Update help about wildcards in \u0027tags\u0027 option.\n"
    },
    {
      "commit": "463ee340d065dab803b9bd459fc5827adb6fcc64",
      "tree": "85b650def3731cad4f1e41203c9ba4668c1ead3a",
      "parents": [
        "09092155a66388bbd7be8d16debb35abfcfae700"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 08 18:17:52 2010 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 08 18:17:52 2010 +0200"
      },
      "message": "Fix: \u0027suffixesadd\u0027 was used for finding tags file.\n"
    },
    {
      "commit": "09092155a66388bbd7be8d16debb35abfcfae700",
      "tree": "4cbe7f4f0d5c763405f721f7f5dba08864e53ef3",
      "parents": [
        "83687a72155c70c062c689a9c545b5cdf5ebd0b4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 08 16:38:42 2010 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 08 16:38:42 2010 +0200"
      },
      "message": "Remove unused code.\n"
    },
    {
      "commit": "e4ce65d445c45e14903b9daf08ee8658cb0f3090",
      "tree": "43706a993dfbeea50c877bc375996f547d43d136",
      "parents": [
        "257a9c873f9013eb1424a1a234024b2dca581773"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 04 20:12:32 2010 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 04 20:12:32 2010 +0200"
      },
      "message": "After entering a crypt key would need to hit return to continue.\nWhen silencing a message it would still clear a kept message.\n"
    },
    {
      "commit": "80a7dcf8b5af473af674fb47769accc40e67cac0",
      "tree": "50884d2f3ea7aa2bd6ad9fa5c6e0180178666ddd",
      "parents": [
        "150a1321b230ce1cfd661c7da89c3684d0f2d478"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 04 17:07:20 2010 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 04 17:07:20 2010 +0200"
      },
      "message": "Make :find completion consistent between Unix and MS-Windows.  Add a test.\n(Nazri Ramliy)\n"
    },
    {
      "commit": "a9d52e3b7925ef119b5d0d9fca14faac634effb0",
      "tree": "151c52ad2e282b8e264aee2fc7af3db76d8c2071",
      "parents": [
        "a26559b553079c3959ee142a010b2e000c180323"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jul 31 16:44:19 2010 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jul 31 16:44:19 2010 +0200"
      },
      "message": "Fixes for coverity warnings.\n"
    },
    {
      "commit": "8d9b40e71ab62f43c65a52225cb833ecc0d1bf6b",
      "tree": "a25e59faa9adfd7e352c407ded5beedf4242d1d2",
      "parents": [
        "0fe849a13b4c0753d6b2424783879696a1fd4421"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jul 25 15:49:07 2010 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jul 25 15:49:07 2010 +0200"
      },
      "message": "Add support for horizontal scroll wheel. (Bjorn Winckler)\n"
    },
    {
      "commit": "5bedfc6091432adfaa5e9ff177f30ec9dbe5de48",
      "tree": "c055e6ffa92b802c402e72d5f9ce29da2aa6519c",
      "parents": [
        "9c449728175fda3413377fd92e3ce0f288f35e6f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jul 20 22:30:01 2010 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jul 20 22:30:01 2010 +0200"
      },
      "message": "Avoid error when exiting in diff mode with EXITFREE defined.\n"
    },
    {
      "commit": "49771f4fb03349d87e42c12305ebd5b307f3c2bd",
      "tree": "89eb7ec2a47e0e9582b45b7586c43b70fa53dc1b",
      "parents": [
        "c7040a5615827cefe0edbdf7f69c6640fa1aa1e1"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jul 20 17:32:38 2010 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jul 20 17:32:38 2010 +0200"
      },
      "message": "Change \u0027cryptmethod\u0027 from a number to a string option.  Make it global-local.\n"
    },
    {
      "commit": "a8ffcbbf5d6070380e41b3d0841c3944396a27c0",
      "tree": "b8608922fc9956be229912f1323b0d0a94de526c",
      "parents": [
        "191e0a2bc7cb4787e19aa1f8c6958b47e05d7882"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 21 06:15:46 2010 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 21 06:15:46 2010 +0200"
      },
      "message": "Crypt the swapfile.\n"
    },
    {
      "commit": "bbd6afe03e138886f70989f31be110726ca077d8",
      "tree": "893d4513e6ff7b75a4f3bdeddc9867ada427a0a9",
      "parents": [
        "04c9bafa7136564e3059d493dffa84a4c9b6dfb7"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jun 02 20:32:23 2010 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jun 02 20:32:23 2010 +0200"
      },
      "message": "Optimize the blowfish crypt/decrypt code a bit more.\n"
    },
    {
      "commit": "04c9bafa7136564e3059d493dffa84a4c9b6dfb7",
      "tree": "6f000d5eca2d4494d97cb638308c7c95d471f3de",
      "parents": [
        "8cd213c09a3598834888d81deb45ff17e6654a86"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jun 01 23:37:39 2010 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jun 01 23:37:39 2010 +0200"
      },
      "message": "Made crypt/decrypt faster.\n"
    },
    {
      "commit": "20a825ae0f90099249924740a5113e6ed413bc66",
      "tree": "701bee23df4392b438c677a8b28cf76b0240f8c7",
      "parents": [
        "a3ff49fdccd518c91c9445ab3e82394b6812bf4a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon May 31 21:27:30 2010 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon May 31 21:27:30 2010 +0200"
      },
      "message": "Add test for gettabvar() and settabvar().\n"
    },
    {
      "commit": "644fdff7c1a80b3cf9a52f422df7f7ed2a084072",
      "tree": "6126ef1d44c7149de26bca96702b0a123868cfe2",
      "parents": [
        "9db580634c0055674017eab535b1b9eec7d6939d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 30 13:26:21 2010 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 30 13:26:21 2010 +0200"
      },
      "message": "A few more fixes for undo file.  Split test in two parts so that it doesn\u0027t\nfail with tiny features.\n"
    },
    {
      "commit": "9db580634c0055674017eab535b1b9eec7d6939d",
      "tree": "d34ad271b13df816deeeae7622757b8dd385cf1a",
      "parents": [
        "f05e3b0220a6b68791b5563ddf67ad42dbf74ee2"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 29 20:33:07 2010 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 29 20:33:07 2010 +0200"
      },
      "message": "Various improvements to undo file code to make it more robust.\n"
    },
    {
      "commit": "cdf04208f3c621ce714cee0827ffc812df16fd0b",
      "tree": "e21012aa8bc734d52e51f8ca04c98fa5eeeac8b8",
      "parents": [
        "bc42c1e4273e723439e10d7da39e3ea6f63434d3"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 29 15:11:47 2010 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 29 15:11:47 2010 +0200"
      },
      "message": "Fix a few more things for persistent undo.\n"
    },
    {
      "commit": "7db5fc838a7f701e495d41b0ff6a070591c84340",
      "tree": "ac8f061dafa07580e8b6cf3fedcd290a9f43d3ac",
      "parents": [
        "55debbe38429b81c0ce6e8400aef36812eb151d7"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon May 24 11:59:29 2010 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon May 24 11:59:29 2010 +0200"
      },
      "message": "Fix uninit memory read in undo code.  Fix uint32_t in proto file.\nA few minor changes.\n"
    }
  ],
  "next": "be18d10fd44690505c82b53d546ca36597a731aa"
}
