)]}'
{
  "log": [
    {
      "commit": "2a65e739447949a7aee966ce8a3b75521b2a79ea",
      "tree": "5d539accc41476eb1890ea81cf6728bffb545e64",
      "parents": [
        "5e3674b42da10b7e7c72d1f20f9a15379af1b60a"
      ],
      "author": {
        "name": "Sean Dewar",
        "email": "6256228+seandewar@users.noreply.github.com",
        "time": "Thu Feb 22 19:53:33 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Feb 22 19:53:33 2024 +0100"
      },
      "message": "patch 9.1.0128: win_gotoid() may abort even when not switching a window\n\nProblem:  win_gotoid() checks for textlock and other things when switching\n          to a window that is already current (after v9.1.0119)\nSolution: return early with success when attempting to switch to curwin\n          (Sean Dewar)\n\nOther potential causes of E565 from win_gotoid after v9.1.0119 should be\ncorrect. Plugins can consider using win_execute() instead if they wish to\ntemporarily switch windows during textlock.\n\nfixes: #14073\ncloses: #14074\n\nSigned-off-by: Sean Dewar \u003c6256228+seandewar@users.noreply.github.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "f865895c874b0936b0563ebfef7490aac8cb8a1f",
      "tree": "0fbc88c23ac8df82c63b38b59c763438c8348b68",
      "parents": [
        "704966c2545897dfcf426dd9ef946aeb6fa80c38"
      ],
      "author": {
        "name": "Sean Dewar",
        "email": "6256228+seandewar@users.noreply.github.com",
        "time": "Tue Feb 20 22:05:10 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Feb 20 22:05:10 2024 +0100"
      },
      "message": "patch 9.1.0119: can move away from cmdwin using win_splitmove()\n\nProblem:  can switch windows while textlocked via f_win_gotoid and\n          f_win_splitmove (which also allows switching in the cmdwin).\nSolution: Check text_or_buf_locked in f_win_splitmove()\n          (Sean Dewar)\n\nWhile at it, call text_or_buf_locked() in f_win_gotoid() instead of\ntesting for cmdwin_type() (which text_buf_locked() does and\nin addition will also verify that the buffer is not locked).\n\ncloses: #14042\n\nSigned-off-by: Sean Dewar \u003c6256228+seandewar@users.noreply.github.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "0fd44a5ad81ade342cb54d8984965bdedd2272c8",
      "tree": "5216a619a29fec38045aa617717ced39b7d55685",
      "parents": [
        "15935e7f54f0e00782a55ebc39a68e4cd94c2571"
      ],
      "author": {
        "name": "Sean Dewar",
        "email": "6256228+seandewar@users.noreply.github.com",
        "time": "Tue Feb 20 20:28:15 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Feb 20 20:35:41 2024 +0100"
      },
      "message": "patch 9.1.0116: win_split_ins may not check available room\n\nProblem:  win_split_ins has no check for E36 when moving an existing\n          window\nSolution: check for room and fix the issues in f_win_splitmove()\n          (Sean Dewar)\n\nwin_split_ins has no check for E36 when moving an existing window,\nallowing for layouts with many overlapping zero-sized windows to be\ncreated (which may also cause drawing issues with tablines and such).\nf_win_splitmove also has some bugs.\n\nSo check for room and fix the issues in f_win_splitmove. Handle failure\nin the two relevant win_split_ins callers by restoring the original\nlayout, and factor the common logic into win_splitmove.\n\nDon\u0027t check for room when opening an autocommand window, as it\u0027s a\ntemporary window that\u0027s rarely interacted with or drawn anyhow, and is\nrather important for some autocommands.\n\nIssues fixed in f_win_splitmove:\n- Error if splitting is disallowed.\n- Fix heap-use-after-frees if autocommands fired from switching to \"targetwin\"\n  close \"wp\" or \"oldwin\".\n- Fix splitting the wrong window if autocommands fired from switching to\n  \"targetwin\" switch to a different window.\n- Ensure -1 is returned for all errors.\n\nAlso handle allocation failure a bit earlier in make_snapshot (callers,\nexcept win_splitmove, don\u0027t really care if a snapshot can\u0027t be made, so\njust ignore the return value).\n\nNote: Test_smoothscroll_in_zero_width_window failed after these changes with\nE36, as it was using the previous behaviour to create a zero-width window.\nI\u0027ve fixed the test such that it fails with UBSAN as expected when v9.0.1367 is\nreverted (and simplified it too).\n\nrelated: #14042\n\nSigned-off-by: Sean Dewar \u003c6256228+seandewar@users.noreply.github.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "988f74311c26ea9917e84fbae608de226dba7e5f",
      "tree": "95c475b5966ba8fac1f241e604d437bfed19c693",
      "parents": [
        "4927110a434e75f8f22188a95b366cfd1fa17e07"
      ],
      "author": {
        "name": "Sean Dewar",
        "email": "seandewar@users.noreply.github.com",
        "time": "Wed Aug 16 14:17:36 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Jan 23 22:31:55 2024 +0100"
      },
      "message": "patch 9.1.0047: issues with temp curwin/buf while cmdwin is open\n\nProblem:  Things that temporarily change/restore curwin/buf (e.g:\n          win_execute, some autocmds) may break assumptions that\n          curwin/buf is the cmdwin when \"cmdwin_type !\u003d 0\", causing\n          issues.\n\nSolution: Expose the cmdwin\u0027s real win/buf and check that instead. Also\n          try to ensure these variables are NULL if \"cmdwin_type \u003d\u003d 0\",\n          allowing them to be used directly in most cases without\n          checking cmdwin_type. (Sean Dewar)\n\nAlternatively, we could ban win_execute in the cmdwin and audit all places that\ntemporarily change/restore curwin/buf, but I didn\u0027t notice any problems arising\nfrom allowing this (standard cmdwin restrictions still apply, so things that may\nactually break the cmdwin are still forbidden).\n\ncloses: #12819\n\nSigned-off-by: Sean Dewar \u003cseandewar@users.noreply.github.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "1cfb14aa972ccf3235ac67f07b7db1175b7c5384",
      "tree": "b746eda548993b9e0987d7c9c0c543ddddc5758f",
      "parents": [
        "765d82a657c5e42d5d7c88ae410e53f398c34c43"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Mon Jan 09 19:04:23 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 09 19:04:23 2023 +0000"
      },
      "message": "patch 9.0.1166: code is indented more than necessary\n\nProblem:    Code is indented more than necessary.\nSolution:   Use an early return where it makes sense. (Yegappan Lakshmanan,\n            closes #11792)\n"
    },
    {
      "commit": "dc4daa3a3915fba11ac87d27977240d9a5e0d47d",
      "tree": "7c28de30cdf3c6a351bd41795612be078f451c9f",
      "parents": [
        "a2942c74683be3f67c6044c2886dc6c237358b3d"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Mon Jan 02 16:54:53 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 02 16:54:53 2023 +0000"
      },
      "message": "patch 9.0.1132: code is indented more than needed\n\nProblem:    Code is indented more than needed.\nSolution:   Use an early return to reduce indentation. (Yegappan Lakshmanan,\n            closes #11769)\n"
    },
    {
      "commit": "e76062c078debed0df818f70e4db14ad7a7cb53a",
      "tree": "e43b3b076fdea909c460219e896237a8924ccb6b",
      "parents": [
        "74a694dbe20bb7dea4e06f474cf62e20f9c92f1d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Nov 28 18:51:43 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Nov 28 18:51:43 2022 +0000"
      },
      "message": "patch 9.0.0965: using one window for executing autocommands is insufficient\n\nProblem:    Using one window for executing autocommands is insufficient.\nSolution:   Use up to five windows for executing autocommands.\n"
    },
    {
      "commit": "88456cd3c49a3dd1fda17cf350daa9b8216b1aa6",
      "tree": "bd241035e3d905b74667faca9f75e48c9c9c310d",
      "parents": [
        "d13166e788fcaef59ec65c20b46ca4be16625669"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Nov 18 22:14:09 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Nov 18 22:14:09 2022 +0000"
      },
      "message": "patch 9.0.0904: various comment and indent flaws\n\nProblem:    Various comment and indent flaws.\nSolution:   Improve comments and indenting.\n"
    },
    {
      "commit": "873f41a0187e81a22aa4622fbf938de72a54abba",
      "tree": "e129244b90c0a84d6a1e4f4b027ccdc8c5af1f81",
      "parents": [
        "7a7db047dcb2336de5103e793345eb5a9d125900"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Tue Nov 01 11:44:43 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Nov 01 11:44:43 2022 +0000"
      },
      "message": "patch 9.0.0824: crash when using win_move_separator() in other tab page\n\nProblem:    Crash when using win_move_separator() in other tab page.\nSolution:   Check for valid window in current tab page.\n            (closes #11479, closes #11427)\n"
    },
    {
      "commit": "86e6717ace4f5e00eaeb84b59e3fc92bca548155",
      "tree": "58860abae059255fe3cc2c6966933c9f7975acfa",
      "parents": [
        "03d6e6f42b0deeb02d52c8a48c14abe431370c1c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Oct 31 12:24:12 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Oct 31 12:24:12 2022 +0000"
      },
      "message": "patch 9.0.0820: memory leak with empty shell command\n\nProblem:    Memory leak with empty shell command.\nSolution:   Free the empty string.\n"
    },
    {
      "commit": "7904fa420eb577274c4c3711295240100167d495",
      "tree": "a38ab30cb4c947c2ebba45cd7ed711ffd2e719a7",
      "parents": [
        "4ba5f1dab656103e8f4a4505452d1816b9e83c1e"
      ],
      "author": {
        "name": "Martin Tournoij",
        "email": "martin@arp242.net",
        "time": "Tue Oct 04 16:28:45 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Oct 04 16:28:45 2022 +0100"
      },
      "message": "patch 9.0.0657: too many #ifdefs\n\nProblem:    Too many #ifdefs.\nSolution:   Graduate the +cmdwin feature.  Now the tiny and small builds are\n            equal, drop the small build.  (Martin Tournoij, closes #11268)\n"
    },
    {
      "commit": "9ba6194d4cba60fec4ed10c33d2d4fbe6e38c696",
      "tree": "908ec5bf5c912a323b8d2412a1f4a68fd410bb03",
      "parents": [
        "b22653a98ed9252b88455c55e15c888c66c97927"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 31 11:25:06 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Aug 31 11:25:06 2022 +0100"
      },
      "message": "patch 9.0.0338: return value of list_append_list() not always checked\n\nProblem:    Return value of list_append_list() not always checked.\nSolution:   Check return value and handle failure.\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": "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": "93a1096fe48e12095544924adb267e3b8a16b221",
      "tree": "a6d426e87bc49d8fcee200052d17c83302f32629",
      "parents": [
        "44068e97dbd8fc8ebd93113e436a1e37a6bff52c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jun 16 11:42:09 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jun 16 11:42:09 2022 +0100"
      },
      "message": "patch 8.2.5107: some callers of rettv_list_alloc() check for not OK\n\nProblem:    Some callers of rettv_list_alloc() check for not OK. (Christ van\n            Willegen)\nSolution:   Use \"\u003d\u003d\" instead of \"!\u003d\" when checking the return value.\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": "4a392d244018fadda375a490f4f4b921023248b9",
      "tree": "3387e57ffd7618b49c3b88313b6c5e98d7a91cee",
      "parents": [
        "2c40707baa13a53cac4137ffb8b2ac67f50cea63"
      ],
      "author": {
        "name": "LemonBoy",
        "email": "thatlemon@gmail.com",
        "time": "Sat Apr 23 14:07:56 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Apr 23 14:07:56 2022 +0100"
      },
      "message": "patch 8.2.4814: possible to leave a popup window with win_gotoid()\n\nProblem:    Possible to leave a popup window with win_gotoid().\nSolution:   Give an error when trying to leave a popup window with\n            win_gotoid(). (closes #10253)\n"
    },
    {
      "commit": "8530b41fd3872c9a1349b083470d565677948518",
      "tree": "31596c39cee2f1852608083c2a0ce1a54e0f9b7c",
      "parents": [
        "da1050cd6fbb67cfde5b4a149d8d9db80bb4351c"
      ],
      "author": {
        "name": "LemonBoy",
        "email": "thatlemon@gmail.com",
        "time": "Wed Apr 20 19:00:36 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Apr 20 19:00:36 2022 +0100"
      },
      "message": "patch 8.2.4797: getwininfo() may get oudated values\n\nProblem:    getwininfo() may get oudated values.\nSolution:   Make sure w_botline is up-to-date. (closes #10226)\n"
    },
    {
      "commit": "3aca0916f0dba6114ae0f7d5458763a934fe7a02",
      "tree": "0cd7630487f8bf45e38e7a28495e1c86f16fe4b1",
      "parents": [
        "1693712f0263afb929ebca1159ceb17c1563ee3b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Apr 18 18:32:19 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Apr 18 18:32:19 2022 +0100"
      },
      "message": "patch 8.2.4785: Visual mode not stopped if win_gotoid() goes to other buffer\n\nProblem:    Visual mode not stopped early enough if win_gotoid() goes to\n            another buffer. (Sergey Vlasov)\nSolution:   Stop Visual mode before jumping to another buffer. (closes #10217)\n"
    },
    {
      "commit": "4829c1c9e9095a3303caec9af7d02f6547f6df0e",
      "tree": "2b3819cd2ea17b652ba29f3a8a6ea9945ec6c4bb",
      "parents": [
        "7a411a306f90339d8686e42ac16e1ae4fc7533c5"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Mon Apr 04 15:16:54 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Apr 04 15:16:54 2022 +0100"
      },
      "message": "patch 8.2.4683: verbose check with dict_find() to see if a key is present\n\nProblem:    Verbose check with dict_find() to see if a key is present.\nSolution:   Add dict_has_key(). (Yegappan Lakshmanan, closes #10074)\n"
    },
    {
      "commit": "d6f27c66cca32b93fcf8024b1bad1618946bbbea",
      "tree": "6744abbc86e5f33619c467cfbfe93c8380043cf2",
      "parents": [
        "19db9e6ba710ca32f0f5e0c2ca2ba69f8228b833"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 11 12:37:20 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 11 12:37:20 2022 +0000"
      },
      "message": "patch 8.2.4060: win_execute() slow on systems where getcwd()/chdir() is slow\n\nProblem:    win_execute() is slow on systems where getcwd() or chdir() is\n            slow. (Rick Howe)\nSolution:   Avoid using getcwd() and chdir() if no local directory is used and\n            \u0027acd\u0027 is not set. (closes #9504)\n"
    },
    {
      "commit": "ee63031b572eb7aea27be4c7e3dafba0daaf681b",
      "tree": "5fa4993e27fa0db931e599f40233404efb00490f",
      "parents": [
        "b06cfcf5a3b0248527fd70f9323272aa96db2f56"
      ],
      "author": {
        "name": "Daniel Steinberg",
        "email": "dstein64@users.noreply.github.com",
        "time": "Mon Jan 10 13:36:34 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 10 13:36:34 2022 +0000"
      },
      "message": "patch 8.2.4052: not easy to resize a window from a plugin\n\nProblem:    Not easy to resize a window from a plugin.\nSolution:   Add win_move_separator() and win_move_statusline() functions.\n            (Daniel Steinberg, closes #9486)\n"
    },
    {
      "commit": "04935fb17e5f0f66b82cf4546b9752d3d1fa650e",
      "tree": "d80c59d316f2f17a27a6541a8eb40d01cc49eca8",
      "parents": [
        "143367256836b0f69881dc0c65ff165ae091dbc5"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 08 16:19:22 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 08 16:19:22 2022 +0000"
      },
      "message": "patch 8.2.4043: using int for second argument of ga_init2()\n\nProblem:    Using int for second argument of ga_init2().\nSolution:   Remove unnessary type cast (int) when using sizeof().\n"
    },
    {
      "commit": "e664a327014f4aa8baf8549a34a4caab2f3116a3",
      "tree": "dc75ceac6fc4f9868e5d4f383bb3d660a194cf67",
      "parents": [
        "834d41853e12b9022f60b08c32480928c2a9e48f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 07 14:08:03 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 07 14:08:03 2022 +0000"
      },
      "message": "patch 8.2.4026: ml_get error with specific win_execute() command\n\nProblem:    ml_get error with specific win_execute() command. (Sean Dewar)\nSolution:   Check cursor and Visual area are OK.\n"
    },
    {
      "commit": "18f4740f043b353abe47b7a00131317052457686",
      "tree": "e5c469ce7c20a1801a9340ab2027455e256f1b55",
      "parents": [
        "a33737b6d80f5461c1c6c4c96b5bc4964a737927"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 06 13:24:51 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 06 13:24:51 2022 +0000"
      },
      "message": "patch 8.2.4018: ml_get error when win_execute redraws with Visual selection\n\nProblem:    ml_get error when win_execute redraws with Visual selection.\nSolution:   Disable Visual area temporarily. (closes #9479)\n"
    },
    {
      "commit": "3a846e6bca25bd3d0addcd9ed3bdd9a6774adbe5",
      "tree": "e345b4f42d545e735e2df2292589211ba52ff678",
      "parents": [
        "0699b040e6794d27ffdca241a4358d7c31876385"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 01 16:21:00 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 01 16:21:00 2022 +0000"
      },
      "message": "patch 8.2.3972: error messages are spread out\n\nProblem:    Error messages are spread out.\nSolution:   Move the last errors from globals.h to errors.h.\n"
    },
    {
      "commit": "436b5adc9770a2568209dd5ab1f98bd1afc91898",
      "tree": "623dc85ee9a396b16f939f44d38138f882edc229",
      "parents": [
        "f1474d801bbdb73406dd3d1f931f515f99e86dfa"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Dec 31 22:49:24 2021 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Dec 31 22:49:24 2021 +0000"
      },
      "message": "patch 8.2.3961: error messages are spread out\n\nProblem:    Error messages are spread out.\nSolution:   Move more errors to errors.h.\n"
    },
    {
      "commit": "92f246e4f9936f15471d5ee71b9afd5f3e6e0653",
      "tree": "afb042f7411bf3b503df3fe61a55f31e0408eed8",
      "parents": [
        "06f6095623cfcc72da08748c058d13b465652fd4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Dec 28 20:03:43 2021 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Dec 28 20:03:43 2021 +0000"
      },
      "message": "patch 8.2.3926: build failure without the \u0027autochdir\u0027 option\n\nProblem:    Build failure without the \u0027autochdir\u0027 option. (John Marriott)\nSolution:   Add #ifdefs.\n"
    },
    {
      "commit": "90c317f2246a7fb4bd4e3feb0778b53627bc9fad",
      "tree": "0f765598411fe6bab0519ddb7f1ee4daebb80c67",
      "parents": [
        "8b6256f6ec075cca40341e61ebc9f538b4902dd1"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Dec 28 13:15:05 2021 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Dec 28 13:15:05 2021 +0000"
      },
      "message": "patch 8.2.3920: restoring directory after using another window is inefficient\n\nProblem:    Restoring directory after using another window is inefficient.\nSolution:   Only restore the directory for win_execute().  Apply \u0027autochdir\u0027\n            only when needed.\n"
    },
    {
      "commit": "dab17a0689a2f31f69f428975f84b0c3c7ba3030",
      "tree": "6ab3b3865878fc6de89d4f2654d71b00c5fed833",
      "parents": [
        "39713d3acbfb6673775158a0171c7389c07f25df"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Dec 20 21:35:59 2021 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Dec 20 21:35:59 2021 +0000"
      },
      "message": "patch 8.2.3862: crash on exit with EXITFREE and using win_execute()\n\nProblem:    Crash on exit with EXITFREE and using win_execute().\nSolution:   Also save and restore tp_topframe. (issue #9374)\n"
    },
    {
      "commit": "cdf5fdb2948ecdd24c6a1e27ed33dfa847c2b3e4",
      "tree": "8e75b5a5e25c30f7bd097b8575692742907baee3",
      "parents": [
        "b8e642f7ace5382b4dacb7a8effd86f22b828cc1"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Nov 20 11:14:24 2021 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Nov 20 11:14:24 2021 +0000"
      },
      "message": "patch 8.2.3627: difficult to know where the text starts in a window\n\nProblem:    difficult to know where the text starts in a window. (Sergey\n            Vlasov)\nSolution:   Add the \"textoff\" entry in the result of getwininfo().\n            (closes #9163)\n"
    },
    {
      "commit": "7f13b24ab6aca808262e68680d8fe5f082670ebd",
      "tree": "a6fc626ad6115ec983c0d682489ccc1397741f87",
      "parents": [
        "6a950a6007f27d9d0ce32ef8dcaf5c9d0f1b5aab"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Nov 14 11:41:31 2021 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Nov 14 11:41:31 2021 +0000"
      },
      "message": "patch 8.2.3593: directory is wrong after executing \"lcd\" with win_execute()\n\nProblem:    Directory is wrong after executing \"lcd\" with win_execute().\nSolution:   Correct the directory when going back to the original window.\n            (closes #9132)\n"
    },
    {
      "commit": "28d8421bfb3327d7a5e81369977e8fc108b0229e",
      "tree": "520f67d2496e3b19eda8593e614d3e8c38cd13e0",
      "parents": [
        "890ee4e2be1dca0c07a91f836e26baead952ae7c"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sat Jul 31 12:43:23 2021 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jul 31 12:43:23 2021 +0200"
      },
      "message": "patch 8.2.3254: win_gettype() does not recognize a quickfix window\n\nProblem:    win_gettype() does not recognize a quickfix window.\nSolution:   Add \"quickfix\" and \"loclist\". (Yegappan Lakshmanan, closes #8676)\n"
    },
    {
      "commit": "4490ec4e839e45a2e6923c265c7e9e64c240b805",
      "tree": "3ef2dc127890ac6a644f38ae7932b7e70071544a",
      "parents": [
        "5d7c2df536c17db4a9c61e0760bdcf78d0db7330"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Tue Jul 27 22:00:44 2021 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jul 27 22:00:44 2021 +0200"
      },
      "message": "patch 8.2.3229: Vim9: runtime and compile time type checks are not the same\n\nProblem:    Vim9: runtime and compile time type checks are not the same.\nSolution:   Add more runtime type checks for builtin functions. (Yegappan\n            Lakshmanan, closes #8646)\n"
    },
    {
      "commit": "83494b4ac61898f687d6ef9dce4bad5802fb8e51",
      "tree": "36f06f4a70bd9a515527064cd8985029ab27c6a6",
      "parents": [
        "9bb0dad0d8283c86fddf5b950f4fbb6fb8f12741"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Tue Jul 20 17:51:51 2021 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jul 20 17:51:51 2021 +0200"
      },
      "message": "patch 8.2.3188: Vim9: argument types are not checked at compile time\n\nProblem:    Vim9: argument types are not checked at compile time.\nSolution:   Add several more type checks, also at runtime. (Yegappan\n            Lakshmanan, closes #8587)\n"
    },
    {
      "commit": "1a71d31bf34b0b2b08517903826004ec6fd440e5",
      "tree": "05f54a00199737fe81fdf49e9ea72c09dba483d9",
      "parents": [
        "c816a2c22667108fcd61f445de2c926f78ff9fa7"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Thu Jul 15 12:49:58 2021 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jul 15 12:49:58 2021 +0200"
      },
      "message": "patch 8.2.3162: Vim9: argument types are not checked at compile time\n\nProblem:    Vim9: argument types are not checked at compile time.\nSolution:   Add more type checks. (Yegappan Lakshmanan, closes #8560)\n"
    },
    {
      "commit": "108010aa4720ef023a8ac59004fc0f2bc11125af",
      "tree": "831741a42644a86ee0d74679361f74cc27861eaa",
      "parents": [
        "d887297ad0164516dd52cdab0308c3626337d124"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 27 22:03:33 2021 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Jun 27 22:03:33 2021 +0200"
      },
      "message": "patch 8.2.3069: error messages are spread out\n\nProblem:    Error messages are spread out.\nSolution:   Move some error messages to errors.h.  Use clearer names.\n"
    },
    {
      "commit": "a0c8aea479ca055ce43ba2984a9933f6c48e6161",
      "tree": "23a6911e9f4220af6e1ee0c9578e29dffe31b237",
      "parents": [
        "592f57f5fec1064cc276a0d7992cc543bed04fd5"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Mar 20 19:55:35 2021 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Mar 20 19:55:35 2021 +0100"
      },
      "message": "patch 8.2.2631: commands from winrestcmd() do not always work properly\n\nProblem:    Commands from winrestcmd() do not always work properly. (Leonid V.\n            Fedorenchik)\nSolution:   Repeat the size commands twice. (closes #7988)\n"
    },
    {
      "commit": "37487e16da7877129edee8d11b9b7f5c8df312c6",
      "tree": "0363a52316b5f9bfc366235c6006324ac57599b8",
      "parents": [
        "a47e05f04a5a5c0369c949157c24d09cbe64ad6a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 12 22:08:53 2021 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 12 22:08:53 2021 +0100"
      },
      "message": "patch 8.2.2340: win_execute() unexpectedly returns number zero when failing\n\nProblem:    win_execute() unexpectedly returns number zero when failing.\nSolution:   Return an empty string. (closes #7665)\n"
    },
    {
      "commit": "285b15fce164ade8b1537b884cc15aebaa60e9ef",
      "tree": "ed9843d38e4e9ed34de6f6128d4ef28111d1bbe0",
      "parents": [
        "89015a675990bd7d70e041c5d890edb803b5c6b7"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Dec 29 20:25:19 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Dec 29 20:25:19 2020 +0100"
      },
      "message": "patch 8.2.2245: Vim9: return value of winrestcmd() cannot be executed\n\nProblem:    Vim9: return value of winrestcmd() cannot be executed.\nSolution:   Put colons before each range. (closes #7571)\n"
    },
    {
      "commit": "99ca9c4868bb1669706b9e3de9a9218bd11cc459",
      "tree": "5ee65a27548647c2ef50b21435433a6bd7299d9f",
      "parents": [
        "4f73b8e9cc83f647b34002554a8bdf9abec0a82f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Sep 22 21:55:41 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Sep 22 21:55:41 2020 +0200"
      },
      "message": "patch 8.2.1727: a popup created with \"cursorline\" will ignore \"firstline\"\n\nProblem:    A popup created with \"cursorline\" will ignore \"firstline\".\nSolution:   When both \"cursorline\" and \"firstline\" are present put the cursor\n            on \"firstline\". (closes #7000)  Add the \"winid\" argument to\n            getcurpos().\n"
    },
    {
      "commit": "4b9bd692bdffba03fda04f9979e25431b53e416b",
      "tree": "d2b87ebefd3df626987eb1cc5ef718423cbe86c4",
      "parents": [
        "fcb6d7082d563acc33866b3d3a659c32ad19a9e1"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 05 21:57:53 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 05 21:57:53 2020 +0200"
      },
      "message": "patch 8.2.1617: Vim9: cannot pass \"true\" to win_splitmove()\n\nProblem:    Vim9: cannot pass \"true\" to win_splitmove().\nSolution:   Use dict_get_bool(). (closes #6862)  Alphabetize test functions.\n"
    },
    {
      "commit": "1f42f5a675fdab9ce5cdafbecea59c45e81f7ff8",
      "tree": "40d1a9caf029fa2c88a94c7e4169da987cfc60e6",
      "parents": [
        "a60053b8f4cc7e135ba9496a8f4855d26aee09e7"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 03 18:52:24 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Sep 03 18:52:24 2020 +0200"
      },
      "message": "patch 8.2.1581: using line() for global popup window doesn\u0027t work\n\nProblem:    Using line() for global popup window doesn\u0027t work.\nSolution:   Set tabpage to \"curtab\". (closes #6847)\n"
    },
    {
      "commit": "62a232506d06f6d1b3b7271801c907d6294dfe84",
      "tree": "d95d049e9676ef5b8a63ca9096401ca52dc8b90d",
      "parents": [
        "730b24833952f0f4a9a17b7815b0d9f87c609eb8"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 09 14:04:42 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 09 14:04:42 2020 +0200"
      },
      "message": "patch 8.2.1401: cannot jump to the last used tabpage\n\nProblem:    Cannot jump to the last used tabpage.\nSolution:   Add g\u003cTab\u003e and tabpagnr(\u0027#\u0027). (Yegappan Lakshmanan, closes #6661,\n            neovim #11626)\n"
    },
    {
      "commit": "40a019f157c549dcdc17c33f082975485567bb06",
      "tree": "a69ca826b3d6eb9757a8c3006e5b7c526c9242c7",
      "parents": [
        "e17f8817a1713a1ef20257c777a483b7ab57a841"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jun 17 21:41:35 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jun 17 21:41:35 2020 +0200"
      },
      "message": "patch 8.2.0996: using \"aucmdwin\" in win_gettype() is not ideal\n\nProblem:    Using \"aucmdwin\" in win_gettype() is not ideal.\nSolution:   Rename to \"autocmd\".\n"
    },
    {
      "commit": "0fe937fd8616fcd24b1b1ef2ab9f1657615dd22c",
      "tree": "ea589a16e7a487517083f269b4500d6e4cb5d153",
      "parents": [
        "a1bc6f12936a9f621238b940d5c6e97837809447"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jun 16 22:42:04 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jun 16 22:42:04 2020 +0200"
      },
      "message": "patch 8.2.0991: cannot get window type for autocmd and preview window\n\nProblem:    Cannot get window type for autocmd and preview window.\nSolution:   Add types to win_gettype(). (Yegappan Lakshmanan, closes #6277)\n"
    },
    {
      "commit": "00d253e2b2f435a5386582c3f857008e7ac355c2",
      "tree": "71bbea4e4c6efa593a85266e445d82377a65f454",
      "parents": [
        "ee4e0c1e9a81cb5d96e0060203a9033c2f28588e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Apr 06 22:13:01 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Apr 06 22:13:01 2020 +0200"
      },
      "message": "patch 8.2.0523: loops are repeated\n\nProblem:    Loops are repeated.\nSolution:   Use FOR_ALL_ macros. (Yegappan Lakshmanan, closes #5882)\n"
    },
    {
      "commit": "aeea72151c31d686bcbb7b06d895006d7363585c",
      "tree": "500d487503a1a82cecc8f2a3e9bf89b50638fe5a",
      "parents": [
        "f10806b25090879fdc1a86cc0da2f4f34fd21921"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Apr 02 18:50:46 2020 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Apr 02 18:50:46 2020 +0200"
      },
      "message": "patch 8.2.0500: using the same loop in many places\n\nProblem:    Using the same loop in many places.\nSolution:   Define more FOR_ALL macros. (Yegappan Lakshmanan, closes #5339)\n"
    },
    {
      "commit": "0f1563ffee4397f5b379517c41b7c9a977fd2e22",
      "tree": "1a7d2bd202acb3f9f955d9283a6da2c90591da20",
      "parents": [
        "9645e2d9fc8a591f1db30383caccf71d40e0810c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Mar 20 21:15:51 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Mar 20 21:15:51 2020 +0100"
      },
      "message": "patch 8.2.0422: crash when passing popup window to win_splitmove()\n\nProblem:    Crash when passing popup window to win_splitmove(). (john Devin)\nSolution:   Disallow moving a popup window. (closes #5816)\n"
    },
    {
      "commit": "00f3b4e007af07870168bf044cecc9d544483953",
      "tree": "debd23a51f44608cb926dd1616babd1934be10b5",
      "parents": [
        "0a8fed6231c84e4e1b3a7dd6c0d95d3f98207fe0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Feb 14 14:32:22 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Feb 14 14:32:22 2020 +0100"
      },
      "message": "patch 8.2.0257: cannot recognize a terminal in a popup window\n\nProblem:    Cannot recognize a terminal in a popup window.\nSolution:   Add the win_gettype() function.\n"
    },
    {
      "commit": "631ebc48149a0446dd9ffbddd3e2822252085885",
      "tree": "d98f3e6374369340184b20d42274c99951cb4aef",
      "parents": [
        "e20b9ececa37a81c0340a78f61e57fa1bf46b06d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Feb 03 22:15:26 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Feb 03 22:15:26 2020 +0100"
      },
      "message": "patch 8.2.0204: crash when using winnr(\u0027j\u0027) in a popup window\n\nProblem:    Crash when using winnr(\u0027j\u0027) in a popup window.\nSolution:   Do not search for neighbors in a popup window. (closes #5568)\n"
    },
    {
      "commit": "ee93b737aaa7bf65edc7281f429dd89fcf657a6f",
      "tree": "9d9019b603e4d2e09baf7e3816c771dd66d70b4a",
      "parents": [
        "c10b521628f2b073fa231defa26f23937c91724d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 14 19:05:39 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Jan 14 19:05:39 2020 +0100"
      },
      "message": "patch 8.2.0117: crash when using gettabwinvar() with invalid arguments\n\nProblem:    Crash when using gettabwinvar() with invalid arguments. (Yilin\n            Yang)\nSolution:   Use \"curtab\" if \"tp\" is NULL. (closes #5475)\n"
    },
    {
      "commit": "7b94e77132eabdf0e43abca57e2ffeb961545174",
      "tree": "61c26382aba1bb738c2a88a08345b6bcd009a097",
      "parents": [
        "a1353b5352f0797fc651a0dd363876f1c2fa60c5"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 06 21:03:24 2020 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jan 06 21:03:24 2020 +0100"
      },
      "message": "patch 8.2.0093: win_splitmove() can make Vim hang\n\nProblem:    win_splitmove() can make Vim hang.\nSolution:   Check windows exists in the current tab page. (closes #5444)\n"
    },
    {
      "commit": "05ad5ff0ab34ed9a5296dedd420ca81698b8ce22",
      "tree": "7354d352e37ab28988ce26e4f88efd9a9b9f71ec",
      "parents": [
        "0c5c3faef2d54151a8c144539e3e5a3350fb18c7"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Nov 30 22:48:27 2019 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Nov 30 22:48:27 2019 +0100"
      },
      "message": "patch 8.1.2371: FEAT_TEXT_PROP is a confusing name\n\nProblem:    FEAT_TEXT_PROP is a confusing name.\nSolution:   Use FEAT_PROP_POPUP. (Naruhiko Nishino, closes #5291)\n"
    },
    {
      "commit": "345f28df5482cd35f5fa74b06443376379f113b0",
      "tree": "e1ad21b604881812680f765790e06304c44835aa",
      "parents": [
        "c3e555b22f24f93aabd31943c35a9228abb6ecb6"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Oct 08 22:20:35 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Oct 08 22:20:35 2019 +0200"
      },
      "message": "patch 8.1.2124: ruler is not updated if win_execute() moves cursor\n\nProblem:    Ruler is not updated if win_execute() moves cursor.\nSolution:   Update the status line. (closes #5022)\n"
    },
    {
      "commit": "a046b37c22bcabdea5f0fd6d21ca4bd0aa4c768e",
      "tree": "3ec383d5a61f2d46b4a354e9ecbc0aa065663e03",
      "parents": [
        "1ac90b4fa63414d56750559506a3e076df6923b0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Sep 15 17:26:07 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Sep 15 17:26:07 2019 +0200"
      },
      "message": "patch 8.1.2037: can call win_gotoid() in cmdline window\n\nProblem:    Can call win_gotoid() in cmdline window.\nSolution:   Disallow switching windows. (Yasuhiro Matsumoto, closes #4940)\n"
    },
    {
      "commit": "d20dcb3d011da6111153109f6e46fbd5c7fe9fb6",
      "tree": "177b708d63b5bdace192c344b5a431298a575df2",
      "parents": [
        "410e98a70bc00ea4bed51e55a8fe20e56a72c087"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Sep 10 21:22:58 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Sep 10 21:22:58 2019 +0200"
      },
      "message": "patch 8.1.2020: it is not easy to change the window layout\n\nProblem:    It is not easy to change the window layout.\nSolution:   Add win_splitmove(). (Andy Massimino, closes #4561)\n"
    },
    {
      "commit": "261f346f8154c0ec7094a4a211c653c74e9f7c2e",
      "tree": "ae8f30b11e3a637d1c69bac234d0edd721d4a542",
      "parents": [
        "a3a124627d2eb9d36e3dc3757429d87e041f8c0b"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 07 15:45:32 2019 +0200"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Sep 07 15:45:32 2019 +0200"
      },
      "message": "patch 8.1.2001: some source files are too big\n\nProblem:    Some source files are too big.\nSolution:   Move buffer and window related functions to evalbuffer.c and\n            evalwindow.c. (Yegappan Lakshmanan, closes #4898)\n"
    }
  ]
}
