)]}'
{
  "log": [
    {
      "commit": "5bf6c2117fcef85fcf046c098dd3eb72a0147859",
      "tree": "32804af25b55ac2859188f9bc0771a38d078862c",
      "parents": [
        "86032702932995db74fed265ba99ae0c823cb75d"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Sun Mar 31 18:41:27 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Mar 31 18:41:27 2024 +0200"
      },
      "message": "patch 9.1.0231: Filetype may be undetected when SwapExists sets ft in other buf\n\nProblem:  Filetype may be undetected when a SwapExists autocommand sets\n          filetype in another buffer.\nSolution: Make filetype detection state buffer-specific.  Also fix a\n          similar problem for \u0027modified\u0027 (zeertzjq).\n\ncloses: #14344\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "94b7c3233ef534acc669b3083ed1fe59cf3a090b",
      "tree": "b7d882e3b2cf90034e730023c01214b7b17294af",
      "parents": [
        "5cac1a9bee0798d70a7fd80363a1f697759638e8"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Tue Mar 12 21:50:32 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Mar 12 21:50:32 2024 +0100"
      },
      "message": "patch 9.1.0172: More code can use ml_get_buf_len() instead of STRLEN()\n\nProblem:  More code can use ml_get_buf_len() instead of STRLEN().\nSolution: Change more STRLEN() calls to ml_get_buf_len().  Also do not\n          set ml_line_textlen in ml_replace_len() if \"has_props\" is set,\n          because \"len_arg\" also includes the size of text properties in\n          that case. (zeertzjq)\n\ncloses: #14183\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "215703563757a4464907ead6fb9edaeb7f430bea",
      "tree": "380d7492e2fc174d13a073c6fd4e8dae6714030f",
      "parents": [
        "353faa373eb132987a1985cf3abe18c006f8cdf0"
      ],
      "author": {
        "name": "Colin Kennedy",
        "email": "colinvfx@gmail.com",
        "time": "Sun Mar 03 16:16:47 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Mar 03 16:16:47 2024 +0100"
      },
      "message": "patch 9.1.0147: Cannot keep a buffer focused in a window\n\nProblem:  Cannot keep a buffer focused in a window\n          (Amit Levy)\nSolution: Add the \u0027winfixbuf\u0027 window-local option\n          (Colin Kennedy)\n\nfixes:  #6445\ncloses: #13903\n\nSigned-off-by: Colin Kennedy \u003ccolinvfx@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "55f8bba73be5f9c3a5a4d0d6c5f56e65f2c7d3fc",
      "tree": "a793a9f5c73a9e252ec61a23a0671a281c128958",
      "parents": [
        "0fdd18596f504774bc5993d029d68eecea827439"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Feb 28 23:32:00 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Feb 28 23:32:00 2024 +0100"
      },
      "message": "patch 9.1.0143: [security]: autocmd causes use-after-free in set_curbuf()\n\nProblem:  [security]: autocmd cause use-after-free in set_curbuf()\n          (kawarimidoll)\nSolution: check side-effect of BufLeave autocommand, when the number\n          of windows changed, close windows containing buffers that will\n          be wiped, if curbuf changed unexpectedly make sure b_nwindows\n          is decremented otherwise it cannot be wiped\n\nset_curbuf() already makes some efforts to ensure the BufLeave\nautocommands do not cause issues.  However there are still 2 issues\nthat are not taken care of:\n\n1) If a BufLeave autocommand opens a new window containing the same\nbuffer as that is going got be closed in close_buffer() a bit later,\nwe suddenly have another window open, containing a free\u0027d buffer.  So we\nmust check if the number of windows changed and if it does (and the\ncurrent buffer is going to be wiped (according to the \u0027bufhidden\u0027\nsetting), let\u0027s immediately close all windows containing the current\nbuffer using close_windows()\n\n2) If a BufLeave autocommand changes our current buffer (displays it in\nthe current window), buf-\u003eb_nwindow will be incremented. As part of\nset_curbuf() we will however enter another buffer soon, which means, the\nnewly created curbuf will have b_nwindows still have set, even so the\nbuffer is no longer displayed in a window. This causes later problems,\nbecause it will no longer be possible to wipe such a buffer. So just\nbefore entering the final buffer, check if the curbuf changed when\ncalling the BufLeave autocommand and if it does (and curbuf is still\nvalid), decrement curbuf-\u003eb_nwindows.\n\nBoth issues can be verified using the provided test (however the second\nissue only because such an impacted buffer won\u0027t be wiped, causing\nfuther issues in later tests).\n\nfixes: #13839\ncloses: #14104\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "0dc0bff000fd804c6b0778ccc4554a4e4c82c8c9",
      "tree": "f9f37a3db2e9f6609366e59279b42b86ba98006b",
      "parents": [
        "abf7030a5c22257f066fa9c4061ad150d5a82577"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Feb 24 14:12:13 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Feb 24 14:17:33 2024 +0100"
      },
      "message": "patch 9.1.0131: buffer-completion may not always find all matches\n\nProblem:  buffer-completion code too complicated and does not always\n          find all matches (irisjae)\nSolution: do not try to anchor pattern to beginning of line or\n          directory-separator, always return all matches\n\nNote: we are considering the non-fuzzy buffer-matching here.\n\nCurrently, the buffer-completion code makes 2 attempts to match a\npattern against the list of available patterns. First try is to match\nthe pattern and anchor it to either the beginning of the file name or\nat a directory-separator (// or \\\\).\n\nWhen a match is found, Vim returns the matching buffers and does not try\nto find a match anywhere within a buffer name. So if you have opened two\nbuffers like /tmp/Foobar.c and /tmp/MyFoobar.c using `:b Foo` will only\ncomplete to the first filename, but not the second (the same happens\nwith `getcompletion(\u0027Foo\u0027, \u0027buffer\u0027)`).\n\nIt may make sense, that completion priorities buffer names at directory\nboundaries, but it inconsistent, may cause confusion why a certain\nbuffer name is not completed when typing `:b Foo\u003cC-D\u003e` which returns\nonly a single file name and then pressing Enter (to switch to that\nbuffer), Vim will error with \u0027E93: More than one match for Foo\u0027).\nSimilar things may happen when wiping the /tmp/Foobar.c pattern and\nafterwards the completion starts completing other buffers.\n\nSo let\u0027s simplify the code and always match the pattern anywhere in the\nbuffer name, do not try to favor matches at directory boundaries. This\nis also simplifies the code a bit, we do not need to run over the list\nof buffers several times, but only twice.\n\nfixes #13894\ncloses: #14082\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "9071ed8107244e0c56a16b77d1c28e975cb21dd2",
      "tree": "81dbf77196eba6af7b99de1785d7e2b5b4dfda68",
      "parents": [
        "f0d3d4a42657dca996e790aa829de3c6be7fdb63"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Feb 15 20:17:37 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Feb 15 20:17:37 2024 +0100"
      },
      "message": "patch 9.1.0113: duplicate code when cleaning undo stack\n\nProblem:  duplicate code when cleaning undo stack\nSolution: refactor undo cleanup into a single public function\n\nrelated: #13928\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "1fb41032060df09ca2640dc49541f11062f6dfaa",
      "tree": "47869301c90c7b3e0bf016b4c29d4b857ac0e74f",
      "parents": [
        "43b395ec2e7d24a067d7cb00109818b64da144a5"
      ],
      "author": {
        "name": "Sean Dewar",
        "email": "seandewar@users.noreply.github.com",
        "time": "Wed Aug 16 17:15:05 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Jan 23 22:37:39 2024 +0100"
      },
      "message": "patch 9.1.0049: Make \"[Command Line]\" a special buffer name\n\nProblem:  E95 is possible if a buffer called \"[Command Line]\" already\n          exists when opening the cmdwin. This can also happen if the\n          cmdwin\u0027s buffer could not be deleted when closing.\n\nSolution: Un-name the cmdwin buffer, and give it a special name instead,\n          similar to what\u0027s done for quickfix buffers and for unnamed\n          prompt and scratch buffers. As a result, BufFilePre/Post are\n          no longer fired when opening the cmdwin. Add a \"command\" key\n          to the dictionary returned by getbufinfo() to differentiate\n          the cmdwin buffer instead. (Sean Dewar)\n\nNOTE: This is technically a breaking change... maybe this needs a different\nsolution? (Or maybe this issue can be ignored...)\n\nA GitHub search reveals some plugins expect the old behaviour. However, many of\nthose plugins also do not seem to account for the string being translated, so\nthey are subtly broken anyway (not withstanding the fact that you can call any\nold buffer \"[Command Line]\" too...)\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": "184f71cc6868a240dc872ed2852542bbc1d43e28",
      "tree": "314948c5cf288feb24305b329d58cbd750157560",
      "parents": [
        "4d8cb683b1543ec02563cdd2d068ce5f82f90539"
      ],
      "author": {
        "name": "Keith Thompson",
        "email": "Keith.S.Thompson@gmail.com",
        "time": "Thu Jan 04 21:19:04 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Jan 04 21:19:04 2024 +0100"
      },
      "message": "patch 9.1.0006: is*() and to*() function may be unsafe\n\nProblem:  is*() and to*() function may be unsafe\nSolution: Add SAFE_* macros and start using those instead\n          (Keith Thompson)\n\nUse SAFE_() macros for is*() and to*() functions\n\nThe standard is*() and to*() functions declared in \u003cctype.h\u003e have\nundefined behavior for negative arguments other than EOF.  If plain char\nis signed, passing an unchecked value from argv for from user input\nto one of these functions has undefined behavior.\n\nSolution: Add SAFE_*() macros that cast the argument to unsigned char.\n\nMost implementations behave sanely for negative arguments, and most\ncharacter values in practice are non-negative, but it\u0027s still best\nto avoid undefined behavior.\n\nThe change from #13347 has been omitted, as this has already been\nseparately fixed in commit ac709e2fc0db6d31abb7da96f743c40956b60c3a\n(v9.0.2054)\n\nfixes: #13332\ncloses: #13347\n\nSigned-off-by: Keith Thompson \u003cKeith.S.Thompson@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "41e6f7d6ba67b61d911f9b1d76325cd79224753d",
      "tree": "d2b6fcf5f7daa4712502d693635bcc3125bc38ca",
      "parents": [
        "54844857fd6933fa4f6678e47610c4b9c9f7a091"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Oct 11 21:08:13 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Oct 11 21:09:53 2023 +0200"
      },
      "message": "patch 9.0.2010: [security] use-after-free from buf_contents_changed()\n\nProblem:  [security] use-after-free from buf_contents_changed()\nSolution: block autocommands\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "6e60cf444a8839ca1694319bf9a82e7b097e5c4d",
      "tree": "0ae96b7f0834c9e82cd174dda7683eb209dd46e3",
      "parents": [
        "ee9166eb3b41846661a39b662dc7ebe8b5e15139"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Sep 03 21:43:46 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Sep 03 21:43:46 2023 +0200"
      },
      "message": "patch 9.0.1859: heap-use-after-free in bt_normal()\n\nProblem:  heap-use-after-free in bt_normal()\nSolution: check that buffer is still valid\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "d392a74c5a8af8271a33a20d37ae1a8ea422cb4b",
      "tree": "c8b7a49ba8eef130f6a3af8e66f3d821f58c63b3",
      "parents": [
        "e7d9ca2b3bf99b0b759be8952e02c77110a354c1"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Sat Jul 01 20:24:40 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jul 01 20:24:40 2023 +0100"
      },
      "message": "patch 9.0.1672: tabline highlight wrong after truncated double width label\n\nProblem:    Tabline highlight wrong after truncated double width label.\nSolution:   Fill up half a double width character later. (closes #12614)\n"
    },
    {
      "commit": "3a2a60ce4a8e73594bca16814672fcc243d093ac",
      "tree": "4a105c50b7f3a3e219e49bd73f5f4730d90bcefd",
      "parents": [
        "a40c0bcc83c32da02869f59b10538d6327df61c5"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 27 18:02:55 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 27 18:02:55 2023 +0100"
      },
      "message": "patch 9.0.1583: get E304 when using \u0027cryptmethod\u0027 \"xchacha20v2\"\n\nProblem:    Get E304 when using \u0027cryptmethod\u0027 \"xchacha20v2\". (Steve Mynott)\nSolution:   Add 4th crypt method to block zero ID check.  Avoid syncing a swap\n            file before reading the file. (closes #12433)\n"
    },
    {
      "commit": "a8490a4952c320f234ae4528d4a1e812a27f3a0a",
      "tree": "93460fc0c676f2c6c801b724dfea551ff5eac0e5",
      "parents": [
        "167fb6d39b23e0967dabc523ce190e7447114e69"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 23 18:00:58 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue May 23 18:00:58 2023 +0100"
      },
      "message": "patch 9.0.1575: \"file N of M\" message is not translated\n\nProblem:    \"file N of M\" message is not translated.\nSolution:   Make argument count message translatable. (close #12429)\n"
    },
    {
      "commit": "79cdf026f1b8a16298ee73be497c4bd5f3458cde",
      "tree": "2f2381a497126df7030b96450b1b1bfd4257c487",
      "parents": [
        "bf63011a52a3cc32609ae5945665875062a5ae50"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 20 14:07:00 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 20 14:07:00 2023 +0100"
      },
      "message": "patch 9.0.1571: RedrawingDisabled not used consistently\n\nProblem:    RedrawingDisabled not used consistently.\nSolution:   Avoid RedrawingDisabled going negative.  Set RedrawingDisabled in\n            win_split_ins(). (closes #11961)\n"
    },
    {
      "commit": "e42c27d9e8a18e3786f13f17663914cdd0f63f9e",
      "tree": "c0dc0141813003df4a767dfd90863ff6870be3c3",
      "parents": [
        "b6a19594b29a7d4f33a1f4324a0579df61f48d06"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun May 14 17:24:22 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 14 17:24:22 2023 +0100"
      },
      "message": "patch 9.0.1554: code for handling \u0027switchbuf\u0027 is repeated\n\nProblem:    Code for handling \u0027switchbuf\u0027 is repeated.\nSolution:   Add a function to handle \u0027switchbuf\u0027. (Yegappan Lakshmanan,\n            closes #12397)\n"
    },
    {
      "commit": "54be5fb382d2bf25fd1b17ddab8b21f599019b81",
      "tree": "2f8247870b818760f7dac718281ed4067090baf5",
      "parents": [
        "8667a5678f983ba899825b810ab849952d49bcb8"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Fri May 12 17:49:13 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri May 12 17:49:13 2023 +0100"
      },
      "message": "patch 9.0.1546: some commands for opening a file don\u0027t use \u0027switchbuf\u0027\n\nProblem:    Some commands for opening a file don\u0027t use \u0027switchbuf\u0027.\nSolution:   Use \u0027switchbuf\u0027 for more commands. (Yegappan Lakshmanan,\n            closes #12383, closes #12381)\n"
    },
    {
      "commit": "971cd2b8bc3e3a7faa886162cd7568938c627882",
      "tree": "d80f1e3fe399359e08deede1f8274d1438677f36",
      "parents": [
        "0b933c331d72f4a378fc30d96a7d16eb1aedd1d4"
      ],
      "author": {
        "name": "Emir SARI",
        "email": "emir_sari@icloud.com",
        "time": "Sat Apr 29 12:09:53 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Apr 29 12:09:53 2023 +0100"
      },
      "message": "patch 9.0.1497: the ruler percentage can\u0027t be localized\n\nProblem:    The ruler percentage can\u0027t be localized.\nSolution:   Use a string that can be translated. (Emir Sari, closes #12311)\n"
    },
    {
      "commit": "aae583441bcdbb0bfef3b8a1d193e04ae09ca95d",
      "tree": "e3cf7c27fc02e1232fe5ab8f8da32581e9782718",
      "parents": [
        "dcd40cfca0fe0e65d405ce9711745a8ec846c30c"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Apr 23 17:50:22 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Apr 23 17:50:22 2023 +0100"
      },
      "message": "patch 9.0.1481: decrypting with libsodium may fail if the library changes\n\nProblem:    Decrypting with libsodium may fail if the library changes.\nSolution:   Add parameters used to the encrypted file header. (Christian\n            Brabandt, closes #12279)\n"
    },
    {
      "commit": "7e5fe38efc105721400048a2ffdeddbe1b9c0650",
      "tree": "670353de5a42ddc725f9c109f80b05680a03d0e8",
      "parents": [
        "b49dfd0cf296623af2d756cefc3e73b5b307734e"
      ],
      "author": {
        "name": "ichizok",
        "email": "gclient.gaap@gmail.com",
        "time": "Sat Apr 15 13:17:50 2023 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Apr 15 13:17:50 2023 +0100"
      },
      "message": "patch 9.0.1454: code indenting is confused by macros\n\nProblem:    Code indenting is confused by macros.\nSolution:   Put semicolon after the macros instead of inside. (Ozaki Kiichi,\n            closes #12257)\n"
    },
    {
      "commit": "960dcbd098c761dd623bec9492d5391ff6e8dceb",
      "tree": "df2abb6d73be0c31de679fa00251e133a0e99ab6",
      "parents": [
        "14113fdf9cb3d588c0d1c3a210246b981cf5aad3"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Tue Mar 07 17:45:11 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Mar 07 17:45:11 2023 +0000"
      },
      "message": "patch 9.0.1391: \"clear\" macros are not always used\n\nProblem:    \"clear\" macros are not always used.\nSolution:   Use ALLOC_ONE, VIM_CLEAR, CLEAR_POINTER and CLEAR_FIELD in more\n            places. (Yegappan Lakshmanan, closes #12104)\n"
    },
    {
      "commit": "e1121b139480f53d1b06f84f3e4574048108fa0b",
      "tree": "7c95e52cbc3b8972a7b5677fbfd53c630c6538ad",
      "parents": [
        "af93691b53f38784efce0b93fe7644c44a7e382e"
      ],
      "author": {
        "name": "Pavel Mayorov",
        "email": "pmayorov@cloudlinux.com",
        "time": "Mon Feb 20 14:35:20 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Feb 20 14:35:20 2023 +0000"
      },
      "message": "patch 9.0.1331: illegal memory access when using :ball in Visual mode\n\nProblem:    Illegal memory access when using :ball in Visual mode.\nSolution:   Stop Visual mode when using :ball. (Pavel Mayorov, closes #11923)\n"
    },
    {
      "commit": "af93691b53f38784efce0b93fe7644c44a7e382e",
      "tree": "74e8f31e222aed907e80c4dc5b0bded5f7400537",
      "parents": [
        "997b8a015cd39141866e953651d55c705275cbd6"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Mon Feb 20 12:16:39 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Feb 20 12:16:39 2023 +0000"
      },
      "message": "patch 9.0.1330: handling new value of an option has a long \"else if\" chain\n\nProblem:    Handling new value of an option has a long \"else if\" chain.\nSolution:   Use a function pointer. (Yegappan Lakshmanan, closes #12015)\n"
    },
    {
      "commit": "1d6539cf36a7b6d1afe76fb6316fe662f543bf60",
      "tree": "b6e26e7756faf7847863510790cd4c2138635c72",
      "parents": [
        "1a6476428f63e9fa0c2cbea296e475e60363af11"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 14 17:41:20 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 14 17:41:20 2023 +0000"
      },
      "message": "patch 9.0.1309: scrolling two lines with even line count and \u0027scrolloff\u0027 set\n\nProblem:    Scrolling two lines with even line count and \u0027scrolloff\u0027 set.\nSolution:   Adjust how the topline is computed. (closes #10545)\n"
    },
    {
      "commit": "3ec78f973fdaec2cea8e036ed38037b2fe40670b",
      "tree": "1c2f85b5d0b762bbd0e8f943017e0a2e1c240aae",
      "parents": [
        "412e0e4ed903682f352d8ea58ded480930cc664f"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sat Feb 11 11:15:25 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 11 11:15:25 2023 +0000"
      },
      "message": "patch 9.0.1300: \u0027statusline\u0027 only supports one \"%\u003d\" item\n\nProblem:    \u0027statusline\u0027 only supports one \"%\u003d\" item.\nSolution:   Add support for multiple \"%\u003d\" items. (TJ DeVries, Yegappan\n            Lakshmanan, closes #11970, closes #11965)\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": "7b17eb4b063a234376c1ec909ee293e42cff290c",
      "tree": "f994c89ecf171083a5d8e5a718a21626a7ba5e08",
      "parents": [
        "f057171d8b562c72334fd7c15c89ff787358ce3a"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 04 14:31:49 2023 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 04 14:31:49 2023 +0000"
      },
      "message": "patch 9.0.1143: invalid memory access with bad \u0027statusline\u0027 value\n\nProblem:    Invalid memory access with bad \u0027statusline\u0027 value.\nSolution:   Avoid going over the NUL at the end.\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": "ba936f6f4e85cc1408bc3967f9fd7665d948909b",
      "tree": "5c3d87dd658a5c5de01db33af82103dbb96714cc",
      "parents": [
        "3d473ee1a6aed7cb9eae458bbd8d42dffdc754f9"
      ],
      "author": {
        "name": "Luuk van Baal",
        "email": "luukvbaal@gmail.com",
        "time": "Thu Dec 15 13:15:39 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 15 13:15:39 2022 +0000"
      },
      "message": "patch 9.0.1061: cannot display \u0027showcmd\u0027 somewhere else\n\nProblem:    Cannot display \u0027showcmd\u0027 somewhere else.\nSolution:   Add the \u0027showcmdloc\u0027 option. (Luuk van Baal, closes #11684)\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": "ef2c325f5e3c437b722bb96bf369ba2a5c541163",
      "tree": "dc85f0dc98dce1937b459d8d3882473f25db03c3",
      "parents": [
        "c1cf4c91072f91b6b8dd636627a4ddf6f4b21f16"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Nov 25 16:31:51 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Nov 25 16:31:51 2022 +0000"
      },
      "message": "patch 9.0.0949: crash when unletting a variable while listing variables\n\nProblem:    Crash when unletting a variable while listing variables.\nSolution:   Disallow changing a hashtable while going over the entries.\n            (closes #11435)\n"
    },
    {
      "commit": "7b224fdf4a29f115567d4fc8629c1cef92d8444a",
      "tree": "5f610db7cd966ed44e3dd29dd41223f3d0176403",
      "parents": [
        "1756f4b21837e8596241ecd668f4abbbab4bc7e5"
      ],
      "author": {
        "name": "Luuk van Baal",
        "email": "luukvbaal@gmail.com",
        "time": "Mon Nov 07 12:16:51 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Nov 07 12:16:51 2022 +0000"
      },
      "message": "patch 9.0.0844: handling \u0027statusline\u0027 errors is spread out\n\nProblem:    Handling \u0027statusline\u0027 errors is spread out.\nSolution:   Pass the option name to the lower levels so the option can be\n            reset there when an error is encountered. (Luuk van Baal,\n            closes #11467)\n"
    },
    {
      "commit": "1577537f109d97a975fda9a899cacfb598617767",
      "tree": "2aae6eb208722a06a991f51a064ca9d135be175d",
      "parents": [
        "6ebe4f970b8b398087076a72a7aae6e680fb92da"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Oct 29 20:01:52 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Oct 29 20:01:52 2022 +0100"
      },
      "message": "patch 9.0.0819\n"
    },
    {
      "commit": "8f3c3c6cd044e3b5bf08dbfa3b3f04bb3f711bad",
      "tree": "66e5f78b1f4d346156a3fdc958c14fbd3b614f7b",
      "parents": [
        "61c4b04799bf114cadc3bbf212ae8b2ad22a6980"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Oct 18 17:05:54 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Oct 18 17:05:54 2022 +0100"
      },
      "message": "patch 9.0.0789: dummy buffer ends up in a window\n\nProblem:    Dummy buffer ends up in a window.\nSolution:   Disallow navigating to a dummy buffer.\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": "ba43e76fcd5b2da57dbaa4d9a555793fe8ac344e",
      "tree": "46d248575c130e6c338dc0aac5f66eabe2c2fef4",
      "parents": [
        "856c5d2bc7c3864f8b63a0ab3e376d5c5e51f1d5"
      ],
      "author": {
        "name": "Martin Tournoij",
        "email": "martin@arp242.net",
        "time": "Thu Oct 13 22:12:15 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Oct 13 22:12:15 2022 +0100"
      },
      "message": "patch 9.0.0747: too many #ifdefs\n\nProblem:    Too many #ifdefs.\nSolution:   Gradudate the +cmdline_info feature. (Martin Tournoij,\n            closes #11330)\n"
    },
    {
      "commit": "4282633ba63f6e11f2fe42c4b7758dace184f30d",
      "tree": "529b9b35b2358aa7247ad4029348dabaaffc0262",
      "parents": [
        "f167c7b42476f8ab5b32c3c5ccbdca914316e96b"
      ],
      "author": {
        "name": "Yee Cheng Chin",
        "email": "ychin.git@gmail.com",
        "time": "Mon Oct 10 11:46:16 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Oct 10 11:46:16 2022 +0100"
      },
      "message": "patch 9.0.0710: quitting/unloading/hiding a terminal does not work properly\n\nProblem:    Quitting/unloading/hiding a terminal buffer does not always work\n            properly.\nSolution:   Avoid that \":q!\" leaves an empty buffer behind.  \":bunload!\" also\n            kills the job and unloads the buffer.  \":hide\" does not unload the\n            buffer. (Yee Cheng Chin, closes #11323)\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": "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": "ef976323e770315b5fca544efb6b2faa25674d15",
      "tree": "bcbbeb67ecb9b2a445919e837089b682fd943d10",
      "parents": [
        "caa1d19da1cdfd07f93b578b4fd5214a53197cd6"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 28 11:48:30 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Sep 28 11:48:30 2022 +0100"
      },
      "message": "patch 9.0.0614: SpellFileMissing autocmd may delete buffer\n\nProblem:    SpellFileMissing autocmd may delete buffer.\nSolution:   Disallow deleting the current buffer to avoid using freed memory.\n"
    },
    {
      "commit": "c312619f7c0cf590d96e0b2ed891d1f6c43d769b",
      "tree": "327ee232d2a3314f62f5c50e0a31b6173763fae7",
      "parents": [
        "d55f9ef8b2f1e9f868ed1440fe859d1b18b1cfe8"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Aug 26 12:58:17 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Aug 26 12:58:17 2022 +0100"
      },
      "message": "patch 9.0.0274: netrw plugin does not show remote files\n\nProblem:    Netrw plugin does not show remote files.\nSolution:   Do read a file when \u0027buftype\u0027 is \"acwrite\". (closes #10983)\n"
    },
    {
      "commit": "b1d2c8116cb5577961ea109651fb888b5e58265f",
      "tree": "3cca94a88929fc31a58d1965da471e7b1e8050a2",
      "parents": [
        "9b7d2a959646560f5770329f4428c4739eed4656"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Aug 26 11:55:01 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Aug 26 11:55:01 2022 +0100"
      },
      "message": "patch 9.0.0272: BufReadCmd not triggered when loading a \"nofile\" buffer\n\nProblem:    BufReadCmd not triggered when loading a \"nofile\" buffer. (Maxim\n            Kim)\nSolution:   Call readfile() but bail out before reading a file.\n            (closes #10983)\n"
    },
    {
      "commit": "340dafd155222ac96304107542344faf3c56e12b",
      "tree": "7f078899872ba48371eaa4e63e33cc4ce99a0501",
      "parents": [
        "f80f40a55ccff0a4331c5fbd1ac446511f622ed0"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 25 16:16:45 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 25 16:16:45 2022 +0100"
      },
      "message": "patch 9.0.0266: compiler warning for unused argument\n\nProblem:    Compiler warning for unused argument.\nSolution:   Add UNUSED.\n"
    },
    {
      "commit": "f80f40a55ccff0a4331c5fbd1ac446511f622ed0",
      "tree": "6a43d76ea652831205c8df6439b98717a6425188",
      "parents": [
        "b213703f358e1e10ba0affb3729c09ccb2c88ea3"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 25 16:02:23 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 25 16:02:23 2022 +0100"
      },
      "message": "patch 9.0.0265: no good reason why the \"gf\" command isn\u0027t in the tiny version\n\nProblem:    No good reason why the \"gf\" command is not in the tiny version.\nSolution:   Graduate the file_in_path feature.\n"
    },
    {
      "commit": "6d4b2f54df5d533eb0794331f38445a6ca5d3a3f",
      "tree": "0a6011c47bb9cf12806cb0484016ce6f071fc361",
      "parents": [
        "2e6dcbc4450c98bd12faace5d77a65f2afddae44"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 25 15:11:15 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 25 15:11:15 2022 +0100"
      },
      "message": "patch 9.0.0263: too many #ifdefs\n\nProblem:    Too many #ifdefs.\nSolution:   Make some functions always available.\n"
    },
    {
      "commit": "2e6dcbc4450c98bd12faace5d77a65f2afddae44",
      "tree": "5de99be345a8a01e89673b53c1d2bc114090457c",
      "parents": [
        "2eddbacd6dc17c84e4bdc41e60e81949a36bb973"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 25 13:54:16 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 25 13:54:16 2022 +0100"
      },
      "message": "patch 9.0.0262: build failure without the +quickfix feature\n\nProblem:    Build failure without the +quickfix feature.\nSolution:   Add #ifdef.\n"
    },
    {
      "commit": "2eddbacd6dc17c84e4bdc41e60e81949a36bb973",
      "tree": "e408f43fe5348de1725340122ded24d66e673364",
      "parents": [
        "d6c67629ed05aae436164eec474832daf8ba7420"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 25 12:45:21 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Aug 25 12:45:21 2022 +0100"
      },
      "message": "patch 9.0.0261: bufload() reads a file even if the name is not a file name\n\nProblem:    bufload() reads a file even if the name is not a file name. (Cyker\n            Way)\nSolution:   Do not read the file when the buffer name is not a file name.\n            (closes #10975)\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": "887748742deae3d6de7aa0fdbb042afe1ccf5e7a",
      "tree": "3434eec0fb92e3c467c9fd94c0a5aeaae2e844cc",
      "parents": [
        "1889f499a4f248cd84e0e0bf6d0d820016774494"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 16 20:24:29 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Aug 16 20:24:29 2022 +0100"
      },
      "message": "patch 9.0.0222: no good reason why text objects are only in larger builds\n\nProblem:    No good reason why text objects are only in larger builds.\nSolution:   Graduate +textobjects.\n"
    },
    {
      "commit": "a4d158b3c839e96ed98ff87c7b7124ff4518c4ff",
      "tree": "42d3a6b65d4ae53a6e078c8f24a5ee9960e3ad24",
      "parents": [
        "28c9f895716cfa8f1220bc41b72a534c0e10cabe"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 14 14:17:45 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Aug 14 14:17:45 2022 +0100"
      },
      "message": "patch 9.0.0206: redraw flags are not named specifically\n\nProblem:    Redraw flags are not named specifically.\nSolution:   Prefix \"UPD_\" to the flags, for UPDate_screen().\n"
    },
    {
      "commit": "cfeb8a584be11758cf71ae02f6c937b06d6bb66f",
      "tree": "9f024147fdbebdf5d78a9860ec6bb47cd8dd5445",
      "parents": [
        "6a76e84f555da6d9ee57db80143e1e5eb85535ff"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 13 14:09:44 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Aug 13 14:09:44 2022 +0100"
      },
      "message": "patch 9.0.0198: ml_get error when switching buffer in Visual mode\n\nProblem:    ml_get error when switching buffer in Visual mode.\nSolution:   End Visual mode when switching buffer. (closes #10902)\n"
    },
    {
      "commit": "122dea70073d140aa89212d344c3f62bd3b5b3fa",
      "tree": "8e9c9e34aa381f6da2dc7b8dcd58de85c19cedca",
      "parents": [
        "3d6ee8bda0550a01346f5992bbce09c0eb6d7569"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Wed Jul 27 15:48:45 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jul 27 15:48:45 2022 +0100"
      },
      "message": "patch 9.0.0095: conditions are always true\n\nProblem:    Conditions are always true.\nSolution:   Remove useless conditions. (closes #10802)\n"
    },
    {
      "commit": "0c740e745a5f8702fd87689615a9684664e40764",
      "tree": "831d8a97fb726de357411fa8ed16878d3f02b766",
      "parents": [
        "fe3fb6e1e6c90e9bada05518a13a72b3fc2f6a98"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jul 25 19:07:04 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Jul 25 19:07:04 2022 +0100"
      },
      "message": "patch 9.0.0069: leaking memory when using text prop with inserted text\n\nProblem:    Leaking memory when using text prop with inserted text.\nSolution:   Clear the growarray with text.\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": "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": "8e145b82464a21ee4fdf7948f04e2a1d505f8bfa",
      "tree": "833d3862b868395323a8670c15af4b30f1d5564e",
      "parents": [
        "5a01caa90428a5f87600528d68529383c0b2f78c"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 21 20:17:31 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 21 20:17:31 2022 +0100"
      },
      "message": "patch 8.2.4993: smart/C/lisp indenting is optional\n\nProblem:    smart/C/lisp indenting is optional, which makes the code more\n            complex, while it only reduces the executable size a bit.\nSolution:   Graduate FEAT_CINDENT, FEAT_SMARTINDENT and FEAT_LISP.\n"
    },
    {
      "commit": "b62dc5e7825bc195efe3041d5b3a9f1528359e1c",
      "tree": "a0469ca3fc215cbb3aed246d121442853ced3f2b",
      "parents": [
        "dd41037552c1be3548d2ce34bb1c889f14edb553"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 15 14:50:12 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun May 15 14:50:12 2022 +0100"
      },
      "message": "patch 8.2.4959: using NULL regexp program\n\nProblem:    Using NULL regexp program.\nSolution:   Check for regexp program becoming NULL in more places.\n"
    },
    {
      "commit": "a59f2dfd0cf9ee1a584d3de5b7c2d47648e79060",
      "tree": "7983fe4811bf949c7a7ca174775428a096a7e20d",
      "parents": [
        "ead241538cdd26cbf02599b6e23cd8baeafbcbb2"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 11 11:42:28 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed May 11 11:42:28 2022 +0100"
      },
      "message": "patch 8.2.4938: crash when matching buffer with invalid pattern\n\nProblem:    Crash when matching buffer with invalid pattern.\nSolution:   Check for NULL regprog.\n"
    },
    {
      "commit": "57ff52677bf5ba1651281ffe40505df8feba4a36",
      "tree": "3c657ec985fabf158175925c607f507221de4ef9",
      "parents": [
        "6ed545e79735f23ff8e650bc2f0967e5a0baedc9"
      ],
      "author": {
        "name": "LemonBoy",
        "email": "thatlemon@gmail.com",
        "time": "Mon May 09 21:03:47 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon May 09 21:03:47 2022 +0100"
      },
      "message": "patch 8.2.4929: off-by-one error in in statusline item\n\nProblem:    Off-by-one error in in statusline item.\nSolution:   Subtrace one less. (closes #10394, closes #5599)\n"
    },
    {
      "commit": "249591057b4840785c50e41dd850efb8a8faf435",
      "tree": "e9ba171529cf753e7aab0ec9adf5be3fedc17d00",
      "parents": [
        "9ff7d717aa3176de5c61de340deb93f41c7780fc"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 07 20:01:16 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 07 20:01:16 2022 +0100"
      },
      "message": "patch 8.2.4911: the mode #defines are not clearly named\n\nProblem:    The mode #defines are not clearly named.\nSolution:   Prepend MODE_.  Renumber them to put the mapped modes first.\n"
    },
    {
      "commit": "8e4b76da1d7e987d43ca960dfbc372d1c617466f",
      "tree": "efbe309a2616fba361717918f55923a19dd65e04",
      "parents": [
        "801c3c1dbed88bfb59dcf25045365dc65f795f4e"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 07 11:28:06 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat May 07 11:28:06 2022 +0100"
      },
      "message": "patch 8.2.4901: NULL pointer access when using invalid pattern\n\nProblem:    NULL pointer access when using invalid pattern.\nSolution:   Check for failed regexp program.\n"
    },
    {
      "commit": "fef4485ef58d5937b170c6dc69431359469fc9cd",
      "tree": "4e028dae2d861040e01a8726128edba96b0b349e",
      "parents": [
        "c448e9c95089b5e7170a0dd36635a226c5eb5b1c"
      ],
      "author": {
        "name": "Charlie Groves",
        "email": "charlie.groves@gmail.com",
        "time": "Tue Apr 19 16:24:12 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Apr 19 16:24:12 2022 +0100"
      },
      "message": "patch 8.2.4791: events triggered in different order when reusing buffer\n\nProblem:    Autocmd events triggered in different order when reusing an empty\n            buffer.\nSolution:   Call buff_freeall() earlier. (Charlie Groves, closes #10198)\n"
    },
    {
      "commit": "db0ea7f2b00c84d84f188c9e9953c4f1887528e7",
      "tree": "3e51f520d137d74254d1b78d64d9a0c0b057714e",
      "parents": [
        "e08fde007308fffec818b4ad6eccf573f54bed5b"
      ],
      "author": {
        "name": "LemonBoy",
        "email": "thatlemon@gmail.com",
        "time": "Sun Apr 10 17:59:26 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Apr 10 17:59:26 2022 +0100"
      },
      "message": "patch 8.2.4731: the changelist index is not remembered per buffer\n\nProblem:    The changelist index is not remembered per buffer.\nSolution:   Keep the changelist index per window and buffer. (closes #10135,\n            closes #2173)\n"
    },
    {
      "commit": "3506cf34c17c5eae6c2d1317db1fcd5a8493c288",
      "tree": "7a93cd7c69e55b1ee9e170d8efb62e75f67087fd",
      "parents": [
        "3ad2090316edc85e93094bba7af64f9991cc7f85"
      ],
      "author": {
        "name": "Tom Praschan",
        "email": "13141438+tom-anders@users.noreply.github.com",
        "time": "Thu Apr 07 12:39:08 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Apr 07 12:39:08 2022 +0100"
      },
      "message": "patch 8.2.4702: C++ scope labels are hard-coded\n\nProblem:    C++ scope labels are hard-coded.\nSolution:   Add \u0027cinscopedecls\u0027 to define the labels. (Rom Praschan,\n            closes #10109)\n"
    },
    {
      "commit": "188639d75c363dffaf813e8e2209f7350ad1e871",
      "tree": "5ad1a2954a8a4a821125a7f20e9667a85f3a6196",
      "parents": [
        "cc766a85f460ebb7f8c915508447548b5f5b99bc"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Apr 04 16:57:21 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Apr 04 16:57:21 2022 +0100"
      },
      "message": "patch 8.2.4685: when a swap file is found for a popup there is no dialog\n\nProblem:    When a swap file is found for a popup there is no dialog and the\n            buffer is loaded anyway.\nSolution:   Silently load the buffer read-only. (closes #10073)\n"
    },
    {
      "commit": "72bb47e38f6805050ed6d969f17591bed71f83d4",
      "tree": "2a129b54c7d20524362720c8385128d5a7c7fc41",
      "parents": [
        "58f331a05f5b7bdddf04e68b6e51a827fd0c43f0"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Apr 03 11:22:38 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Apr 03 11:22:38 2022 +0100"
      },
      "message": "patch 8.2.4670: memory allocation failures for new tab page not tested\n\nProblem:    Memory allocation failures for new tab page not tested.\nSolution:   Add tests with failing memory allocation. (Yegappan Lakshmanan,\n            closes #10067)\n"
    },
    {
      "commit": "0dac1ab5791819ee9a496273eea38f69a217ac45",
      "tree": "a2bb44a0706e1a71b70115646ea6864e142468fa",
      "parents": [
        "5018a836c030988944a9bbe2fd2e538bf5261a72"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sat Apr 02 21:46:19 2022 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Apr 02 21:46:19 2022 +0100"
      },
      "message": "patch 8.2.4668: buffer allocation failures insufficiently tested\n\nProblem:    Buffer allocation failures insufficiently tested.\nSolution:   Add tests for memory allocation failures. (Yegappan Lakshmanan,\n            closes #10064)\n"
    },
    {
      "commit": "347538fad0c503249ebdedd5884c2081257c9f61",
      "tree": "33916eb0edab0b25845d8ad59a3cd551c62deccd",
      "parents": [
        "bf269ed0b0bd8414eea7bea17465b2738a9a2b55"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Mar 26 16:28:06 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Mar 26 16:28:06 2022 +0000"
      },
      "message": "patch 8.2.4631: crash when switching window in BufWipeout autocommand\n\nProblem:    Crash when switching window in BufWipeout autocommand.\nSolution:   Put any buffer in the window to avoid it being NULL.\n            (closes #10024)\n"
    },
    {
      "commit": "6f2465d336a9d4afe392db4084ef7e9db17e67c1",
      "tree": "3aaee0bf7b626607678be0c8835190a4ed695f24",
      "parents": [
        "e7dd0fa2c61fe71f12c72b0dcb7bb6415eb048fb"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Mar 22 18:13:01 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Mar 22 18:13:01 2022 +0000"
      },
      "message": "patch 8.2.4609: :unhide does not check for failing to close a window\n\nProblem:    :unhide does not check for failing to close a window.\nSolution:   When closing a window fails continue with the next one.  Do not\n            try closing the autocmd window. (closes #9984)\n"
    },
    {
      "commit": "5de4c4372d4366bc85cb66efb3e373439b9471c5",
      "tree": "03a6aea2f9b80a06bc66775e4ea88168dd2d148d",
      "parents": [
        "afd4ae35d66b2e7732eceb5ad9f6b4ece6b7c64c"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Mon Feb 28 13:28:38 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Feb 28 13:28:38 2022 +0000"
      },
      "message": "patch 8.2.4483: command completion makes two rounds to collect matches\n\nProblem:    Command completion makes two rounds to collect matches.\nSolution:   Use a growarray to collect matches. (Yegappan Lakshmanan,\n            closes #9860)\n"
    },
    {
      "commit": "38b85cb4d7216705058708bacbc25ab90cd61595",
      "tree": "3eb078ed612a835d9d6eecf7e3a4b84f209f1618",
      "parents": [
        "9c9be05b17ececb1515a2f41a4dedbf848d3d8b6"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Thu Feb 24 13:28:41 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Feb 24 13:28:41 2022 +0000"
      },
      "message": "patch 8.2.4463: completion only uses strict matching\n\nProblem:    Completion only uses strict matching.\nSolution:   Add the \"fuzzy\" item for \u0027wildoptions\u0027. (Yegappan Lakshmanan,\n            closes #9803)\n"
    },
    {
      "commit": "a493b6506b67887a1cc2d1c00a896598c3b2d445",
      "tree": "74131ce6b30567ec0f9c5bf9d80bab929abb5a16",
      "parents": [
        "5921aeb5741fc6e84c870d68c7c35b93ad0c9f87"
      ],
      "author": {
        "name": "Brandon Richardson",
        "email": "brandon.richardson@siemens.com",
        "time": "Sat Feb 19 11:45:03 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Feb 19 11:45:03 2022 +0000"
      },
      "message": "patch 8.2.4419: illegal memory access when using 20 highlights\n\nProblem:    Illegal memory access when using exactly 20 highlights.\nSolution:   Add one more item in the array. (Brandon Richardson,\n            closes #9800)\n"
    },
    {
      "commit": "0e1f36fc59b589e4755fd9102013971f45222084",
      "tree": "62b2d29afe6d9d62b75b218157d61f5453bc4efe",
      "parents": [
        "e88c6b7a5d8b24f8aa9a3e976b78654bae293ae4"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 15 16:17:44 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 15 16:17:44 2022 +0000"
      },
      "message": "patch 8.2.4391: command line executed when typing Esc in the GUI\n\nProblem:    Command line executed when typing Esc in the GUI.\nSolution:   Move saving/restoring KeyTyped to build_stl_str_hl().\n            (closes #9783)\n"
    },
    {
      "commit": "e3537aec2f8d6470010547af28dcbd83d41461b8",
      "tree": "c82805b886c333b464b8473377bc0548cb3f4e5d",
      "parents": [
        "51ab7c7d0da08aac796acff22a6c075dac579e76"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 08 15:05:20 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 08 15:05:20 2022 +0000"
      },
      "message": "patch 8.2.4327: may end up with no current buffer\n\nProblem:    May end up with no current buffer.\nSolution:   When deleting the current buffer to not pick a quickfix buffer as\n            the new current buffer.\n"
    },
    {
      "commit": "9b4a80a66544f2782040b641498754bcb5b8d461",
      "tree": "5b51ffffb1d60cbd8e771722fc609826526b590a",
      "parents": [
        "eb4a9ba293be51039e57e0e18337785e2ce526e7"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 01 13:54:17 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Feb 01 13:54:17 2022 +0000"
      },
      "message": "patch 8.2.4281: using freed memory with :lopen and :bwipe\n\nProblem:    Using freed memory with :lopen and :bwipe.\nSolution:   Do not use a wiped out buffer.\n"
    },
    {
      "commit": "420fabcd4ffeaf79082a6e43db91e1d363f88f27",
      "tree": "89938a5800078e96cdf992aca87e1c79a2f255ac",
      "parents": [
        "fb80862e49fcbcf47907fc8cdaaf5c41cb9eb06e"
      ],
      "author": {
        "name": "\u003d?UTF-8?q?Dundar\u003d20G\u003dC3\u003dB6c?\u003d",
        "email": "gocdundar@gmail.com",
        "time": "Fri Jan 28 15:28:04 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 28 15:28:04 2022 +0000"
      },
      "message": "patch 8.2.4241: some type casts are redundant\n\nProblem:    Some type casts are redundant.\nSolution:   Remove the type casts. (closes #9643)\n"
    },
    {
      "commit": "9530b580a7b71960dbbdb2b12a3aafeb540bd135",
      "tree": "5e169ea9710cf9d3e1f9dade5ff223c2850a7d59",
      "parents": [
        "0bfa84916d110d4f4d863e91e144ff05ba431316"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 22 13:39:08 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 22 13:39:08 2022 +0000"
      },
      "message": "patch 8.2.4179: \u0027foldtext\u0027 is evaluated in the current script context\n\nProblem:    \u0027foldtext\u0027 is evaluated in the current script context.\nSolution:   Use the script context where the option was set.\n"
    },
    {
      "commit": "e615db06046312e74886fa1ef98feb5a9db2a7c3",
      "tree": "8777ab7d7ac5b1ad11f2b59d42f6b50f2b12fb66",
      "parents": [
        "05386ca1d4823e5c98c24b8cd038af49aee62577"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 20 21:00:54 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Jan 20 21:00:54 2022 +0000"
      },
      "message": "patch 8.2.4166: undo synced when switching buffer in another window\n\nProblem:    Undo synced when switching buffer in another window.\nSolution:   Do not sync undo when not needed. (closes #9575)\n"
    },
    {
      "commit": "1a8825d7a3484d76ca16ea2aa9769cadca7758a4",
      "tree": "3fa19e87656a4a3ef97ad6fc4635719c841d24c9",
      "parents": [
        "b0b2b73dca40c26ff1f4befe5c3aad3fd4bccfad"
      ],
      "author": {
        "name": "K.Takata",
        "email": "kentkt@csc.jp",
        "time": "Wed Jan 19 13:32:57 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Jan 19 13:32:57 2022 +0000"
      },
      "message": "patch 8.2.4144: cannot load libsodium dynamically\n\nProblem:    Cannot load libsodium dynamically.\nSolution:   Support dynamic loading on MS-Windows. (Ken Takata, closes #9554)\n"
    },
    {
      "commit": "0f112052acaeffd75b7eb001eeb8a246ad12a276",
      "tree": "a17f77f9a69ce3771d2c7c2c9e61c7c48d4c5d78",
      "parents": [
        "26ebf1f036517ebeacf571c333a83cca7e13bbe2"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Fri Jan 14 20:11:38 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Jan 14 20:11:38 2022 +0000"
      },
      "message": "patch 8.2.4091: virtcol is recomputed for statusline unnecessarily\n\nProblem:    Virtcol is recomputed for statusline unnecessarily.\nSolution:   Just use \"w_virtcol\". (closes #9523)\n"
    },
    {
      "commit": "748b308eebe8d8860888eb27da08333f175d547d",
      "tree": "dcb524e3faab88b0238bd892cdfa2870252c7e51",
      "parents": [
        "370791465e745354d66696de8cbd15504cf958c0"
      ],
      "author": {
        "name": "Dominique Pelle",
        "email": "dominique.pelle@gmail.com",
        "time": "Sat Jan 08 12:41:16 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 08 12:41:16 2022 +0000"
      },
      "message": "patch 8.2.4038: various code not used when features are disabled\n\nProblem:    Various code not used when features are disabled.\nSolution:   Add #ifdefs. (Dominique Pellé, closes #9491)\n"
    },
    {
      "commit": "74409f62790a93daf0965c71da01ff76aa0fa5a5",
      "tree": "ece55c806dc6fe451d24af66008ae1444d81d73d",
      "parents": [
        "56200eed62e59ad831f6564dcafe346e6f97ac20"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 01 15:58:22 2022 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Jan 01 15:58:22 2022 +0000"
      },
      "message": "patch 8.2.3970: error messages are spread out\n\nProblem:    Error messages are spread out.\nSolution:   Move more errors to errors.h.\n"
    },
    {
      "commit": "f1474d801bbdb73406dd3d1f931f515f99e86dfa",
      "tree": "e69c4f4dcf990b7c13711f8b36e518117c14670e",
      "parents": [
        "6d0570117ac86b7979bf249de5741088212d6e17"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Dec 31 19:59:55 2021 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Dec 31 19:59:55 2021 +0000"
      },
      "message": "patch 8.2.3960: error messages are spread out\n\nProblem:    Error messages are spread out.\nSolution:   Move more errors to errors.h.\n"
    },
    {
      "commit": "af4a61a85d6e8cacc35324f266934bc463a21673",
      "tree": "3b2e75b8a36bc8e79d2bc407d929a84b69fd0e0c",
      "parents": [
        "5da36052a4bb0f3a9747ec3a8ab9d85e058e39fa"
      ],
      "author": {
        "name": "Dominique Pelle",
        "email": "dominique.pelle@gmail.com",
        "time": "Mon Dec 27 17:21:41 2021 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Dec 27 17:21:41 2021 +0000"
      },
      "message": "patch 8.2.3914: various spelling mistakes in comments\n\nProblem:    Various spelling mistakes in comments.\nSolution:   Fix the mistakes. (Dominique Pellé, closes #9416)\n"
    },
    {
      "commit": "e124204c4f8ea8b4fe5357b7613092a7acb5feb8",
      "tree": "8a049a292b17314710048a1b17625416c2bfc8d6",
      "parents": [
        "94c785d235dccacf6cdf38c5903115b61ca8a981"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 16 20:56:57 2021 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Dec 16 20:56:57 2021 +0000"
      },
      "message": "patch 8.2.3830: error messages are spread out\n\nProblem:    Error messages are spread out.\nSolution:   Move more error messages to errors.h.\n"
    },
    {
      "commit": "739f13a55b4982efb37ebc9282e7f79975fff982",
      "tree": "7ff6654580ba561b06c1fccaf2dffbf8a2334815",
      "parents": [
        "33b968dc60c5fa39451098e680c7559ebc65d1a7"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Dec 13 13:12:53 2021 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Dec 13 13:12:53 2021 +0000"
      },
      "message": "patch 8.2.3795: too many #ifdefs\n\nProblem:    Too many #ifdefs.\nSolution:   Graduate the jumplist feature.\n"
    },
    {
      "commit": "40bcec1bac34d34a3d4d7c5f6b2cc1f163acbd00",
      "tree": "be6586866cf712e434252f74b185d35f6a49eed3",
      "parents": [
        "4700398e384f38f752b432e187462f404b96847d"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Dec 05 22:19:27 2021 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sun Dec 05 22:19:27 2021 +0000"
      },
      "message": "patch 8.2.3750: error messages are everywhere\n\nProblem:    Error messages are everywhere.\nSolution:   Move more error messages to errors.h and adjust the names.\n"
    },
    {
      "commit": "8658c759f05b317707d56e3b65a5ef63930c7498",
      "tree": "124fcda187b5515dfaeba4c86aa7a5e0f0888686",
      "parents": [
        "021ef351c2127cf8aa5668a881435a0a12774644"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Fri Dec 03 11:09:29 2021 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Dec 03 11:09:29 2021 +0000"
      },
      "message": "patch 8.2.3725: cannot use a lambda for \u0027completefunc\u0027 and \u0027omnifunc\u0027\n\nProblem:    Cannot use a lambda for \u0027completefunc\u0027 and \u0027omnifunc\u0027.\nSolution:   Implement lambda support. (Yegappan Lakshmanan, closes #9257)\n"
    },
    {
      "commit": "651fca85c71a4c5807f8f828f9ded30fbd754325",
      "tree": "8e8524432d917e2657b7717aeb40823b21b1c38c",
      "parents": [
        "0c359af5c0fd106d3f57cc0bb7cef1c89b5e1e10"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Nov 29 20:39:38 2021 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Nov 29 20:39:38 2021 +0000"
      },
      "message": "patch 8.2.3699: the +title feature adds a lot of #ifdef but little code\n\nProblem:    The +title feature adds a lot of #ifdef but little code.\nSolution:   Graduate the +title feature.\n"
    },
    {
      "commit": "19916a8c8920b6a1fd737ffa6d4e363fc7a96319",
      "tree": "c91095739b0714cb9edee11c8d3cdea88d4dbd77",
      "parents": [
        "e413ea04b716effb28eb49dbc98ad3f9f761545a"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Wed Nov 24 16:32:55 2021 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Nov 24 16:32:55 2021 +0000"
      },
      "message": "patch 8.2.3665: cannot use a lambda for \u0027tagfunc\u0027\n\nProblem:    Cannot use a lambda for \u0027tagfunc\u0027.\nSolution:   Use \u0027tagfunc\u0027 like \u0027opfunc\u0027. (Yegappan Lakshmanan, closes #9204)\n"
    },
    {
      "commit": "3ad695328f94e0197e84454f125c7f3464091d0c",
      "tree": "111a817a7ffe3f04b1a367ad2dd1d63b194f942a",
      "parents": [
        "8b8d829faf04fe3706c04f7f7000054acd3254e7"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Nov 19 17:01:08 2021 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Fri Nov 19 17:01:08 2021 +0000"
      },
      "message": "patch 8.2.3624: when renaming a terminal buffer status text is not updated\n\nProblem:    When renaming a terminal buffer the status text is not updated.\nSolution:   Clear the cached status text when renaming a terminal buffer.\n            (closes #9162)\n"
    },
    {
      "commit": "0526815c15170a5926e1008600ec29d42d8b64c2",
      "tree": "cb743f2c7be21b9cbf5f711144018539f6e313ee",
      "parents": [
        "3cad47038547e694cfa26ba39c399f610d2054bd"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Nov 18 18:53:45 2021 +0000"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Thu Nov 18 18:53:45 2021 +0000"
      },
      "message": "patch 8.2.3617: \":verbose pwd\" does not mention \u0027autochdir\u0027 was applied\n\nProblem:    \":verbose pwd\" does not mention \u0027autochdir\u0027 was applied.\nSolution:   Remember the last chdir was done by \u0027autochdir\u0027.  (issue #9142)\n"
    },
    {
      "commit": "1d30fde3c989a962e0e1af4cbcf90e1ea483f1f4",
      "tree": "138c81443921e31b93299222af015755ed61404e",
      "parents": [
        "09f7723d5a8694889350b13e3f6b4a9c3ed4c41f"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Oct 20 21:58:42 2021 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Wed Oct 20 21:58:42 2021 +0100"
      },
      "message": "patch 8.2.3547: opening the quickfix window triggers BufWinEnter twice\n\nProblem:    Opening the quickfix window triggers BufWinEnter twice. (Yorick\n            Peterse)\nSolution:   Only trigger BufWinEnter with \"quickfix\". (closes #9022)\n"
    },
    {
      "commit": "c5935a859ee31d56a565878d7a231fc59b7ddc01",
      "tree": "dae0d49be4eee25f34c5373d2cdc5396c0df21eb",
      "parents": [
        "731fba1081079d5c0251fca2626043ce6e86b1f2"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Oct 19 20:48:52 2021 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Tue Oct 19 20:48:52 2021 +0100"
      },
      "message": "patch 8.2.3542: too many comments are old style\n\nProblem:    Too many comments are old style.\nSolution:   Change comments to // style. (closes #9021)\n"
    },
    {
      "commit": "d4c4bfa0078a959ff90ef30288fd31d9d38f23d7",
      "tree": "a0c7059b555ac8585d2230c0a6fb4a268f3c27bc",
      "parents": [
        "4eeedc09fed0cbbb3ba48317e0a01e20cd0b4f80"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Oct 16 21:14:11 2021 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Oct 16 21:14:11 2021 +0100"
      },
      "message": "patch 8.2.3525: option variable name does not match option name\n\nProblem:    Option variable name does not match option name. (Christ van\n            Willigen)\nSolution:   Rename the variable.\n"
    },
    {
      "commit": "160e994d768d03a3c826b58115cde94df8fce607",
      "tree": "38f6ec253633b656db1be92790c26fc71eb72eee",
      "parents": [
        "2286304cdbba53ceb52b3ba2ba4a521b0a2f8d0f"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sat Oct 16 15:41:29 2021 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Oct 16 15:41:29 2021 +0100"
      },
      "message": "patch 8.2.3520: cannot define a function for thesaurus completion\n\nProblem:    Cannot define a function for thesaurus completion.\nSolution:   Add \u0027thesaurusfunc\u0027. (Yegappan Lakshmanan, closes #8987,\n            closes 8950)\n"
    },
    {
      "commit": "db3b44640d69ab27270691a3cab8d83cc93a0861",
      "tree": "7ed9b25f311e2b6b1790cb0903314493f5e460c2",
      "parents": [
        "7b5f45be2197403d631b5a3d633f6a20afdf806e"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Oct 16 11:58:55 2021 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Oct 16 11:58:55 2021 +0100"
      },
      "message": "patch 8.2.3517: TextChanged does not trigger after TextChangedI\n\nProblem:    TextChanged does not trigger after TextChangedI.\nSolution:   Store the tick separately for TextChangedI. (Christian Brabandt,\n            closes #8968, closes #8932)\n"
    },
    {
      "commit": "3826c0513bc9370583be550c864358c7eeb5605a",
      "tree": "8e9b5e6c9f29f51275ea2af4dca0152f5f108ccf",
      "parents": [
        "35a319b77f897744eec1155b736e9372c9c5575f"
      ],
      "author": {
        "name": "\u003d?UTF-8?q?Dundar\u003d20G\u003dC3\u003dB6c?\u003d",
        "email": "gocdundar@gmail.com",
        "time": "Sat Oct 09 15:39:25 2021 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Oct 09 15:39:25 2021 +0100"
      },
      "message": "patch 8.2.3490: superfluous return statements\n\nProblem:    Superfluous return statements.\nSolution:   Remove superfluous return statements from void functions.\n            (closes #8977)\n"
    },
    {
      "commit": "d3710cf01ef6ab1b2f233866ff01dab76686f642",
      "tree": "28e2058098833e3f613c0ecf75733ee4e0cc1627",
      "parents": [
        "08d7b1c82866a61b61a55e55b6c190dba04e54ea"
      ],
      "author": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Oct 04 23:13:13 2021 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Mon Oct 04 23:13:13 2021 +0100"
      },
      "message": "patch 8.2.3476: renaming a buffer on startup may cause using freed memory\n\nProblem:    Renaming a buffer on startup may cause using freed memory.\nSolution:   Check if the buffer is used in a window. (closes #8955)\n"
    },
    {
      "commit": "dfa5e464d459f84200a73d178f1ecefe75bbe511",
      "tree": "2bf8a9283ea1bb99757758918884b9a92f2db659",
      "parents": [
        "51491adfa86fd66a857cd7ec50d0b57dbdf3da59"
      ],
      "author": {
        "name": "\u003d?UTF-8?q?Dundar\u003d20G\u003dC3\u003dB6c?\u003d",
        "email": "gocdundar@gmail.com",
        "time": "Sat Oct 02 11:26:51 2021 +0100"
      },
      "committer": {
        "name": "Bram Moolenaar",
        "email": "Bram@vim.org",
        "time": "Sat Oct 02 11:26:51 2021 +0100"
      },
      "message": "patch 8.2.3460: some type casts are not needed\n\nProblem:    Some type casts are not needed.\nSolution:   Remove unnecessary type casts. (closes #8934)\n"
    }
  ],
  "next": "9dcd349ca85e1df1abd1cbf1c29c0f1574b70bf8"
}
