)]}'
{
  "log": [
    {
      "commit": "43625762a9751cc6e6e4d8f54fbc8b82d98fb20d",
      "tree": "0261835c4d3eb079e9013ae8277531b12c1d5db2",
      "parents": [
        "4c36678ffd1f933a6d4a12415994dea15e4ccec6"
      ],
      "author": {
        "name": "K.Takata",
        "email": "kentkt@csc.jp",
        "time": "Thu Oct 20 13:28:51 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Oct 20 13:28:51 2022 +0100"
      },
      "message": "patch 9.0.0803: readblob() cannot read from character device\n\nProblem:    readblob() cannot read from character device.\nSolution:   Use S_ISCHR() to not check the size. (Ken Takata, closes #11407)\n"
    },
    {
      "commit": "11df3aeee548b959ccd4b9a4d3c44651eab6b3ce",
      "tree": "13cdeec4447038acdffe1084b3b5f91dabae038b",
      "parents": [
        "9f62ea01a08e69f44050f59469a0e64beddefac0"
      ],
      "author": {
        "name": "K.Takata",
        "email": "kentkt@csc.jp",
        "time": "Wed Oct 19 14:02:40 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Oct 19 14:02:40 2022 +0100"
      },
      "message": "patch 9.0.0795: readblob() always reads the whole file\n\nProblem:    readblob() always reads the whole file.\nSolution:   Add arguments to read part of the file. (Ken Takata,\n            closes #11402)\n"
    },
    {
      "commit": "49846fb1a31de99f49d6a7e70efe685197423c84",
      "tree": "98b3debbaafbd79b05fe941382086792c1aab8ba",
      "parents": [
        "297164cb7972beff35e375ccac4fbad8196ccbd7"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Oct 15 16:05:33 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Oct 15 16:05:33 2022 +0100"
      },
      "message": "patch 9.0.0761: cannot use \u0027indentexpr\u0027 for Lisp indenting\n\nProblem:    Cannot use \u0027indentexpr\u0027 for Lisp indenting.\nSolution:   Add the \u0027lispoptions\u0027 option.\n"
    },
    {
      "commit": "c9121f798f49fa71e814912cb186d89c164090c3",
      "tree": "7bf018b61ef5e6aff94c935e1638055a662ee2d3",
      "parents": [
        "0abd6cf62d65180dc2c40d67cd95f13b0691f7ea"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Oct 14 20:09:04 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Oct 14 20:09:04 2022 +0100"
      },
      "message": "patch 9.0.0751: \u0027scrolloff\u0027 does not work well with \u0027smoothscroll\u0027\n\nProblem:    \u0027scrolloff\u0027 does not work well with \u0027smoothscroll\u0027.\nSolution:   Make positioning the cursor a bit better.  Rename functions.\n"
    },
    {
      "commit": "0abd6cf62d65180dc2c40d67cd95f13b0691f7ea",
      "tree": "8abf50c2a29bdbbf715be0960ff80b8592644cf3",
      "parents": [
        "975a665d4811649a51e2c6a97a6ce096290d87ae"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Oct 14 17:04:09 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Oct 14 17:04:09 2022 +0100"
      },
      "message": "patch 9.0.0750: crash when popup closed in callback\n\nProblem:    Crash when popup closed in callback. (Maxim Kim)\nSolution:   In syntax_end_parsing() check that syn_block is valid.\n"
    },
    {
      "commit": "975a665d4811649a51e2c6a97a6ce096290d87ae",
      "tree": "aa34659fe233d4c0f5080d7ecf3b3bb19eb44193",
      "parents": [
        "b9c09c118e951bc6ea2059941101939dc572b4ce"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Fri Oct 14 13:11:13 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Oct 14 13:11:13 2022 +0100"
      },
      "message": "patch 9.0.0749: alloc/free of buffer for each quickfix entry is inefficient\n\nProblem:    Alloc/free of buffer for each quickfix entry is inefficient.\nSolution:   Use a shared grow array. (Yegappan Lakshmanan, closes #11365)\n"
    },
    {
      "commit": "2fbabd238a94022c99506e920186a5b6cdf15426",
      "tree": "2806a67322331d156506ae687731077b432ba3ac",
      "parents": [
        "84d14ccdb50dc9f362066a2c83bfaf331314e5ea"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Oct 12 19:53:38 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Oct 12 19:53:38 2022 +0100"
      },
      "message": "patch 9.0.0734: cursor position invalid when scrolling with \u0027smoothscroll\u0027\n\nProblem:    Cursor position invalid when scrolling with \u0027smoothscroll\u0027 set.\n            (Ernie Rael)\nSolution:   Add w_valid_skipcol and clear flags when it changes.  Adjust\n            w_skipcol after moving the cursor.\n"
    },
    {
      "commit": "f167c7b42476f8ab5b32c3c5ccbdca914316e96b",
      "tree": "30120a4fd000882fbfdc8dc37ef32f63246c61b3",
      "parents": [
        "15b314ffbb93f934b72cb71aa8f881caea026256"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Oct 09 21:53:58 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Oct 09 21:53:58 2022 +0100"
      },
      "message": "patch 9.0.0709: virtual text \"after\" not correct with \u0027nowrap\u0027\n\nProblem:    Virtual text \"after\" not correct with \u0027nowrap\u0027.\nSolution:   Do not display \"after\" text prop on the next line when \u0027wrap\u0027 is\n            off.\n"
    },
    {
      "commit": "15b314ffbb93f934b72cb71aa8f881caea026256",
      "tree": "cffce54dd07078c4d6407e7e06a2823f945e6ef6",
      "parents": [
        "118c235112854f34182d968613d7fe98be3b290b"
      ],
      "author": {
        "name": "Yee Cheng Chin",
        "email": "ychin.git@gmail.com",
        "time": "Sun Oct 09 18:53:32 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Oct 09 18:53:32 2022 +0100"
      },
      "message": "patch 9.0.0708: :confirm does not work properly for a terminal buffer\n\nProblem:    :confirm does not work properly for a terminal buffer.\nSolution:   Handle :confirm for a terminal buffer differently.  (Yee Cheng\n            Chin, closes #11312)\n"
    },
    {
      "commit": "330d64d32cbb8ba7cdfe8dc0bedd4caff3bb01e8",
      "tree": "eb976296a363bce38974dc68463902c2526b414e",
      "parents": [
        "30c0c467d6cc2a7af960ccb9002b50115b0e55cf"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Oct 09 12:55:33 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Oct 09 12:55:33 2022 +0100"
      },
      "message": "patch 9.0.0703: failing check for argument type for const any\n\nProblem:    Failing check for argument type for const any.\nSolution:   Check for any type properly. (closes #11316)\n"
    },
    {
      "commit": "4314e4f7da4db5d85f63cdf43b73be3689502c93",
      "tree": "37d2f5ae97f68da5ca3e0edc8ac6d6aa6b06d8e3",
      "parents": [
        "5a049846e4c54d70094c3f29ffbd340c75e9c50e"
      ],
      "author": {
        "name": "Yee Cheng Chin",
        "email": "ychin.git@gmail.com",
        "time": "Sat Oct 08 13:50:05 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Oct 08 13:50:05 2022 +0100"
      },
      "message": "patch 9.0.0694: no native sound support on Mac OS\n\nProblem:    No native sound support on Mac OS.\nSolution:   Add sound support for Mac OS. (Yee Cheng Chin, closes #11274)\n"
    },
    {
      "commit": "bdc09a18fca32715687d9911a431da69186528cc",
      "tree": "9d27853365bffdc04e51cfe7fc6cb75dafc8a0b0",
      "parents": [
        "cf3d0eaf47a56a52b355d8faf4e59685396f9c05"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Oct 07 14:31:45 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Oct 07 14:31:45 2022 +0100"
      },
      "message": "patch 9.0.0683: cannot specify a time for :echowindow\n\nProblem:    Cannot specify a time for :echowindow.\nSolution:   A count can be used to specify the display time. Add\n            popup_findecho().\n"
    },
    {
      "commit": "cf3d0eaf47a56a52b355d8faf4e59685396f9c05",
      "tree": "ecb982bc178f8eaab7f8a12436d83526778ff331",
      "parents": [
        "0937b9fb244949b7ce9bfcf8398d7495b9b6aa85"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Oct 07 11:20:29 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Oct 07 11:20:29 2022 +0100"
      },
      "message": "patch 9.0.0682: crash when popup with deleted timer is closed\n\nProblem:    Crash when popup with deleted timer is closed. (Igbanam\n            Ogbuluijah)\nSolution:   Check the timer still exists. (closes #11301)\n"
    },
    {
      "commit": "2f7e1b8b40dbc97752b8b816560f752f16e0207a",
      "tree": "296d75367dc0067b123fdecec6f5aee4e814254a",
      "parents": [
        "ec32c781a282398e3da27f4aec4b03fcd20f8b0d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Oct 04 13:17:31 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Oct 04 13:17:31 2022 +0100"
      },
      "message": "patch 9.0.0655: passing modifier codes to a shell running in the GUI\n\nProblem:    passing modifier codes to a shell running in the GUI. (Gary\n            Johnson)\nSolution:   Include modifier codes into the key and drop the modifiers.\n"
    },
    {
      "commit": "01c34e7d10e3dbd73d18a3dd79a48748c4147eaf",
      "tree": "ca71ff2c5e6dd418b009f9de330142e7c0b4c4c2",
      "parents": [
        "b6aab8f44beb8c5d99393abdc2c9faab085c72aa"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Oct 03 20:24:39 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Oct 03 20:24:39 2022 +0100"
      },
      "message": "patch 9.0.0653: BS and DEL do not work properly in an interacive shell\n\nProblem:    BS and DEL do not work properly in an interacive shell. (Gary\n            Johnson)\nSolution:   Adjust the length for replaced codes.\n"
    },
    {
      "commit": "a4e0b9785e409e9e660171cea76dfcc5fdafad9b",
      "tree": "3323913d9bdc9cd09029b1314a77c4a5e8191bbf",
      "parents": [
        "b850c39676db21c6f1aa3afed0e2e48d407dd60e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Oct 01 19:43:52 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Oct 01 19:43:52 2022 +0100"
      },
      "message": "patch 9.0.0634: evaluating \"expr\" options has more overhead than needed\n\nProblem:    Evaluating \"expr\" options has more overhead than needed.\nSolution:   Use call_simple_func() for \u0027foldtext\u0027, \u0027includeexpr\u0027, \u0027printexpr\u0027,\n            \"expr\" of \u0027spellsuggest\u0027, \u0027diffexpr\u0027, \u0027patchexpr\u0027, \u0027balloonexpr\u0027,\n            \u0027formatexpr\u0027, \u0027indentexpr\u0027 and \u0027charconvert\u0027.\n"
    },
    {
      "commit": "87b4e5c5db9d1cfd6f2e79656e1a6cff3c69d15f",
      "tree": "a437917654ad79edd9764b4f67af33ce01228d6a",
      "parents": [
        "145d1fd91041bd2a22a11eef0357702e420796e2"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Oct 01 15:32:46 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Oct 01 15:32:46 2022 +0100"
      },
      "message": "patch 9.0.0632: calling a function from an \"expr\" option has overhead\n\nProblem:    Calling a function from an \"expr\" option has too much overhead.\nSolution:   Add call_simple_func() and use it for \u0027foldexpr\u0027\n"
    },
    {
      "commit": "fa1039760e8c1a0c7a2a722160bd3d71a4736e61",
      "tree": "3749fc4f1e8e0cdccdde2c131dfca30b3b07917c",
      "parents": [
        "9f573a8df02d9f699a43d2afbd1d2841d700b9ad"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 29 19:14:42 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 29 19:14:42 2022 +0100"
      },
      "message": "patch 9.0.0623: error for modifying a const is not detected at compile time\n\nProblem:    Error for modifying a const is not detected at compile time.\nSolution:   Add TTFLAG_CONST and check for it in add() and extend().\n"
    },
    {
      "commit": "82418263fa91792e851cb0de879d1595327d5531",
      "tree": "e14f38d9dba9dce01e0c3b6c6612ca577bf27b49",
      "parents": [
        "1936c765364d6a771cea5df9971318060db82730"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 28 16:16:15 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 28 16:16:15 2022 +0100"
      },
      "message": "patch 9.0.0618: calling function for reduce() has too much overhead\n\nProblem:    Calling function for reduce() has too much overhead.\nSolution:   Do not create a funccall_T every time.\n"
    },
    {
      "commit": "7c1cbb6cd437c6e0c3ccc05840cc931108b4a60a",
      "tree": "6beeee2a32dd5f38a4aa2429c2573ad3a96658dc",
      "parents": [
        "7fc6c0e4dab4e80b9806a973936af54276468513"
      ],
      "author": {
        "name": "Luuk van Baal",
        "email": "luukvbaal@gmail.com",
        "time": "Tue Sep 27 12:31:15 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Sep 27 12:31:15 2022 +0100"
      },
      "message": "patch 9.0.0603: with \u0027nosplitscroll\u0027 folds are not handled correctly\n\nProblem:    With \u0027nosplitscroll\u0027 folds are not handled correctly.\nSolution:   Take care of closed folds when moving the cursor. (Luuk van Baal,\n            closes #11234)\n"
    },
    {
      "commit": "838b746cce7ea863acdb81e3f44eec2ea90de92a",
      "tree": "666feb45d3cbb40f9591a101bddc26032ca484e0",
      "parents": [
        "4569020538f76cab588f723bd7243e3896937568"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 26 15:19:56 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 26 15:19:56 2022 +0100"
      },
      "message": "patch 9.0.0592: display not cleared when scrolling back in messages\n\nProblem:    Display not cleared when scrolling back in messages, a background\n            color is set and t_ut is empty.\nSolution:   Clear to the end of the display if needed. (closes #8973)\n"
    },
    {
      "commit": "ee09fcc9b6cf24e02899461809da9a5148208ea5",
      "tree": "da98cebee25cc4d625d0276b44fbac9190d31341",
      "parents": [
        "b7e07dc1036b5b02870c72e872bbb248640ade7d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Sep 25 20:58:30 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Sep 25 20:58:30 2022 +0100"
      },
      "message": "patch 9.0.0590: after exiting Insert mode spelling not checked in next line\n\nProblem:    After exiting Insert mode spelling is not checked in the next\n            line.\nSolution:   When spelling is enabled redraw the next line after exiting Insert\n            mode in case the spell highlight needs updating.\n"
    },
    {
      "commit": "f7e7302acb20b6ef6caa0740da1450b677ac91fb",
      "tree": "cce4273089bee09073096659b89e75a2d83ab55f",
      "parents": [
        "d3eafdd7098e5e47a3e93474a624cb0ba1a874c9"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 24 13:10:04 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 24 13:10:04 2022 +0100"
      },
      "message": "patch 9.0.0571: MS-Windows: CTRL-C can make Vim exit\n\nProblem:    MS-Windows: CTRL-C can make Vim exit.\nSolution:   Check the not-a-term argument.\n"
    },
    {
      "commit": "f1c60d4bf10794265b828afd9c5f7eddacada10b",
      "tree": "97da67230b5a297698ea6065aca3adb0912ab751",
      "parents": [
        "6d313bec535d9ccc24f6f82025280a61caad7416"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 22 17:07:00 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 22 17:07:00 2022 +0100"
      },
      "message": "patch 9.0.0548: reduce() with a compiled lambda could be faster\n\nProblem:    reduce() with a compiled lambda could be faster.\nSolution:   Call eval_expr_typval() instead of call_func() directly.\n"
    },
    {
      "commit": "9781d9c00517a67c44b50b040cca2c5804daf15c",
      "tree": "6188156e94afb4d1ed7b3635d94efc3040437e95",
      "parents": [
        "c14bfc31d907cbee6a3636f780561ad1787cdb9b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Sep 20 13:51:25 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Sep 20 13:51:25 2022 +0100"
      },
      "message": "patch 9.0.0513: may not be able to use a pattern ad the debug prompt\n\nProblem:    May not be able to use a pattern ad the debug prompt.\nSolution:   Temporarily disable the timeout. (closes #11164)\n"
    },
    {
      "commit": "cc34181f9994d64f8c8fa2f5845eaf0cc963067f",
      "tree": "2909cd6f0d4d5f7e20b7daa76855c25fdef5dcb9",
      "parents": [
        "18ee0feb5dfbe51993dc715d24cf419ac92ebf92"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 19 15:54:34 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 19 15:54:34 2022 +0100"
      },
      "message": "patch 9.0.0502: a closure in a nested loop in a :def function does not work\n\nProblem:    A closure in a nested loop in a :def function does not work.\nSolution:   Use an array of loopvars, one per loop level.\n"
    },
    {
      "commit": "acd6b9976bd939035025a16ceb4213a680827927",
      "tree": "916b389f97f7a4094336ed69e9ab35d264718b0c",
      "parents": [
        "d5bc762dea1fd32fa04342f8149f95ccfc3b9709"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 17 16:27:39 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 17 16:27:39 2022 +0100"
      },
      "message": "patch 9.0.0487: using freed memory with combination of closures\n\nProblem:    Using freed memory with combination of closures.\nSolution:   Do not use a partial after it has been freed through the\n            funcstack.\n"
    },
    {
      "commit": "0cdfb7ce462393595b0308dcabf343e82f05319d",
      "tree": "bce26a7c87ee0f99bc30006d3c0b02d813afc6da",
      "parents": [
        "8abb584ab85d5855d810d1c6e2b260f45ec839b7"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 17 15:44:52 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 17 15:44:52 2022 +0100"
      },
      "message": "patch 9.0.0485: in :def function all closures in loop get the same variables\n\nProblem:    In a :def function all closures in a loop get the same variables.\nSolution:   Make a copy of loop variables used in a closure.\n"
    },
    {
      "commit": "e24b4aba1fbf782954897abdbfc084c4221428eb",
      "tree": "96aed827f612301272d266430fe4afb827fbb483",
      "parents": [
        "8fa745e7be3a791ac25f93ef0227bbc48ade8a37"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 16 20:51:14 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 16 20:51:14 2022 +0100"
      },
      "message": "patch 9.0.0482: \"g0\" moves to wrong location with virtual text \"above\"\n\nProblem:    \"g0\" moves to wrong location with virtual text \"above\".\nSolution:   Compensate for the extra columns. (closes #11141)  Also fix \"g$\"\n"
    },
    {
      "commit": "8fa745e7be3a791ac25f93ef0227bbc48ade8a37",
      "tree": "2784f5de78824527acc5d31f3eb96fd4264ac989",
      "parents": [
        "abd58d8aee7fec2b9e07c829eb925b0a1f7118db"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 16 19:04:24 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 16 19:04:24 2022 +0100"
      },
      "message": "patch 9.0.0481: in :def function all closures in loop get the same variables\n\nProblem:    In a :def function all closures in a loop get the same variables.\nSolution:   Use a separate list of variables for LOADOUTER and STOREOUTER.\n            Not copied at end of loop yet.\n"
    },
    {
      "commit": "b46c083a5ed9e0c4ac5f3aec577946dcbe8c9dc5",
      "tree": "f91c0168ac87183c5df558840b9cf920d18df558",
      "parents": [
        "3735f11050616652525bf80b4fbcb2b3bfeab113"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 15 17:19:37 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 15 17:19:37 2022 +0100"
      },
      "message": "patch 9.0.0470: in :def function all closures in loop get the same variables\n\nProblem:    In a :def function all closures in a loop get the same variables.\nSolution:   When in a loop and a closure refers to a variable declared in the\n            loop, prepare for making a copy of variables for each closure.\n"
    },
    {
      "commit": "ebd0e8bb853cb744b60bf4f57011c4379ae4aaed",
      "tree": "bda75c257efb71dacc825e7162b006eb72205d6a",
      "parents": [
        "e697d488901b6321ddaad68b553f0a434c97d849"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 14 22:13:59 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 14 22:13:59 2022 +0100"
      },
      "message": "patch 9.0.0466: virtual text wrong after adding line break after line\n\nProblem:    Virtual text wrong after adding line break after line.\nSolution:   Pass an \"eol\" flag to where text properties are adjusted.\n            (closes #11131)\n"
    },
    {
      "commit": "766ae5b252eaa6ee2bff70f1913d1cbfb51101bd",
      "tree": "c8e34f8e495b00c7e36e9310ab5becb5f9924ecc",
      "parents": [
        "353b68a99189875a8460124d44fc33eae6def74e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 14 00:30:51 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 14 00:30:51 2022 +0100"
      },
      "message": "patch 9.0.0460: loop variable can\u0027t be found\n\nProblem:    Loop variable can\u0027t be found.\nSolution:   Adjust block_id of the loop variable each round.\n"
    },
    {
      "commit": "c9dc03fff5acf6fb91a923fb95006f9c2bca6141",
      "tree": "45b3d362479f364ff79f461d459e1f2a310319d3",
      "parents": [
        "7b2d87220c6c974d5cdae672b6f9620a6bcbd1dc"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 12 17:51:07 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 12 17:51:07 2022 +0100"
      },
      "message": "patch 9.0.0451: virtual text \"above\" does not work with \u0027nowrap\u0027\n\nProblem:    Virtual text \"above\" does not work with \u0027nowrap\u0027.\nSolution:   Do wrap the line after. (closes #11084)\n"
    },
    {
      "commit": "cdc839353f68ca43db6446e1b727fc7ba657b738",
      "tree": "0729860faa774e594b183ce0823ae23776b92701",
      "parents": [
        "5a4eb55122e45444d3a6c56ce108ce29bc8e52ab"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Mon Sep 12 13:38:41 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 12 13:38:41 2022 +0100"
      },
      "message": "patch 9.0.0449: there is no easy way to translate a key code into a string\n\nProblem:    There is no easy way to translate a string with a key code into a\n            readable string.\nSolution:   Add the keytrans() function. (closes #11114)\n"
    },
    {
      "commit": "9510d22463055f56548ff461ccbc54caa1ba1a2f",
      "tree": "5c084eccddd0a17e08c4bba2d5fec6d4cc969144",
      "parents": [
        "cce82a55b8105560a2ef724999c856966337b48e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Sep 11 15:14:05 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Sep 11 15:14:05 2022 +0100"
      },
      "message": "patch 9.0.0444: trying to declare g:variable gives confusing error\n\nProblem:    Trying to declare g:variable gives confusing error.\nSolution:   Give a better error message. (closes #11108)\n"
    },
    {
      "commit": "04e0ed1ddf399d609dbcb7dbf19e531da1fe6172",
      "tree": "643b2953e9292ae092ae93cf7f7ba9d014631ab7",
      "parents": [
        "55e9366e32bc0e1056478d1d0ae935f9cf039d6a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 10 20:00:56 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 10 20:00:56 2022 +0100"
      },
      "message": "patch 9.0.0438: cannot put virtual text above a line\n\nProblem:    Cannot put virtual text above a line.\nSolution:   Add the \"above\" value for \"text_align\".\n"
    },
    {
      "commit": "375141e1f80dced9be738568a3418f65813f4a2f",
      "tree": "be23086bf0c21bbf564b42298909d856ac6780cf",
      "parents": [
        "0adae2da17598669e442ba38547ab18a6c1406de"
      ],
      "author": {
        "name": "Bakudankun",
        "email": "bakudankun@gmail.com",
        "time": "Fri Sep 09 18:46:47 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Sep 09 18:46:47 2022 +0100"
      },
      "message": "patch 9.0.0430: cannot use repeat() with a blob\n\nProblem:    Cannot use repeat() with a blob.\nSolution:   Implement blob repeat. (closes #11090)\n"
    },
    {
      "commit": "169003289fb4b2ad18fd7f5807e0d05efff0be85",
      "tree": "50602045f6b4e7ed30d2498bef163412839c8776",
      "parents": [
        "45bbaef0382c5468d9fac511775bd99ea7bf5b84"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 08 19:51:45 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 08 19:51:45 2022 +0100"
      },
      "message": "patch 9.0.0419: the :defer command does not check the function arguments\n\nProblem:    The :defer command does not check the function argument count and\n            types.\nSolution:   Check the function arguments when adding a deferred function.\n"
    },
    {
      "commit": "6f14da15ac900589f2f413d77898b9bff3b31ece",
      "tree": "883f0ce338a539bea95f17fec21a76d5990e6076",
      "parents": [
        "d7633114af2365e32080b61af473db347a3489c2"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 07 21:30:44 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 07 21:30:44 2022 +0100"
      },
      "message": "patch 9.0.0411: only created files can be cleaned up with one call\n\nProblem:    Only created files can be cleaned up with one call.\nSolution:   Add flags to mkdir() to delete with a deferred function.\n            Expand the writefile() name to a full path to handle changing\n            directory.\n"
    },
    {
      "commit": "9667b2c888351b04751bdb43cba0d4ffc8c13ab1",
      "tree": "2fdab6d882454458af5b42159ef6f863f72b3867",
      "parents": [
        "c9c967da09d9faf5ba989c943352274fea365841"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 07 17:28:09 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 07 17:28:09 2022 +0100"
      },
      "message": "patch 9.0.0406: deferred functions not invoked when partial func exits\n\nProblem:    Deferred functions not invoked when partial func exits.\nSolution:   Create a funccall_T when calling a :def function.\n"
    },
    {
      "commit": "c9c967da09d9faf5ba989c943352274fea365841",
      "tree": "a072dd3a6d159560e012fc16615e4a849a0af8ff",
      "parents": [
        "1540d334a04d874c2aa9d26b82dbbcd4bc5a78de"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 07 16:48:46 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 07 16:48:46 2022 +0100"
      },
      "message": "patch 9.0.0405: arguments in a partial not used by a :def function\n\nProblem:    Arguments in a partial not used by a :def function.\nSolution:   Put the partial arguments on the stack.\n"
    },
    {
      "commit": "98aff658d5f97629d7c3a9fccac6c79fc9c6029d",
      "tree": "373e25478552ba5098d844e6bce825629190222a",
      "parents": [
        "ca16c60f337ed33d5dd66a6e90aaf95b619c5e47"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Sep 06 21:02:35 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Sep 06 21:02:35 2022 +0100"
      },
      "message": "patch 9.0.0399: using :defer in expression funcref not tested\n\nProblem:    Using :defer in expression funcref not tested.\nSolution:   Add a test.  Fix uncovered problems.\n"
    },
    {
      "commit": "58779858fb5a82a3233af5d4237a3cece88c10d4",
      "tree": "c1654eb20a1a8300e1b304263ccea655928b3401",
      "parents": [
        "2834ebdee473c838e50e60d0aa160f0e62fc8ef9"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Sep 06 18:31:14 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Sep 06 18:31:14 2022 +0100"
      },
      "message": "patch 9.0.0397: :defer not tested with exceptions and \":qa!\"\n\nProblem:    :defer not tested with exceptions and \":qa!\".\nSolution:   Test :defer works when exceptions are thrown and when \":qa!\" is\n            used.  Invoke the deferred calls on exit.\n"
    },
    {
      "commit": "ddf7dba96e05a41c7a228b153146237e0a21b146",
      "tree": "b5865b60ab795b541a902b2be3c39c0df353ca37",
      "parents": [
        "b1f471ee20b0fa783ecd6e29aa69067e6c821376"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 05 16:53:21 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Sep 05 16:53:21 2022 +0100"
      },
      "message": "patch 9.0.0387: repeat \u003cScriptCmd\u003e mapping doesn\u0027t use right script context\n\nProblem:    repeating a \u003cScriptCmd\u003e mapping does not use the right script\n            context.\nSolution:   When using a mapping put \u003cSID\u003e{sid}; in the redo buffer.\n            (closes #11049)\n"
    },
    {
      "commit": "806a273f3c84ecd475913d901890bb1929be9a0a",
      "tree": "7970b531379736fd2497f3a1acea0c400028db81",
      "parents": [
        "c1eb131c9eb38e00e08109f50e3e5337c072b71e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Sep 04 15:40:36 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Sep 04 15:40:36 2022 +0100"
      },
      "message": "patch 9.0.0379: cleaning up after writefile() is a hassle\n\nProblem:    Cleaning up after writefile() is a hassle.\nSolution:   Add the \u0027D\u0027 flag to defer deleting the written file.  Very useful\n            in tests.\n"
    },
    {
      "commit": "1d84f7608f1e41dad03b8cc7925895437775f7c0",
      "tree": "cc276825566021a35b96f93e178e5f2ac621a84b",
      "parents": [
        "06d32a0c177e4166ff0491668cd459464bc2ef45"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 03 21:35:53 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 03 21:35:53 2022 +0100"
      },
      "message": "patch 9.0.0370: cleaning up afterwards can make a function messy\n\nProblem:    Cleaning up afterwards can make a function messy.\nSolution:   Add the :defer command.\n"
    },
    {
      "commit": "7d7ad7b2e8c6403033fbdb083f092321c0ccbfaf",
      "tree": "4dc8f66a97862870b7d09ac390e75f0912b046e1",
      "parents": [
        "be807d582499acbe314ead3891481cba6ca136df"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 01 16:00:53 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 01 16:00:53 2022 +0100"
      },
      "message": "patch 9.0.0350: :echowindow does not work in a compiled function\n\nProblem:    :echowindow does not work in a compiled function.\nSolution:   Handle the expression at compile time.\n"
    },
    {
      "commit": "d83392a43a48c566c0f3b76382a3648584dae32b",
      "tree": "ba5c2d376a386d524190fd0f7565c3af1b624701",
      "parents": [
        "e42c8dae32f3575557b83a371c4be66c09afbf7f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 01 12:22:46 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 01 12:22:46 2022 +0100"
      },
      "message": "patch 9.0.0345: error message for list argument could be clearer\n\nProblem:    Error message for list argument could be clearer.\nSolution:   Include the argument number. (Yegappan Lakshmanan, closes #11027)\n"
    },
    {
      "commit": "a2a8973e51a0052bb52e43a2b22e7ecdecc32003",
      "tree": "42700a5eab4930539b87591ad903f7271b527fc3",
      "parents": [
        "a63ad78ed31e36dbdf3a9cd28071dcdbefce7d19"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 31 14:46:18 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 31 14:46:18 2022 +0100"
      },
      "message": "patch 9.0.0340: the \u0027cmdheight\u0027 zero support causes too much trouble\n\nProblem:    The \u0027cmdheight\u0027 zero support causes too much trouble.\nSolution:   Revert support for \u0027cmdheight\u0027 being zero.\n"
    },
    {
      "commit": "04c4c5746e15884768d2cb41370c3276a196cd4c",
      "tree": "1e629820796635bd332b2066c03d548fad527f89",
      "parents": [
        "f240395fca63d4b330112a4b81e94b05b50de1aa"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Tue Aug 30 19:48:24 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 30 19:48:24 2022 +0100"
      },
      "message": "patch 9.0.0335: checks for Dictionary argument often give a vague error\n\nProblem:    Checks for Dictionary argument often give a vague error message.\nSolution:   Give a useful error message. (Yegappan Lakshmanan, closes #11009)\n"
    },
    {
      "commit": "3e518a8ec74065aedd67d352c93d6ae6be550316",
      "tree": "239505fa04b1012bfccad56d6cc3f7f6517bfe78",
      "parents": [
        "f92cfb1acc3fef74eef0c83c1a35a2b6a9f93a9b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 30 17:45:33 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 30 17:45:33 2022 +0100"
      },
      "message": "patch 9.0.0331: cannot use items() on a string\n\nProblem:    Cannot use items() on a string.\nSolution:   Make items() work on a string. (closes #11016)\n"
    },
    {
      "commit": "976f859763b215050a03248dbc2bb62fa5d0d059",
      "tree": "36bc5a92c8eb8cf57c0116e21c9a36679993fba4",
      "parents": [
        "0e412be00f8290e0575c7f72ec080725631eff38"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 30 14:34:52 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 30 14:34:52 2022 +0100"
      },
      "message": "patch 9.0.0327: items() does not work on a list\n\nProblem:    items() does not work on a list. (Sergey Vlasov)\nSolution:   Make items() work on a list. (closes #11013)\n"
    },
    {
      "commit": "54acb90d9e672315e3bd13f8dc71f828df97c868",
      "tree": "a6ace12d6378c530d8341c69a30ccf2c76a69c45",
      "parents": [
        "d5c8f11905abc1bdf3b8864dbc40187855ed9374"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Mon Aug 29 16:21:25 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 29 16:21:25 2022 +0100"
      },
      "message": "patch 9.0.0320: command line type of CmdlineChange differs from getcmdtype()\n\nProblem:    Command line type of CmdlineChange differs from getcmdtype().\nSolution:   Use the same type. (closes #11005)\n"
    },
    {
      "commit": "b13d3405fffae1115acc1433479b616f30e292e5",
      "tree": "58a8ab1a5d00c7efd13eb1ae953051ece2746790",
      "parents": [
        "f73e5ba56f4aca1cd6e38f1c8ea24e941bf6b33f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 29 13:44:28 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 29 13:44:28 2022 +0100"
      },
      "message": "patch 9.0.0317: when updating the whole screen a popup may not be redrawn\n\nProblem:    When updating the whole screen a popup may not be redrawn.\nSolution:   Mark the screen and windows for redraw also when not clearing.\n            Also mark popup windows for redraw.\n"
    },
    {
      "commit": "33a5dd8b237738c15cae87441d731ab899b4e846",
      "tree": "d186bc7e0f4a34428a69365342fcde7e97742a82",
      "parents": [
        "134b86553c12c46e0ae7d534f6fe65e8ba2d50bc"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 28 22:17:50 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 28 22:17:50 2022 +0100"
      },
      "message": "patch 9.0.0308: when cmdheight is zero the attention prompt doesn\u0027t show\n\nProblem:    When cmdheight is zero the attention prompt doesn\u0027t show.\nSolution:   Do not use the message window for a prompt.\n"
    },
    {
      "commit": "43568648dfefe5796dc3fe8fe711135eb20d9eb6",
      "tree": "59d27e3974535207bc9b21a32ec8dc777f40fd9c",
      "parents": [
        "b0509c542ed974cb388d49273d365ff2daf43159"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 28 13:02:45 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 28 13:02:45 2022 +0100"
      },
      "message": "patch 9.0.0294: crash when \u0027cmdheight\u0027 is 0 and popup_clear() used\n\nProblem:    Crash when \u0027cmdheight\u0027 is 0 and popup_clear() used.\nSolution:   Reset \"message_win\" when the message popup is cleared.  Close the\n            popup when \u0027cmdheight\u0027 is non-zero.  Add a screendump test.\n"
    },
    {
      "commit": "9198de3ae2bd20ac51d580c44f2b43c282c1e773",
      "tree": "5a101dfee6a8a29a9000443cdf61a2e822a9f2c5",
      "parents": [
        "aebc6ef7cdc5d4d0627a711ff66e6fe8d67f9d87"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 27 21:30:03 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 27 21:30:03 2022 +0100"
      },
      "message": "patch 9.0.0288: when \u0027cmdheight\u0027 is zero some messages are not displayed\n\nProblem:    When \u0027cmdheight\u0027 is zero some messages are not displayed.\nSolution:   Use a popup notification window.\n"
    },
    {
      "commit": "07ea5f1509fe8dafe3262ed2702b4d0fc99e288b",
      "tree": "1b409138b5a115619cb2852ece07194edca7ed51",
      "parents": [
        "5ff595d9db2d9a33aa10cc9f18f256826226862f"
      ],
      "author": {
        "name": "Shougo Matsushita",
        "email": "Shougo.Matsu@gmail.com",
        "time": "Sat Aug 27 12:22:25 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 27 12:22:25 2022 +0100"
      },
      "message": "patch 9.0.0285: it is not easy to change the command line from a plugin\n\nProblem:    It is not easy to change the command line from a plugin.\nSolution:   Add setcmdline(). (Shougo Matsushita, closes #10869)\n"
    },
    {
      "commit": "753885b6c5b9021184daa94d32fd8bf025f1b488",
      "tree": "d0d9e106e111e6d1bf3f200ca83a4b0a3fad7ae0",
      "parents": [
        "f5240b96f721b08d703340ff0b2e67b79fb8b821"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 24 16:30:36 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 24 16:30:36 2022 +0100"
      },
      "message": "patch 9.0.0253: a symlink to an autoload script results in two entries\n\nProblem:    A symlink to an autoload script results in two entries in the list\n            of scripts, items expected in one are actually in the other.\nSolution:   Have one script item refer to the actually sourced one.\n            (closes #10960)\n"
    },
    {
      "commit": "f396ce83eebf6c61596184231d39ce4d41eeac04",
      "tree": "d3a624411eaea5463025bd186c39616688cc0876",
      "parents": [
        "adce965162dd89bf29ee0e5baf53652e7515762c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 23 18:39:37 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 23 18:39:37 2022 +0100"
      },
      "message": "patch 9.0.0247: cannot add padding to virtual text without highlight\n\nProblem:    Cannot add padding to virtual text without highlight.\nSolution:   Add the \"text_padding_left\" argument. (issue #10906)\n"
    },
    {
      "commit": "471c0fa3eed4f6207d1cb7636970547bfd2eee26",
      "tree": "a63888422f4a84f9e73b3e23025090127c31fe25",
      "parents": [
        "f768c3d19c518822d89dec4cc3947ddeea249316"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 22 15:19:16 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 22 15:19:16 2022 +0100"
      },
      "message": "patch 9.0.0245: mechanism to prevent recursive screen updating is incomplete\n\nProblem:    Mechanism to prevent recursive screen updating is incomplete.\nSolution:   Add \"redraw_not_allowed\" and set it in build_stl_str_hl().\n            (issue #10952)\n"
    },
    {
      "commit": "f768c3d19c518822d89dec4cc3947ddeea249316",
      "tree": "5653c5bbaa38515ba7401fed81da6972971a260e",
      "parents": [
        "e89aeed43e6eca1bda5379cf9b437bce3bc56628"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Mon Aug 22 13:15:13 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 22 13:15:13 2022 +0100"
      },
      "message": "patch 9.0.0244: cannot easily get the list of sourced scripts\n\nProblem:    Cannot easily get the list of sourced scripts.\nSolution:   Add the getscriptinfo() function. (Yegappan Lakshmanan,\n            closes #10957)\n"
    },
    {
      "commit": "91c7cbfe31bbef57d5fcf7d76989fc159f73ef15",
      "tree": "95aa1ecfabd5937db15f10648d79a61f42c417e4",
      "parents": [
        "4875d6ab068f09df88d24d81de40dcd8d56e243d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 18 13:28:31 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 18 13:28:31 2022 +0100"
      },
      "message": "patch 9.0.0225: using freed memory with multiple line breaks in expression\n\nProblem:    Using freed memory with multiple line breaks in expression.\nSolution:   Free eval_tofree later.\n"
    },
    {
      "commit": "e98c88c44c308edaea5994b8ad4363e65030968c",
      "tree": "ee95f55436a1d8c2cd18a8f932adc7ac14a6b409",
      "parents": [
        "e1f3fd1d02e3f5fe6d2b6d82687c6846b8e500f8"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 16 14:51:53 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 16 14:51:53 2022 +0100"
      },
      "message": "patch 9.0.0218: reading before the start of the line\n\nProblem:    Reading before the start of the line.\nSolution:   When displaying \"$\" check the column is not negative.\n"
    },
    {
      "commit": "326c5d36e7cb8526330565109c17b4a13ff790ae",
      "tree": "58ae0580aa13a128387b13ac06e24d52b4d073fa",
      "parents": [
        "e38fc86180fd3f6b372648eea6adc3f623fea302"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Aug 12 13:05:49 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Aug 12 13:05:49 2022 +0100"
      },
      "message": "patch 9.0.0194: cursor displayed in wrong position after removing text prop\n\nProblem:    Cursor displayed in wrong position after removing text prop. (Ben\n            Jackson)\nSolution:   Invalidate the cursor position. (closes #10898)\n"
    },
    {
      "commit": "49a90792d950c51608d0459ef8699fe921070718",
      "tree": "a4f212b416b59ac517fd1b7a0aec9775d0369c31",
      "parents": [
        "e428fa04a758cc87ea580c856a796e58e407504b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 09 18:25:23 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 09 18:25:23 2022 +0100"
      },
      "message": "patch 9.0.0179: cursor pos wrong with wrapping virtual text in empty line\n\nProblem:    Cursor position wrong with wrapping virtual text in empty line.\nSolution:   Adjust handling of an empty line. (closes #10875)\n"
    },
    {
      "commit": "8ca29b6a3599b82b8822b7697cad63d0244c2d59",
      "tree": "9abef23b2de61a59e95a317edc9cabdf40425637",
      "parents": [
        "afa23d1b99692e3c726eb694933ab348b442a1e4"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Tue Aug 09 12:53:14 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 09 12:53:14 2022 +0100"
      },
      "message": "patch 9.0.0176: checking character options is duplicated and incomplete\n\nProblem:    Checking character options is duplicated and incomplete.\nSolution:   Move checking to check_chars_options(). (closes #10863)\n"
    },
    {
      "commit": "4d91d347e65a5621621ea1e3c97dce2c677ed71d",
      "tree": "3c1d98bf2b063c86b5568099208ec2fb69c151fc",
      "parents": [
        "25f40af9d2f04d18c8a276249f2794e83aa5c290"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 06 13:48:20 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 06 13:48:20 2022 +0100"
      },
      "message": "patch 9.0.0151: a \"below\" aligned text property does not work with \u0027nowrap\u0027\n\nProblem:    A \"below\" aligned text property does not work with \u0027nowrap\u0027.\nSolution:   Start a new screen line to display the virtual text.\n            (closes #10851)\n"
    },
    {
      "commit": "213bbaf15afc628e5f83d1ae6526631ca8292292",
      "tree": "f9b701acce08e848d8b8dde47946ab32a1b22b54",
      "parents": [
        "f4ba8bc47eb3c6b5899ef31d083b9b8f0d4ca456"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Aug 05 19:46:48 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Aug 05 19:46:48 2022 +0100"
      },
      "message": "patch 9.0.0145: substitute that joins lines drops text properties\n\nProblem:    Substitute that joins lines drops text properties.\nSolution:   Move text properties of the last line to the new line.\n"
    },
    {
      "commit": "398649ee44edeb309c77361de697320378104b70",
      "tree": "37c3367373fc9709b219aecc9fd5271ef4a66041",
      "parents": [
        "bc49c5f48f89c2d6f4d88ee77f44a11d68293be3"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 04 15:03:48 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 04 15:03:48 2022 +0100"
      },
      "message": "patch 9.0.0139: truncating virtual text after a line not implemented\n\nProblem:    Truncating virtual text after a line not implemented.\n            Cursor positioning wrong with Newline in the text.\nSolution:   Implement truncating.  Disallow control characters in the text.\n            (closes #10842)\n"
    },
    {
      "commit": "bc49c5f48f89c2d6f4d88ee77f44a11d68293be3",
      "tree": "810e9e2809e1e8cdfb4cc088ad1127bc141e7bb8",
      "parents": [
        "db7a88db8b52508d3df6d5947f7c4f3ef05d5f62"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 04 13:01:48 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 04 13:01:48 2022 +0100"
      },
      "message": "patch 9.0.0138: not enough characters accepted for \u0027spellfile\u0027\n\nProblem:    Not enough characters accepted for \u0027spellfile\u0027.\nSolution:   Add vim_is_fname_char() and use it for \u0027spellfile\u0027.\n"
    },
    {
      "commit": "e175dc6911948bcd0c854876b534fee62fb95b9f",
      "tree": "67b74045048bee4fbcaa4fa4340b1fccba7084a3",
      "parents": [
        "09ff4b54fb86a64390ba9c609853c6410ea6197c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 01 22:18:50 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Aug 01 22:18:50 2022 +0100"
      },
      "message": "patch 9.0.0133: virtual text after line moves to joined line\n\nProblem:    Virtual text after line moves to joined line. (Yegappan\n            Lakshmanan)\nSolution:   When joining lines only keep virtual text after the last line.\n"
    },
    {
      "commit": "46af7bc08debbf408d025680eeef136fb3b528ef",
      "tree": "8770d0e93cb01df8e5d0780279a083b874dc0fc8",
      "parents": [
        "5748b7f2c8a8e8e6d12b3e2531df5c0261fd8f3b"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Thu Jul 28 12:34:09 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jul 28 12:34:09 2022 +0100"
      },
      "message": "patch 9.0.0099: scrollback can be wrong after redrawing the command line\n\nProblem:    Scrollback can be wrong after redrawing the command line.\nSolution:   Clear unfinished scrollback when redrawing. (closes #10807)\n"
    },
    {
      "commit": "f6782732ab4acd02211923fbdccb457dacaf277e",
      "tree": "4626f91aa4b1ca65a1867b99a5e328995b5b389a",
      "parents": [
        "122dea70073d140aa89212d344c3f62bd3b5b3fa"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Wed Jul 27 18:26:03 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jul 27 18:26:03 2022 +0100"
      },
      "message": "patch 9.0.0096: flag \"new_value_alloced\" is always true\n\nProblem:    Flag \"new_value_alloced\" is always true.\nSolution:   Remove \"new_value_alloced\". (closes #10792)\n"
    },
    {
      "commit": "28f84e17b068daca2635692d279930dcb7a150d0",
      "tree": "1913ed36abd15b672ebcff947234b0b75f565084",
      "parents": [
        "7db3a8e3298bf7c7c3f74cc9c1add04f29e78d2d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jul 27 12:30:13 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jul 27 12:30:13 2022 +0100"
      },
      "message": "patch 9.0.0090: no error when assigning bool to a string option\n\nProblem:    No error when assigning bool to a string option with setwinvar().\nSolution:   Give an error (closes #10766)\n"
    },
    {
      "commit": "7f9969c559b51446632ac7e8f76cde07e7d0078d",
      "tree": "77868549433487dbadb8833a1b6a63d522adaa72",
      "parents": [
        "b529cfbd04c02e31cfa88f2c8d88b5ff532d4f7d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jul 25 18:13:54 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jul 25 18:13:54 2022 +0100"
      },
      "message": "patch 9.0.0067: cannot show virtual text\n\nProblem:    Cannot show virtual text.\nSolution:   Initial changes for virtual text support, using text properties.\n"
    },
    {
      "commit": "d61efa50f8f5b9d9dcbc136705cc33874f0fdcb3",
      "tree": "7ca7416ffda546d9f45ba93d3c93f3418bd6bcd0",
      "parents": [
        "5ac50de83f1b4136f903c51a1d4e7d84a26c2271"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jul 23 09:52:04 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jul 23 09:52:04 2022 +0100"
      },
      "message": "patch 9.0.0063: too many type casts for dict_get functions\n\nProblem:    Too many type casts for dict_get functions.\nSolution:   Change the key argument from \"char_u *\" to \"char *\".\n"
    },
    {
      "commit": "5fa9f23a63651a8abdb074b4fc2ec9b1adc6b089",
      "tree": "ecfbc53cfa7bd322b2506a4b11909e234063272d",
      "parents": [
        "b9e717367c395490149495cf375911b5d9de889e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jul 23 09:06:48 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jul 23 09:06:48 2022 +0100"
      },
      "message": "patch 9.0.0061: ml_get error with nested autocommand\n\nProblem:    ml_get error with nested autocommand.\nSolution:   Also check line numbers for a nested autocommand. (closes #10761)\n"
    },
    {
      "commit": "81a3ff97e2012bdafc3ece796289f2e11e2754f3",
      "tree": "15226ff00df55bc1927e6ab0bed077e703314be9",
      "parents": [
        "5154a8880034b7bb94186d37bcecc6ee1a96f732"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sat Jul 23 05:04:16 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jul 23 05:04:16 2022 +0100"
      },
      "message": "patch 9.0.0058: Win32: cannot test low level events\n\nProblem:    Win32: cannot test low level events.\nSolution:   Add \"sendevent\" to test_gui_event(). (Yegappan Lakshmanan,\n            closes #10679)\n"
    },
    {
      "commit": "b67f0c8e495cfbfc09d6c7ff670b8162faf07b01",
      "tree": "a2ac931d3af9d6aae328acef53475e9717791aa0",
      "parents": [
        "4c99e622ddd1cc0527262fda3b93e8e70f017371"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jul 04 21:03:36 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jul 04 21:03:36 2022 +0100"
      },
      "message": "patch 9.0.0040: use of set_chars_option() is confusing\n\nProblem:    Use of set_chars_option() is confusing.\nSolution:   Add \"apply\" argument to store the result or not.  Merge similar\n            code.\n"
    },
    {
      "commit": "96ba25ac01279f73c0ecb5d4aa4ff37aa359e5eb",
      "tree": "a7ebf066dede8010563debf70816231c4cdf75f4",
      "parents": [
        "54e5fed6d27b747ff152cdb6edfb72ff60e70939"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jul 04 17:34:33 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jul 04 17:34:33 2022 +0100"
      },
      "message": "patch 9.0.0036: \u0027fillchars\u0027 cannot have window-local values\n\nProblem:    \u0027fillchars\u0027 cannot have window-local values.\nSolution:   Make \u0027fillchars\u0027 global-local. (closes #5206)\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": "c207fd2535717030d78f9b92839e5f2ac004cc78",
      "tree": "d0f5a98dd1ffa989fd14e9bce0b0420b346eecb7",
      "parents": [
        "75417d960bd17a5b701cfb625b8864dacaf0cc39"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Wed Jun 29 10:37:40 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jun 29 10:37:40 2022 +0100"
      },
      "message": "patch 9.0.0002: map functionality outside of map.c\n\nProblem:    Map functionality outside of map.c.\nSolution:   Move f_hasmapto() to map.c.  Rename a function. (closes #10611)\n"
    },
    {
      "commit": "d21e5bde7c74eab8b10fddc30d12a313c7e7dcd0",
      "tree": "ae70c3986ae73061897e71d01610ef1e63df868b",
      "parents": [
        "944cc9ceba8868acd238264d4a3894803c566b37"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 27 22:52:43 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 27 22:52:43 2022 +0100"
      },
      "message": "patch 8.2.5171: dependencies and proto files are outdated\n\nProblem:    Dependencies and proto files are outdated.\nSolution:   Update dependencies and proto files.  Avoid errors.\n"
    },
    {
      "commit": "44ddf19ec0ff59c969658ec7d9ed42070c59c51b",
      "tree": "3bb890d6ead77f4a66e3c64a5e7ed0a21b6dd26f",
      "parents": [
        "cf801d4b95180ddaee1bf633ef482232625dd80b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jun 21 22:15:25 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jun 21 22:15:25 2022 +0100"
      },
      "message": "patch 8.2.5146: memory leak when substitute expression nests\n\nProblem:    Memory leak when substitute expression nests.\nSolution:   Use an array of expression results.\n"
    },
    {
      "commit": "155f2d1451949d1124bfd6ba9c55be6bd74bab75",
      "tree": "b62202254ef079aafcf30eaa01baf694d3f9b0a6",
      "parents": [
        "73171ba4344e17484699d11c65d57fb1f4de572a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 20 13:38:33 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 20 13:38:33 2022 +0100"
      },
      "message": "patch 8.2.5141: using \"volatile int\" in a signal handler might be wrong\n\nProblem:    Using \"volatile int\" in a signal handler might be wrong.\nSolution:   Use \"volatile sig_atomic_t\".\n"
    },
    {
      "commit": "09f68a5e7817cbb40854ee6b8ae3db21d5365346",
      "tree": "a59c32d01569efa54ef7ab411b2af92cc3b5823f",
      "parents": [
        "620aa8eb5b1468d086253f8aa787a33a86033100"
      ],
      "author": {
        "name": "Yasuhiro Matsumoto",
        "email": "mattn.jp@gmail.com",
        "time": "Sat Jun 18 16:48:36 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jun 18 16:48:36 2022 +0100"
      },
      "message": "patch 8.2.5125: MS-Windows: warnings from MinGW compiler\n\nProblem:    MS-Windows: warnings from MinGW compyler.\nSolution:   Use \"volatile\". (Yasuhiro Matsumoto, closes #10589)  Initialize\n            variable.\n"
    },
    {
      "commit": "616592e0816d2d9f893fcd95e3e1e0fbc5893168",
      "tree": "f832a0c1dbe16fcbd944e4b735829279e75ea49d",
      "parents": [
        "5ea38d1e7fd597ffde13b292d43e12747f20e97f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jun 17 15:17:10 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jun 17 15:17:10 2022 +0100"
      },
      "message": "patch 8.2.5115: search timeout is overrun with some patterns\n\nProblem:    Search timeout is overrun with some patterns.\nSolution:   Check for timeout in more places.  Make the flag volatile and\n            atomic.  Use assert_inrange() to see what happened.\n"
    },
    {
      "commit": "c72e31dfcc013ae840cd7f8899f2430b7f6812c9",
      "tree": "9c8aed4f3e53e7b224ad3849c55052ea744b11bd",
      "parents": [
        "a272624c763fea9f98510bbc5b1f2b65a309c765"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jun 16 18:47:20 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jun 16 18:47:20 2022 +0100"
      },
      "message": "patch 8.2.5113: timer becomes invalid after fork/exec, :gui gives errors\n\nProblem:    Timer becomes invalid after fork/exec, :gui gives errors. (Gabriel\n            Dupras)\nSolution:   Delete the timer befor forking. (closes #10584)\n"
    },
    {
      "commit": "44068e97dbd8fc8ebd93113e436a1e37a6bff52c",
      "tree": "716b248e729eaa9ce8a2795192d3863ca2e5c462",
      "parents": [
        "83497f875881973df772cc4cc593766345df6c4a"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Thu Jun 16 11:14:55 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jun 16 11:14:55 2022 +0100"
      },
      "message": "patch 8.2.5106: default cmdwin mappings are re-mappable\n\nProblem:    Default cmdwin mappings are re-mappable.\nSolution:   Make the default mappings not re-mappable. (closes #10580)  Use\n            symbols for the first do_map() argument.\n"
    },
    {
      "commit": "2d12c25a1b73fb6991006fd970b3132ab8ee8b62",
      "tree": "792f7cec3f4beb90fc67ab120ea87e3155c13686",
      "parents": [
        "db77c49401145d76441fbb3d22a1d7d987681c13"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 13 21:42:45 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jun 13 21:42:45 2022 +0100"
      },
      "message": "patch 8.2.5084: when the GUI shows a dialog tests get stuck\n\nProblem:    When the GUI shows a dialog tests get stuck.\nSolution:   Add the --gui-dialog-file argument.\n"
    },
    {
      "commit": "6574577cacd393ab7591fc776ea060eebc939e55",
      "tree": "f583ca9957280e7086b8d14ef44127302829fd40",
      "parents": [
        "1d97db3d987c05af88c30ad20f537bcf3024f9c1"
      ],
      "author": {
        "name": "Paul Ollis",
        "email": "paul@cleversheep.org",
        "time": "Sun Jun 05 16:55:54 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 05 16:55:54 2022 +0100"
      },
      "message": "patch 8.2.5057: using gettimeofday() for timeout is very inefficient\n\nProblem:    Using gettimeofday() for timeout is very inefficient.\nSolution:   Set a platform dependent timer. (Paul Ollis, closes #10505)\n"
    },
    {
      "commit": "4aaf3e7f4db599932d01d87e5bbcdc342cccee27",
      "tree": "951e0288738fd50c88a74c94a8ddb8d899985b51",
      "parents": [
        "10db31f9493425a20f1e53d0f214e621f16d65de"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon May 30 20:58:55 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon May 30 20:58:55 2022 +0100"
      },
      "message": "patch 8.2.5046: vim_regsub() can overwrite the destination\n\nProblem:    vim_regsub() can overwrite the destination.\nSolution:   Pass the destination length, give an error when it doesn\u0027t fit.\n"
    },
    {
      "commit": "71223e2db87c2bf3b09aecb46266b56cda26191d",
      "tree": "3fc0857560f746c12af92b0ed02e2aab8696708e",
      "parents": [
        "89b25585ccecf223ca41ca212df8ebc227fc035a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon May 30 15:23:09 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon May 30 15:23:09 2022 +0100"
      },
      "message": "patch 8.2.5043: can open a cmdline window from a substitute expression\n\nProblem:    Can open a cmdline window from a substitute expression.\nSolution:   Disallow opening a command line window when text or buffer is\n            locked.\n"
    },
    {
      "commit": "9e636b9d2ef54552383daebf290d916b3d001823",
      "tree": "de1946ef20a5338f42dbf38b36c8e748b989001a",
      "parents": [
        "fc376e0b1a36a2ef153e28752c61342554386886"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 29 22:37:05 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 29 22:37:05 2022 +0100"
      },
      "message": "patch 8.2.5041: cannot close a terminal popup with \"NONE\" job\n\nProblem:    Cannot close a terminal popup with \"NONE\" job.\nSolution:   Adjust the conditions for whether a job is running.\n            (closes #10498)\n"
    },
    {
      "commit": "5a6ec10cc80ab02eeff644ab19b82312630ea855",
      "tree": "5014800ed4c174f1abe451009e6d3ab86261a698",
      "parents": [
        "968443efb5a2a1ed7e1084f2aff65a95f2d0a17b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 27 21:58:00 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 27 21:58:00 2022 +0100"
      },
      "message": "patch 8.2.5034: there is no way to get the byte index from a virtual column\n\nProblem:    There is no way to get the byte index from a virtual column.\nSolution:   Add virtcol2col(). (Yegappan Lakshmanan, closes #10477,\n            closes #10098)\n"
    },
    {
      "commit": "cfe456543e840d133399551f8626d985e1fb1958",
      "tree": "88e1820132eef74ed7abab2334d51019cb6f47d2",
      "parents": [
        "02e8d4e4ffcdd6ee919e19692d591da8e18a565d"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Fri May 27 17:26:55 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 27 17:26:55 2022 +0100"
      },
      "message": "patch 8.2.5029: \"textlock\" is always zero\n\nProblem:    \"textlock\" is always zero.\nSolution:   Remove \"textlock\" and rename \"textwinlock\" to \"textlock\".\n            (closes #10489)\n"
    },
    {
      "commit": "31d9948e3a2529c2f619d56bdb48291dc261233d",
      "tree": "9d190d121b8851b0d861455ba61b09fd03da8776",
      "parents": [
        "5cb53b7afe6bde8f2bf6fc6b65b86071b67a8554"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu May 26 22:24:43 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu May 26 22:24:43 2022 +0100"
      },
      "message": "patch 8.2.5026: Vim9: a few lines not covered by tests\n\nProblem:    Vim9: a few lines not covered by tests.\nSolution:   Delete dead code.  Add a few test cases. make \"12-\u003efunc()\" work.\n"
    },
    {
      "commit": "c3caa7f78808e405b7cdbcdf89c9d35a43d2c3eb",
      "tree": "2a72f4fea5880062e727dd0469bdb3b07f8a2ba7",
      "parents": [
        "8be36eecdc6728021f9c384c2305f114e671ec32"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 25 19:15:10 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 25 19:15:10 2022 +0100"
      },
      "message": "patch 8.2.5018: Vim9: some code is not covered by tests\n\nProblem:    Vim9: some code is not covered by tests.\nSolution:   Delete dead code.\n"
    }
  ],
  "next": "f79d9dd43f6fe05711d7e2616ab4b8bde2ccb089"
}
