)]}'
{
  "log": [
    {
      "commit": "e5437c542709b77ade084f96e60d84d4e847e6d3",
      "tree": "3740cd5c1dea8039f504fcbfb10b07086bdf08bf",
      "parents": [
        "d8bf87c9fbd92fd6b837446e886d47e557adadbc"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sat Dec 16 14:11:19 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Dec 16 14:11:19 2023 +0100"
      },
      "message": "patch 9.0.2170: Vim9: no support for const/final class/objects vars\n\nProblem:  Vim9: no support for const/final class/objects vars\nSolution: Support final and const object and class variables\n\ncloses: #13655\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "d8bf87c9fbd92fd6b837446e886d47e557adadbc",
      "tree": "0a3ef3beef2fa291e2851bc5764a7bbb15b99e11",
      "parents": [
        "df12e39b8b9dd39056e22b452276622cb7b617fd"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Sat Dec 16 14:03:33 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Dec 16 14:03:33 2023 +0100"
      },
      "message": "patch 9.0.2169: Vim9: builtin funcs may accept a non-value\n\nProblem:  Vim9: builtin funcs may accept a non-value\nSolution: Restrict builtin functions that accept `type`\n\nThis PR finishes off detection and prevention of using a type as a\nvalue. It takes care of builtin functions. However there are some\nbuiltin functions, that need to be able to handle types as well as\nnon-args: instanceof(), type(), typename(), string().\n\nA \"bit\", FE_X, is added to funcentry_T; when set, the builtin function\ncan handle a type (class or type-alias) in addition to a value.\n\nNoteworthy change: Discovered that in compile_call() the builtin add()\nis compiled inline instead of calling the builtin. Had to add a check\nthere.\n\ncloses: #13688\n\nSigned-off-by: Ernie Rael \u003cerrael@raelity.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "df12e39b8b9dd39056e22b452276622cb7b617fd",
      "tree": "01462ce0832fb7a78def6d49d2b1ed857c8e77f7",
      "parents": [
        "3afc9f2556faf2574d7950d879f2bf61612f3367"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Dec 16 13:55:32 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Dec 16 13:55:32 2023 +0100"
      },
      "message": "patch 9.0.2168: Moving tabpages on :drop may cause an endless loop\n\nProblem:  Moving tabpages on :drop may cause an endless loop\nSolution: Disallow moving tabpages on :drop when cleaning up the arglist\n          first\n\nMoving tabpages during drop command may cause an endless loop\n\nWhen executing a :tab drop command, Vim will close all windows not in\nthe argument list. This triggers various autocommands. If a user has\ncreated an \u0027au Tabenter * :tabmove -\u0027 autocommand, this can cause Vim to\nend up in an endless loop, when trying to iterate over all tabs (which\nwould trigger the tabmove autocommand, which will change the tpnext\npointer, etc).\n\nSo instead of blocking all autocommands before we actually try to edit\nthe given file, lets simply disallow to move tabpages around. Otherwise,\nwe may change the expected number of events triggered during a :drop\ncommand, which users may rely on (there is actually a test, that expects\nvarious TabLeave/TabEnter autocommands) and would therefore be a\nbackwards incompatible change.\n\nDon\u0027t make this an error, as this could trigger several times during the\ndrop command, but silently ignore the :tabmove command in this case (and\nit should in fact finally trigger successfully when loading the given\nfile in a new tab). So let\u0027s just be quiet here instead.\n\nfixes:  #13676\ncloses: #13686\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "323dda1484d95ee5c8a1b2205f8c495446df75ee",
      "tree": "3ae846b682476cb8975a137936bb5642ad187ca1",
      "parents": [
        "74da0ee0a24799a312a3a8a65858237185ef7a23"
      ],
      "author": {
        "name": "iam28th",
        "email": "artyom28th@gmail.com",
        "time": "Thu Dec 14 20:30:26 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Dec 14 20:33:43 2023 +0100"
      },
      "message": "runtime(termdebug): add Tbreak command\n\ncloses: #13656\n\nSigned-off-by: iam28th \u003cartyom28th@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "74da0ee0a24799a312a3a8a65858237185ef7a23",
      "tree": "c615199ec9cbbbb5bdea225b1ab9da698f778701",
      "parents": [
        "549f8c0b4ebe47168c98f46c8b62b1eb33da7c9c"
      ],
      "author": {
        "name": "Doug Kearns",
        "email": "dougkearns@gmail.com",
        "time": "Thu Dec 14 20:26:26 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Dec 14 20:26:26 2023 +0100"
      },
      "message": "patch 9.0.2167: Vim9: not consistently using :var for declarations\n\nProblem:  Vim9-script object/class variable declarations use syntax\n\t  that is inconsistent with the rest of the language.\nSolution: Use :var to declare object and class variables.\n\ncloses: #13670\n\nSigned-off-by: Doug Kearns \u003cdougkearns@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "b077b58809f6bd1078f409829cc1964b8475f9fc",
      "tree": "107b60d5e8ef6e8f0471de02f281dbc7e510a919",
      "parents": [
        "9a775b4a2ae658e61f9d6582de72ea7a1b241aaa"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Thu Dec 14 20:11:44 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Dec 14 20:14:13 2023 +0100"
      },
      "message": "patch 9.0.2164: Vim9: can use type a func arg/return value\n\nProblem:  Vim9: can use type a func arg/return value\nSolution: Check if using type as function argument or return value\n\ncloses: #13675\n\nSigned-off-by: Ernie Rael \u003cerrael@raelity.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "fa831102c38c9192edf3aaf0cbcaff9ee5e006ac",
      "tree": "6643f2b8d5784dd0b9571fe9a53590a2102524a5",
      "parents": [
        "2a71b54d35361f3f0c24db88c672b426f8acc7b7"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Thu Dec 14 20:06:39 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Dec 14 20:06:39 2023 +0100"
      },
      "message": "patch 9.0.2163: Vim9: type can be assigned to list/dict\n\nProblem:  Vim9: type can be assigned to list/dict\nSolution: Prevent assigning a `type` to a `list` or `dict`\n\ncloses: #13683\n\nSigned-off-by: Ernie Rael \u003cerrael@raelity.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "d2e1c83962d4b392d1876d341c739d204553d01b",
      "tree": "221708c71d8501b4e8850eed019b30d0a996955b",
      "parents": [
        "7349c5160ab63d0737050a6b4da3e407ab0cfeb0"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Thu Dec 14 19:59:45 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Dec 14 19:59:45 2023 +0100"
      },
      "message": "patch 9.0.2161: Vim9: not able to use imported interfaces and classes\n\nProblem:  Vim9: not able to use imported interfaces and classes\nSolution: Detect imported class/interfaces names correclty\n\nfixes:  #13661\ncloses: #13685\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "2025af165ec68d831f0f0f668a3ceac3f39142ef",
      "tree": "beb22176d7d2fa61be4054de5a5830cb31b933eb",
      "parents": [
        "c1c3b83816c8e22c9a710fb0c0cebc180ee6ce1e"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Tue Dec 12 16:58:00 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Dec 12 16:58:00 2023 +0100"
      },
      "message": "patch 9.0.2160: instanceof() should use varargs as second arg\n\nProblem:  instanceof() should use varargs as second arg\nSolution: Modify `instanceof()` to use varargs instead of list\n\nModify `instanceof()` to use varargs instead of list\nValid `instanceof()` arguments are `type`s. A `type` is not a value;\nit cannot be added to a list.\n\nThis change is non-compatible with the current usage of instanceof;\nbut instanceof is relatively new and it\u0027s a trivial change.\n\nfixes: #13421\ncloses: #13644\n\nSigned-off-by: Ernie Rael \u003cerrael@raelity.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "ec54af4e26952d954a4cc009f62c80ea01445d30",
      "tree": "c67884d7beeb230ecae90b348522c1ea1ac88504",
      "parents": [
        "a40e1687e757ea4aa41e84006c739f575db75703"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Tue Dec 12 16:43:44 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Dec 12 16:43:44 2023 +0100"
      },
      "message": "patch 9.0.2159: screenpos() may crash with neg. column\n\nProblem:  screenpos() may crash with neg. column\nSolution: validate and correct column\n\ncloses: #13669\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "0f28791b215bd4c22ed580839409c2f7d39d8140",
      "tree": "48426013e84963dab16dcc478a9486c158b788a8",
      "parents": [
        "e4a450a87ba532cbfe1c4e97cac378eaafc3ae39"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Dec 11 17:53:25 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Dec 11 17:53:25 2023 +0100"
      },
      "message": "patch 9.0.2158: [security]: use-after-free in check_argument_type\n\nProblem:  [security]: use-after-free in check_argument_type\nSolution: Reset function type pointer when freeing the function type\n          list\n\nfunction pointer fp-\u003euf_func_type may point to the same memory, that was\nallocated for fp-\u003euf_type_list. However, when cleaning up a function\ndefinition (e.g. because it was invalid), fp-\u003euf_type_list will be\nfreed, but fp-\u003euf_func_type may still point to the same (now) invalid\nmemory address.\n\nSo when freeing the fp-\u003euf_type_list, check if fp-\u003efunc_type points to\nany of those types and if it does, reset the fp-\u003euf_func_type pointer to\nthe t_func_any (default) type pointer\n\ncloses: #13652\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "e4a450a87ba532cbfe1c4e97cac378eaafc3ae39",
      "tree": "9484dfdb32cba5112d6af8868e34066c1dd6ec29",
      "parents": [
        "9ed53752df1020a6881ac68d1bde2852c9a680aa"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Dec 08 20:57:38 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Dec 11 17:50:08 2023 +0100"
      },
      "message": "patch 9.0.2157: Vim9: incorrectly parses :def func definitions\n\nProblem:  Vim9: incorrectly parses :def func definitions\nSolution: check for more context when parsing function args\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nIncorrectly parses def function definitions\n\nVim currently allows to define the following vim9 function:\n  def Func(f\u003d\n  )\n  enddef\n\nIt currently thinks a Lambda is following the `\u003d` but it doesn\u0027t check,\nthat there is actually an expression following. So when such a think is\nencountered, remember that an expression should be following.\n\nIf no expression is coming in the next few lines, fail parsing the\nfunction arguments, which will Vim no longer accept such a function.\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "9ed53752df1020a6881ac68d1bde2852c9a680aa",
      "tree": "a99975a155438cacfc942a073910e1e038ed8f5a",
      "parents": [
        "fa920da283f6651083b40d0aa28a9eacd5116593"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Mon Dec 11 17:40:46 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Dec 11 17:40:46 2023 +0100"
      },
      "message": "patch 9.0.2156: Vim9: can use typealias in assignment\n\nProblem:  Vim9: can use typealias in an assignment\nSolution: Generate errors when class/typealias involved in the rhs of an\n          assignment\n\ncloses: #13637\n\nSigned-off-by: Ernie Rael \u003cerrael@raelity.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nGenerate errors when class/typealias involved in assignment.\n"
    },
    {
      "commit": "d33518522a84b5625e663c1b608e1c68f9f58003",
      "tree": "55e95d51f2f0484c0d5db68f4bcb951a8a89868c",
      "parents": [
        "f48558e10a08a1a483e25ef847bbceeac6b44561"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Fri Dec 08 21:41:23 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Dec 08 21:47:22 2023 +0100"
      },
      "message": "patch 9.0.2155: Vim9: type not kept when assigning vars\n\nProblem:  Vim9: type not kept when assigning vars\nSolution: When assigning a List or a Dict value to a variable of type\n          \u0027any\u0027, keep the type\n\ncloses: #13639\ncloses: #13646\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "f48558e10a08a1a483e25ef847bbceeac6b44561",
      "tree": "5f5d68ff220a64256c3167fbaccbdb5006881404",
      "parents": [
        "ff0baca86523f1e8c6ea593ec0ef2f9860f001d0"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Fri Dec 08 21:34:31 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Dec 08 21:36:55 2023 +0100"
      },
      "message": "patch 9.0.2154: The option[] array is not sorted\n\nProblem:  The options[] array is not sorted alphabetically.\nSolution: Sort it alphabetically.  Add a test.  Avoid unnecessary loop\n          iterations in findoption().\n\ncloses: #13648\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "668971958c126d5e105fd44b60a4efcaf2c4b55c",
      "tree": "660cd305570414d84a97bb8454cea6796ae17227",
      "parents": [
        "588f20decebebedba3ad733f4f443a597e9747c3"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Tue Dec 05 15:51:50 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Dec 05 15:51:50 2023 +0100"
      },
      "message": "patch 9.0.2152: Using type unknown for List/Dict containers\n\nProblem:  Using type unknown for List/Dict containers\nSolution: Use \u0027any\u0027 instead\n\nfixes: #13582\ncloses: #13625\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "588f20decebebedba3ad733f4f443a597e9747c3",
      "tree": "aa29da0cf6e21746dc25a6854d657441a6f3fb18",
      "parents": [
        "2103a56eab5a935f3c14c6e0b1610ff16fc8678f"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Tue Dec 05 15:47:09 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Dec 05 15:49:47 2023 +0100"
      },
      "message": "patch 9.0.2151: \u0027breakindent\u0027 is not drawn after diff filler lines\n\nProblem:  \u0027breakindent\u0027 is not drawn after diff filler lines.\nSolution: Correct check for whether \u0027breakindent\u0027 should be drawn.\n\ncloses: #13624\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "5dd41d4b6370b7b7d09d691f9252b3899c66102a",
      "tree": "99bcf9a51f84ef73d003206c2d2960b51bd133b3",
      "parents": [
        "1e5d66408ef85c750a5af03bbf5cc19b5de7a6bc"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Dec 04 22:52:23 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Dec 04 22:54:43 2023 +0100"
      },
      "message": "patch 9.0.2149: [security]: use-after-free in exec_instructions()\n\nProblem:  [security]: use-after-free in exec_instructions()\nSolution: get tv pointer again\n\n[security]: use-after-free in exec_instructions()\n\nexec_instructions may access freed memory, if the GA_GROWS_FAILS()\nre-allocates memory. When this happens, the typval tv may still point to\nnow already freed memory. So let\u0027s get that pointer again and compare it\nwith tv. If those two pointers differ, tv is now invalid and we have to\nrefresh the tv pointer.\n\ncloses: #13621\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "1e5d66408ef85c750a5af03bbf5cc19b5de7a6bc",
      "tree": "3b5cab656e15b35794025dcf84abccd94772dcce",
      "parents": [
        "ca2eca7c79bbb1afe4c4bb0a4ed8b18c72d581bf"
      ],
      "author": {
        "name": "Ronan Pigott",
        "email": "ronan@rjp.ie",
        "time": "Mon Dec 04 20:46:15 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Dec 04 20:46:15 2023 +0100"
      },
      "message": "patch 9.0.2148: Vim does not detect pacman.log file\n\nProblem:  Vim does not detect pacman.log file\nSolution: Detect pacmanlogs and add syntax highlighting\n\npacman.log is a filetype common to Arch Liux and related distributions.\nAdd some simple syntax highlighting for the pacmanlog filetype.\n\ncloses: #13618\n\nSigned-off-by: Ronan Pigott \u003cronan@rjp.ie\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "3ee25965e4fbf9f44f5fc31d6a827638e409c6f8",
      "tree": "4636cac126e37a5a34f27c986584fea6e18b2a35",
      "parents": [
        "0d0b3b19517c321b089d637919e88e49a07a3d85"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Mon Dec 04 20:31:14 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Dec 04 20:31:14 2023 +0100"
      },
      "message": "patch 9.0.2147: Type check tests fail without the channel feature\n\nProblem:  Type check tests fail without the channel feature\nSolution: only run tests, when Vim was build with +channel\n\nfixes: #13617\ncloses: #13619\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "0d0b3b19517c321b089d637919e88e49a07a3d85",
      "tree": "6314273c718ba15c92a351a8aea99dbeec0e51f3",
      "parents": [
        "5b4d1fcbf06757bae32a894871b9a649c84eba7f"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Dec 03 17:56:43 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Dec 03 17:56:43 2023 +0100"
      },
      "message": "patch 9.0.2146: text-property without type errors when joining\n\nProblem:  text-property without type errors when joining\nSolution: count all text-properties, with or without type\n          before joining lines\n\nError when joining lines with text properties without a proper type\n\nWhen joining lines, we need to consider all text properties that are\nattached to a line, even when those text properties are invalid and do\nnot have a type attached to them.\n\nHowever, since patch v9.0.0993\n(commit: 89469d157aea01513bde826b4519dd6b5fbceae4)\nthose text properties won\u0027t be counted when joining lines and therefore\nthis will cause the adjustment for text properties on joining to go\nwrong (and may later cause SIGABRT with an invalid free pointer)\n\nI am not sure, why the condition to not count text properties with a\nvalid type was added in patch v9.0.993, because no test fails if those\ncondition is removed. So let\u0027s just remove this condition and add a test\nthat verifies, that we are able to join lines, even when the text\nproperties attached to it do not have a valid type.\n\nfixes: #13609\ncloses: #13614\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "5b4d1fcbf06757bae32a894871b9a649c84eba7f",
      "tree": "a1b1fd68ad1574ab5d1e9986bff1ab64f0d86d01",
      "parents": [
        "4e26a9aab6ad0ceb6bab0fd70e1031abb429f233"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Sun Dec 03 17:54:10 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Dec 03 17:54:10 2023 +0100"
      },
      "message": "patch 9.0.2145: wrong scrolling in insert mode with smoothscroll\n\nProblem:  Wrong scrolling in Insert mode with \u0027smoothscroll\u0027 at the\n          bottom of the window.\nSolution: Don\u0027t use set_topline() when \u0027smoothscroll\u0027 is set.\n\nfixes: #13612\ncloses: #13613\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "4e26a9aab6ad0ceb6bab0fd70e1031abb429f233",
      "tree": "87581217708b233d30ccb37f2258ab9045d0deae",
      "parents": [
        "c089c3816b7109a6f12bd8e7bdd7cba071ce840d"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Sun Dec 03 17:50:47 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Dec 03 17:50:47 2023 +0100"
      },
      "message": "patch 9.0.2144: Text properties causes wrong line wrapping\n\nProblem:  Text properties causes wrong line wrapping to be drawn.\nSolution: Find the index of the last text property that inserts text.\n\ncloses: #13611\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "c089c3816b7109a6f12bd8e7bdd7cba071ce840d",
      "tree": "77b564ac8afddb5532ec376fd632a30e75129b18",
      "parents": [
        "abfa13ebe92d81aaf66669c428d767847b577453"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Dec 03 16:48:29 2023 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Dec 03 17:48:29 2023 +0100"
      },
      "message": "CI: disable the test_terminal_resize2() test for GH CI in gui mode (#13615)\n\nbecaues it tends to time-out CI for unknown reasons.\r\n\r\nrelated: #13566\r\n\r\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e"
    },
    {
      "commit": "abfa13ebe92d81aaf66669c428d767847b577453",
      "tree": "5b6d87d9c13568960be219188c849a4c41ba315c",
      "parents": [
        "b39b240c386a5a29241415541f1c99e2e6b8ce47"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Nov 30 11:32:18 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Dec 01 18:58:51 2023 +0100"
      },
      "message": "patch 9.0.2143: [security]: buffer-overflow in ex_substitute\n\nProblem:  [security]: buffer-overflow in ex_substitute\nSolution: clear memory after allocating\n\nWhen allocating the new_start pointer in ex_substitute() the memory\npointer points to some garbage that the following for loop in\nex_cmds.c:4743 confuses and causes it to accessing the new_start pointer\nbeyond it\u0027s size, leading to a buffer-overlow.\n\nSo fix this by using alloc_clear() instead of alloc(), which will\nclear the memory by NUL and therefore cause the loop to terminate\ncorrectly.\n\nReported by @henices, thanks!\n\ncloses: #13596\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "b39b240c386a5a29241415541f1c99e2e6b8ce47",
      "tree": "25ac23d0f18efb91f00bc053d326fa8549e9d484",
      "parents": [
        "0fb375aae608d7306b4baf9c1f906961f32e2abf"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Nov 29 11:34:05 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Dec 01 18:58:51 2023 +0100"
      },
      "message": "patch 9.0.2142: [security]: stack-buffer-overflow in option callback functions\n\nProblem:  [security]: stack-buffer-overflow in option callback functions\nSolution: pass size of errbuf down the call stack, use snprintf()\n          instead of sprintf()\n\nWe pass the error buffer down to the option callback functions, but in\nsome parts of the code, we simply use sprintf(buf) to write into the error\nbuffer, which can overflow.\n\nSo let\u0027s pass down the length of the error buffer and use sprintf(buf, size)\ninstead.\n\nReported by @henices, thanks!\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "0fb375aae608d7306b4baf9c1f906961f32e2abf",
      "tree": "10a990e59a5b11b65536b3ad9a482e0a26a9d584",
      "parents": [
        "eec0c2b3a4cfab93dd8d4adaa60638d47a2bbc8a"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Nov 29 10:23:39 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Dec 01 18:58:50 2023 +0100"
      },
      "message": "patch 9.0.2141: [security]: buffer-overflow in suggest_trie_walk\n\nProblem:  [security]: buffer-overflow in suggest_trie_walk\nSolution: Check n before using it as index into byts array\n\nBasically, n as an index into the byts array, can point to beyond the byts\narray. So let\u0027s double check, that n is within the expected range after\nincrementing it from sp-\u003ets_curi and bail out if it would be invalid.\n\nReported by @henices, thanks!\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "eec0c2b3a4cfab93dd8d4adaa60638d47a2bbc8a",
      "tree": "2f60c6c3095b52818325cbd6c92dcb293f8c8727",
      "parents": [
        "9cc95aa0d8f52bb0c906ca13297ce3a2ba615f2b"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Nov 28 22:03:48 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Dec 01 18:58:50 2023 +0100"
      },
      "message": "patch 9.0.2140: [security]: use-after-free in win-enter\n\nProblem:  [security]: use-after-free in win-enter\nSolution: validate window pointer before calling win_enter()\n\nwin_goto() may stop visual mode, if it is active. However, this may in\nturn trigger the ModeChanged autocommand, which could potentially free\nthe wp pointer which was valid before now became stale and points to now\nfreed memory.\n\nSo before calling win_enter(), let\u0027s verify one more time, that the\nwp pointer still points to a valid window structure.\n\nReported by @henices, thanks!\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "4f3480c94358e3b938594fc3574477e780525cd7",
      "tree": "f85b2afaac64977e2b2af55bc22b5af59c924ca2",
      "parents": [
        "926c3f45a20c9c9667466f69d8c33ef8acb354ec"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Dec 01 18:01:17 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Dec 01 18:01:17 2023 +0100"
      },
      "message": "patch 9.0.2139: html.angular ft is problematic\n\nProblem:  html.angular ft is problematic\nSolution: partly revert v9.0.2137\n\nThe html.angular filetype causes issues and does not trigger FileType\nautocommands for the html or angular filetypes.\n\nSo let\u0027s roll back that particular change and detect this only as html\nfile\n\nrelated: https://github.com/vim/vim/pull/13594#issuecomment-1834465890\n\ncloses: #13604\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "926c3f45a20c9c9667466f69d8c33ef8acb354ec",
      "tree": "50124a905d6229106b4f17789290aafd33681e26",
      "parents": [
        "fda700cb04612fe2f9301a9ba820309175decabf"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Dec 01 16:59:32 2023 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 01 17:59:32 2023 +0100"
      },
      "message": "CI: disable the test_terminal_resize() test for GH CI in GUI (#13603)\n\nfixes: #13566\r\n\r\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e"
    },
    {
      "commit": "7bed263c343c62129c5d8f51796895a28db1b312",
      "tree": "13af5edffd8155a8d288c02d9c72745ebccc39ed",
      "parents": [
        "110dd905ddded8a1300a047c6ae42cccd89b002f"
      ],
      "author": {
        "name": "ObserverOfTime",
        "email": "chronobserver@disroot.org",
        "time": "Thu Nov 30 17:41:19 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Nov 30 17:41:19 2023 +0100"
      },
      "message": "patch 9.0.2137: Can\u0027t detect angular \u0026 mustache filetypes\n\nProblem:  Can\u0027t detect angular \u0026 mustache filetypes\nSolution: Detect *.mustache as Mustache filetype;\n          detect *.component.html as html.angular filetype\n\ncloses: #13594\n\nSigned-off-by: ObserverOfTime \u003cchronobserver@disroot.org\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "fcaeb3d42b228e73c669b2fce78f1d3fe112769f",
      "tree": "17f2e6c51ddf848e1e5f9b99ff5bfbcbe4cd9261",
      "parents": [
        "ffd6d31cb2c1b1a963a6113c41495dfdf10a5de8"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Tue Nov 28 20:46:29 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Nov 28 20:46:29 2023 +0100"
      },
      "message": "patch 9.0.2135: No test for mode() when executing Ex commands\n\nProblem:  No test for mode() when executing Ex commands\nSolution: Add some test cases and simplify several other test cases.\n          Also add a few more test cases for ModeChanged.\n\ncloses: #13588\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "c4ffeddfe5bd1824650e9b911ed9245bf56c69e3",
      "tree": "70ce689983063144a5cf7eaba328933d8c141193",
      "parents": [
        "d1c3ef1f47c87d1da056c56564e1985fe6f2931d"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Nov 27 23:25:03 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Nov 27 23:25:03 2023 +0100"
      },
      "message": "patch 9.0.2134: ml_get error when scrolling\n\nProblem:  ml_get error when scrolling after delete\nSolution: mark topline to be validated in main_loop\n          if it is larger than current buffers line\n          count\n\nreset_lnums() is called after e.g. TextChanged autocommands and it may\naccidentally cause curwin-\u003ew_topline to become invalid, e.g. if the\nautocommand has deleted some lines.\n\nSo verify that curwin-\u003ew_topline points to a valid line and if not, mark\nthe window to have w_topline recalculated in main_loop() in\nupdate_topline() after reset_lnums() returns.\n\nfixes: #13568\nfixes: #13578\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "d1c3ef1f47c87d1da056c56564e1985fe6f2931d",
      "tree": "7bd06643fb0d918777d19f097d33275e160b4ccf",
      "parents": [
        "5c233437701e4a40327c73559cdda345471229b4"
      ],
      "author": {
        "name": "Sam-programs",
        "email": "None",
        "time": "Mon Nov 27 22:22:51 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Nov 27 22:22:51 2023 +0100"
      },
      "message": "patch 9.0.2133: Cannot detect overstrike mode in Cmdline mode\n\nProblem:  Cannot detect overstrike mode in Cmdline mode\nSolution: Make mode() return \"cr\" for overstrike\n\ncloses: #13569\n\nSigned-off-by: Sam-programs \u003cNone\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "b9efc72c2432f2d2a633c12d3a5b9fc3efb7b6e7",
      "tree": "05370b8cebbdf494f695f095297784a218153622",
      "parents": [
        "c6754de5dd2585a4f563db603b7d5827bf3fb7f3"
      ],
      "author": {
        "name": "Daniel Buch Hansen",
        "email": "boogiewasthere@gmail.com",
        "time": "Mon Nov 27 20:00:56 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Nov 27 20:00:56 2023 +0100"
      },
      "message": "patch 9.0.2131: not all nushell files detected\n\nProblem:  not all nushell files detected\nSolution: use *.nu to detect nushell files\n\ncloses: #13586\n\nSigned-off-by: Daniel Buch Hansen \u003cboogiewasthere@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "a555069b7d790abedc60edc505bd35bda257949d",
      "tree": "1514af3bf9ce5f9470b9b731f45ef2e8f6dd759f",
      "parents": [
        "8c14e79737c5df5cd111f60e7bda46cb0b9d89f7"
      ],
      "author": {
        "name": "mityu",
        "email": "mityu.mail@gmail.com",
        "time": "Sat Nov 25 15:41:20 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Nov 25 15:41:20 2023 +0100"
      },
      "message": "patch 9.0.2129: [security]: use-after-free in call_dfunc()\n\nProblem:  [security]: use-after-free in call_dfunc()\nSolution: Refresh dfunc pointer\n\ncloses: #13571\n\nThis Commit fixes a SEGV caused by a use-after-free bug in call_dfunc().\nWhen calling check_ufunc_arg_types() from the call_dfunc() it may cause\ndef functions to be re-compiled and if there are too many def functions,\nthe def_functions array will be re-allocated.  Which means, that the\ndfunc pointer in call_dfunc() now starts pointing to freed memory.\n\nSo we need to reset the dfunc pointer after calling\ncheck_ufunc_arg_types().\n\nLet\u0027s also add a test, to ensure we do not regress.\n\nSigned-off-by: mityu \u003cmityu.mail@gmail.com\u003e\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "2e31065a650015892179e520038bf2083a9519b6",
      "tree": "11606cc1f0564adcb22bbbb52f5954aa6b049ee8",
      "parents": [
        "e214692718d6a997a0540fc688e1417564416f80"
      ],
      "author": {
        "name": "Julien Marrec",
        "email": "julien.marrec@gmail.com",
        "time": "Sat Nov 25 15:30:46 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Nov 25 15:30:46 2023 +0100"
      },
      "message": "patch 9.0.2128: runtime(swig): add syntax and filetype plugins\n\nAdd syntax and filetype plugins for SWIG (Simplified Wrapper Interface\nGenerator) description files.\n\nThe default syntax for .i files highlights comments in a reverse\ncolor scheme which doesn\u0027t look well.  This syntax builds\non vim\u0027s c++ syntax by adding highlighting for common swig\ndirectives and user defined directives.  For an alternative\nsyntax, see vimscript #1247 (which I found after writing this).\n\ncloses: #13562\n\nCo-authored-by: Matěj Cepl \u003cmcepl@cepl.eu\u003e\nCo-authored-by: Julien Marrec \u003cjulien.marrec@gmail.com\u003e\nSigned-off-by: Julien Marrec \u003cjulien.marrec@gmail.com\u003e\nSigned-off-by: Doug Kearns \u003cdougkearns@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "00624a2fa08d04bdded240d474e9cfdc193dbe10",
      "tree": "17b6983aab398412244607f29ce699ad7ed60ef1",
      "parents": [
        "40ed6711bd385051021691980e8ce16375b4b510"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Thu Nov 23 20:47:16 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Nov 23 20:47:16 2023 +0100"
      },
      "message": "patch 9.0.2126: unused assignments when checking \u0027listchars\u0027\n\nProblem:  Unused assignments when checking the value of \u0027listchars\u0027.\nSolution: Loop only once when just checking the value.  Add a test to\n          check that this change doesn\u0027t cause double-free.\n\ncloses: #13559\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "40ed6711bd385051021691980e8ce16375b4b510",
      "tree": "602781b462eaf48c9e638e231ec8fb744df002a6",
      "parents": [
        "2b0882fa6555b4d0197afbdfc32a4533cf6aacf4"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Thu Nov 23 20:37:01 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Nov 23 20:37:01 2023 +0100"
      },
      "message": "patch 9.0.2125: File info disappears when \u0027cmdheight\u0027 has decreased\n\nProblem:  File info disappears immediately when \u0027cmdheight\u0027 has just\n          decreased due to switching tabpage and \u0027shortmess\u0027 doesn\u0027t\n          contain \u0027o\u0027 or \u0027O\u0027.\nSolution: Make sure msg_row isn\u0027t smaller than cmdline_row.\n\nfixes: #13560\ncloses: #13561\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "df63da98d8dc284b1c76cfe1b17fa0acbd6094d8",
      "tree": "9402c8040229da49fbf2e6590bca910acfda75e0",
      "parents": [
        "3770574e4a70e810add9929973c51f9070c8c851"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Nov 23 20:14:28 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Nov 23 20:14:28 2023 +0100"
      },
      "message": "patch 9.0.2123: Problem with initializing the length of range() lists\n\nProblem:  Problem with initializing the length of range() lists\nSolution: Set length explicitly when it shouldn\u0027t contain any items\n\nrange() may cause a wrong calculation of list length, which may later\nthen cause a segfault in list_find().  This is usually not a problem,\nbecause range_list_materialize() calculates the length, when it\nmaterializes the list.\n\nIn addition, in list_find() when the length of the range was wrongly\ninitialized, it may seem to be valid, so the check for list index\nout-of-bounds will not be true, because it is called before the list is\nactually materialized. And so we may eventually try to access a null\npointer, causing a segfault.\n\nSo this patch does 3 things:\n\n- In f_range(), when we know that the list should be empty, explicitly\n  set the list-\u003elv_len value to zero. This should happen, when\n  start is larger than end (in case the stride is positive) or\n  end is larger than start when the stride is negative.\n  This should fix the underlying issue properly. However,\n\n- as a safety measure, let\u0027s check that the requested index is not\n  out of range one more time, after the list has been materialized\n  and return NULL in case it suddenly is.\n\n- add a few more tests to verify the behaviour.\n\nfixes: #13557\ncloses: #13563\n\nCo-authored-by: Tim Pope \u003ctpope@github.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "3770574e4a70e810add9929973c51f9070c8c851",
      "tree": "4c07fbe0e332d8f4150c075ce96b5655da9fb625",
      "parents": [
        "26c11c56888d01e298cd8044caf860f3c26f57bb"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Nov 22 22:18:35 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Nov 22 22:18:35 2023 +0100"
      },
      "message": "patch 9.0.2122: [security]: prevent overflow in indenting\n\nProblem:  [security]: prevent overflow in indenting\nSolution: use long long and remove cast to (int)\n\nThe shiftwidth option values are defined as being long. However, when\ncalculating the actual amount of indent, we cast down to (int), which\nmay cause the shiftwidth value to become negative and later it may even\ncause Vim to try to allocate a huge amount of memory.\n\nWe already use long and long long variable types to calculate the indent\n(and detect possible overflows), so the cast to (int) seems superfluous\nand can be safely removed. So let\u0027s just remove the (int) cast and\ncalculate the indent using longs.\n\nAdditionally, the \u0027shiftwidth\u0027 option value is also used when determining\nthe actual \u0027cino\u0027 options. There it can again cause another overflow, so\nmake sure it is safe in parse_cino() as well.\n\nfixes: #13554\ncloses: #13555\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "26c11c56888d01e298cd8044caf860f3c26f57bb",
      "tree": "9e0ac2bb1868c31f2f8468b947666d2b2f1dbc61",
      "parents": [
        "8750e3cf81f12132e7b4141501feba586b1ae11d"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Nov 22 21:26:41 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Nov 22 21:52:45 2023 +0100"
      },
      "message": "patch 9.0.2121: [security]: use-after-free in ex_substitute\n\nProblem:  [security]: use-after-free in ex_substitute\nSolution: always allocate memory\n\ncloses: #13552\n\nA recursive :substitute command could cause a heap-use-after free in Vim\n(CVE-2023-48706).\n\nThe whole reproducible test is a bit tricky, I can only reproduce this\nreliably when no previous substitution command has been used yet\n(which is the reason, the test needs to run as first one in the\ntest_substitute.vim file) and as a combination of the `:~` command\ntogether with a :s command that contains the special substitution atom `~\\\u003d`\nwhich will make use of a sub-replace special atom and calls a vim script\nfunction.\n\nThere was a comment in the existing :s code, that already makes the\n`sub` variable allocate memory so that a recursive :s call won\u0027t be able\nto cause any issues here, so this was known as a potential problem\nalready.  But for the current test-case that one does not work, because\nthe substitution does not start with `\\\u003d` but with `~\\\u003d` (and since\nthere does not yet exist a previous substitution atom, Vim will simply\nincrement the `sub` pointer (which then was not allocated dynamically)\nand later one happily use a sub-replace special expression (which could\nthen free the `sub` var).\n\nThe following commit fixes this, by making the sub var always using\nallocated memory, which also means we need to free the pointer whenever\nwe leave the function. Since sub is now always an allocated variable,\nwe also do no longer need the sub_copy variable anymore, since this one\nwas used to indicated when sub pointed to allocated memory (and had\ntherefore to be freed on exit) and when not.\n\nGithub Security Advisory:\nhttps://github.com/vim/vim/security/advisories/GHSA-c8qm-x72m-q53q\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "e670d17342ea05af253b0452afb980397fa143be",
      "tree": "27545018a4a065c1e506b5b535f4dd8792b56200",
      "parents": [
        "6701abfb522ec1d2ac18a04495ea874b94496ca6"
      ],
      "author": {
        "name": "Luuk van Baal",
        "email": "luukvbaal@gmail.com",
        "time": "Sun Nov 19 10:55:35 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Nov 19 10:57:02 2023 +0100"
      },
      "message": "patch 9.0.2116: No test for defining sign without attribute\n\nProblem:  No test for defining sign without attribute\nSolution: Add test for defining sign without attributes\n\ncloses: #13544\n\nSigned-off-by: Luuk van Baal \u003cluukvbaal@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "6bf131888a3d1de62bbfa8a7ea03c0ddccfd496e",
      "tree": "db7b6854a3ba228733800239540e12dabe6f69e4",
      "parents": [
        "73b2d3790cad5694fc0ed0db2926e4220c48d968"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Nov 14 22:42:59 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Nov 16 22:04:38 2023 +0100"
      },
      "message": "patch 9.0.2112: [security]: overflow in shift_line\n\nProblem:  [security]: overflow in shift_line\nSolution: allow a max indent of INT_MAX\n\n[security]: overflow in shift_line\n\nWhen shifting lines in operator pending mode and using a very large\nvalue, we may overflow the size of integer. Fix this by using a long\nvariable, testing if the result would be larger than INT_MAX and if so,\nindent by INT_MAX value.\n\nSpecial case: We cannot use long here, since on 32bit architectures (or\non Windows?), it typically cannot take larger values than a plain int,\nso we have to use long long count, decide whether the resulting\nmultiplication of the shiftwidth value * amount is larger than INT_MAX\nand if so, we will store INT_MAX as possible larges value in the long\nlong count variable.\n\nThen we can safely cast it back to int when calling the functions to set\nthe indent (set_indent() or change_indent()). So this should be safe.\n\nAdd a test that when using a huge value in operator pending mode for\nshifting, we will shift by INT_MAX\n\ncloses: #13535\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "73b2d3790cad5694fc0ed0db2926e4220c48d968",
      "tree": "cb4526fbeb18d3ba71e57ea82c57d5d931534b5e",
      "parents": [
        "060623e4a3bc72b011e7cd92bedb3bfb64e06200"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Nov 14 21:58:26 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Nov 16 22:04:38 2023 +0100"
      },
      "message": "patch 9.0.2111: [security]: overflow in get_number\n\nProblem:  [security]: overflow in get_number\nSolution: Return 0 when the count gets too large\n\n[security]: overflow in get_number\n\nWhen using the z\u003d command, we may overflow the count with values larger\nthan MAX_INT. So verify that we do not overflow and in case when an\noverflow is detected, simply return 0\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "060623e4a3bc72b011e7cd92bedb3bfb64e06200",
      "tree": "10d957de477543bcf11d3973dabc0a62f1981520",
      "parents": [
        "58f9befca1fa172068effad7f2ea5a9d6a7b0cca"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Nov 14 21:33:29 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Nov 16 22:04:38 2023 +0100"
      },
      "message": "patch 9.0.2110: [security]: overflow in ex address parsing\n\nProblem:  [security]: overflow in ex address parsing\nSolution: Verify that lnum is positive, before substracting from\n          LONG_MAX\n\n[security]: overflow in ex address parsing\n\nWhen parsing relative ex addresses one may unintentionally cause an\noverflow (because LONG_MAX - lnum will overflow for negative addresses).\n\nSo verify that lnum is actually positive before doing the overflow\ncheck.\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "58f9befca1fa172068effad7f2ea5a9d6a7b0cca",
      "tree": "8bb272a54db549b297f4c79abd3024850a473809",
      "parents": [
        "ac63787734fda2e294e477af52b3bd601517fa78"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Nov 14 21:02:30 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Nov 16 22:04:37 2023 +0100"
      },
      "message": "patch 9.0.2109: [security]: overflow in nv_z_get_count\n\nProblem:  [security]: overflow in nv_z_get_count\nSolution: break out, if count is too large\n\nWhen getting the count for a normal z command, it may overflow for large\ncounts given. So verify, that we can safely store the result in a long.\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "ac63787734fda2e294e477af52b3bd601517fa78",
      "tree": "79a2df1e1b876a0920d47585343519aa4f8e3b9b",
      "parents": [
        "cb0b99f0672d8446585d26e998343dceca17d1ce"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Nov 14 20:45:48 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Nov 16 22:04:37 2023 +0100"
      },
      "message": "patch 9.0.2108: [security]: overflow with count for :s command\n\nProblem:  [security]: overflow with count for :s command\nSolution: Abort the :s command if the count is too large\n\nIf the count after the :s command is larger than what fits into a\n(signed) long variable, abort with e_value_too_large.\n\nAdds a test with INT_MAX as count and verify it correctly fails.\n\nIt seems the return value on Windows using mingw compiler wraps around,\nso the initial test using :s/./b/9999999999999999999999999990 doesn\u0027t\nfail there, since the count is wrapping around several times and finally\nis no longer larger than 2147483647. So let\u0027s just use 2147483647 in the\ntest, which hopefully will always cause a failure\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "cb0b99f0672d8446585d26e998343dceca17d1ce",
      "tree": "3cba6fe840cd98102776409e60a69ae0a24246aa",
      "parents": [
        "25aabc2b8ee1e19ced6f4da9d866cf9378fc4c5a"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Nov 14 20:05:59 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Nov 16 22:04:37 2023 +0100"
      },
      "message": "patch 9.0.2107: [security]: FPE in adjust_plines_for_skipcol\n\nProblem:  [security]: FPE in adjust_plines_for_skipcol\nSolution: don\u0027t divide by zero, return zero\n\nPrevent a floating point exception when calculating w_skipcol (which can\nhappen with a small window when the number option is set and cpo+\u003dn).\n\nAdd a test to verify\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "25aabc2b8ee1e19ced6f4da9d866cf9378fc4c5a",
      "tree": "9b56e90635d6bc6b124bda1d179348bcd6a2cf8d",
      "parents": [
        "67abf1592c83c910c7815478f67e0a8989d51417"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Nov 14 19:31:34 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Nov 16 22:04:00 2023 +0100"
      },
      "message": "patch 9.0.2106: [security]: Use-after-free in win_close()\n\nProblem:  [security]: Use-after-free in win_close()\nSolution: Check window is valid, before accessing it\n\nIf the current window structure is no longer valid (because a previous\nautocommand has already freed this window), fail and return before\nattempting to set win-\u003ew_closing variable.\n\nAdd a test to trigger ASAN in CI\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "bb800a7907209f7d349f87b76b3b9ca30b416298",
      "tree": "1a7b1b3aad1cc52050c1299935b5222d3e70b53e",
      "parents": [
        "bc8f79d36a456054ed29f46585830af6d71f57c8"
      ],
      "author": {
        "name": "Luuk van Baal",
        "email": "luukvbaal@gmail.com",
        "time": "Tue Nov 14 17:05:18 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Nov 14 17:05:18 2023 +0100"
      },
      "message": "patch 9.0.2105: skipcol not reset when topline changed\n\nProblem:  Skipcol is not reset when topline changed scrolling cursor to top\nSolution: reset skipcol\n\ncloses: #13528\ncloses: #13532\n\nSigned-off-by: Luuk van Baal \u003cluukvbaal@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "bc8f79d36a456054ed29f46585830af6d71f57c8",
      "tree": "b9a1e2fafc15d9a35b8b42ab1e83466ddfa40966",
      "parents": [
        "30c762d99ac8e755afb00f89ddd009988e95abce"
      ],
      "author": {
        "name": "rhysd",
        "email": "lin90162@yahoo.co.jp",
        "time": "Tue Nov 14 16:46:07 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Nov 14 16:46:07 2023 +0100"
      },
      "message": "patch 9.0.2104: wast filetype should be replaced by wat filetype\n\nProblem:  wast filetype should be replaced by wat filetype\nSolution: start using the official wat filetype name\n\nruntime: rename `wast` filetype to `wat` (Wasm text format)\n\nThe problem is the name of the current filetype wast. When the plugin\nwas initially created, the file extension for Wasm text format was not\nfixed and .wast was more popular.\n\nHowever, recently .wat became the official file extension for\nWebAssembly text (WAT) format and .wast is now a file extension for the\nunofficial WAST format, which is a superset of .wat for the convenience\nto describe the Wasm specification conformance tests.\n\nhttps://webassembly.js.org/docs/contrib-wat-vs-wast.html\n\nHowever for now, let\u0027s keep using the `wat` filetype even for the .wast\nextension, so that we at least do not lose the filetype settings and\nsyntax highlighting. This can be adjusted later, if it turns out to have\na separate need for.\n\ncloses: #13533\n\nSigned-off-by: rhysd \u003clin90162@yahoo.co.jp\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "9588666360e94de3ff58d4bc79aa9148fbf5fc44",
      "tree": "14e3385567aea2f4572ac79bda8ea670ab78b31b",
      "parents": [
        "2dd613f57bf17eb8ff050bcb5510eb0279f5c9ab"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Nov 12 16:55:01 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Nov 12 16:55:01 2023 +0100"
      },
      "message": "patch 9.0.2102: matchparen highlight not cleared in completion mode\n\nProblem:  matchparen highlight not cleared in completion mode\nSolution: Clear matchparen highlighting in completion mode\n\nRemove hard-coded hack in insexpand.c to clear the :3match before\ndisplaying the completion menu.\n\nAdd a test for matchparen highlighting. While at it, move all test tests\nrelated to the matchparen plugin into a separate test file.\n\ncloses: #13493\ncloses: #13524\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "2dd613f57bf17eb8ff050bcb5510eb0279f5c9ab",
      "tree": "daf76687cde4e64b5da85ffaef02eb3e3e00baf7",
      "parents": [
        "4ae16d721a4c866c8aae2ed331d4ce933b4cf300"
      ],
      "author": {
        "name": "Shane-XB-Qian",
        "email": "shane.qian@foxmail.com",
        "time": "Sun Nov 12 23:53:39 2023 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Nov 12 16:53:39 2023 +0100"
      },
      "message": "runtime(termdebug): improve the breakpoint sign label (#13525)\n\n// related #12589\r\n// that should be the last chat (I) with Bram, r.i.p\r\n\r\nSigned-off-by: shane.xb.qian \u003cshane.qian@foxmail.com\u003e\r\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e"
    },
    {
      "commit": "fdbadea4b60e5e1a0bf192dc5ee04d8ab06f4399",
      "tree": "394df6fccdd556651990f2685e2d03fc090fd24e",
      "parents": [
        "424da590e4d9dd13f94c0a2145a3f602976d5435"
      ],
      "author": {
        "name": "shane.xb.qian",
        "email": "shane.qian@foxmail.com",
        "time": "Sun Nov 12 09:42:12 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Nov 12 09:42:12 2023 +0100"
      },
      "message": "patch 9.0.2101: CI: test_termdebug may still fail\n\nProblem:  CI: test_termdebug may still fail\nSolution: use term_wait() to make it more robust\n\ncloses: #13529\n\nSigned-off-by: shane.xb.qian \u003cshane.qian@foxmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "305127f9f2f6058b4ec071041a2c98f76114a9b0",
      "tree": "898b5a1e9e2709046c8c454be777113e6bd0de1a",
      "parents": [
        "1b08d2cd0789fd9aaae148a64ff46342730022d7"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Nov 11 18:59:33 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Nov 11 18:59:33 2023 +0100"
      },
      "message": "patch 9.0.2100: CI: test_termdebug fails\n\nProblem:  CI: test_termdebug fails\nSolution: only test for a changed winlayout, if the window\n          width actually changed\n\nAlso, include an unrelated comment (which doesn\u0027t warrant its own patch\nnumber)\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "4f9074b96cc7efb1c829ca74902a851551dcf4e8",
      "tree": "df38ccfdca9b0a7b855e8c65a1807e0bd72efc65",
      "parents": [
        "bee966d3fe96f20656183d260dd03f6abb11ad79"
      ],
      "author": {
        "name": "ObserverOfTime",
        "email": "chronobserver@disroot.org",
        "time": "Sat Nov 11 09:12:27 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Nov 11 09:12:27 2023 +0100"
      },
      "message": "patch 9.0.2098: No filetype support for xcompose files\n\nProblem:  No filetype support for xcompose files\nSolution: Add filetype detection\n\ncloses: #13508\n\nSigned-off-by: ObserverOfTime \u003cchronobserver@disroot.org\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "8f0fe20ff1a13b468fdfaf85c434475f75c7a615",
      "tree": "f667f3fcb4a0e5d6ad72df27376804ed1f4c9dcc",
      "parents": [
        "03042a2753e3e6ac971045a8ce256d709214710e"
      ],
      "author": {
        "name": "Gerrit Meier",
        "email": "meistermeier@gmail.com",
        "time": "Sat Nov 11 08:58:26 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Nov 11 08:58:26 2023 +0100"
      },
      "message": "patch 9.0.2097: No support for cypher files\n\nProblem:  No support for cypher files\nSolution: Add cypher filetype detection\n\nCypher query language support to work with (mostly) graph databases.\n\nAlready existing lsp support in Neovim\u0027s nvim-lspconfig:\nhttps://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#cypher_ls\n\ncloses: #13516\n\nSigned-off-by: Gerrit Meier \u003cmeistermeier@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "03042a2753e3e6ac971045a8ce256d709214710e",
      "tree": "c05b42382c4bc1bb7c9c2faae1a9f6d01d43bf52",
      "parents": [
        "4b0018feca3a75c7ad3d88360ae197af09e267ee"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Sat Nov 11 08:53:32 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Nov 11 08:53:32 2023 +0100"
      },
      "message": "patch 9.0.2096: Vim9: confusing usage of private\n\nProblem:  Vim9: confusing usage of private\nSolution: clarify and use protected keyword instead\n\n[vim9class] document `_` as protected instead of private\n\nfixes #13504\ncloses: #13520\n\nSigned-off-by: Ernie Rael \u003cerrael@raelity.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "ca48202b6f46cfb40a0d1d80033a2f3e8cb7b813",
      "tree": "76cb9b903bdf8901aa6e78ad0155580a4e72d117",
      "parents": [
        "7fbbd7fdc6df9dc198b3735cfbe8dbe8afd646f9"
      ],
      "author": {
        "name": "shane.xb.qian",
        "email": "shane.qian@foxmail.com",
        "time": "Wed Nov 08 21:59:15 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Nov 08 22:03:26 2023 +0100"
      },
      "message": "runtime(termdebug): improve window handling, shorten var types\n\ncloses #13474\n\nSigned-off-by: shane.xb.qian \u003cshane.qian@foxmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "7fbbd7fdc6df9dc198b3735cfbe8dbe8afd646f9",
      "tree": "61573840649a9ae1f64665ff63f0dbb223c4d54c",
      "parents": [
        "6a650bf696f1df3214b3d788947447c5bbf1a77d"
      ],
      "author": {
        "name": "shane.xb.qian",
        "email": "shane.qian@foxmail.com",
        "time": "Wed Nov 08 21:44:48 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Nov 08 21:46:30 2023 +0100"
      },
      "message": "runtime(termdebug):  handle buffer-local mappings properly\n\ncloses: #13475\n\nSigned-off-by: shane.xb.qian \u003cshane.qian@foxmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "6a650bf696f1df3214b3d788947447c5bbf1a77d",
      "tree": "8734a25b02ca08bc77c0e77694564ed1e0d3e43e",
      "parents": [
        "1fc47c2c9bf3121268ebab03a0662e0cf2e5cb26"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Nov 08 21:23:29 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Nov 08 21:23:29 2023 +0100"
      },
      "message": "patch 9.0.2095: statusline may look different than expected\n\nProblem:  statusline may look different than expected\nSolution: do not check for highlighting of stl and stlnc characters\n\nstatusline fillchar may be different than expected\n\nIf the highlighting group for the statusline for the current window\n|hl-StatusLine| or the non-current window |hl-StatusLineNC| are cleared\n(or do not differ from each other), than Vim will use the hard-coded\nfallback values \u0027^\u0027 (for the non-current windows) or \u0027\u003d\u0027 (for the\ncurrent window).  I believe this was done, to make sure the statusline\nwill always be visible and be distinguishable from the rest of the\nwindow.\n\nHowever, this may be unexpected, if a user explicitly defined those\nfillchar characters just to notice that those values are then not used\nby Vim.\n\nSo, let\u0027s assume users know what they are doing and just always return\nthe configured stl and stlnc values.  And if they want the statusline to\nbe non-distinguishable from the rest of the window space, so be it.  It\nis their responsibility and Vim shall not know better what to use.\n\nfixes: #13366\ncloses: #13488\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "1fc47c2c9bf3121268ebab03a0662e0cf2e5cb26",
      "tree": "017d76dab53915bad732e98189836a9207552f21",
      "parents": [
        "d56f15caf602a061f5f9f0a3c6a4537ab2dc6acc"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Wed Nov 08 21:02:48 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Nov 08 21:10:11 2023 +0100"
      },
      "message": "patch 9.0.2094: Vim9: need more assignment tests\n\nProblem:  Vim9: need more assignment tests\nSolution: Add test for using different types in assignment, function\n          arguments and return values\n\ncloses: #13491\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "4d62a2f4439196c1cc0b2d0fc13a56dd03711b4d",
      "tree": "fefaac4612eab964edba63d660b4b7b9c9e0ad08",
      "parents": [
        "2a94e9879283c55b162cf4e6d9ac7e0b0c35bc97"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Wed Nov 08 20:48:05 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Nov 08 20:51:02 2023 +0100"
      },
      "message": "patch 9.0.2093: Unsupported option causes skipping of modeline test\n\nProblem:  Unsupported option causes rest of modeline test to be skipped.\nSolution: Revert the change from patch 8.2.1432.\n\ncloses: #13499\ncloses: #13500\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "2a94e9879283c55b162cf4e6d9ac7e0b0c35bc97",
      "tree": "ac1c97ef975be41c286466685c74d35ed13187b8",
      "parents": [
        "caee7956a21a8c1102266b31af44c432522bdb53"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Nov 05 19:17:10 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Nov 05 19:18:52 2023 +0100"
      },
      "message": "patch 9.0.2092: tests: failure in test_arabic\n\nProblem:  tests: failure in test_arabic\nSolution: adjust the test for the changed arabic keymap\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "6709816f7807c3ebb062a3124e660def184b739b",
      "tree": "10a73857988fb8f8a799e3fdf318576c7e1405be",
      "parents": [
        "4f174f0de90b52937ddaf1e6db98e9731930ff7c"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Nov 05 10:07:03 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Nov 05 10:07:03 2023 +0100"
      },
      "message": "patch 9.0.2091: Vim9: cannot convert list to string using +\u003d\n\nProblem:  Vim9: cannot convert list to string using +\u003d\n          (after 9.0.2072)\nSolution: convert dict index to string later in compile_member()\n\nfixes: #13485\ncloses: #13486\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "57f9ce1a0977da13e5923214086795ffa2d28ce1",
      "tree": "d0bae6e2534822005e208ba858cb6b054f2c47a2",
      "parents": [
        "b23c1fc596501a8dfc0355ed8084dcbf018f7907"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Nov 04 09:58:14 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Nov 04 09:58:14 2023 +0100"
      },
      "message": "patch 9.0.2090: complete_info() skips entries with \u0027noselect\u0027\n\nProblem:  complete_info() skips entries with \u0027noselect\u0027\nSolution: Check, if first entry is at original text state\n\nUnfortunately, Commit daef8c74375141974d61b85199b383017644978c\nintroduced a regression, that when \u0027:set completeopt+\u003dnoselect\u0027 is set\nand no completion item has been selected yet, it did not fill the\ncomplete_info[\u0027items\u0027] list.\n\nThis happened, because the current match item did not have the\nCP_ORIGINAL_TEXT flag set and then the cp-\u003eprev pointer did point to the\noriginal flag item, which caused the following while loop to not being\nrun but being skipped instead.\n\nSo when the \u0027noselect\u0027 is set, only start with to the previous selection\nitem, if the initial completion item has the CP_ORIGINAL_TEXT flag set,\nelse use the 2nd previous item instead.\n\nfixes: #13451\ncloses: #13452\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "5a53925a6eea929118e5438685e9ebc16ae48aa2",
      "tree": "e887d34223ac802be00b2231cb8aacee20b9e4b3",
      "parents": [
        "ce3b0136c6d9d09af41969d3dc9634f115505a32"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sat Nov 04 09:42:46 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Nov 04 09:42:46 2023 +0100"
      },
      "message": "patch 9.0.2088: Vim9: still allows abstract static methods\n\nProblem:  Vim9: still allows abstract static methods\n          (after v9.0.2084, v9.0.2085 and v9.0.2087)\nSolution: Disallow abstract static methods\n\ncloses: #13479\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "33c1da7ff49c3ccdce3a6d98bd620e324c5cd6ff",
      "tree": "42afee71a862c0863b50b03b95b9337d4dd72e39",
      "parents": [
        "deba02ddd46e9e8adfe2f7800c6be19d8c8e1a4d"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Nov 02 22:45:12 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Nov 02 22:45:12 2023 +0100"
      },
      "message": "patch 9.0.2087: build-failure in vim9class\n\nProblem:  build-failure in vim9class\nSolution: reference correct error message,\n          disable non-failing test\n\ncloses: #13476\ncloses: #13477\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "2b358adde079d7cc8a7f42fcd5627866641c9a59",
      "tree": "cfd3290e4dc63d6866d779960b234c6c3989ca0b",
      "parents": [
        "ef9e3f8924363939ff45fa385f50f57146ff365c"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Thu Nov 02 20:57:32 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Nov 02 20:58:58 2023 +0100"
      },
      "message": "patch 9.0.2085: Vim9: abstract can be used in interface\n\nProblem:  Vim9: abstract can be used in interface\nSolution: Disallow the use of abstract in an interface\n\nfixes: #13456\ncloses: #13464\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "ef9e3f8924363939ff45fa385f50f57146ff365c",
      "tree": "754b8f9aac9f3629de4e1f47a4975e4f56bbe311",
      "parents": [
        "1858e2b22ad168b1fd44a4efcd3a2b6cd9f6772d"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Thu Nov 02 20:43:57 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Nov 02 20:43:57 2023 +0100"
      },
      "message": "patch 9.0.2084: Vim9: abstract static methods are possible\n\nProblem:  Vim9: abstract static methods are possible\nSolution: Disallow abstract static methods\n\nfixes: #13462\ncloses: #13466\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "43cb8e1c3b60f6fcd30a9a0f9b01b86d640b2165",
      "tree": "ed3bc59e58b2ebc0deac3e1d5544425ebf79af3b",
      "parents": [
        "1bf1bf569b96d2f9b28e0cce0968ffbf2fb80aac"
      ],
      "author": {
        "name": "James McCoy",
        "email": "jamessan@jamessan.com",
        "time": "Thu Nov 02 20:05:38 2023 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Nov 02 20:05:38 2023 +0100"
      },
      "message": "patch 9.0.2082: test_channel may fail because of IPv6 config issue\n\nProblem:  test_channel may fail because of IPv6 config issues\nSolution: Catch and skip the test, if getaddrinfo() fails with\n          \u0027Address family not supported\u0027\n\nMark tests as skipped when ch_open encounters E901\n\nOn some of the Debian build systems, the IPv6 channel tests fail because\n`ch_open(\u0027[::1]:\u003cport\u003e\u0027, ...)` raises the error \"E901: getaddrinfo() in\nchannel_open(): Address family for hostname not supported\".\n\nThis appears to happen because getaddrinfo() can\u0027t perform the reverse\nlookup for the ::1, which is a config issue on that system.  Therefore,\ninstead of reporting a test failure, mark the test as skipped due to the\nbad network config\n\ncloses: #13473\n\nSigned-off-by: James McCoy \u003cjamessan@jamessan.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "1bf1bf569b96d2f9b28e0cce0968ffbf2fb80aac",
      "tree": "72b7fdecf5faca63e5dd71e6506bce076b44ca43",
      "parents": [
        "a390e984db20575dc726b4e0ebf95582265df8e7"
      ],
      "author": {
        "name": "Luuk van Baal",
        "email": "luukvbaal@gmail.com",
        "time": "Sat Oct 28 21:43:31 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Oct 28 21:43:31 2023 +0200"
      },
      "message": "patch 9.0.2081: smoothscroll may result in wrong cursor position\n\nProblem:  With \u0027smoothscroll\u0027 set, \"w_skipcol\" is not reset when unsetting \u0027wrap\u0027.\n          Resulting in incorrect calculation of the cursor position.\nSolution: Reset \"w_skipcol\" when unsetting \u0027wrap\u0027.\n\nfixes:  #12970\ncloses: #13439\n\nSigned-off-by: Luuk van Baal \u003cluukvbaal@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "171c50e0b0dd2608738bcc3809e5bc5e1e3cce35",
      "tree": "f4c99dc54b33d07bcede75511160cd10c4541b93",
      "parents": [
        "8ebdbc9e6d80b707c2b2d923e702dc86bf902923"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sat Oct 28 21:28:48 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Oct 28 21:31:53 2023 +0200"
      },
      "message": "patch 9.0.2080: vim9_script test too large\n\nProblem:  vim9_script test too large\nSolution: split vim9 type alias test into\n          separate test file\n\nMove type alias tests to a separate test file\n\ncloses: #13447\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "c1c177a47bfe1b9a524ede2743a689e461668d14",
      "tree": "6f6505bc3daf8fb88911cd80d17859454f48231b",
      "parents": [
        "feaccd239573a6265d39d3a917862ee40742eab4"
      ],
      "author": {
        "name": "Doug Kearns",
        "email": "dougkearns@gmail.com",
        "time": "Sat Oct 28 21:19:54 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Oct 28 21:21:49 2023 +0200"
      },
      "message": "patch 9.0.2079: Not all Dart files detected\n\nProblem:  Not all Dart files detected\nSolution: Add shebang filetype detection for Dart\n\ncloses: #13449\n\nSigned-off-by: Doug Kearns \u003cdougkearns@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "feaccd239573a6265d39d3a917862ee40742eab4",
      "tree": "3ccb80ce860395236ba3d4a44b4257af99e4b21a",
      "parents": [
        "87ca5e86fa0ef305f3d39cc4261b622f21417f7f"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sat Oct 28 15:53:55 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Oct 28 15:53:55 2023 +0200"
      },
      "message": "patch 9.0.2078: several problems with type aliases\n\nProblem:  several problems with type aliases\nSolution: Check for more error conditions, add tests,\n          fix issues\n\nCheck for more error conditions and add additional tests\n\nfixes  #13434\nfixes  #13437\nfixes  #13438\ncloses #13441\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "87ca5e86fa0ef305f3d39cc4261b622f21417f7f",
      "tree": "7d4ec23a4aabdfe25aa143d415ce521337b33501",
      "parents": [
        "ec3cebbd2b6b7583d2f683f5e66345163ec122aa"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Oct 27 19:47:29 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Oct 27 19:48:38 2023 +0200"
      },
      "message": "patch 9.0.2077: CI fails because of trailing whitespace in test\n\nProblem:  CI fails because of trailing whitespace in test\nSolution: Remove it\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "ec3cebbd2b6b7583d2f683f5e66345163ec122aa",
      "tree": "66f0c9b69e88fa4a0d35ae738f687b5679bc56e0",
      "parents": [
        "4bca4897a12dfb91b3b27e3083fd5f370bd857d1"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Fri Oct 27 19:35:26 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Oct 27 19:35:26 2023 +0200"
      },
      "message": "patch 9.0.2076: Vim9: No support for type aliases\n\nProblem:  Vim9: No support for type aliases\nSolution: Implement :type command\n\nA type definition is giving a name to a type specification.  This also known\ntype alias.\n\n\t:type ListOfStrings \u003d list\u003cstring\u003e\n\nThe type alias can be used wherever a built-in type can be used.  The type\nalias name must start with an upper case character.\n\ncloses: #13407\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "4bca4897a12dfb91b3b27e3083fd5f370bd857d1",
      "tree": "fb1e1775a2407a3865e97822f14a4996b4278294",
      "parents": [
        "daef8c74375141974d61b85199b383017644978c"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Oct 27 19:26:49 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Oct 27 19:26:49 2023 +0200"
      },
      "message": "patch 9.0.2075: TextChangedI may not always trigger\n\nProblem:  TextChangedI may not always trigger\nSolution: trigger it in more cases: for insert/\n          append/change operations, and when\n          opening a new line,\n\nfixes: #13367\ncloses: #13375\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nSigned-off-by: Evgeni Chasnovski \u003cevgeni.chasnovski@gmail.com\u003e\n"
    },
    {
      "commit": "daef8c74375141974d61b85199b383017644978c",
      "tree": "4f01097f548ecf68940146be063a5c21afdfe138",
      "parents": [
        "650dcfc8d12e68aa05a358301ec15f9e6dbd03ba"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Oct 27 19:16:26 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Oct 27 19:16:26 2023 +0200"
      },
      "message": "patch 9.0.2074: Completion menu may be wrong\n\nProblem:  Completion menu may be wrong\nSolution: Check for the original direction of the completion menu,\n          add more tests, make it work with \u0027noselect\u0027\n\ncompletion: move in right direction when  filling completion_info()\n\nWhen moving through the insert completion menu and switching directions,\nwe need to make sure we start at the correct position in the list and\nmove correctly forward/backwards through it, so that we do not skip\nentries and the selected item points to the correct entry in the list\nof completion entries generated by the completion_info() function.\n\nThe general case is this:\n\n1) CTRL-X CTRL-N, we will traverse the list starting from\n   compl_first_match and then go forwards (using the cp-\u003enext pointer)\n   through the list (skipping the very first entry, which has the\n   CP_ORIGINAL_TEXT flag set (since that is the empty/non-selected entry\n\n2) CTRL-X CTRL-P, we will traverse the list starting from\n   compl_first_match (which now points to the last entry). The previous\n   entry will have the CP_ORIGINAL_TEXT flag set, so we need to start\n   traversing the list from the second prev pointer.\n\nThere are in fact 2 special cases after starting the completion menu\nwith CTRL-X:\n\n3)  CTRL-N and then going backwards by pressing CTRL-P again.\n    compl_first_match will point to the same entry as in step 1 above,\n    but since compl_dir_foward() has been switched by pressing CTRL-P\n    to backwards we need to pretend to be in still in case 1 and still\n    traverse the list in forward direction using the cp_next pointer\n\n4)  CTRL-P and then going forwards by pressing CTRL-N again.\n    compl_first_match will point to the same entry as in step 2 above,\n    but since compl_dir_foward() has been switched by pressing CTRL-N\n    to forwards we need to pretend to be in still in case 2 and still\n    traverse the list in backward direction using the cp_prev pointer\n\nFor the \u0027noselect\u0027 case however, this is slightly different again. When\ngoing backwards, we only need to go one cp_prev pointer back. And\nresting of the direction works again slightly different. So we need to\ntake the noselect option into account when deciding in which direction\nto iterate through the list of matches.\n\nrelated: #13402\nrelated: #12971\ncloses: #13408\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "c229a6ac0775e07dff456ca8832c516e57a74e74",
      "tree": "59214f47ac823decad11c0eef5beca4bb2e94b1c",
      "parents": [
        "10407df7a95d0311c7d2eb920d3b72020db5b301"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Thu Oct 26 23:05:07 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Oct 26 23:05:07 2023 +0200"
      },
      "message": "patch 9.0.2072: Vim9: no nr2str conversion in list-unpack\n\nProblem:  Vim9: no nr2str conversion in list-unpack\nSolution: Generate 2STRING instruction to convert dict index to string\n\nGenerate instruction to convert dict index to a string\n\nfixes:  #13417\ncloses: #13424\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "10407df7a95d0311c7d2eb920d3b72020db5b301",
      "tree": "e5abc2eb1cac4ed93c889f9805f92ed6ca73bb0c",
      "parents": [
        "6b89dd6a7257a1e2e9c7ea070b407bc4674a5118"
      ],
      "author": {
        "name": "Colin Kennedy",
        "email": "colinvfx@gmail.com",
        "time": "Thu Oct 26 23:00:05 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Oct 26 23:03:15 2023 +0200"
      },
      "message": "patch 9.0.2071: objdump files not recognized\n\nProblem:  objdump files not recognized\nSolution: detect *.objdump files, add a filetype plugin\n\nAdded the objdump file/text format\n\ncloses: #13425\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Colin Kennedy \u003ccolinvfx@gmail.com\u003e\n"
    },
    {
      "commit": "9198c1f2b1ddecde22af918541e0de2a32f0f45a",
      "tree": "2af602f979b00fea18542cd679191c320009f9b2",
      "parents": [
        "5f5131d775bf9966976e39aa38b070036cbfe969"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Oct 26 21:29:32 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Oct 26 21:29:32 2023 +0200"
      },
      "message": "patch 9.0.2068: [security] overflow in :history\n\nProblem:  [security] overflow in :history\nSolution: Check that value fits into int\n\nThe get_list_range() function, used to parse numbers for the :history\nand :clist command internally uses long variables to store the numbers.\nHowever function arguments are integer pointers, which can then\noverflow.\n\nCheck that the return value from the vim_str2nr() function is not larger\nthan INT_MAX and if yes, bail out with an error. I guess nobody uses a\ncmdline/clist history that needs so many entries... (famous last words).\n\nIt is only a moderate vulnerability, so impact should be low.\n\nGithub Advisory:\nhttps://github.com/vim/vim/security/advisories/GHSA-q22m-h7m2-9mgm\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "1c14030aff238abef03bdf87e6b33c7e5d7ffd51",
      "tree": "e76bdc209b45d94c2a60167898738703fe41f180",
      "parents": [
        "3932072ab435eb171ab55b2a2c0185358cd0d7bf"
      ],
      "author": {
        "name": "OldWorldOrdr",
        "email": "joey.t.reinhart@gmail.com",
        "time": "Wed Oct 25 20:57:30 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Oct 25 20:57:30 2023 +0200"
      },
      "message": "patch 9.0.2066: xxd: corrupting files when reversing bit dumps\n\nProblem:  xxd: corrupting files when reversing bit dumps\nSolution: handle reversing bit dump slightly differently\n\nfixes:  #13410\ncloses: #13415\n\nCo-authored-by: OldWorldOrdr \u003cjoey.t.reinhart@gmail.com\u003e\nCo-authored-by: K.Takata \u003ckentkt@csc.jp\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nSigned-off-by: K.Takata \u003ckentkt@csc.jp\u003e\nSigned-off-by: tristhaus \u003ctristhaus@yahoo.de\u003e\n"
    },
    {
      "commit": "b731800522af00fd348814d33a065b92e698afc3",
      "tree": "7607eb64e4a8475a13341590ac6cd7bd7f2f499d",
      "parents": [
        "5985879e3c36383155f84649fa42d06813a1893e"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Wed Oct 25 20:50:28 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Oct 25 20:50:28 2023 +0200"
      },
      "message": "patch 9.0.2064: cannot use buffer-number for errorformat\n\nProblem:  cannot use buffer-number for errorformat\nSolution: add support for parsing a buffer number using \u0027%b\u0027 in\n          \u0027errorformat\u0027\n\ncloses: #13419\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "7d254dbc2db35badc65668db85f826f605486986",
      "tree": "1f1ebb2b63b2ef68ad980a4cf542d1dba870ad9f",
      "parents": [
        "c038427d2a27445e612761f19c92b2b8b05afdea"
      ],
      "author": {
        "name": "Guido Cella",
        "email": "guido@guidocella.xyz",
        "time": "Mon Oct 23 19:27:06 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Oct 23 19:27:06 2023 +0200"
      },
      "message": "patch 9.0.2063: pacman hooks are detected as conf filetype\n\nProblem:  pacman hooks are detected as conf filetype\nSolution: make it consistent to pacman.conf and detect those\n          hooks as confini\n\nBecause confini has much better syntax highlighting than conf.\n\nFor reference, I identified pacman.conf and pacman hooks as dosini in\nhttps://github.com/vim/vim/pull/6335, then\nhttps://github.com/vim/vim/pull/10213 changed them to conf, then\nhttps://github.com/vim/vim/pull/10518 changed pacman.conf to confini but\nforgot to change hooks.\n\ncloses: #13399\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Guido Cella \u003cguido@guidocella.xyz\u003e\n"
    },
    {
      "commit": "c038427d2a27445e612761f19c92b2b8b05afdea",
      "tree": "13a5fd47a162bc5ffd5c44e847aecc59f8a4238c",
      "parents": [
        "ae9021a840db3253b0e0cb84186faae73368afd7"
      ],
      "author": {
        "name": "Doug Kearns",
        "email": "dougkearns@gmail.com",
        "time": "Mon Oct 23 19:24:05 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Oct 23 19:24:05 2023 +0200"
      },
      "message": "patch 9.0.2062: Janet files are not recognised\n\nProblem:  Janet files are not recognised\nSolution: Add filename and shebang detection (without\n          adding an extra filetype plugin)\n\nThose are used by the Janet language:\nhttp://www.janet-lang.org\n\ncloses: #13400\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Doug Kearns \u003cdougkearns@gmail.com\u003e\n"
    },
    {
      "commit": "ae9021a840db3253b0e0cb84186faae73368afd7",
      "tree": "c6f3f3f4aad65474b1258029a68f3eab4b09c751",
      "parents": [
        "84394f2be4a750f1e26b478e36de041663f4b5a4"
      ],
      "author": {
        "name": "Guido Cella",
        "email": "guido@guidocella.xyz",
        "time": "Mon Oct 23 19:19:46 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Oct 23 19:19:46 2023 +0200"
      },
      "message": "patch 9.0.2061: not able to detect xkb filetypes\n\nProblem:  not able to detect xkb filetypes\nSolution: Detect files below /u/s/X11/xkb as xkb files (without adding\n          an extra filetype)\n\nThose files are used from the X11 xkb extension\n\ncloses: #13401\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Guido Cella \u003cguido@guidocella.xyz\u003e\n"
    },
    {
      "commit": "84394f2be4a750f1e26b478e36de041663f4b5a4",
      "tree": "4898a7558def04e982a4346ed43ad511daeeef40",
      "parents": [
        "a5a1534753db361f6320e766014d42602c79537f"
      ],
      "author": {
        "name": "Amaan Qureshi",
        "email": "amaanq12@gmail.com",
        "time": "Mon Oct 23 19:16:14 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Oct 23 19:16:14 2023 +0200"
      },
      "message": "patch 9.0.2060: *.{gn,gni} files are not recognized\n\nProblem:  *.{gn,gni} files are not recognized\nSolution: Detect some as gn filetype (without adding an extra filetype)\n\nThose come from: https://gn.googlesource.com/gn/\n\ncloses: #13405\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Amaan Qureshi \u003camaanq12@gmail.com\u003e\n"
    },
    {
      "commit": "0ab500dede4edd8d5aee7ddc63444537be527871",
      "tree": "96ebb872deec1d8ef086d9a133bd5167158c52fe",
      "parents": [
        "a36acb7ac444a789440dc30e0f04d5427069face"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sat Oct 21 11:59:42 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Oct 21 11:59:42 2023 +0200"
      },
      "message": "patch 9.0.2059: outstanding exceptions may be skipped\n\nProblem:  outstanding exceptions may be skipped\nSolution: When restoring exception state, process remaining outstanding\n          exceptions\n\ncloses: #13386\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "a36acb7ac444a789440dc30e0f04d5427069face",
      "tree": "19d98402f2f6c047d826bae2099da36dc46b94da",
      "parents": [
        "3ec6c1fe3bb1b366b710d3e7226f7eed3be1801a"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Sat Oct 21 11:50:26 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Oct 21 11:50:26 2023 +0200"
      },
      "message": "patch 9.0.2058: tests: avoid error when no swap files exist\n\nProblem:  tests: avoid error when no swap files exist\nSolution: use unlet! so that no error message is reported\n          in case the variable does not exists\n\nWhen s:GetSwapFileList() does not find any swapfiles, it will return an\nempty list []. This means, that the variable \u0027name\u0027 will not be\ndeclared, cause the following unlet command to fail and causing a 1 sec\ndelay on running the tests.\n\nSo let\u0027s instead use the :unlet! command which simply skips reporting an\nerror when the variable given as parameter does not exists.\n\ncloses: #13396\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "3ec6c1fe3bb1b366b710d3e7226f7eed3be1801a",
      "tree": "db19fb62d95aae1ff003d0a5750cdf342c3d6340",
      "parents": [
        "d3e277f279ed628809eb6857ea3ebcfca566ca2a"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Sat Oct 21 11:45:38 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Oct 21 11:45:38 2023 +0200"
      },
      "message": "patch 9.0.2057: Vim9: no strict type checks for funcrefs varargs\n\nProblem:  Vim9: no strict type checks for funcrefs varargs\nSolution: Perform strict type checking when declaring funcrefs\n          with vararg declaration, add tests\n\ncloses: #13397\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Ernie Rael \u003cerrael@raelity.com\u003e\n"
    },
    {
      "commit": "47416d1a7441f8c815438903e78ba0a2d877699e",
      "tree": "fd0967eb64c53fd9bb0f10fd401f9a5737168ccf",
      "parents": [
        "d4802ec48560b30d5a2fea243b05bd0f70364f7b"
      ],
      "author": {
        "name": "Jonathan Wright",
        "email": "quaggy@gmail.com",
        "time": "Fri Oct 20 12:08:09 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Oct 20 12:08:09 2023 +0200"
      },
      "message": "patch 9.0.2056: no digraph for quadruple prime\n\nProblem:  no digraph for quadruple prime\nSolution: add quadruple prime digraph using 4\u0027\n\ncloses: #13380\n\nSigned-off-by: Jonathan Wright \u003cquaggy@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Jonathan Wright \u003cquaggy@gmail.com\u003e\n"
    },
    {
      "commit": "d4802ec48560b30d5a2fea243b05bd0f70364f7b",
      "tree": "3d93023b169e743e0578afd1c6a9f32cd67beba6",
      "parents": [
        "ac709e2fc0db6d31abb7da96f743c40956b60c3a"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Fri Oct 20 11:59:00 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Oct 20 11:59:00 2023 +0200"
      },
      "message": "patch 9.0.2055: Vim9: non-consistent error messages\n\nProblem:  Vim9: non-consistent error messages\nSolution: make error messages more consistent with common structure\n\nAdjust vim9class messages to follow common pattern.\n[Variable|Method] \"var-or-meth-name\" ... class \"class-name\"\n\ncloses: #13391\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Ernie Rael \u003cerrael@raelity.com\u003e\n"
    },
    {
      "commit": "a8c664a042707e293d887d5b90f944f6fd5c99aa",
      "tree": "555f139f22fa71c2851964ff879c6c2af63caec7",
      "parents": [
        "c6944913f0aa56cdfd9ad7464ab05d2815d9d815"
      ],
      "author": {
        "name": "Gregory Anders",
        "email": "greg@gpanders.com",
        "time": "Thu Oct 19 19:57:57 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Oct 19 19:57:57 2023 +0200"
      },
      "message": "patch 9.0.2053: zig filetype detection test wrong\n\nProblem:  zig filetype detection test wrong\nSolution: Remove .zir pattern, add new test for .zon pattern\n\ncloses: #13389\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Gregory Anders \u003cgreg@gpanders.com\u003e\n"
    },
    {
      "commit": "00b55370b3adfc386ab27154df5c51410a099910",
      "tree": "592c4fd636506d907ad66030304eab499e3ab4b3",
      "parents": [
        "e08bfef88bd05a9d27ee16c57cd10173e280f600"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Thu Oct 19 17:18:28 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Oct 19 17:18:28 2023 +0200"
      },
      "message": "patch 9.0.2051: Vim9: wrong error for non-existing object var\n\nProblem:  Vim9: wrong error for non-existing object var\nSolution: mention object or class depending on whether\n          the var is an object or class variable.\n\ncloses: #13384\ncloses: #13387\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "c59c1e0d88651a71ece7366e418f1253abbe2a28",
      "tree": "98453e9da10f027b806d3c3cf2cd524df85241c5",
      "parents": [
        "d7b616d0ad006db06140729313b6217677cc4e80"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Thu Oct 19 10:52:34 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Oct 19 10:52:34 2023 +0200"
      },
      "message": "patch 9.0.2050: Vim9: crash with deferred function call and exception\n\nProblem:  Vim9: crash with deferred function call and exception\nSolution: Save and restore exception state\n\nCrash when a deferred function is called after an exception and another\nexception is thrown\n\ncloses: #13376\ncloses: #13377\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "d7b616d0ad006db06140729313b6217677cc4e80",
      "tree": "ec31d6da6f2ada0811cfa989721f0c2f7a959f4a",
      "parents": [
        "982ef16059bd163a77271107020defde0740bbd6"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Thu Oct 19 10:47:53 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Oct 19 10:47:53 2023 +0200"
      },
      "message": "patch 9.0.2049: Vim9: not recognizing qualified class vars for infix ops\n\nProblem:  Vim9: not recognizing qualified class vars for infix ops\nSolution: Drop the class type from the stack before generating the\n          CLASSMEMBER instruction\n\ncloses: #13378\ncloses: #13379\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    },
    {
      "commit": "a0e1f06f04da3444e278ddf47e2ea3d5857a7dec",
      "tree": "af657a2c89d454ca2fb3952db7c44866ad6fcc98",
      "parents": [
        "0672595fd50e9ae668676a40e28ebf66d7f52392"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Wed Oct 18 11:50:37 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Oct 18 11:50:37 2023 +0200"
      },
      "message": "patch 9.0.2045: tests: checking for swap files takes time\n\nProblem:  tests: checking for swap files takes time\nSolution: don\u0027t check for swap files  when test has been skipped\n\nCheck for swap files takes a considerable about of time, so don\u0027t do\nthat for skipped tests to avoid wasting time.\n\ncloses: #13371\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\n"
    },
    {
      "commit": "0672595fd50e9ae668676a40e28ebf66d7f52392",
      "tree": "271158c1d27931b4fc4b227ebf14a541f85d65bf",
      "parents": [
        "5036e698520b2c39e4df5738f026a68ba2e76fef"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Wed Oct 18 11:47:37 2023 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Oct 18 11:47:37 2023 +0200"
      },
      "message": "patch 9.0.2044: Vim9: exceptions confuse defered functions\n\nProblem:  Vim9: exceptions confuse defered functions\nSolution: save and restore exception state when calling defered\n          functions\n\ncloses: #13364\ncloses: #13372\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\nCo-authored-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\n"
    }
  ],
  "next": "96952b2e98cb5f05bc3b3adfb0029056f39cffef"
}
