)]}'
{
  "log": [
    {
      "commit": "d4e4ecbb3793cd45b645471966c1ac703be52f4a",
      "tree": "21dc9d7421f7016bdeb0d3f5875e36251795d38c",
      "parents": [
        "74e1dada4199b2d9e68ccaafdb7895c85b4b08f1"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Aug 27 18:35:45 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 27 18:35:45 2023 +0200"
      },
      "message": "patch 9.0.1795: Indentation issues\n\nProblem:  Indentation issues\nSolution: Fix code indentation issues.\n\ncloses: #12906\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "74e1dada4199b2d9e68ccaafdb7895c85b4b08f1",
      "tree": "0f6e566de334ebcb26182c6c9c73773f8a483fa4",
      "parents": [
        "f39842f148c9a8112432644b7f4a0129315de771"
      ],
      "author": {
        "name": "Illia Bobyr",
        "email": "illia.bobyr@gmail.com",
        "time": "Sun Aug 27 18:26:54 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 27 18:26:54 2023 +0200"
      },
      "message": "patch 9.0.1794: autoconf: not correctly detecing include dirs\n\nProblem:  autoconf: not correctly detecing include dirs\nSolution: make use of python3 to generate includedirs\n\nconfigure: Python3: Use sysconfig for -I\n\nIt seems better to use tools provided by Python for determining the\ninclude directories, rather than construct them \"manually\".\n\nCurrent system is broken when using virtual environments for python\n3.11.4.  It used to work before, but now it detects a incorrect value\nfor `-I`.\n\nIt would probably make sense to switch to a similar logic for lib\nfolders, that is for the `-l` switch.  There are also\n`sysconfig.get_config_h_filename()` and\n`sysconfig.get_makefile_filename()`, that could replace more Python\nspecific logic in the current `configure{.ac,}`.\n\nsysconfig provides the necessary tools since Python 2.7.\n\ncloses: #12889\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Illia Bobyr \u003cillia.bobyr@gmail.com\u003e\n"
    },
    {
      "commit": "f39842f148c9a8112432644b7f4a0129315de771",
      "tree": "f62d5bad57fd1a73cdc4e2532656896ef5ab1b1c",
      "parents": [
        "d809c0a90387a23aed21ba37d0b65332fb5dafe7"
      ],
      "author": {
        "name": "Illia Bobyr",
        "email": "illia.bobyr@gmail.com",
        "time": "Sun Aug 27 18:21:23 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 27 18:24:59 2023 +0200"
      },
      "message": "patch 9.0.1793: obsolete macros in configure script\n\nProblem:  obsolete macros in configure script\nSolution: Remove those and start moving to autoconf 2.71\n\nsrc/configure.ac: Remove obsolete macros\n\nThese macros are declared obsolete in autoconf 2.69, which is almost 10\nyears old by now:\n\n  https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Obsolete-Macros.html\n\nThey generate warnings when in a subsequent upgrade to autoconf 2.71.\n\n`autoupdate` from autoupdate 2.71 suggests most of these changes, except\nthat it also adds obsolete warnings, that where individually checked and\nremoved.\n\nRegenerated `src/auto/configure` by running:\n\n  cd src\n  autoconf2.69 --output\u003dauto/configure configure.ac\n  sed --in-place --expression\u003d\u0027s@\u003econfig.log@\u003eauto/config.log@g\u0027 auto/configure\n\ncloses: #12888\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Illia Bobyr \u003cillia.bobyr@gmail.com\u003e\n"
    },
    {
      "commit": "d809c0a90387a23aed21ba37d0b65332fb5dafe7",
      "tree": "2d1e407ab6d503b26fdd1adce5a3b86a4e5c7156",
      "parents": [
        "58f39d89a8adff51ab04893d1fd28e3767979f9f"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Sun Aug 27 11:17:39 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 27 11:17:39 2023 +0200"
      },
      "message": "patch 9.0.1792: problem with gj/gk/gM and virtual text\n\nProblem:  Normal mode \"gM\", \"gj\", \"gk\" commands behave incorrectly with\n          virtual text.\nSolution: Use linetabsize() instead of linetabsize_str().\n\ncloses: #12909\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "58f39d89a8adff51ab04893d1fd28e3767979f9f",
      "tree": "f4584c051c4781ba4c12d9c1f405b8d144966f3f",
      "parents": [
        "8fbd9449e71f2ad93e594be575209a7424eb093e"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Aug 27 11:14:44 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 27 11:14:44 2023 +0200"
      },
      "message": "patch 9.0.1791: No tests for the termdebug plugin\n\nProblem:  No tests for the termdebug plugin\nSolution: Add some simple tests for the termdebug plugin\n\ncloses: #12927\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "8fbd9449e71f2ad93e594be575209a7424eb093e",
      "tree": "4813e963e015ebaaa410c5426d48f606b1b555bd",
      "parents": [
        "0db1ea481528917e64ff5cd2e3a6f26e0271d5db"
      ],
      "author": {
        "name": "Magnus Groß",
        "email": "magnus@mggross.com",
        "time": "Sun Aug 27 00:49:51 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 27 11:11:22 2023 +0200"
      },
      "message": "patch 9.0.1790: Redundant LSP Content-Type header\n\nProblem:  The Content-Type header is an optional header that some LSP\n          servers struggle with and may crash when encountering it.\nSolution: Drop the Content-Type header from all messages, because we use\n          the default value anyway.\n\nBecause pretty much all popular LSP clients (e.g. coc.nvim, VSCode) do\nnot send the Content-Type header, the LSP server ecosystem has developed\nsuch that some LSP servers may even crash when encountering it.\nTo improve compatibility with these misbehaving LSP servers, we drop\nthis header as well.\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Magnus Groß \u003cmagnus@mggross.com\u003e\n"
    },
    {
      "commit": "0db1ea481528917e64ff5cd2e3a6f26e0271d5db",
      "tree": "67b7eeb1c0b81dd69249af61a792c751397e91d0",
      "parents": [
        "20f61d96f8f36e7c0994f49b43d0eb78f5274cca"
      ],
      "author": {
        "name": "Anatolii Sakhnik",
        "email": "sakhnik@gmail.com",
        "time": "Sun Aug 27 04:31:58 2023 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 27 10:31:58 2023 +0200"
      },
      "message": "translation(ua): Refine (synchronize with Neovim) (#12928)\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e"
    },
    {
      "commit": "20f61d96f8f36e7c0994f49b43d0eb78f5274cca",
      "tree": "20766dd3b83233aa64b9f8c9d3c4eff5c03ec01d",
      "parents": [
        "4c215ecdafbc9a32bca885abc3272be741047291"
      ],
      "author": {
        "name": "mathew",
        "email": "glephunter@gmail.com",
        "time": "Sat Aug 26 18:11:02 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 26 18:11:31 2023 +0200"
      },
      "message": "patch 9.0.1789: too early declaration of variable in pum_set_selected()\n\nProblem:  too early declaration of variable in pum_set_selected()\nSolution: Move declaration to where it is actually used\n\ncloses: #12915\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: mathew \u003cglephunter@gmail.com\u003e\n"
    },
    {
      "commit": "4c215ecdafbc9a32bca885abc3272be741047291",
      "tree": "31c4eb6245324932da6625c6cedea22a6b9a7f04",
      "parents": [
        "535b9e12d02f5fef969fb680d579c586bd5f40db"
      ],
      "author": {
        "name": "K.Takata",
        "email": "kentkt@csc.jp",
        "time": "Sat Aug 26 18:05:08 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 26 18:05:08 2023 +0200"
      },
      "message": "patch 9.0.1788: C4090 warnings in strings.c\n\nProblem:  C4090 warnings in strings.c\nSolution: Add type casts\n\ncloses: #12917\n\nMSVC shows the following warnings:\n```\nstrings.c(2436): warning C4090: \u0027function\u0027: different \u0027const\u0027 qualifiers\nstrings.c(2774): warning C4090: \u0027function\u0027: different \u0027const\u0027 qualifiers\nstrings.c(3865): warning C4090: \u0027function\u0027: different \u0027const\u0027 qualifiers\n```\n\nSo add type casts to suppress them.\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Ken .Takata \u003ckentkt@csc.jp\u003e\n"
    },
    {
      "commit": "fa0094e1629332751d62416eb7f122181605ff5f",
      "tree": "2878c7edde4483423f9e1a5d7fd9f87f77ba9f1a",
      "parents": [
        "1da9fdb8c71416e5a0744de69e67ac186faecd45"
      ],
      "author": {
        "name": "Anatolii Sakhnik",
        "email": "sakhnik@gmail.com",
        "time": "Sat Aug 26 12:00:54 2023 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 26 18:00:54 2023 +0200"
      },
      "message": "translation(ua): Update Ukrainian translation (#12916)\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e"
    },
    {
      "commit": "1da9fdb8c71416e5a0744de69e67ac186faecd45",
      "tree": "1228cff4f916dec8022e858b17603e8bfaa80f79",
      "parents": [
        "e750f8c330bc28ee9f3b7dce06481311a090972f"
      ],
      "author": {
        "name": "Kevin Scannell",
        "email": "kscanne@gmail.com",
        "time": "Sat Aug 26 10:59:34 2023 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 26 17:59:34 2023 +0200"
      },
      "message": "translation(ir): Updated irish translation (#12918)\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e"
    },
    {
      "commit": "d42f95bbfb5abcc78a0cc99f326691f328a2f33e",
      "tree": "1d4d1c8b4f6e53187deca55fb1cf4607c737f171",
      "parents": [
        "2f25e40b1f545f4aa38377f0c25effb112b5d1ef"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 24 08:15:38 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 24 08:15:38 2023 +0200"
      },
      "message": "patch 9.0.1787: Cannot build with latest luajit\n\nProblem:  Cannot build with latest luajit\nSolution: adjust sed regexp and don\u0027t expect \u0027-\u0027 in version output\n\ncloses: #12896\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "afe0466fb1695fa8b9782eea8a8e9f9540d4cb85",
      "tree": "f71446a214e45f7c0cdcb186fe40d25d1a1da39d",
      "parents": [
        "1193951bebcff50d88403ce17dec5d3be14f131d"
      ],
      "author": {
        "name": "LemonBoy",
        "email": "thatlemon@gmail.com",
        "time": "Wed Aug 23 21:08:11 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Aug 23 21:08:11 2023 +0200"
      },
      "message": "patch 9.0.1786: Vim9: need instanceof() function\n\nProblem:  Vim9: need instanceof() function\nSolution: Implement instanceof() builtin\n\nImplemented in the same form as Python\u0027s isinstance because it allows\nfor checking multiple class types at the same time.\n\ncloses: #12867\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: LemonBoy \u003cthatlemon@gmail.com\u003e\n"
    },
    {
      "commit": "1193951bebcff50d88403ce17dec5d3be14f131d",
      "tree": "833b7f27acb6b6e7c3fc220c22f4e151208f6404",
      "parents": [
        "c51fa7bc4666baad81356b298da7a5ede410f868"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Wed Aug 23 20:58:01 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Aug 23 20:58:01 2023 +0200"
      },
      "message": "patch 9.0.1785: wrong cursor position with \u0027showbreak\u0027 and lcs-eol\n\nProblem:  wrong cursor position with \u0027showbreak\u0027 and lcs-eol\nSolution: Add size of \u0027showbreak\u0027 before when \u0027listchars\u0027 \"eol\" is used.\n          Also fix wrong cursor position with wrapping virtual text on\n          empty line and \u0027showbreak\u0027.\n\ncloses: #12891\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "c51fa7bc4666baad81356b298da7a5ede410f868",
      "tree": "b25ea1c11ef5d5062578e0c3906e255205abad26",
      "parents": [
        "3d3a9152fa6de7038fdfd6d6de25230ed825552a"
      ],
      "author": {
        "name": "mathew",
        "email": "glephunter@gmail.com",
        "time": "Wed Aug 23 20:55:17 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Aug 23 20:55:17 2023 +0200"
      },
      "message": "patch 9.0.1784: redundant else in pum_set_selected()\n\nProblem:  redundant else in pum_set_selected()\nSolution: Remove it\n\ncloses: #12893\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: mathew \u003cglephunter@gmail.com\u003e\n"
    },
    {
      "commit": "79d9cb4cb062253631db29efc779da36f76b1eea",
      "tree": "47d3e1df6d4b9ef082c98a374f1fb7b4912f1d5e",
      "parents": [
        "e059fae100448fee4b581dd5d90ee853ea18de7e"
      ],
      "author": {
        "name": "Emir SARI",
        "email": "emir_sari@icloud.com",
        "time": "Wed Aug 23 19:10:16 2023 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 23 17:10:16 2023 +0100"
      },
      "message": "Translation(tr): Update Turkish translations (#12897)\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e"
    },
    {
      "commit": "6551ace0fe69ccc6e4e02bda3f4a3db0b86e3781",
      "tree": "c65cc5d53dee38b5a1f9b11e702509e0f8420c7f",
      "parents": [
        "b557f4898208105b674df605403cac1b1292707b"
      ],
      "author": {
        "name": "Antonio Giovanni Colombo",
        "email": "azc100@gmail.com",
        "time": "Tue Aug 22 22:14:32 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Aug 22 22:15:13 2023 +0200"
      },
      "message": "Translations(it): Update po and menus for it\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "b557f4898208105b674df605403cac1b1292707b",
      "tree": "1f488959630dfabef4d8fe87928aeb462b455d32",
      "parents": [
        "171c5b9b0332493faa6caadd8c0d5cf52392d913"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Tue Aug 22 22:07:34 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Aug 22 22:07:34 2023 +0200"
      },
      "message": "patch 9.0.1783: Display issues with virt text smoothscroll and showbreak\n\nProblem:  Wrong display with wrapping virtual text or unprintable chars,\n          \u0027showbreak\u0027 and \u0027smoothscroll\u0027.\nSolution: Don\u0027t skip cells taken by \u0027showbreak\u0027 in screen lines before\n          \"w_skipcol\". Combined \"n_skip\" and \"skip_cells\".\n\ncloses: #12597\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "171c5b9b0332493faa6caadd8c0d5cf52392d913",
      "tree": "b7879b6e84281e8277dd8cd4db9b5bbfc9f855fe",
      "parents": [
        "757593c07a4f4ac43eb6c6e52fc299abc9bc08bc"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Tue Aug 22 21:48:50 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Aug 22 21:48:50 2023 +0200"
      },
      "message": "patch 9.0.1782: prop_list() does not return text_padding_left\n\nProblem:  prop_list() does not return text_padding_left\nSolution: Store and return the text_padding_left value for text\n          properties\n\ncloses: #12870\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "757593c07a4f4ac43eb6c6e52fc299abc9bc08bc",
      "tree": "67d0b94fc1f794596574acbae7055a465b662e9f",
      "parents": [
        "618e47d1cd93954bad26d47e5353b4f1432daa5e"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Aug 22 21:44:10 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Aug 22 21:44:10 2023 +0200"
      },
      "message": "patch 9.0.1781: Problems when setting bin/paste option\n\nProblem:  Problems when setting bin/paste option\nSolution: When setting binary/paste, remember that this also affects\n          depending options, so that :verbose set returns the right\n          location.\n\nMention if depending options for \u0027binary\u0027 or \u0027paste\u0027 have been reset\nindirectly. Add a test to verify it works.\n\nAlso noticed as small bug, that the global option value for expandtab\nwas not reset when paste option is set, so fix that while at it.\n\ncloses: #12837\ncloses: #12879\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "618e47d1cd93954bad26d47e5353b4f1432daa5e",
      "tree": "56be8ec254e3039862771c0a046c7fbb4ac3ffc1",
      "parents": [
        "8dabccd295271104ad5af0abc48e283d644cff59"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Tue Aug 22 21:29:28 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Aug 22 21:29:28 2023 +0200"
      },
      "message": "patch 9.0.1780: Vim9 type not defined during object creation\n\nProblem:  Vim9 type not defined during object creation\nSolution: Define type during object creation and not during class\n          definition, parse mulit-line member initializers, fix lock\n          initialization\n\nIf type is not specified for a member, set it during object creation\ninstead of during class definition.  Add a runtime type check for the\nobject member initialization expression\n\nAlso, while at it, when copying an object or class, make sure the lock\nis correctly initialized.\n\nAnd finally, parse multi-line member initializers correctly.\n\ncloses: #11957\ncloses: #12868\ncloses: #12869\ncloses: #12881\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nCo-authored-by: LemonBoy \u003cthatlemon@gmail.com\u003e\n"
    },
    {
      "commit": "8dabccd295271104ad5af0abc48e283d644cff59",
      "tree": "7fc015e2d7875279ac3188b3533d6100955d5cf0",
      "parents": [
        "a76f3221cdcfff6880213839de4d04cf0c7c60f8"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Tue Aug 22 21:22:24 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Aug 22 21:22:24 2023 +0200"
      },
      "message": "patch 9.0.1779: Need more state() tests\n\nProblem:  Need more state() tests\nSolution: Add a few more tests for operater pending mode and register\n          yank command\n\ncloses: #12883\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: author\n"
    },
    {
      "commit": "75dc1ed1adddbcde926872bb41dfe1a1b0029848",
      "tree": "9c5decc72478704fd532f21093a83f9f64b5708a",
      "parents": [
        "be07caa071ea93c07b1b2204a17237133f38b2bd"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 23:19:24 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 23:19:24 2023 +0200"
      },
      "message": "patch 9.0.1778: if_py_both: code-style issue\n\nProblem:  if_py_both: code-style issue\nSolution: add space\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "be07caa071ea93c07b1b2204a17237133f38b2bd",
      "tree": "034bd9653476bcaaf1e9a22ac90c86a9f0465c39",
      "parents": [
        "6d626c41842e2c3ab698338bbe5fcfcf0557ecd8"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 22:26:15 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 22:28:28 2023 +0200"
      },
      "message": "patch 9.0.1777: patch 9.0.1771 causes problems\n\nProblem:  patch 9.0.1771 causes problems\nSolution: revert it\n\nRevert \"patch 9.0.1771: regex: combining chars in collections not handled\"\nThis reverts commit ca22fc36a4e8a315f199893ee8ff6253573f5fbe.\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "c13b3d1350b60b94fe87f0761ea31c0e7fb6ebf3",
      "tree": "1f412e31f87c23aa12978d1d03d01e40495567d7",
      "parents": [
        "20cd8699acf6dc1071ee1bf0686bccba7df2c57c"
      ],
      "author": {
        "name": "Yee Cheng Chin",
        "email": "ychin.git@gmail.com",
        "time": "Sun Aug 20 21:18:38 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 21:18:38 2023 +0200"
      },
      "message": "patch 9.0.1776: No support for stable Python 3 ABI\n\nProblem:  No support for stable Python 3 ABI\nSolution: Support Python 3 stable ABI\n\nCommits:\n1) Support Python 3 stable ABI to allow mixed version interoperatbility\n\nVim currently supports embedding Python for use with plugins, and the\n\"dynamic\" linking option allows the user to specify a locally installed\nversion of Python by setting `pythonthreedll`. However, one caveat is\nthat the Python 3 libs are not binary compatible across minor versions,\nand mixing versions can potentially be dangerous (e.g. let\u0027s say Vim was\nlinked against the Python 3.10 SDK, but the user sets `pythonthreedll`\nto a 3.11 lib). Usually, nothing bad happens, but in theory this could\nlead to crashes, memory corruption, and other unpredictable behaviors.\nIt\u0027s also difficult for the user to tell something is wrong because Vim\nhas no way of reporting what Python 3 version Vim was linked with.\n\nFor Vim installed via a package manager, this usually isn\u0027t an issue\nbecause all the dependencies would already be figured out. For prebuilt\nVim binaries like MacVim (my motivation for working on this), AppImage,\nand Win32 installer this could potentially be an issue as usually a\nsingle binary is distributed. This is more tricky when a new Python\nversion is released, as there\u0027s a chicken-and-egg issue with deciding\nwhat Python version to build against and hard to keep in sync when a new\nPython version just drops and we have a mix of users of different Python\nversions, and a user just blindly upgrading to a new Python could lead to\nbad interactions with Vim.\n\nPython 3 does have a solution for this problem: stable ABI / limited API\n(see https://docs.python.org/3/c-api/stable.html). The C SDK limits the\nAPI to a set of functions that are promised to be stable across\nversions. This pull request adds an ifdef config that allows us to turn\nit on when building Vim. Vim binaries built with this option should be\nsafe to freely link with any Python 3 libraies without having the\nconstraint of having to use the same minor version.\n\nNote: Python 2 has no such concept and this doesn\u0027t change how Python 2\nintegration works (not that there is going to be a new version of Python\n2 that would cause compatibility issues in the future anyway).\n\n---\n\nTechnical details:\n\u003d\u003d\u003d\u003d\u003d\u003d\n\nThe stable ABI can be accessed when we compile with the Python 3 limited\nAPI (by defining `Py_LIMITED_API`). The Python 3 code (in `if_python3.c`\nand `if_py_both.h`) would now handle this and switch to limited API\nmode. Without it set, Vim will still use the full API as before so this\nis an opt-in change.\n\nThe main difference is that `PyType_Object` is now an opaque struct that\nwe can\u0027t directly create \"static types\" out of, and we have to create\ntype objects as \"heap types\" instead. This is because the struct is not\nstable and changes from version to version (e.g. 3.8 added a\n`tp_vectorcall` field to it). I had to change all the types to be\nallocated on the heap instead with just a pointer to them.\n\nOther functions are also simply missing in limited API, or they are\nintroduced too late (e.g. `PyUnicode_AsUTF8AndSize` in 3.10) to it that\nwe need some other ways to do the same thing, so I had to abstract a few\nthings into macros, and sometimes re-implement functions like\n`PyObject_NEW`.\n\nOne caveat is that in limited API, `OutputType` (used for replacing\n`sys.stdout`) no longer inherits from `PyStdPrinter_Type` which I don\u0027t\nthink has any real issue other than minor differences in how they\nconvert to a string and missing a couple functions like `mode()` and\n`fileno()`.\n\nAlso fixed an existing bug where `tp_basicsize` was set incorrectly for\n`BufferObject`, `TabListObject, `WinListObject`.\n\nTechnically, there could be a small performance drop, there is a little\nmore indirection with accessing type objects, and some APIs like\n`PyUnicode_AsUTF8AndSize` are missing, but in practice I didn\u0027t see any\ndifference, and any well-written Python plugin should try to avoid\nexcessing callbacks to the `vim` module in Python anyway.\n\nI only tested limited API mode down to Python 3.7, which seemes to\ncompile and work fine. I haven\u0027t tried earlier Python versions.\n\n2) Fix PyIter_Check on older Python vers / type##Ptr unused warning\n\nFor PyIter_Check, older versions exposed them as either macros (used in\nfull API), or a function (for use in limited API). A previous change\nexposed PyIter_Check to the dynamic build because Python just moved it\nto function-only in 3.10 anyway. Because of that, just make sure we\nalways grab the function in dynamic builds in earlier versions since\nthat\u0027s what Python eventually did anyway.\n\n3) Move Py_LIMITED_API define to configure script\n\nCan now use --with-python-stable-abi flag to customize what stable ABI\nversion to target. Can also use an env var to do so as well.\n\n4) Show +python/dyn-stable in :version, and allow has() feature query\n\nNot sure if the \"/dyn-stable\" suffix would break things, or whether we\nshould do it another way. Or just don\u0027t show it in version and rely on\nhas() feature checking.\n\n5) Documentation first draft. Still need to implement v:python3_version\n\n6) Fix PyIter_Check build breaks when compiling against Python 3.8\n\n7) Add CI coverage stable ABI on Linux/Windows / make configurable on Windows\n\nThis adds configurable options for Windows make files (both MinGW and\nMSVC). CI will also now exercise both traditional full API and stable\nABI for Linux and Windows in the matrix for coverage.\n\nAlso added a \"dynamic\" option to Linux matrix as a drive-by change to\nmake other scripting languages like Ruby / Perl testable under both\nstatic and dynamic builds.\n\n8) Fix inaccuracy in Windows docs\n\nPython\u0027s own docs are confusing but you don\u0027t actually want to use\n`python3.dll` for the dynamic linkage.\n\n9) Add generated autoconf file\n\n10) Add v:python3_version support\n\nThis variable indicates the version of Python3 that Vim was built\nagainst (PY_VERSION_HEX), and will be useful to check whether the Python\nlibrary you are loading in dynamically actually fits it. When built with\nstable ABI, it will be the limited ABI version instead\n(`Py_LIMITED_API`), which indicates the minimum version of Python 3 the\nuser should have, rather than the exact match. When stable ABI is used,\nwe won\u0027t be exposing PY_VERSION_HEX in this var because it just doesn\u0027t\nseem necessary to do so (the whole point of stable ABI is the promise\nthat it will work across versions), and I don\u0027t want to confuse the user\nwith too many variables.\n\nAlso, cleaned up some documentation, and added help tags.\n\n11) Fix Python 3.7 compat issues\n\nFix a couple issues when using limited API \u003c 3.8\n\n- Crash on exit: In Python 3.7, if a heap-allocated type is destroyed\n  before all instances are, it would cause a crash later. This happens\n  when we destroyed `OptionsType` before calling `Py_Finalize` when\n  using the limited API. To make it worse, later versions changed the\n  semantics and now each instance has a strong reference to its own type\n  and the recommendation has changed to have each instance de-ref its\n  own type and have its type in GC traversal. To avoid dealing with\n  these cross-version variations, we just don\u0027t free the heap type. They\n  are static types in non-limited-API anyway and are designed to last\n  through the entirety of the app, and we also don\u0027t restart the Python\n  runtime and therefore do not need it to have absolutely 0 leaks.\n\n  See:\n  - https://docs.python.org/3/whatsnew/3.8.html#changes-in-the-c-api\n  - https://docs.python.org/3/whatsnew/3.9.html#changes-in-the-c-api\n\n- PyIter_Check: This function is not provided in limited APIs older than\n  3.8. Previously I was trying to mock it out using manual\n  PyType_GetSlot() but it was brittle and also does not actually work\n  properly for static types (it will generate a Python error). Just\n  return false. It does mean using limited API \u003c 3.8 is not recommended\n  as you lose the functionality to handle iterators, but from playing\n  with plugins I couldn\u0027t find it to be an issue.\n\n- Fix loading of PyIter_Check so it will be done when limited API \u003c 3.8.\n  Otherwise loading a 3.7 Python lib will fail even if limited API was\n  specified to use it.\n\n12) Make sure to only load `PyUnicode_AsUTF8AndSize` in needed in limited API\n\nWe don\u0027t use this function unless limited API \u003e\u003d 3.10, but we were\nloading it regardless. Usually it\u0027s ok in Unix-like systems where Python\njust has a single lib that we load from, but in Windows where there is a\nseparate python3.dll this would not work as the symbol would not have\nbeen exposed in this more limited DLL file. This makes it much clearer\nunder what condition is this function needed.\n\ncloses: #12032\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yee Cheng Chin \u003cychin.git@gmail.com\u003e\n"
    },
    {
      "commit": "20cd8699acf6dc1071ee1bf0686bccba7df2c57c",
      "tree": "c93dd8e4871ba16557211b710b6e807fb2c1d882",
      "parents": [
        "92997dda789ad8061841128cbc99b15ec0374411"
      ],
      "author": {
        "name": "Johan Mattsson",
        "email": "39247600+mjunix@users.noreply.github.com",
        "time": "Sun Aug 20 21:07:29 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 21:07:29 2023 +0200"
      },
      "message": "patch 9.0.1775: Wrong comparison in vim9type.c\n\nProblem:  Wrong comparison in vim9type.c\nSolution: Change condition to false\n\ncloses: #12047\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Johan Mattsson \u003c39247600+mjunix@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "92997dda789ad8061841128cbc99b15ec0374411",
      "tree": "47a00691b428554c6d6bba0126e7b3874d28b135",
      "parents": [
        "19a3bc3addf9b4aa8150a01b11b4249c67d15d3b"
      ],
      "author": {
        "name": "Shougo Matsushita",
        "email": "Shougo.Matsu@gmail.com",
        "time": "Sun Aug 20 20:55:55 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 20:55:55 2023 +0200"
      },
      "message": "patch 9.0.1774: no support for custom cmdline completion\n\nProblem:  no support for custom cmdline completion\nSolution: Add new vimscript functions\n\nAdd the following two functions:\n- getcmdcompltype() returns custom and customlist functions\n\n- getcompletion() supports both custom and customlist\n\ncloses: #12228\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Shougo Matsushita \u003cShougo.Matsu@gmail.com\u003e\n"
    },
    {
      "commit": "19a3bc3addf9b4aa8150a01b11b4249c67d15d3b",
      "tree": "9a6778b92527ccb378862faadb48ca8d033354de",
      "parents": [
        "6633611f4280f33934c2ab9b6a3e84c04f054ad3"
      ],
      "author": {
        "name": "Doug Kearns",
        "email": "dougkearns@gmail.com",
        "time": "Sun Aug 20 20:51:12 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 20:53:47 2023 +0200"
      },
      "message": "patch 9.0.1773: cannot distinguish Forth and Fortran *.f files\n\nProblem:  cannot distinguish Forth and Fortran *.f files\nSolution: Add Filetype detection Code\n\nAlso add *.4th as a Forth filetype\n\ncloses: #12251\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Doug Kearns \u003cdougkearns@gmail.com\u003e\n"
    },
    {
      "commit": "16af913eeefb288ce968fb87e09a597413861900",
      "tree": "4184b8e4c195d1f2f79ae48320fc68583e3c13ab",
      "parents": [
        "478668013f060a75b8cd8cc6ca2cf2abb3bcc4a5"
      ],
      "author": {
        "name": "Luuk van Baal",
        "email": "luukvbaal@gmail.com",
        "time": "Sun Aug 20 20:44:59 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 20:44:59 2023 +0200"
      },
      "message": "patch 9.0.1772: Cursor may be adjusted in \u0027splitkeep\u0027ed windows\n\nProblem:    Cursor is adjusted in window that did not change in size by\n            \u0027splitkeep\u0027.\nSolution:   Only check that cursor position is valid in a window that\n            has changed in size.\n\ncloses: #12509\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Luuk van Baal \u003cluukvbaal@gmail.com\u003e\n"
    },
    {
      "commit": "ca22fc36a4e8a315f199893ee8ff6253573f5fbe",
      "tree": "04f91cc7a7e558105aa025b2c8a39017d45a4497",
      "parents": [
        "a6ab5e69d3f14da8036a3018e8e93c635803ee8b"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 20:34:22 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 20:38:56 2023 +0200"
      },
      "message": "patch 9.0.1771: regex: combining chars in collections not handled\n\nProblem:  regex: combining chars in collections not handled\nSolution: Check for following combining characters for NFA and BT engine\n\ncloses: #10459\ncloses: #10286\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "a6ab5e69d3f14da8036a3018e8e93c635803ee8b",
      "tree": "91c75c62f575cc7b66fdb65811a17e405fd97211",
      "parents": [
        "f6fb52b667eecb58bdd9b26bd462d5da61697cf7"
      ],
      "author": {
        "name": "Ibby",
        "email": "33922797+SleepySwords@users.noreply.github.com",
        "time": "Sun Aug 20 20:24:18 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 20:24:18 2023 +0200"
      },
      "message": "patch 9.0.1770: lines disappear when modifying chars before virt text\n\nProblem:  lines disappear when modifying chars before virt text\nSolution: take virtual text property length into account\n\ncloses: #12558\ncloses: #12244\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Ibby \u003c33922797+SleepySwords@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "f5d0f54790fa86dfe73b428a087c8d8e6f391857",
      "tree": "a1ef2d1657f55715d5fa0b0cbc44a0cc112bba22",
      "parents": [
        "9f29621415146abc046471440515e9e34f3e57a1"
      ],
      "author": {
        "name": "AmberArr",
        "email": "me@frost.moe",
        "time": "Sun Aug 20 20:03:45 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 20:03:45 2023 +0200"
      },
      "message": "patch 9.0.1769: executable() ignoring symlinks on Windows\n\nProblem:  executable() ignoring symlinks on Windows\nSolution: resolve reparse points\n\ncloses: #12562\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: AmberArr \u003cme@frost.moe\u003e\n"
    },
    {
      "commit": "2d0988ef93c6e8e59381c9cd123efbc2cd1faf92",
      "tree": "1921d2eb7cc0e8b9617ba1eb0d8efcf44d53a4a3",
      "parents": [
        "d4376dc3ebea91abcb4d9ef9963ef5b968048b78"
      ],
      "author": {
        "name": "Scott McKendry",
        "email": "scott.c.mckendry@gmail.com",
        "time": "Sun Aug 20 19:17:42 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 19:17:42 2023 +0200"
      },
      "message": "patch 9.0.1768: Runtime: no support for bicep files\n\nProblem:  Runtime: no support for bicep files\nSolution: Add filetype support for bicepparam\n\ncloses: #12784\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Scott McKendry \u003cscott.c.mckendry@gmail.com\u003e\n"
    },
    {
      "commit": "d4376dc3ebea91abcb4d9ef9963ef5b968048b78",
      "tree": "7adad0a7f8a0a82323c276354f33d1105a82a5a8",
      "parents": [
        "bedc69f9d67b117ab05aa735c701cd3899d1ae2d"
      ],
      "author": {
        "name": "Gregory Anders",
        "email": "greg@gpanders.com",
        "time": "Sun Aug 20 19:14:03 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 19:14:03 2023 +0200"
      },
      "message": "patch 9.0.1767: \u0027.-\u0027 no allowed in highlight group names\n\nProblem:  \u0027.-\u0027 no allowed in highlight group names\nSolution: Allow dot and hyphen characters in highlight group names\n\nAllow dots and hyphens in group names. There does not seem\nto be any reason for these to be disallowed.\n\ncloses: #12807\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Gregory Anders \u003cgreg@gpanders.com\u003e\nCo-authored-by: Sean Dewar \u003cseandewar@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "bedc69f9d67b117ab05aa735c701cd3899d1ae2d",
      "tree": "bb2317f53668234a8b7bf1b2454617ade0ea5d07",
      "parents": [
        "a055b441f556e4814a1838db687ac50f48617154"
      ],
      "author": {
        "name": "ChaseKnowlden",
        "email": "haroldknowlden@gmail.com",
        "time": "Sun Aug 20 19:08:28 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 19:10:03 2023 +0200"
      },
      "message": "patch 9.0.1766: Runtime: Missing QML support\n\nProblem:  Runtime: Missing QML support\nSolution: Add QML support to Vim\n\ncloses: #12810\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: ChaseKnowlden \u003charoldknowlden@gmail.com\u003e\n"
    },
    {
      "commit": "a055b441f556e4814a1838db687ac50f48617154",
      "tree": "58202df20b143c1c9f8d2a955ce1f8040991eb43",
      "parents": [
        "4924ad099f6b40505ebbd1a4a4056e9915d70141"
      ],
      "author": {
        "name": "Mike Gilbert",
        "email": "floppym@gentoo.org",
        "time": "Sun Aug 20 19:01:41 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 19:01:41 2023 +0200"
      },
      "message": "patch 9.0.1765: Error when cross-compiling Vim\n\nProblem:  Error when cross-compiling Vim\nSolution: use AC_CHECK_SIZEOF to find sizeof(wchar_t)\n\nThis fixes an error when cross compiling.\n\ncloses: #12828\n\nBug: https://bugs.gentoo.org/889430\nSigned-off-by: Mike Gilbert \u003cfloppym@gentoo.org\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "4924ad099f6b40505ebbd1a4a4056e9915d70141",
      "tree": "f47684b94b3c85a7eff34439a99a470c0154f7aa",
      "parents": [
        "787de412b8a64528c72517af762db335df4230f2"
      ],
      "author": {
        "name": "Philip H",
        "email": "47042125+pheiduck@users.noreply.github.com",
        "time": "Sun Aug 20 18:58:46 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 18:58:46 2023 +0200"
      },
      "message": "patch 9.0.1764: CI: label should not be set on all yml files\n\nProblem:  CI: label should not be set on all yml files\nSolution: only set it for specific yml files in .github\n\ncloses: #12855\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Philip H \u003c47042125+pheiduck@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "787de412b8a64528c72517af762db335df4230f2",
      "tree": "c9645e5feed6625580d3f17d1c6d637f58b0738d",
      "parents": [
        "ab9f2ecfd4ecaf74eeed0e5ec41355589af3ec8f"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 18:46:41 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 18:46:41 2023 +0200"
      },
      "message": "Translation: also update ru.cp1251.po file after 6cc8bc836616e9b0\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "ab9f2ecfd4ecaf74eeed0e5ec41355589af3ec8f",
      "tree": "69b60a7f93070e086eab544964c59d0de6b6bd61",
      "parents": [
        "f9037f186ad45b56c84f1efdc131480bec159e4f"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Sun Aug 20 18:35:10 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 18:41:42 2023 +0200"
      },
      "message": "patch 9.0.1763: crash when passing invalid buffer to undotree()\n\nProblem:  crash when passing invalid buffer to undotree()\nSolution: Use get_buf_arg() instead of tv_get_buf_from_arg().\n\ncloses: #12862\ncloses: #12830\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "f9037f186ad45b56c84f1efdc131480bec159e4f",
      "tree": "b010fb2dbf1c4d0fd4f117c5d167b8c55a340624",
      "parents": [
        "654bdbbd329e7267051cc2eb496bc52b66053081"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Aug 20 18:27:45 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 18:27:45 2023 +0200"
      },
      "message": "patch 9.0.1762: Not able to get the virtual text property\n\nProblem:  Not able to get the virtual text property\nSolution: Make prop_list() return virtual text and alignment\n\ncloses: #12860\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "654bdbbd329e7267051cc2eb496bc52b66053081",
      "tree": "3b745a01f6ba366db56792db959805c5413fa436",
      "parents": [
        "6ac1544e13d78e0deeca1f357d1d73947180171c"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Sun Aug 20 18:24:20 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 18:24:20 2023 +0200"
      },
      "message": "patch 9.0.1761: g\u003ckEnd\u003e behaves different from g\u003cend\u003e\n\nProblem:  g\u003ckEnd\u003e behaves different from g\u003cend\u003e\nSolution: Make g\u003ckEnd\u003e behave like g\u003cEnd\u003e\n\ncloses: #12861\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "6ac1544e13d78e0deeca1f357d1d73947180171c",
      "tree": "87cdbb42a368d402fce1773a4b9321cef96e8fc9",
      "parents": [
        "6cc8bc836616e9b0cda1d8cb6993a958f569ad7b"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Aug 20 18:20:17 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 18:20:17 2023 +0200"
      },
      "message": "patch 9.0.1760: vim9 class problem with new() constructor\n\nProblem:  vim9 class problem with new() constructor\nSolution: Don\u0027t allow a return type for the new() class constructor.\n\ncloses: #12863\ncloses: #12040\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "6cc8bc836616e9b0cda1d8cb6993a958f569ad7b",
      "tree": "abc476bf33840ddfb8324c0ea4ebdbfc7a9ada58",
      "parents": [
        "8fc6a1dae07aa63faa6bfe6ed93888635745830c"
      ],
      "author": {
        "name": "Restorer",
        "email": "69863286+RestorerZ@users.noreply.github.com",
        "time": "Sun Aug 20 16:15:48 2023 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 20 18:15:48 2023 +0200"
      },
      "message": "Translation: Russian PO file updated to Vim version 9.0.1757 (#12864)\n\nCo-authored-by: RestorerZ \u003crestorer@mail2k.ru\u003e"
    },
    {
      "commit": "8fc6a1dae07aa63faa6bfe6ed93888635745830c",
      "tree": "4324dfaf69a1081379f8cd4b5b8076887a99a586",
      "parents": [
        "0ffc17aa479867f6f3ee14a46cf71352f126b5ba"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Sun Aug 20 18:12:54 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 18:12:54 2023 +0200"
      },
      "message": "patch 9.0.1759: Visual highlight not working with cursor at end of screen line\n\nProblem:  Visual highlight not working with cursor at end of screen line\n          and \u0027showbreak\u0027.\nSolution: Only update \"vcol_prev\" when drawing buffer text.\n\ncloses: #12865\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "0ffc17aa479867f6f3ee14a46cf71352f126b5ba",
      "tree": "30394f93f2f873ed8df1e2ac293989bbb28dccfb",
      "parents": [
        "4b1cc7906f2fa9aa5a41c16467e5d3ac4b64e323"
      ],
      "author": {
        "name": "LemonBoy",
        "email": "thatlemon@gmail.com",
        "time": "Sun Aug 20 18:09:11 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 20 18:09:11 2023 +0200"
      },
      "message": "patch 9.0.1758: vim9 no class identifiers in stack dumps\n\nProblem:  vim9 no class identifiers in stack dumps\nSolution: Prefix class members in stack traces with the class name\n          followed by a dot.\n\ncloses: #12866\ncloses: #12078\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: LemonBoy \u003cthatlemon@gmail.com\u003e\n"
    },
    {
      "commit": "4b1cc7906f2fa9aa5a41c16467e5d3ac4b64e323",
      "tree": "631f81394457c15a17fe3859fe3034787c97c3df",
      "parents": [
        "e1eaae27f4f2d2522e45397756f3bca42be50988"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sat Aug 19 22:39:33 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 22:39:33 2023 +0200"
      },
      "message": "patch 9.0.1757: ex_class() function is too long\n\nProblem:  ex_class() function is too long\nSolution: refactor it\n\ncloses: #12858\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "e1eaae27f4f2d2522e45397756f3bca42be50988",
      "tree": "d52fdb0ae5c1bae7b8174374cfe5c43989c6a022",
      "parents": [
        "25dec33c9bd286eacd1767ce2f5324117132b33a"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 22:36:12 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 22:36:12 2023 +0200"
      },
      "message": "patch 9.0.1756: failing cursorline sign test\n\nProblem:  failing cursorline sign test\nSolution: only reset char attr, if cursorline\n          option is not set\n\nUnfortunately, commit dbeadf05b6a152e7d9c5cc23d9202057f8e99884 causes a\nfailure with the sign test Test_sign_cursor_position()\n\nThe root cause is, that resetting the character attribute will also\nreset the existing cursor line highlighting and this breaks the test,\nthat expects the cursor line highlighting to overrule the sign line\nhighlighting.\n\nSo change the condition to reset the character attribute by making sure\nthat this only happens, if the \u0027cursorline\u0027 option is not active and the\ncursor is not at the same line as the line to be drawn\n\ncloses: #12854\ncloses: #12859\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "25dec33c9bd286eacd1767ce2f5324117132b33a",
      "tree": "42e6359383b59e3e5d85a1120050a85fcb0c4aa6",
      "parents": [
        "f244b2fbf2df7f984074c287b3d854bc62472b23"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 22:15:44 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 22:15:44 2023 +0200"
      },
      "message": "patch 9.0.1755: CI still fails with sodium mlock error\n\nProblem: CI still fails with sodium mlock error\nSolution: catch mlock failure\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "f244b2fbf2df7f984074c287b3d854bc62472b23",
      "tree": "d53da85222c1b993b7688725ec7d5bf3b58efdee",
      "parents": [
        "b5f6fe9ca2661d06bc0be839447ce1995450b9de"
      ],
      "author": {
        "name": "LemonBoy",
        "email": "thatlemon@gmail.com",
        "time": "Sat Aug 19 16:02:04 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 16:02:04 2023 +0200"
      },
      "message": "patch 9.0.1754: still Ci breakage (after 9.0.1741)\n\nProblem: still ci breakage (after 9.0.1741)\nSolution: fix remaining issue\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: LemonBoy \u003cthatlemon@gmail.com\u003e\n"
    },
    {
      "commit": "b5f6fe9ca2661d06bc0be839447ce1995450b9de",
      "tree": "4be4a09f055f7faacf43a33af9f3af063f40040c",
      "parents": [
        "2b6a12af4dd0f9028b81f19cea2b07731e6f77b2"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 15:53:16 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 15:55:35 2023 +0200"
      },
      "message": "patch 9.0.1753: can\u0027t move to last non-blank char\n\nProblem: can\u0027t move to last non-blank char\nSolution: Make g\u003cend\u003e behave like that\n\nMake it possible to move to last non-blank char on a line\n\nWe can distinguish between g0 and g^ to move to the very first character\nand the first non-blank char.\n\nAnd while we can move to the last screen char, we cannot go to the last\nnon-blank screen char.\n\nSince I think g$ is the more widely used and known movement command (and\ng\u003cend\u003e is synonymous to it) change the behaviour of g\u003cend\u003e to move to\nlast non-screen char instead and don\u0027t have this be the same command as\nthe g$ command anymore.\n\nIf you want to keep the old behaviour, you can use:\n\n```\nnnoremap g\u003cend\u003e g$\n```\n\nAdd a test to verify the behaviour.\n\ncloses: #12593\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "2b6a12af4dd0f9028b81f19cea2b07731e6f77b2",
      "tree": "2a705bcfe9c871b797393648b6a1c8455d4d7bf0",
      "parents": [
        "8b8f7d19f89069a2100b2790bc4701e2a7d03a8b"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 15:49:38 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 15:50:52 2023 +0200"
      },
      "message": "patch 9.0.1752: CI: Coveralls is no longer used\n\nProblem: CI: Coveralls is no longer used\nSolution: Remove .coveralls.yml\n\nCoveralls is no longer used, we ditched using it in patch v9.0.1547,\ncommit 12eb0f4ec5a9d9899d09691f944e4fbfdf4318fd issue #12389\n\nSo let\u0027s remove the .coveralls.yml file, it does not seem useful\nanymore.\n\ncloses: #12851\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "8b8f7d19f89069a2100b2790bc4701e2a7d03a8b",
      "tree": "730a60f3f9c1fdd4e79f3041d6093ff5701cb546",
      "parents": [
        "0bbc1be0a3f7bb1e15203ea70ed35d2ca99320f4"
      ],
      "author": {
        "name": "Philip H",
        "email": "47042125+pheiduck@users.noreply.github.com",
        "time": "Sat Aug 19 15:46:11 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 15:46:11 2023 +0200"
      },
      "message": "patch 9.0.1751: CI: labeler configuration not found\n\nProblem: CI: labeler configuration not found\n         (after 9.0.1748)\nSolution: set configuration path\n\ncloses: #12852\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Philip H \u003c47042125+pheiduck@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "0bbc1be0a3f7bb1e15203ea70ed35d2ca99320f4",
      "tree": "6a01094085c727c913ed175233d7a5ff84d36108",
      "parents": [
        "dbeadf05b6a152e7d9c5cc23d9202057f8e99884"
      ],
      "author": {
        "name": "rhysd",
        "email": "lin90162@yahoo.co.jp",
        "time": "Sat Aug 19 15:42:54 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 15:42:54 2023 +0200"
      },
      "message": "patch 9.0.1750: CI: fails because of changed error messages\n\nProblem: CI: fails because of changed error messages\n         (after: 9.0.1741)\nSolution: Adjust expected error messages\n\ncloses: #12853\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: rhysd \u003clin90162@yahoo.co.jp\u003e\n"
    },
    {
      "commit": "dbeadf05b6a152e7d9c5cc23d9202057f8e99884",
      "tree": "c5077787ac0084ad3027075e402ced73af7b931d",
      "parents": [
        "6d192a4ac9ba600ec28eb86d2cc45dea67f5922b"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 15:35:04 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 15:35:04 2023 +0200"
      },
      "message": "patch 9.0.1749: Text property highlight doesn\u0027t override a sign highlight on TAB\n\nProblem: Text property highlight doesn\u0027t override a sign highlight over\n         a tab character\nSolution: Let text_property override tab highlighting\n\nThis fixes a few problems of text properties:\n\n-  text property highlighting when override\u003dtrue does not overwrite TAB\n   highlighting\n-  text property highlighting when override\u003dtrue does not overwrite TAB\n   highlighting with :set list\n-  text property highlighting is used instead of sign highlight after\n   the actual text ends when signs are present with linehl is set\n\ncloses: #21584\ncloses: #21592\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "6d192a4ac9ba600ec28eb86d2cc45dea67f5922b",
      "tree": "5ad8452bb2b94c9cd117a82f4c7d128ae998f2ff",
      "parents": [
        "b23db545ce7cb09ab08f1c5bfde97f44da2e8d00"
      ],
      "author": {
        "name": "Philip H",
        "email": "47042125+pheiduck@users.noreply.github.com",
        "time": "Sat Aug 19 14:30:47 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 14:45:26 2023 +0200"
      },
      "message": "patch 9.0.1748: CI: cannot label issues automatically\n\nProblem:  CI: cannot label issues automatically\nSolution: Create CI labeler\n\ncloses: #12788\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nSigned-off-by: Philip H \u003c47042125+pheiduck@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "6235a109c48ff2559eca3b16578c429ffb61eadc",
      "tree": "aee0f6d73bb544ab3b7f36e2893d60a2142c3e2c",
      "parents": [
        "28ae5a32fd071b9c5881c3c33f531191ed641e55"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Sat Aug 19 14:12:42 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 14:12:42 2023 +0200"
      },
      "message": "patch 9.0.1747: screenpos() may cause unnecessary redraw\n\nProblem:  screenpos() may cause unnecessary redraw.\nSolution: Don\u0027t unnecessarily reset VALID_WROW flag.\n\nVALID_WROW flag is only used by two functions: validate_cursor() and\ncursor_valid(), and cursor_valid() is only used once in ex_sleep().\nWhen adjust_plines_for_skipcol() was first added in patch 9.0.0640, it\nwas called in two functions: comp_botline() and curs_rows().\n- comp_botline() is called in two places:\n  - onepage(), which resets VALID_WROW flag immediately afterwards.\n  - validate_botline_win(), where resetting a VALID_ flag is strange.\n- curs_rows() is called in two places:\n  - curs_columns(), which sets VALID_WROW flag afterwards.\n  - validate_cline_row(), which is only used by GUI mouse focus.\n\nTherefore resetting VALID_WROW there doesn\u0027t seem to do anything useful.\nAlso, a w_skipcol check (which resets VALID_WROW flag) was added to\ncheck_cursor_moved() in patch 9.0.0734, which seems to make more sense\nthan resetting that flag in the middle of a computation.\n\nWhile at it make adjust_plines_for_skipcol() and textpos2screenpos() a\nbit less confusing:\n- Make adjust_plines_for_skipcol() return \"off\" instead of \"n - off\".\n- Use 0-based \"row\" in textpos2screenpos() until W_WINROW is added.\n\ncloses: #12832\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "28ae5a32fd071b9c5881c3c33f531191ed641e55",
      "tree": "a4dd6713d38ea3c998dbe87321fa21338a9adfb8",
      "parents": [
        "fc3058495d3ff58c8f2b9dd4452d0840f2d1fa42"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 14:09:16 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 14:10:48 2023 +0200"
      },
      "message": "patch 9.0.1746: vim9class compile error for char/char_u conversion\n\nProblem: vim9class compile error for char/char_u conversion\nSolution: Correctly cast to (char *)\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "fc3058495d3ff58c8f2b9dd4452d0840f2d1fa42",
      "tree": "127690c7f9017ca1239d10f551835db450edf787",
      "parents": [
        "c3172fe9e4d3ea7f705b5fc02fdb0c4ceb3df8b9"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Sat Aug 19 13:27:03 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 13:27:03 2023 +0200"
      },
      "message": "patch 9.0.1745: Missing test coverage for blockwise Visual highlight\n\nProblem:  Missing test coverage for blockwise Visual highlight with\n          virtual that starts with a double-width char.\nSolution: Add a new virtual text to the test. Some other small fixes.\n\ncloses: #12835\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "c3172fe9e4d3ea7f705b5fc02fdb0c4ceb3df8b9",
      "tree": "f85a2a68a52cc8a793f5064b3484a63686b61776",
      "parents": [
        "04510566b10b5552d4ce8ba32e5422e755a239fb"
      ],
      "author": {
        "name": "Sean Dewar",
        "email": "seandewar@users.noreply.github.com",
        "time": "Sat Aug 19 13:23:50 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 13:23:50 2023 +0200"
      },
      "message": "patch 9.0.1744: Dead code in open_cmdwin()\n\nProblem: Dead code in open_cmdwin()\nSolution: Remove it\n\ncloses: #12839\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Sean Dewar \u003cseandewar@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "04510566b10b5552d4ce8ba32e5422e755a239fb",
      "tree": "47b5626b4d26c6e3d4cc41f919751f176e2b69f4",
      "parents": [
        "44a6b72d7f4561d4c002f0a8083587ac69222826"
      ],
      "author": {
        "name": "K.Takata",
        "email": "kentkt@csc.jp",
        "time": "Sat Aug 19 13:17:43 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 13:20:19 2023 +0200"
      },
      "message": "Translations: Update po files for zh and ja\n\nUpdate po files by running `make` in `src/po/`.\nSome po files were out of sync with the files in other encodings.\n\nRelated: #12749, #12787\ncloses: #12826\ncloses: #12840\n"
    },
    {
      "commit": "44a6b72d7f4561d4c002f0a8083587ac69222826",
      "tree": "cdf419938f7c06e34825b7b2405aa1abda6f1e89",
      "parents": [
        "9994160bfe74501886bbbf5631aec8ea2ae05991"
      ],
      "author": {
        "name": "Doug Kearns",
        "email": "dougkearns@gmail.com",
        "time": "Sat Aug 19 13:13:11 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 13:13:11 2023 +0200"
      },
      "message": "patch 9.0.1743: Parameter of gui_gtk:gui_mch_browse incorrectly marked as UNUSED\n\nProblem:    Parameter of gui_gtk:gui_mch_browse incorrectly marked as\n            UNUSED.\nSolution:   Remove UNUSED flag.\n\ncloses: #12841\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Doug Kearns \u003cdougkearns@gmail.com\u003e\n"
    },
    {
      "commit": "9994160bfe74501886bbbf5631aec8ea2ae05991",
      "tree": "99acb17f9963bce48aa9abcd38ff860e682b7166",
      "parents": [
        "c5d2744c045f9ad058cbc799f2434d90a6d83516"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Sat Aug 19 13:08:50 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 13:08:50 2023 +0200"
      },
      "message": "patch 9.0.1742: wrong curswant when clicking on second cell of double-width char\n\nProblem:  Wrong curswant when clicking and the second cell of a\n          double-width char.\nSolution: Don\u0027t copy virtcol of the first char to the second one.\n\ncloses: #12842\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "c5d2744c045f9ad058cbc799f2434d90a6d83516",
      "tree": "76990a51b671ae6ab1973fe1f22d7109befc8b40",
      "parents": [
        "56bafd7a6a79203b86f7165a7bbac5730c170f64"
      ],
      "author": {
        "name": "LemonBoy",
        "email": "thatlemon@gmail.com",
        "time": "Sat Aug 19 13:02:35 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 13:04:53 2023 +0200"
      },
      "message": "patch 9.0.1741: No type checking in interfaces\n\nProblem: No type checking in interfaces\nSolution: Implement member type check in vim9 interfaces\n\nMost of the code is a small refactoring to allow the use of a where_T\nfor signaling the type mismatch, the type checking itself is pretty\nsimple.\n\nImprove where_T error reports\n\nLet the caller explicitly define the kind of location it\u0027s referring to\nand free the WT_ARGUMENT enum from its catch-all role.\n\nImplement type checking for interface methods\n\nFollows closely the logic used for type-checking the members.\n\ncloses: #12844\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: LemonBoy \u003cthatlemon@gmail.com\u003e\n"
    },
    {
      "commit": "0a0764684591c7c6a5d722b628f11dc96208e853",
      "tree": "c6f4295f155720549fad5a8771c8bf433a076199",
      "parents": [
        "38ab19e00f378eeead3baf95ee24b9665c76b350"
      ],
      "author": {
        "name": "Pierre Colin",
        "email": "48397990+Pierre-Colin@users.noreply.github.com",
        "time": "Sat Aug 19 11:56:57 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 11:56:57 2023 +0200"
      },
      "message": "patch 9.0.1740: segfault when reading invalid viminfo file\n\nProblem: segfault when reading invalid viminfo file\nSolution: Check the expected type in the viminfo file\n\nThanks to @yegappan for the included test.\n\ncloses: #12652\ncloses: #12845\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Pierre Colin \u003c48397990+Pierre-Colin@users.noreply.github.com\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nCo-authored-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "38ab19e00f378eeead3baf95ee24b9665c76b350",
      "tree": "583c59b782e573bf3707e867c13c8a1f9a5a7154",
      "parents": [
        "4dd266cb66d901cf5324f09405cfea3f004bd29f"
      ],
      "author": {
        "name": "James McCoy",
        "email": "jamessan@jamessan.com",
        "time": "Sat Aug 19 11:38:49 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 11:38:49 2023 +0200"
      },
      "message": "patch 9.0.1739: Leftover files in libvterm\n\nProblem: leftover files in libvterm\nSolution: Fix cleaning of libvterm directory\n\nDelete the libvterm/src/.libs directory and fix typo in libvterm/t/.libs\ndirectory name.\n\ncloses: #12846\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: James McCoy \u003cjamessan@jamessan.com\u003e\n"
    },
    {
      "commit": "4dd266cb66d901cf5324f09405cfea3f004bd29f",
      "tree": "107f870fe1c042d11466e459c3aaa1988b2d3bcf",
      "parents": [
        "b102728c204430b16a5d9e6720c882e12a687570"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Sat Aug 19 11:35:03 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 11:35:03 2023 +0200"
      },
      "message": "patch 9.0.1738: Duplicate code to reverse a string\n\nProblem:  Duplicate code to reverse a string\nSolution: Move reverse_text() to strings.c and remove string_reverse().\n\ncloses: #12847\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "b102728c204430b16a5d9e6720c882e12a687570",
      "tree": "d6c964007f203d2b9de0361ec6e8460dba47894c",
      "parents": [
        "e27578aee6cf34654473749cb8bd5c459e108a87"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sat Aug 19 11:26:42 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 11:26:42 2023 +0200"
      },
      "message": "patch 9.0.1737: Calling a base class method through an extended class fails\n\nProblem: Calling a base class method through an extended class fails\nSolution: Create lookup table for member index in the interface to\n          to the member class implementing the interface\n\nCreate additional tests for Vim9 classes.  Fix unconvered memory leaks\nand crashes found by the new tests.\n\ncloses: #12848\ncloses: #12089\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003eauthor\n"
    },
    {
      "commit": "e27578aee6cf34654473749cb8bd5c459e108a87",
      "tree": "16bf1acc9dc7b510255b86e0ae4005d7208a1b54",
      "parents": [
        "07a2b61d4c76b264740a47fac781803a9b8bcc08"
      ],
      "author": {
        "name": "Antonio Giovanni Colombo",
        "email": "azc100@gmail.com",
        "time": "Sat Aug 19 11:14:23 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Aug 19 11:18:30 2023 +0200"
      },
      "message": "Runtime: Update Italian Translation\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Antonio Giovanni Colombo \u003cazc100@gmail.com\u003e\n"
    },
    {
      "commit": "07a2b61d4c76b264740a47fac781803a9b8bcc08",
      "tree": "d3fbeaa388ec2036ce2a4c6cda754aaed428cd84",
      "parents": [
        "817db406bb12b9fd5df25d4cda392b515d44ee05"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Aug 18 01:18:22 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Aug 18 01:20:42 2023 +0200"
      },
      "message": "patch 9.0.1736: Github Actions times out after 20 minutes\n\nProblem: Github Actions times out after 20 minutes\nSolution: Increase the timeout to 25 minutes\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "e9ef347c137aca6c2592beb19da45a8aece65e11",
      "tree": "73bc357d08974eb47fcea85c810956f4b205f87f",
      "parents": [
        "be5cdd1d634c2dfc7e415499fb18f4d246a8721c"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Thu Aug 17 23:57:05 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 17 23:57:05 2023 +0200"
      },
      "message": "patch 9.0.1735: Rename completion specific findex var\n\nProblem: Rename completion specific findex var\nSolution: Move \"findex\" static variable to xp_selected in expand_T\n\ncloses: #12548\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "be5cdd1d634c2dfc7e415499fb18f4d246a8721c",
      "tree": "954b0530cecaf7040891d51dedf41988ab03b26c",
      "parents": [
        "d2af6c66fe9b6bbb58d6ffdf8b3aa6e57d993b1f"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Thu Aug 17 23:48:58 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 17 23:48:58 2023 +0200"
      },
      "message": "patch 9.0.1734: :runtime completion fails for multiple args\n\nProblem: :runtime completion fails for multiple args\nSolution: Make it work\n\ncloses: #12616\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "d2af6c66fe9b6bbb58d6ffdf8b3aa6e57d993b1f",
      "tree": "0b889775555e21bfb51f1a0a6f256a218394f1b8",
      "parents": [
        "d5475e8d8dc250f19043b730c10a01b06f1c8040"
      ],
      "author": {
        "name": "Philip H",
        "email": "47042125+pheiduck@users.noreply.github.com",
        "time": "Thu Aug 17 23:45:08 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 17 23:45:08 2023 +0200"
      },
      "message": "patch 9.0.1733: CI: cannot cache linux-modules-extra\n\nProblem: CI: cannot cache linux-modules-extra\nSolution: Enable caching and reduce failed downloads\n\ncloses: #12779\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Philip H \u003c47042125+pheiduck@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "d5475e8d8dc250f19043b730c10a01b06f1c8040",
      "tree": "1326093fbd7e046c87c2f820245ab83b84f256c1",
      "parents": [
        "6e940d9a1d4ff122aad1b0821c784a60b507d45c"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 17 23:34:09 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 17 23:41:33 2023 +0200"
      },
      "message": "patch 9.0.1732: vimexpr: shadowing variable\n\nProblem: vimexpr: shadowing variable\nSolution: Rename local variable\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "6e940d9a1d4ff122aad1b0821c784a60b507d45c",
      "tree": "318ffe4cdff069b3c5a494154480581750f777c3",
      "parents": [
        "8cfe52e6fbf44032cd40d1561e93644786b15ee7"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Thu Aug 17 23:21:40 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 17 23:21:40 2023 +0200"
      },
      "message": "patch 9.0.1731: blockwise Visual highlight not working with virtual text\n\nProblem: blockwise Visual highlight not working with virtual text\nSolution: Reset the correct variable at the end of virtual selection and\n          Check for double-width char inside virtual text.\n\ncloses: #12606\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "008c91537b55835aa91cd8fbe1a139256581da31",
      "tree": "e9826ea3e0ab6bddc2d6dbdd8c2caa1b4c71de87",
      "parents": [
        "bfe377b8f2d080e5f85c8cbecf3533456e1d6312"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Thu Aug 17 23:08:53 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 17 23:08:53 2023 +0200"
      },
      "message": "patch 9.0.1730: passing multiple patterns to runtime not working\n\nProblem: passing multiple patterns to runtime not working\nSolution: prepend prefix to each argument separately\n\ncloses: #12617\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "bfe377b8f2d080e5f85c8cbecf3533456e1d6312",
      "tree": "d709875e1dfbd342fe59b999cfeaa981761e2f3f",
      "parents": [
        "825cf813fa0fddf085fcbd3194781e875320ff63"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Thu Aug 17 22:58:53 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 17 22:58:53 2023 +0200"
      },
      "message": "patch 9.0.1729: screenpos() wrong when w_skipcol and cpoptions+\u003dn\n\nProblem:    screenpos() wrong result with w_skipcol and cpoptions+\u003dn\nSolution:   Use adjust_plines_for_skipcol() instead of subtracting\n            w_skipcol.\n\ncloses: #12625\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "825cf813fa0fddf085fcbd3194781e875320ff63",
      "tree": "8c97b2ff072b1021d804514d5aa49e642e665bda",
      "parents": [
        "b0efa49ed179d3aa1fa0358d4c3c6d35a0efb291"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Thu Aug 17 22:55:25 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 17 22:55:25 2023 +0200"
      },
      "message": "patch 9.0.1728: missing winid argument for virtcol()\n\nProblem: missing winid argument for virtcol()\nSolution: Add a {winid} argument to virtcol()\n\nOther functions col(), charcol() and virtcol2col() support a {winid}\nargument, so it makes sense for virtcol() to also support than.\n\nAlso add test for virtcol2col() with \u0027showbreak\u0027 and {winid}.\n\ncloses: #12633\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "b0efa49ed179d3aa1fa0358d4c3c6d35a0efb291",
      "tree": "f7ebc8fb2bd620198c1a0a0370048019e512ee3b",
      "parents": [
        "876f5fb570d8401aa4c58af4a5da91f10520aa9d"
      ],
      "author": {
        "name": "Sean Dewar",
        "email": "seandewar@users.noreply.github.com",
        "time": "Sat Jul 08 10:35:19 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 17 22:48:43 2023 +0200"
      },
      "message": "patch 9.0.1727: minor problems with the teapot\n\nProblem: minor problems with the teapot()\nSolution: remove the null check, update documentation\n\nUpdate the builtin-function-list entry. (It implicitly returns 0, but such\nfunctions usually use \"none\")\n\nAlso, tv_get_string_strict() can not return NULL, so remove that check\n\ncloses: #12647\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Sean Dewar \u003cseandewar@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "876f5fb570d8401aa4c58af4a5da91f10520aa9d",
      "tree": "a8092cac4d320598313b9860078ea6836243360f",
      "parents": [
        "e500ae8e29ad921378085f5d70ee5c0c537be1ba"
      ],
      "author": {
        "name": "Sean Dewar",
        "email": "seandewar@users.noreply.github.com",
        "time": "Thu Aug 17 22:40:05 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 17 22:40:05 2023 +0200"
      },
      "message": "patch 9.0.1726: incorrect heights in win_size_restore()\n\nProblem: incorrect heights in win_size_restore()\nSolution: avoid restoring incorrect heights in win_size_restore()\n\nChanging \u0027showtabline\u0027 or \u0027cmdheight\u0027 in the cmdwin restores incorrect\nwindow heights after closing the cmdwin.\n\nThis may produce a gap between the cmdline and the window above.\n\nSolution: restore window sizes only if the number of lines available for windows\nchanged; subtract the rows of the tabline, cmdline and last window\u0027s statusline\nfrom \u0027lines\u0027 (other statuslines don\u0027t matter).\n\ncloses: #12704\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Sean Dewar \u003cseandewar@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "e500ae8e29ad921378085f5d70ee5c0c537be1ba",
      "tree": "b0359471c2dd4bb6920edc9b98107e3730eff8a9",
      "parents": [
        "2261c89a49ff2115e1ccc9ab9211e9f0d5a37578"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Thu Aug 17 22:35:26 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 17 22:35:26 2023 +0200"
      },
      "message": "patch 9.0.1725: cursor pos wrong after concealed text with \u0027virtualedit\u0027\n\nProblem:    Wrong cursor position when clicking after concealed text\n            with \u0027virtualedit\u0027.\nSolution:   Store virtual columns in ScreenCols[] instead of text\n            columns, and always use coladvance() when clicking.\n\nThis also fixes incorrect curswant when clicking on a TAB, so now\nTest_normal_click_on_ctrl_char() asserts the same results as the ones\nbefore patch 9.0.0048.\n\ncloses: #12808\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "2261c89a49ff2115e1ccc9ab9211e9f0d5a37578",
      "tree": "b9ff6a0647672805578e1c7a0da038b134c565ca",
      "parents": [
        "5a0dd71ed914158ed21576516519e43f1e64bb78"
      ],
      "author": {
        "name": "h-east",
        "email": "h.east.727@gmail.com",
        "time": "Wed Aug 16 21:49:54 2023 +0900"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 17 22:31:10 2023 +0200"
      },
      "message": "patch 9.0.1724: vim9class constructor argument type checking bug\n\nProblem: vim9class constructor argument type checking bug\nSolution: fix it\n\ncloses: #12816\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: h-east \u003ch.east.727@gmail.com\u003e\n"
    },
    {
      "commit": "5a0dd71ed914158ed21576516519e43f1e64bb78",
      "tree": "5d07abfaee1978a3aa9ffc71d35ef704f51b33bc",
      "parents": [
        "bfc461f756c9b933ea6c5d776244667b6b1a84ef"
      ],
      "author": {
        "name": "Ivan Pešić",
        "email": "27575106+eevan78@users.noreply.github.com",
        "time": "Fri Aug 18 00:28:59 2023 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 17 22:28:59 2023 +0200"
      },
      "message": "Update sr.po (#12820)\n\n"
    },
    {
      "commit": "ad0c442f1fcc6fe9c433777ee3e5b9e6addc6d69",
      "tree": "60279c75b0d60c44f602a980717db10239fcbbe4",
      "parents": [
        "4f389e7c0fe7dfeccfa512a72fa36f9028d57159"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Thu Aug 17 22:15:47 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 17 22:15:47 2023 +0200"
      },
      "message": "patch 9.0.1723: Fix regression in {func} argument of reduce()\n\nProblem: Fix regression in {func} argument of reduce()\nSolution: pass function name as string again\n\nBefore patch 9.0.0548, passing a string as {func} argument of reduce()\nis treated as a function name, but after patch 9.0.0548 it is treated as\nan expression instead, which is useless as reduce() doesn\u0027t set any v:\nvariables. This PR restores the behavior of {func} before that patch.\n\nAlso correct an emsg() call, as e_string_list_or_blob_required doesn\u0027t\ncontain format specifiers.\n\ncloses: #12824\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "4f389e7c0fe7dfeccfa512a72fa36f9028d57159",
      "tree": "04951ce74f0aea2af302e90bebe813fc81bf08ca",
      "parents": [
        "4112acae0816e3f64c082b1e773dd5f4a100685e"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Thu Aug 17 22:10:40 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 17 22:11:16 2023 +0200"
      },
      "message": "patch 9.0.1722: wrong error messages when passing wrong types to count()\n\nProblem: wrong error messages when passing wrong types to count()\nSolution: fix it\n\nThis fixes two problems:\n1. When passing wrong type to {ic} argument of count(), two error\n   messages are given, the second of which is misleading.\n2. When passing wrong type to {comp} argument of count(), the error\n   message doesn\u0027t mention that {comp} may be a String.\n\ncloses: #12825\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "4112acae0816e3f64c082b1e773dd5f4a100685e",
      "tree": "7ed4ea7d065fc65f5c297921714ed9b8863414ef",
      "parents": [
        "a456b12011569be91418bbf6277d844c67e05e79"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Wed Aug 16 07:29:28 2023 +0800"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Aug 16 20:25:10 2023 +0200"
      },
      "message": "patch 9.0.1721: Build failure on Windows with dynamic lua\n\nProblem: Build failure on Windows with dynamic lua (after 9.0.1719)\nSolution: move definition further down in if_lua\n\ncloses: #12811\ncloses: #12814\ncloses: #12818\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "a456b12011569be91418bbf6277d844c67e05e79",
      "tree": "7b2e111a2ff9fe30820758c6a6694b7c257b5c13",
      "parents": [
        "20b33b56ad5d92c1c11e0859dc9333166625e0ad"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Wed Aug 16 20:14:37 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Aug 16 20:14:37 2023 +0200"
      },
      "message": "patch 9.0.1720: Vim9 class using wrong index for overridden method\n\nProblem: Vim9 class using wrong index for overridden method\nSolution: Use correct index for overridden method\n\ncloses: #12524\ncloses: #12813\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "cf8cde2e5a3bee4f33e39e354945bab367f5eb7c",
      "tree": "ede985a3c4044f9796e59ed5c20a2e49ff06f410",
      "parents": [
        "8a35033782de4e1f43fba15543fc8fb458944194"
      ],
      "author": {
        "name": "依云",
        "email": "lilydjwg@gmail.com",
        "time": "Wed Aug 16 05:22:48 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 15 23:22:48 2023 +0200"
      },
      "message": "zh_CN: update to use reordering (#12787)\n\n"
    },
    {
      "commit": "8a35033782de4e1f43fba15543fc8fb458944194",
      "tree": "aa4fb5f6534e8cb08834d9b990bb8b837c73520f",
      "parents": [
        "e98fb643ec5f84f9088c8b1434a0bd6ff988dc2d"
      ],
      "author": {
        "name": "Jesse Pavel",
        "email": "jpavel@alum.mit.edu",
        "time": "Sun Aug 13 22:05:45 2023 -0400"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Aug 15 23:21:05 2023 +0200"
      },
      "message": "patch 9.0.1719: if_lua: crash for for Lua functions invoked via Vim callbacks\n\nProblem: if_lua: crash for Lua functions invoked via Vim callbacks\nSolution: Use Lua registry rather than upvalues for udata cache\n\ncloses: #12785\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Jesse Pavel \u003cjpavel@alum.mit.edu\u003e\n"
    },
    {
      "commit": "e98fb643ec5f84f9088c8b1434a0bd6ff988dc2d",
      "tree": "a1652a573b74a2c75e5c4d623f95cbe047e9f3ab",
      "parents": [
        "636d32b327309f453e5cdfe75bbe7ad14550093a"
      ],
      "author": {
        "name": "LemonBoy",
        "email": "thatlemon@gmail.com",
        "time": "Tue Aug 15 23:07:55 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Aug 15 23:14:30 2023 +0200"
      },
      "message": "patch 9.0.1718: dict-completion does not respect region\n\nProblem: dict-completion does not respect region\nSolution: respect selected region in dict completion\n\nSet do_region to zero as we don\u0027t want a complete dump of the matching\nwords, we want the code to filter them according to the user\u0027s selected\nregion.\n\ncloses: #12792\ncloses: #7025\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: LemonBoy \u003cthatlemon@gmail.com\u003e\n"
    },
    {
      "commit": "b209b86e6636a16088ccacdac98213416c065bf2",
      "tree": "b6eb5f5ab5c0ab74a46a7d1ba0cd6e61e5548780",
      "parents": [
        "15a0a0281a060fd5968ca2f3c80e750137106adb"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Tue Aug 15 23:01:44 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Aug 15 23:01:44 2023 +0200"
      },
      "message": "patch 9.0.1717: virtcol2col returns last byte of a multi-byte char\n\nProblem: virtcol2col returns last byte of a multi-byte char\nSolution: Make it return the first byte for a multi-byte char\n\ncloses: #12786\ncloses: #12799\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "15a0a0281a060fd5968ca2f3c80e750137106adb",
      "tree": "0a37bca9a1560949672d15df5157630be645e8a3",
      "parents": [
        "7772c93a3ec1ce60469e9aea9899687ae1141f34"
      ],
      "author": {
        "name": "Zdenek Dohnal",
        "email": "zdohnal@redhat.com",
        "time": "Tue Aug 15 22:52:01 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Aug 15 22:52:01 2023 +0200"
      },
      "message": "patch 9.0.1716: Windows build with python 3.12 and clang fails\n\nProblem: Windows build with python 3.12 and clang fails\nSolution: Remove the PyBool_Type function pointer for python 3.12\n\nClang on Win doesn\u0027t like non-static functions in static struct with\nPython 3.12 - removing the new obfuscated function and protecting the\nold PyBool function for older Pythons fixes the issue.\n\ncloses: #12800\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Zdenek Dohnal \u003czdohnal@redhat.com\u003e\n"
    },
    {
      "commit": "7772c93a3ec1ce60469e9aea9899687ae1141f34",
      "tree": "2a407cb06bd5045b787f2f639daa02d0dd2409d9",
      "parents": [
        "e4c79d36150431ffb97cb8952ec482af2e57f228"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Tue Aug 15 22:48:40 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Aug 15 22:48:40 2023 +0200"
      },
      "message": "patch 9.0.1715: duplicate test in message_test.c\n\nProblem: duplicate test in message_test.c\nSolution: Remove duplicate test and make functions static\n\ncloses: #12803\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "e4c79d36150431ffb97cb8952ec482af2e57f228",
      "tree": "651d86eca16122c9798e43b9411fd2377196741b",
      "parents": [
        "ba913b14dde28f1f49b73a15f0a75038e12fde27"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Tue Aug 15 22:41:53 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Aug 15 22:41:53 2023 +0200"
      },
      "message": "patch 9.0.1714: getcompletion() \"cmdline\" fails after :autocmd\n\nProblem:  getcompletion() \"cmdline\" fails after :autocmd\nSolution: Use set_cmd_context() instead of set_one_cmd_context().\n\ncloses: #12804\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "ba913b14dde28f1f49b73a15f0a75038e12fde27",
      "tree": "7aeb6ebdd719899566a5d9ea8646c2930ad59606",
      "parents": [
        "5b0889b8bf25b0793b1949ec965c94b623900aba"
      ],
      "author": {
        "name": "Zdenek Dohnal",
        "email": "zdohnal@redhat.com",
        "time": "Tue Aug 15 22:34:45 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Aug 15 22:34:45 2023 +0200"
      },
      "message": "patch 9.0.1713: Github CI fails to load snd-dummy kernel module\n\nProblem: Github CI fails to load snd-dummy kernel module\nSolution: Make installation of linux-modules-extra optional\n\nlinux-modules-extra package are not available on Ubuntu 22 at the\nmoment, which breaks CI runs. The change make its installation\nconditional as the original `if-else` structure tried to do.\n\ncloses: #12801\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Zdenek Dohnal \u003czdohnal@redhat.com\u003e\n"
    },
    {
      "commit": "5b0889b8bf25b0793b1949ec965c94b623900aba",
      "tree": "7cfdf5306013c825c577516f13c28d18674ed071",
      "parents": [
        "d3515a1e88cf25c1d5eae8faa965b587a124e687"
      ],
      "author": {
        "name": "Jia-Ju Bai",
        "email": "baijiaju@buaa.edu.cn",
        "time": "Sun Aug 13 20:04:04 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 13 20:05:18 2023 +0200"
      },
      "message": "patch 9.0.1712: missing null check in object_clear()\n\nProblem: missing null check in object_clear()\nSolution: Add null check of cl\n\ncloses: #12627\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Jia-Ju Bai \u003cbaijiaju@buaa.edu.cn\u003e\n"
    },
    {
      "commit": "d3515a1e88cf25c1d5eae8faa965b587a124e687",
      "tree": "11065b68d96d08c92ddc5d0139755a52eaab6b75",
      "parents": [
        "4a8eb6e7a9df10f79bf95301ced012f0d6a13088"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Mon Jul 03 22:00:04 2023 +0800"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 13 20:00:14 2023 +0200"
      },
      "message": "patch 9.0.1711: dead code in charset.c\n\nProblem: dead code in charset.c\nSolution: remove it\n\nlinetabsize_col() calls init_chartabsize_arg() with 0 as \"lnum\", so\ncts.cts_has_prop_with_text is always FALSE.\n\ncloses: #PR\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "4a8eb6e7a9df10f79bf95301ced012f0d6a13088",
      "tree": "711e5d8845667ef5a03c73926f66a4708c86e3ed",
      "parents": [
        "e5e4709a6ac02dc2a17bd6e4d02e799269ba5ea9"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 13 19:43:42 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 13 19:43:42 2023 +0200"
      },
      "message": "patch 9.0.1710: scrolloff options work slightly different\n\nProblem: sidescrolloff and scrolloff options work slightly\n         different than other global-local options\nSolution: Make it behave consistent for all global-local options\n\nIt was noticed, that sidescrolloff and scrolloff options behave\ndifferently in comparison to other global-local window options like\n\u0027listchars\u0027\n\nSo make those two behave like other global-local options. Also add some\nextra documentation for a few special local-window options.\n\nAdd a few tests to make sure all global-local window options behave\nsimilar\n\ncloses: #12956\ncloses: #12643\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "e5e4709a6ac02dc2a17bd6e4d02e799269ba5ea9",
      "tree": "da325ce9a4783d48b63a33d96b44c54fb043eedd",
      "parents": [
        "8ef1fbc0c3ca8dca32c352f3cf30e7a4b3096a94"
      ],
      "author": {
        "name": "Zdenek Dohnal",
        "email": "zdohnal@redhat.com",
        "time": "Sun Aug 13 19:37:09 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 13 19:39:27 2023 +0200"
      },
      "message": "patch 9.0.1709: dynamic build with python 3.12 breaks\n\nProblem: dynamic build with python 3.12 breaks\nSolution: if_python3.c: Fix building dynamic Python3 interpreter\n\nThere are new extern global variables defined in python3 development\nfiles, which types are within python3 library, so they break dynamic\npython3 interpret Vim plugin.\n\nSince the variables are used in macro `Py_SIZE` which is used in other\npython3 headers, the dummy variables have to defined before including\nPython.h.\n\ncloses: #12660\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Zdenek Dohnal \u003czdohnal@redhat.com\u003e\n"
    },
    {
      "commit": "8ef1fbc0c3ca8dca32c352f3cf30e7a4b3096a94",
      "tree": "db6d8c64e30698119a43186fe24b4754f413bf36",
      "parents": [
        "badeedd913d9d6456ad8087911d024fd36800743"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Jul 17 20:09:37 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 13 19:32:37 2023 +0200"
      },
      "message": "patch 9.0.1708: getcompletion() failes for user-defined commands\n\nProblem: getcompletion() failes for user-defined commands\nSolution: set context for completion function\n\ncloses: #12681\ncloses: #12680\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "badeedd913d9d6456ad8087911d024fd36800743",
      "tree": "ce3b2ba3e9e373dcc8d86fba823d847f97ef7639",
      "parents": [
        "02551c9de0895dbe9105bd577e59c1fdde44355a"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 13 19:25:28 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Aug 13 19:27:46 2023 +0200"
      },
      "message": "patch 9.0.1707: Cannot wrap around in popup_filter_menu()\n\nProblem: Cannot wrap around in popup_filter_menu()\nSolution: Allow to wrap around by default\n\nCurrently, it is not possible, to wrap around at the end of the list\nusing e.g. down (and go back to the top) or up at the beginning of the\nlist and go directly to the last item. This is not consistent behaviour\nwith e.g. how the pum-menu currently works, so let\u0027s just allow this.\n\nAlso adjust tests about it.\n\ncloses: #12689\ncloses: #12693\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    }
  ],
  "next": "02551c9de0895dbe9105bd577e59c1fdde44355a"
}
