)]}'
{
  "log": [
    {
      "commit": "35a2ec18d6560251e8164636bac6e21ea504648e",
      "tree": "3539b9a14bc36512fa12fbb7a73493d6803661ff",
      "parents": [
        "c3eddd2068620ceb4e475961192c1d8cae3350cd"
      ],
      "author": {
        "name": "ichizok",
        "email": "gclient.gaap@gmail.com",
        "time": "Tue Apr 25 15:27:27 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Apr 25 15:27:27 2023 +0100"
      },
      "message": "patch 9.0.1488: xchacha20v2 crypt header is platform dependent\n\nProblem:    xchacha20v2 crypt header is platform dependent.\nSolution:   Avoid using \"size_t\". (Ozaki Kiichi, closses #12296)\n"
    },
    {
      "commit": "aae583441bcdbb0bfef3b8a1d193e04ae09ca95d",
      "tree": "e3cf7c27fc02e1232fe5ab8f8da32581e9782718",
      "parents": [
        "dcd40cfca0fe0e65d405ce9711745a8ec846c30c"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Apr 23 17:50:22 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Apr 23 17:50:22 2023 +0100"
      },
      "message": "patch 9.0.1481: decrypting with libsodium may fail if the library changes\n\nProblem:    Decrypting with libsodium may fail if the library changes.\nSolution:   Add parameters used to the encrypted file header. (Christian\n            Brabandt, closes #12279)\n"
    },
    {
      "commit": "be9624eb47ff4db4f068c65ad9cd37b14d1818a8",
      "tree": "c1784266bc044515099d43f870cbaf50ac896d97",
      "parents": [
        "1be4b81bfb3d7edf0e2ae41711d429e8fa5e0555"
      ],
      "author": {
        "name": "Michael Jarvis",
        "email": "michael@jarvis.com",
        "time": "Wed Apr 19 20:28:48 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Apr 19 20:28:48 2023 +0100"
      },
      "message": "patch 9.0.1471: warnings for function declarations\n\nProblem:    Warnings for function declarations.\nSolution:   Add argument types. (Michael Jarvis, closes #12277)\n"
    },
    {
      "commit": "a23a11b5bf03454b71fdb5deac0d5f641e222160",
      "tree": "5ce9eb5b9668eb891072ee7e03823b1c68214656",
      "parents": [
        "d950984489e50b12d87c85f0cce1d672c880aa23"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Tue Feb 21 14:27:41 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 21 14:27:41 2023 +0000"
      },
      "message": "patch 9.0.1336: functions without arguments are not always declared properly\n\nProblem:    Functions without arguments are not always declared properly.\nSolution:   Use \"(void)\" instead of \"()\". (Yegappan Lakshmanan, closes #12031)\n"
    },
    {
      "commit": "a8cdb4eef83bce8614991f1191f8c8879fda4dc1",
      "tree": "e469f8e62f1ac0b40e0d712e1173c1491ced79da",
      "parents": [
        "af34543b926a8704c3346d41e57a219baa5ca61c"
      ],
      "author": {
        "name": "K.Takata",
        "email": "kentkt@csc.jp",
        "time": "Tue Dec 06 16:17:01 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Dec 06 16:17:01 2022 +0000"
      },
      "message": "patch 9.0.1023: MS-Windows: dynamic loading of libsodium doesn\u0027t work\n\nProblem:    MS-Windows: dynamic loading of libsodium doesn\u0027t work.\nSolution:   Add \"randombytes_random\". (Ken Takata, closes #11667)\n"
    },
    {
      "commit": "ee47eaceaa148e07b566ff420f9a3c2edde2fa34",
      "tree": "990dc0d8074d51970ecc83ad94a59e884687a313",
      "parents": [
        "c207fd2535717030d78f9b92839e5f2ac004cc78"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Wed Jun 29 12:55:36 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jun 29 12:55:36 2022 +0100"
      },
      "message": "patch 9.0.0003: functions are global while they could be local\n\nProblem:    Functions are global while they could be local.\nSolution:   Add \"static\".  Add a few tests. (Yegappan Lakshmanan,\n            closes #10612)\n"
    },
    {
      "commit": "6ed545e79735f23ff8e650bc2f0967e5a0baedc9",
      "tree": "1c77e4b188c34d68e91c5c93e62c668ce51ffc2f",
      "parents": [
        "921bde88804663a7cb825d7f7e8a5d8ae6b58650"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon May 09 20:09:23 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon May 09 20:09:23 2022 +0100"
      },
      "message": "patch 8.2.4928: various white space and cosmetic mistakes\n\nProblem:    Various white space and cosmetic mistakes.\nSolution:   Change spaces to tabs, improve comments.\n"
    },
    {
      "commit": "31e5c60a682840959cae6273ccadd9aae48c928d",
      "tree": "a72168baa32f1899937f3937a41b0832eac66b8f",
      "parents": [
        "5dc294a7b63ed0e508dd360bc4d98173f1a1aeec"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Apr 15 13:53:33 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Apr 15 13:53:33 2022 +0100"
      },
      "message": "patch 8.2.4753: error from setting an option is silently ignored\n\nProblem:    Error from setting an option is silently ignored.\nSolution:   Handle option value errors better.  Fix uses of N_().\n"
    },
    {
      "commit": "d8f8629b1bf566e1dada7515e9b146c69e5d9757",
      "tree": "b6206939ce6839fd684f76c620b7a17b753739fe",
      "parents": [
        "6ca883dd8a585a85acdf9303b434211ea91872a7"
      ],
      "author": {
        "name": "K.Takata",
        "email": "kentkt@csc.jp",
        "time": "Mon Mar 07 15:16:15 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Mar 07 15:16:15 2022 +0000"
      },
      "message": "patch 8.2.4524: MS-Windows: cannot build with some sodium libraries\n\nProblem:    MS-Windows: cannot build with some sodium libraries.\nSolution:   Make the DLL name configuragle.  Add build instructions.\n            (Ken Takata, closes #9905)\n"
    },
    {
      "commit": "d68b2fc034fa3c824e0d4d53745cfe9eb8c5ecd6",
      "tree": "8e4c621d0b2d4ea58df053cb0a1432c91d502390",
      "parents": [
        "18f7593e57730e6de7c2cf47c87e44252cfbb61e"
      ],
      "author": {
        "name": "K.Takata",
        "email": "kentkt@csc.jp",
        "time": "Sat Feb 12 11:18:37 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 12 11:18:37 2022 +0000"
      },
      "message": "patch 8.2.4354: dynamic loading of libsodium not handled properly\n\nProblem:    Dynamic loading of libsodium not handled properly.\nSolution:   Fix has() and :version. Show an error message when loading fails.\n            Fix memory leaks. (Ken Takata, closes #9754)\n"
    },
    {
      "commit": "1a8825d7a3484d76ca16ea2aa9769cadca7758a4",
      "tree": "3fa19e87656a4a3ef97ad6fc4635719c841d24c9",
      "parents": [
        "b0b2b73dca40c26ff1f4befe5c3aad3fd4bccfad"
      ],
      "author": {
        "name": "K.Takata",
        "email": "kentkt@csc.jp",
        "time": "Wed Jan 19 13:32:57 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 19 13:32:57 2022 +0000"
      },
      "message": "patch 8.2.4144: cannot load libsodium dynamically\n\nProblem:    Cannot load libsodium dynamically.\nSolution:   Support dynamic loading on MS-Windows. (Ken Takata, closes #9554)\n"
    },
    {
      "commit": "748b308eebe8d8860888eb27da08333f175d547d",
      "tree": "dcb524e3faab88b0238bd892cdfa2870252c7e51",
      "parents": [
        "370791465e745354d66696de8cbd15504cf958c0"
      ],
      "author": {
        "name": "Dominique Pelle",
        "email": "dominique.pelle@gmail.com",
        "time": "Sat Jan 08 12:41:16 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 08 12:41:16 2022 +0000"
      },
      "message": "patch 8.2.4038: various code not used when features are disabled\n\nProblem:    Various code not used when features are disabled.\nSolution:   Add #ifdefs. (Dominique Pellé, closes #9491)\n"
    },
    {
      "commit": "9d00e4a8146862c17ed429dc6b1b43349acb2b5f",
      "tree": "79a1e0d0a738940dba6a9a86936376bd62e04ca3",
      "parents": [
        "d3a117814d6acbf0dca3eff1a7626843b9b3734a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 05 17:49:15 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 05 17:49:15 2022 +0000"
      },
      "message": "patch 8.2.4010: error messages are spread out\n\nProblem:    Error messages are spread out.\nSolution:   Move more error messages to errors.h.\n"
    },
    {
      "commit": "131530a54d0f72b820b027606231744e3a09b9ef",
      "tree": "d288b74f18adb46ab6917e506dc78616fd0463c7",
      "parents": [
        "41114a2a27047bf1884e092b98c6298c128eb2f0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jul 29 20:37:49 2021 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jul 29 20:37:49 2021 +0200"
      },
      "message": "patch 8.2.3245: the crypt key may appear in a swap partition\n\nProblem:    The crypt key may appear in a swap partition.\nSolution:   When using xchaha20 use sodium_mlock(). (Christian Brabandt,\n            closes #8657)\n"
    },
    {
      "commit": "8a4c812ede5b01a8e71082c1ff4ebfcbf1bd515f",
      "tree": "2da838678bac4dd3d5fa1681e818517421e0e86b",
      "parents": [
        "3ed0d9379683246a77aa8c1a59da7a0ac6395339"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Jul 25 14:36:05 2021 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jul 25 14:36:05 2021 +0200"
      },
      "message": "patch 8.2.3218: when using xchaha20 crypt undo file is not removed\n\nProblem:    When using xchaha20 crypt undo file is not removed.\nSolution:   Reset \u0027undofile\u0027 and delete the file. (Christian Brabandt,\n            closes #8630, closes #8467)\n"
    },
    {
      "commit": "226b28b96150e59375d2bff44e0aadd382b0c3f1",
      "tree": "ca0225ef8907a75b2dcc0296f0378939bb53cb21",
      "parents": [
        "22f17a29cd0b0cc3107dc6cd1d96c62eee52a7d9"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Jun 21 21:08:08 2021 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 21 21:08:08 2021 +0200"
      },
      "message": "patch 8.2.3032: build problems with MSVC, other crypt issues with libsodium\n\nProblem:    Build problems with MSVC, other crypt issues with libsodium.\nSolution:   Adjust MSVC makefile. Disable swap file only when \u0027key\u0027 is set.\n            Adjust error message used when key is wrong.  Fix Coverity issues.\n            (Christian Brabandt, closes #8420, closes #8411)\n"
    },
    {
      "commit": "cb54bc65625abad9a0af501acac5c70fba17e2cc",
      "tree": "8a77eccb36f2e2102ec2b67a947b26b618748dd6",
      "parents": [
        "035bd1c99f2a8eda5ee886adde4f97ea71fb167f"
      ],
      "author": {
        "name": "Dominique Pelle",
        "email": "dominique.pelle@gmail.com",
        "time": "Mon Jun 21 20:15:37 2021 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 21 20:15:37 2021 +0200"
      },
      "message": "patch 8.2.3030: Coverity reports a memory leak\n\nProblem:    Coverity reports a memory leak.\nSolution:   Fix the leak and a few typos. (Dominique Pellé, closes #8418)\n"
    },
    {
      "commit": "f573c6e1ed58d46d694c802eaf5ae3662a952744",
      "tree": "9d3ccf4402f322b9d1baf130696a6b0e600ae693",
      "parents": [
        "208f0b48b2c616b29f377a1408290111ed2663f7"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Jun 20 14:02:16 2021 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 20 14:02:16 2021 +0200"
      },
      "message": "patch 8.2.3022: available encryption methods are not strong enough\n\nProblem:    Available encryption methods are not strong enough.\nSolution:   Add initial support for xchaha20. (Christian Brabandt,\n            closes #8394)\n"
    },
    {
      "commit": "c667da5185ce5dce914d2006d62da2be0cedb384",
      "tree": "cd06b08e9fb7d701653850cd33524d3f1f5acaaf",
      "parents": [
        "71136db1bfbc67c2e55f8070cdf0a241c643e45b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Nov 30 20:52:27 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Nov 30 20:52:27 2019 +0100"
      },
      "message": "patch 8.1.2368: using old C style comments\n\nProblem:    Using old C style comments.\nSolution:   Use // comments where appropriate.\n"
    },
    {
      "commit": "32aa10203bd0b4b270def03311a4599f9ffdecc4",
      "tree": "4c0188d20dcc6873e6d96f5a28b59bedcb8ebb0c",
      "parents": [
        "70def98a957620cc325d1ab6ee35f13187598693"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Nov 02 22:54:41 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Nov 02 22:54:41 2019 +0100"
      },
      "message": "patch 8.1.2243: typos in comments\n\nProblem:    Typos in comments.\nSolution:   Fix the typos. (Dominique Pelle, closes #5160)  Also adjust\n            formatting a bit.\n"
    },
    {
      "commit": "c799fe206e61f2e2c1231bc46cbe4bb354f3da69",
      "tree": "68b3d2a8bb82519e29fc95f317d2ee02b07f95fa",
      "parents": [
        "b58a4b938c4bc7e0499700859bd7abba9acc5b11"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 28 23:08:19 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 28 23:08:19 2019 +0200"
      },
      "message": "patch 8.1.1414: alloc() returning \"char_u *\" causes a lot of type casts\n\nProblem:    Alloc() returning \"char_u *\" causes a lot of type casts.\nSolution:   Have it return \"void *\". (Mike Williams)  Define ALLOC_ONE() to\n            check the simple allocations.\n"
    },
    {
      "commit": "51e14387f120392b74b84408cafec33942337a05",
      "tree": "43d2b2077c404671de3f7fdfc5bc90930aa53d09",
      "parents": [
        "682725c1415f50681877df60257115a966e2a3d4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 25 20:21:28 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 25 20:21:28 2019 +0200"
      },
      "message": "patch 8.1.1393: unnecessary type casts\n\nProblem:    Unnecessary type casts.\nSolution:   Remove type casts from alloc() and lalloc() calls. (Mike Williams)\n"
    },
    {
      "commit": "6ee9658774942f7448af700fc04df0335796a3db",
      "tree": "87f99c37e22f07e73e244da78686c7e59a8457f1",
      "parents": [
        "00aa069db8132851a91cfc5ca7f58ef945c75c73"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Apr 27 22:06:37 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Apr 27 22:06:37 2019 +0200"
      },
      "message": "patch 8.1.1219: not checking for NULL return from alloc()\n\nProblem:    Not checking for NULL return from alloc().\nSolution:   Add checks. (Martin Kunev, closes #4303, closes #4174)\n"
    },
    {
      "commit": "ad3ec76bb8030b9a1d3f0a49c374d0de2383b977",
      "tree": "6cc66e85aa0b54ce4ee2e9fcd47987963f022c57",
      "parents": [
        "037c54f261818439755d56e318da068f97997fb5"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Apr 21 00:00:13 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Apr 21 00:00:13 2019 +0200"
      },
      "message": "patch 8.1.1194: typos and small problems in source files\n\nProblem:    Typos and small problems in source files.\nSolution:   Small fixes.\n"
    },
    {
      "commit": "bdace838c67c1bd94e55e34270a8325933891466",
      "tree": "cf80ca41305e4c04a2ccb293b6634b20fb235fbe",
      "parents": [
        "d82a81cad93708a6c180e59119db4818cc38c1a9"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Mar 02 10:13:42 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Mar 02 10:13:42 2019 +0100"
      },
      "message": "patch 8.1.0989: various small code ugliness\n\nProblem:    Various small code ugliness.\nSolution:   Remove pointless NULL checks. Fix function calls. Fix typos.\n            (Dominique Pelle, closes #4060)\n"
    },
    {
      "commit": "32526b3c1846025f0e655f41efd4e5428da16b6c",
      "tree": "e9f3ea5e0daaada049e905b5f1b38b4a45511f3d",
      "parents": [
        "d383c92ec1d14ffd5c3802f0ffd763e91d547fa8"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 19 17:43:09 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 19 17:43:09 2019 +0100"
      },
      "message": "patch 8.1.0779: argument for message functions is inconsistent\n\nProblem:    Argument for message functions is inconsistent.\nSolution:   Make first argument to msg() \"char *\".\n"
    },
    {
      "commit": "987411db9e4b76b524d0579db21074be0bffd61b",
      "tree": "215f2c2b7c988b5572e645cbb52c73d65b6bad2a",
      "parents": [
        "0314236aabcb2ca9d0b74074dadecf68d7c7ed5f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 18 22:48:34 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 18 22:48:34 2019 +0100"
      },
      "message": "patch 8.1.0773: not all crypt code is tested\n\nProblem:    Not all crypt code is tested.\nSolution:   Disable unused crypt code.  Add more test coverage.\n"
    },
    {
      "commit": "f9e3e09fdc93be9f0d47afbc6c7df1188c2a5a0d",
      "tree": "a6b07005c19279a4f5d01be14f14861c2657fa95",
      "parents": [
        "05500ece6282407f9f7227aaf564e24147326863"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 13 23:38:42 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jan 13 23:38:42 2019 +0100"
      },
      "message": "patch 8.1.0743: giving error messages is not flexible\n\nProblem:    Giving error messages is not flexible.\nSolution:   Add semsg().  Change argument from \"char_u *\" to \"char *\", also\n            for msg() and get rid of most MSG macros. (Ozaki Kiichi, closes\n            #3302)  Also make emsg() accept a \"char *\" argument.  Get rid of\n            an enormous number of type casts.\n"
    },
    {
      "commit": "d23a823669d93fb2a570a039173eefe4856ac806",
      "tree": "617130258eae70e3bd7ef7b6da9c494ffee7b572",
      "parents": [
        "42443c7d7fecc3a2a72154bb6139b028438617c2"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 10 18:45:26 2018 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 10 18:45:26 2018 +0100"
      },
      "message": "patch 8.0.1496: clearing a pointer takes two lines\n\nProblem:    Clearing a pointer takes two lines.\nSolution:   Add VIM_CLEAR() and replace vim_clear(). (Hirohito Higashi,\n            closes #2629)\n"
    },
    {
      "commit": "edf3f97ae2af024708ebb4ac614227327033ca47",
      "tree": "82fed9ebfc85a69d3cff613f9dab11c8750fad8b",
      "parents": [
        "965ed14973fd3f1b2aace7bae4d4722b71ca04f9"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 29 22:49:24 2016 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 29 22:49:24 2016 +0200"
      },
      "message": "patch 7.4.2293\nProblem:    Modelines in source code are inconsistant.\nSolution:   Use the same line in most files.  Add \u0027noet\u0027.  (Naruhiko Nishino)\n"
    },
    {
      "commit": "7454a06e2642d2b37afad1c5e71cec68081ca4ff",
      "tree": "8b38e652321d9591a2f57e44b9bdc1f590837f7b",
      "parents": [
        "305598b71261265994e2846b4ff4a4d8efade280"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 30 15:14:10 2016 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 30 15:14:10 2016 +0100"
      },
      "message": "patch 7.4.1205\nProblem:    Using old style function declarations.\nSolution:   Change to new style function declarations. (script by Hirohito\n            Higashi)\n"
    },
    {
      "commit": "3a0c90898338c04bde314bede9f116f299eaddef",
      "tree": "52c90925ed68b802fd1e0a4e943876a53532acf0",
      "parents": [
        "983c4e93dc560b00c5c7b752a3a7c1c452359c38"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Nov 12 15:15:42 2014 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Nov 12 15:15:42 2014 +0100"
      },
      "message": "updated for version 7.4.509\nProblem:    Users are not aware their encryption is weak.\nSolution:   Give a warning when prompting for the key.\n"
    },
    {
      "commit": "9b8f021d93de3a2a2905d0e46b9f0b6dbb3e12f9",
      "tree": "fa60f4b35b5721fe7932c21d4569c6ec51519da0",
      "parents": [
        "2be795084f053928879d758443e199ef147cc07e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 13 22:05:53 2014 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 13 22:05:53 2014 +0200"
      },
      "message": "updated for version 7.4.404\nProblem:    Windows 64 bit compiler warnings.\nSolution:   Add type casts. (Mike Williams)\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"
    }
  ]
}
