)]}'
{
  "log": [
    {
      "commit": "5fbe72edda708692dba4286860e727e2e0b778cc",
      "tree": "b7b9d374f5634d4e54fe8f7c49367f2f061032df",
      "parents": [
        "1c00af2a246c9fe5433ea7bd17f19e7ee5e10be7"
      ],
      "author": {
        "name": "Girish Palya",
        "email": "girishji@gmail.com",
        "time": "Wed Jun 18 19:15:45 2025 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Jun 18 19:15:45 2025 +0200"
      },
      "message": "patch 9.1.1471: completion: inconsistent ordering with CTRL-P\n\nProblem:  completion: inconsistent ordering with CTRL-P\n          (zeertzjq)\nSolution: reset compl_curr_match when using CTRL-P (Girish Palya)\n\nfixes: #17425\ncloses: #17434\n\nSigned-off-by: Girish Palya \u003cgirishji@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "fff0132399082b7d012d0c1291cf0c6c99e200ff",
      "tree": "0a0629f264a1f6d827c6dae5e58d32c9c833240a",
      "parents": [
        "8311e7d6b4cf92cb90ee6abace271834e9af66f2"
      ],
      "author": {
        "name": "John Marriott",
        "email": "basilisk@internode.on.net",
        "time": "Wed Jun 18 18:15:31 2025 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Jun 18 18:20:11 2025 +0200"
      },
      "message": "patch 9.1.1467: too many strlen() calls\n\nProblem:  too many strlen() calls\nSolution: Change expand_env() to return string length\n          (John Marriott)\n\nThis commit does the following changes:\n- In expand_env_esc():\n  - return the length of the returned dst string.\n  - refactor to remove some calls to STRLEN() and STRCAT()\n  - add check for out-of-memory condition.\n- Change call sites in various source files to use the return value\n\ncloses: #17561\n\nSigned-off-by: John Marriott \u003cbasilisk@internode.on.net\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "e5c96e344c2f049e1965872742cbec6c6b7ea46a",
      "tree": "ec3e7fa3125810344abef8e77064de6d1cd0d2ab",
      "parents": [
        "e5297e39b3b7fcc1da55ef7869cc0c7714b01bc2"
      ],
      "author": {
        "name": "Hirohito Higashi",
        "email": "h.east.727@gmail.com",
        "time": "Mon Jun 16 19:39:24 2025 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Jun 16 19:39:24 2025 +0200"
      },
      "message": "patch 9.1.1461: tabpanel: tabpanel vanishes with popup menu\n\nProblem:  tabpanel: tabpanel vanishes with popup menu\nSolution: remove pum-related test in tabpanel_leftcol(), refactor a few\n          related functions (Hirohito Higashi)\n\nThis commit does the following:\n- Delete unnecessary pum-related checks in the tabpanel_leftcol()\n  function\n- remove pum-related check in tabpanel_leftcol()\n- The argument of the TPL_LCOL() macro has been deleted.\n- The argument of the tabpanel_leftcol() function has been changed\n  to void\n- The return type of the `win_comp_pos()` function has been changed to\n  void\n\ncloses: #17549\n\nSigned-off-by: Hirohito Higashi \u003ch.east.727@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "8cd42a58b49c948ab59ced6ca5f5ccfae5d9ecea",
      "tree": "cad54d51d067bb14773b7aac347cda70f4ef949f",
      "parents": [
        "738df3887f73ab2b3c87b30d41fb9c27a7bb3022"
      ],
      "author": {
        "name": "Girish Palya",
        "email": "girishji@gmail.com",
        "time": "Thu Jun 05 21:04:29 2025 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Jun 05 21:09:24 2025 +0200"
      },
      "message": "patch 9.1.1435: completion: various flaws in fuzzy completion\n\nProblem:  completion: various flaws in fuzzy completion\nSolution: fix the issues (Girish Palya)\n\n- Remove the brittle `qsort()` on `compl_match_array`.\n- Add a stable, non-recursive `mergesort` for the internal doubly\n  linked list of matches.\n- The sort now happens directly on the internal representation (`compl_T`),\n  preserving sync with external structures and making sorting stable.\n- Update fuzzy match logic to enforce `max_matches` limits after\n  sorting.\n- Remove `trim_compl_match_array()`, which is no longer necessary.\n- Fixe test failures by correctly setting `selected` index and\n  maintaining match consistency.\n- Introduce `mergesort_list()` in `misc2.c`, which operates generically\n  over doubly linked lists.\n- Remove `pum_score` and `pum_idx` variables\n\nfixes: #17387\ncloses: #17430\n\nSigned-off-by: Girish Palya \u003cgirishji@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "0546068aaef2b1a40faa2945ef7eba249739f219",
      "tree": "ca56122ca5e2c98e0c66c84f5b5f90c928a91f94",
      "parents": [
        "69c3493adc4db162447893ca5b7f224f9432a19a"
      ],
      "author": {
        "name": "glepnir",
        "email": "glephunter@gmail.com",
        "time": "Mon May 26 18:23:27 2025 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon May 26 18:25:57 2025 +0200"
      },
      "message": "patch 9.1.1408: not easily possible to complete from register content\n\nProblem:  not easily possible to complete from register content\nSolution: add register-completion submode using i_CTRL-X_CTRL-R\n          (glepnir)\n\ncloses: #17354\n\nSigned-off-by: glepnir \u003cglephunter@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "c659e4a51663db6955dd5f690dff536576430374",
      "tree": "19731f1c033772a8851937b21461edf41dad3262",
      "parents": [
        "ba19b658998e5bfa9456fde00ae98759af6dde6d"
      ],
      "author": {
        "name": "Hirohito Higashi",
        "email": "h.east.727@gmail.com",
        "time": "Fri May 16 19:34:34 2025 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri May 16 19:36:56 2025 +0200"
      },
      "message": "patch 9.1.1394: tabpanel not correctly redrawn on tabonly\n\nProblem:  tabpanel not correctly redrawn on tabonly\n          (Maxim Kim, after v9.1.1391)\nSolution: force redraw of the tabpanel, tweak style\n          (Hirohito Higashi)\n\nfixes: #17322\ncloses: #17330\n\nSigned-off-by: Hirohito Higashi \u003ch.east.727@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "be5bd4d6292fddcc103091407792730aaa48cc48",
      "tree": "1b0b08fb9351e68a60912ea595502368360fa7d3",
      "parents": [
        "7200eae2126afd4518244c2d70638a7d8d64b26f"
      ],
      "author": {
        "name": "Naruhiko Nishino",
        "email": "naru123456789@gmail.com",
        "time": "Wed May 14 21:20:28 2025 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed May 14 21:20:28 2025 +0200"
      },
      "message": "patch 9.1.1391: Vim does not have a vertical tabpanel\n\nProblem:  Vim does not have a tabpanel\nSolution: include the tabpanel feature\n          (Naruhiko Nishino, thinca)\n\ncloses: #17263\n\nCo-authored-by: thinca \u003cthinca@gmail.com\u003e\nSigned-off-by: Naruhiko Nishino \u003cnaru123456789@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "6cb1c828406dcbb9b67ee788501b94f3a0bac88a",
      "tree": "43e4889b00b2adc95b10f93bb8b1df38d289500a",
      "parents": [
        "c3f48e3a76c61884d7801171ced327b76965bf29"
      ],
      "author": {
        "name": "Sean Dewar",
        "email": "6256228+seandewar@users.noreply.github.com",
        "time": "Sat May 03 18:37:27 2025 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat May 03 18:37:27 2025 +0200"
      },
      "message": "patch 9.1.1361: [security]: possible use-after-free when closing a buffer\n\nProblem:  [security]: Possible to open more windows into a closing\n          buffer without splitting, bypassing existing \"b_locked_split\"\n          checks and triggering use-after-free\nSolution: Disallow switching to a closing buffer. Editing a closing\n          buffer (via \":edit\", etc.) was fixed in v9.1.0764, but add an\n          error message and check just \"b_locked_split\", as \"b_locked\"\n          is necessary only when the buffer shouldn\u0027t be wiped, and may\n          be set for buffers that are in-use but not actually closing.\n          (Sean Dewar)\n\ncloses: #17246\n\nSigned-off-by: Sean Dewar \u003c6256228+seandewar@users.noreply.github.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "f5bfc48c0596aead6dd30438930d2cb621b18a35",
      "tree": "0f88bd458b4830db5ca7aa45bdfccabc7e6c4b13",
      "parents": [
        "f57c065e7572beb2b551d1278bf794f4af0fb0c0"
      ],
      "author": {
        "name": "Hirohito Higashi",
        "email": "h.east.727@gmail.com",
        "time": "Thu May 01 08:56:39 2025 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu May 01 08:56:39 2025 +0200"
      },
      "message": "patch 9.1.1356: Vim9: crash when unletting variable\n\nProblem:  Vim9: crash when unletting variable\nSolution: fix crash, allow to use :unlet\n          (Hirohito Higashi)\n\ncloses: #17226\n\nSigned-off-by: Hirohito Higashi \u003ch.east.727@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "bcd5995b40a1c26e735bc326feb2e3ac4b05426b",
      "tree": "9f330cbf18b1a36c69695b77b4f2d005559900e1",
      "parents": [
        "32f49738d1807b1553d1fbd2f5d1b0b4849dbcb5"
      ],
      "author": {
        "name": "glepnir",
        "email": "glephunter@gmail.com",
        "time": "Thu Apr 24 21:48:35 2025 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Apr 24 21:48:35 2025 +0200"
      },
      "message": "patch 9.1.1341: cannot define completion triggers\n\nProblem:  Cannot define completion triggers and act upon it\nSolution: add the new option \u0027isexpand\u0027 and add the complete_match()\n          function to return the completion matches according to the\n          \u0027isexpand\u0027 setting (glepnir)\n\nCurrently, completion trigger position is determined solely by the\n\u0027iskeyword\u0027 pattern (\\k\\+$), which causes issues when users need\ndifferent completion behaviors - such as triggering after \u0027/\u0027 for\ncomments or \u0027.\u0027 for methods. Modifying \u0027iskeyword\u0027 to include these\ncharacters has undesirable side effects on other Vim functionality that\nrelies on keyword definitions.\n\nIntroduce a new buffer-local option \u0027isexpand\u0027 that allows specifying\ndifferent completion triggers and add the complete_match() function that\nfinds the appropriate start column for completion based on these\ntriggers, scanning backwards from cursor position.\n\nThis separation of concerns allows customized completion behavior\nwithout affecting iskeyword-dependent features. The option\u0027s\nbuffer-local nature enables per-filetype completion triggers.\n\ncloses: #16716\n\nSigned-off-by: glepnir \u003cglephunter@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "ec270a5f5554c62517246281afb547b5c2fe65af",
      "tree": "270c0b7f911911fa463d7df1927bd04505feaf50",
      "parents": [
        "1343681aba56d49c16d3070615b8ece7f8b0d1bd"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Wed Apr 23 20:50:23 2025 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Apr 23 20:50:23 2025 +0200"
      },
      "message": "patch 9.1.1338: Calling expand() interferes with cmdcomplete_info()\n\nProblem:  Calling expand() interferes with cmdcomplete_info()\n          (after 9.1.1329).\nSolution: Only clear cmdline_orig when starting/ending cmdline mode\n          (zeertzjq).\n\ncloses: #17192\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "92f68e26ec36f2c263db5bea4f39d8503e0b741c",
      "tree": "b2e06b24f834d59de1b3fb502fbc8c45416b4da2",
      "parents": [
        "eac45c558e3585ada79bb24a86e8cd343e2807cf"
      ],
      "author": {
        "name": "Girish Palya",
        "email": "girishji@gmail.com",
        "time": "Mon Apr 21 11:12:41 2025 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Apr 21 11:12:41 2025 +0200"
      },
      "message": "patch 9.1.1329: cannot get information about command line completion\n\nProblem:  cannot get information about command line completion\nSolution: add CmdlineLeavePre autocommand and cmdcomplete_info() Vim\n          script function (Girish Palya)\n\nThis commit introduces two features to improve introspection and control\nover command-line completion in Vim:\n\n- Add CmdlineLeavePre autocmd event:\n\n  A new event triggered just before leaving the command line and before\n  CmdlineLeave. It allows capturing completion-related state that is\n  otherwise cleared by the time CmdlineLeave fires.\n\n- Add cmdcomplete_info() Vim script function:\n\n  Returns a Dictionary with details about the current command-line\n  completion state.\n\nThese are similar in spirit to InsertLeavePre and complete_info(),\nbut focused on command-line mode.\n\n**Use case:**\n\nIn [[PR #16759](https://github.com/vim/vim/pull/16759)], two examples\ndemonstrate command-line completion: one for live grep, and another for\nfuzzy file finding. However, both examples share two key limitations:\n\n1. **Broken history recall (`\u003cUp\u003e`)**\n   When selecting a completion item via `\u003cTab\u003e` or `\u003cC-n\u003e`, the original\npattern used for searching (e.g., a regex or fuzzy string) is\noverwritten in the command-line history. This makes it impossible to\nrecall the original query later.\n   This is especially problematic for interactive grep workflows, where\nit’s useful to recall a previous search and simply select a different\nmatch from the menu.\n\n2. **Lack of default selection on `\u003cCR\u003e`**\n   Often, it’s helpful to allow `\u003cCR\u003e` (Enter) to accept the first match\nin the completion list, even when no item is explicitly selected. This\nbehavior is particularly useful in fuzzy file finding.\n\n----\nBelow are the updated examples incorporating these improvements:\n\n**Live grep, fuzzy find file, fuzzy find buffer:**\n\n```vim\ncommand! -nargs\u003d+ -complete\u003dcustomlist,GrepComplete Grep VisitFile()\ndef GrepComplete(arglead: string, cmdline: string, cursorpos: number):\nlist\u003cany\u003e\n    return arglead-\u003elen() \u003e 1 ? systemlist($\u0027grep -REIHns \"{arglead}\"\u0027 ..\n       \u0027 --exclude-dir\u003d.git --exclude\u003d\".*\" --exclude\u003d\"tags\" --exclude\u003d\"*.swp\"\u0027) : []\nenddef\ndef VisitFile()\n    if (selected_match !\u003d null_string)\n        var qfitem \u003d getqflist({lines: [selected_match]}).items[0]\n        if qfitem-\u003ehas_key(\u0027bufnr\u0027) \u0026\u0026 qfitem.lnum \u003e 0\n            var pos \u003d qfitem.vcol \u003e 0 ? \u0027setcharpos\u0027 : \u0027setpos\u0027\n            exec $\u0027:b +call\\ {pos}(\".\",\\ [0,\\ {qfitem.lnum},\\ {qfitem.col},\\ 0]) {qfitem.bufnr}\u0027\n            setbufvar(qfitem.bufnr, \u0027\u0026buflisted\u0027, 1)\n        endif\n    endif\nenddef\nnnoremap \u003cleader\u003eg :Grep\u003cspace\u003e\nnnoremap \u003cleader\u003eG :Grep \u003cc-r\u003e\u003dexpand(\"\u003ccword\u003e\")\u003ccr\u003e\ncommand! -nargs\u003d* -complete\u003dcustomlist,FuzzyFind Find\nexecute(selected_match !\u003d \u0027\u0027 ? $\u0027edit {selected_match}\u0027 : \u0027\u0027)\nvar allfiles: list\u003cstring\u003e\nautocmd CmdlineEnter : allfiles \u003d null_list\ndef FuzzyFind(arglead: string, _: string, _: number): list\u003cstring\u003e\n    if allfiles \u003d\u003d null_list\n        allfiles \u003d systemlist($\u0027find {get(g:, \"fzfind_root\", \".\")} \\! \\(\n-path \"*/.git\" -prune -o -name \"*.swp\" \\) -type f -follow\u0027)\n    endif\n    return arglead \u003d\u003d \u0027\u0027 ? allfiles : allfiles-\u003ematchfuzzy(arglead)\nenddef\nnnoremap \u003cleader\u003e\u003cspace\u003e :\u003cc-r\u003e\u003dexecute(\u0027let\nfzfind_root\u003d\".\"\u0027)\\|\u0027\u0027\u003ccr\u003eFind\u003cspace\u003e\u003cc-@\u003e\nnnoremap \u003cleader\u003efv :\u003cc-r\u003e\u003dexecute(\u0027let\nfzfind_root\u003d\"$HOME/.vim\"\u0027)\\|\u0027\u0027\u003ccr\u003eFind\u003cspace\u003e\u003cc-@\u003e\nnnoremap \u003cleader\u003efV :\u003cc-r\u003e\u003dexecute(\u0027let\nfzfind_root\u003d\"$VIMRUNTIME\"\u0027)\\|\u0027\u0027\u003ccr\u003eFind\u003cspace\u003e\u003cc-@\u003e\ncommand! -nargs\u003d* -complete\u003dcustomlist,FuzzyBuffer Buffer execute(\u0027b \u0027\n.. selected_match-\u003ematchstr(\u0027\\d\\+\u0027))\ndef FuzzyBuffer(arglead: string, _: string, _: number): list\u003cstring\u003e\n    var bufs \u003d execute(\u0027buffers\u0027, \u0027silent!\u0027)-\u003esplit(\"\\n\")\n    var altbuf \u003d bufs-\u003eindexof((_, v) \u003d\u003e v \u003d~ \u0027^\\s*\\d\\+\\s\\+#\u0027)\n    if altbuf !\u003d -1\n        [bufs[0], bufs[altbuf]] \u003d [bufs[altbuf], bufs[0]]\n    endif\n    return arglead \u003d\u003d \u0027\u0027 ? bufs : bufs-\u003ematchfuzzy(arglead)\nenddef\nnnoremap \u003cleader\u003e\u003cbs\u003e :Buffer \u003cc-@\u003e\nvar selected_match \u003d null_string\nautocmd CmdlineLeavePre : SelectItem()\ndef SelectItem()\n    selected_match \u003d \u0027\u0027\n    if getcmdline() \u003d~ \u0027^\\s*\\%(Grep\\|Find\\|Buffer\\)\\s\u0027\n        var info \u003d cmdcomplete_info()\n        if info !\u003d {} \u0026\u0026 info.pum_visible \u0026\u0026 !info.matches-\u003eempty()\n            selected_match \u003d info.selected !\u003d -1 ? info.matches[info.selected] : info.matches[0]\n            setcmdline(info.cmdline_orig). # Preserve search pattern in history\n        endif\n    endif\nenddef\n```\n\n**Auto-completion snippet:**\n\n```vim\nset wim\u003dnoselect:lastused,full wop\u003dpum wcm\u003d\u003cC-@\u003e wmnu\nautocmd CmdlineChanged : CmdComplete()\ndef CmdComplete()\n    var [cmdline, curpos] \u003d [getcmdline(), getcmdpos()]\n    if getchar(1, {number: true}) \u003d\u003d 0  # Typehead is empty (no more pasted input)\n            \u0026\u0026 !pumvisible() \u0026\u0026 curpos \u003d\u003d cmdline-\u003elen() + 1\n            \u0026\u0026 cmdline \u003d~ \u0027\\%(\\w\\|[*/:.-]\\)$\u0027 \u0026\u0026 cmdline !~ \u0027^\\d\\+$\u0027  # Reduce noise\n        feedkeys(\"\\\u003cC-@\u003e\", \"ti\")\n        SkipCmdlineChanged()  # Suppress redundant completion attempts\n        # Remove \u003cC-@\u003e that get inserted when no items are available\n        timer_start(0, (_) \u003d\u003e getcmdline()-\u003esubstitute(\u0027\\%x00\u0027, \u0027\u0027, \u0027g\u0027)-\u003esetcmdline())\n    endif\nenddef\ncnoremap \u003cexpr\u003e \u003cup\u003e SkipCmdlineChanged(\"\\\u003cup\u003e\")\ncnoremap \u003cexpr\u003e \u003cdown\u003e SkipCmdlineChanged(\"\\\u003cdown\u003e\")\nautocmd CmdlineEnter : set bo+\u003derror\nautocmd CmdlineLeave : set bo-\u003derror\ndef SkipCmdlineChanged(key \u003d \u0027\u0027): string\n    set ei+\u003dCmdlineChanged\n    timer_start(0, (_) \u003d\u003e execute(\u0027set ei-\u003dCmdlineChanged\u0027))\n    return key !\u003d \u0027\u0027 ? ((pumvisible() ? \"\\\u003cc-e\u003e\" : \u0027\u0027) .. key) : \u0027\u0027\nenddef\n```\n\nThese customizable snippets can serve as *lightweight* and *native*\nalternatives to picker plugins like **FZF** or **Telescope** for common,\neveryday workflows. Also, live grep snippet can replace **cscope**\nwithout the overhead of building its database.\n\ncloses: #17115\n\nSigned-off-by: Girish Palya \u003cgirishji@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "baa8c90cc0d214e036a3a7980d5cf95cae88a68d",
      "tree": "88a0b5e2514b6e78527dcc7431d1221f8821e5c6",
      "parents": [
        "81677996513e8f186acc93122673e6741c563477"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Apr 19 11:14:11 2025 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Apr 19 11:14:11 2025 +0200"
      },
      "message": "patch 9.1.1323: b:undo_ftplugin not executed when re-using buffer\n\nProblem:  b:undo_ftplugin not executed when re-using buffer\n          (archy3)\nSolution: explicitly execute b:undo_ftplugin in buflist_new() when\n          re-using the current buffer\n\nfixes: #17113\ncloses: #17133\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "7ddba51635abdacb2bf8b96bff2ddfdefa0c985b",
      "tree": "79ac546dcf7980144da0793dbfaef3530866589e",
      "parents": [
        "cfe502c5753cce2080ddabdfdcacb8e4b3092721"
      ],
      "author": {
        "name": "John Marriott",
        "email": "basilisk@internode.on.net",
        "time": "Thu Apr 17 20:35:42 2025 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Apr 17 20:35:42 2025 +0200"
      },
      "message": "patch 9.1.1316: missing memory allocation failure in os_mswin.c\n\nProblem:  missing memory allocation failure in os_mswin.c\nSolution: check for memory allocation failure and return early.\n          (John Marriott)\n\ncloses: #17134\n\nSigned-off-by: John Marriott \u003cbasilisk@internode.on.net\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "cf7f01252f00061876f7eb14dbf74342a55a13a1",
      "tree": "1621939248f34f9707c5a9f4172c1153ed97b743",
      "parents": [
        "babdb0554a44a5e406a499bf8c315e660b2a028e"
      ],
      "author": {
        "name": "glepnir",
        "email": "glephunter@gmail.com",
        "time": "Tue Apr 15 19:02:00 2025 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Apr 15 19:02:00 2025 +0200"
      },
      "message": "patch 9.1.1305: completion menu active after switching windows/tabs\n\nProblem:  When switching to another window or tab page while the\n          completion menu is active, the menu stays visible, although it\n          belongs to the previous window/tab page context (Evgeni\n          Chasnovski).\nSolution: Track the window and tab page where completion started. Detect\n          changes in the main editing loop and cancel completion mode if\n          the current window or tab page differs from where completion\n          started.\n\nfixes: #17090\ncloses: #17101\n\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: glepnir \u003cglephunter@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "adcfb6caeb1c9c54448fff8d5812c3dca2ba0d03",
      "tree": "380877d9329f1c0882abe6e98e873b6b308044ce",
      "parents": [
        "e370141bf41919642061ee2e78340dca84678712"
      ],
      "author": {
        "name": "Hirohito Higashi",
        "email": "h.east.727@gmail.com",
        "time": "Mon Apr 07 21:19:07 2025 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Apr 07 21:19:07 2025 +0200"
      },
      "message": "patch 9.1.1287: quickfix code can be further improved\n\nProblem:  quickfix code can be further improved (after v9.1.1283)\nSolution: slightly refactor quickfix.c (Hirohito Higashi)\n\n- remove error message output\n- adjust comments\n- rename functions:\n  - qf_init_quickfix_stack() --\u003e qf_init_stack()\n  - qf_resize_quickfix_stack() --\u003e qf_resize_stack()\n  - qf_resize_stack() --\u003e qf_resize_stack_base()\n\nNow qf_alloc_stack() can handle both quickfix/location lists.\n\ncloses: #17068\n\nSigned-off-by: Hirohito Higashi \u003ch.east.727@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "88d41ab270a8390a43da97a903b1a4d76b89d330",
      "tree": "b530f9031cc767ec68e9e2293e412ddebdcb01f8",
      "parents": [
        "c54a8eb258ddc4dfc79f668a2d0c0a3c16abc8c4"
      ],
      "author": {
        "name": "64-bitman",
        "email": "60551350+64-bitman@users.noreply.github.com",
        "time": "Sun Apr 06 17:20:39 2025 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Apr 06 17:20:39 2025 +0200"
      },
      "message": "patch 9.1.1283: quickfix stack is limited to 10 items\n\nProblem:  quickfix and location-list stack is limited to 10 items\nSolution: add the \u0027chistory\u0027 and \u0027lhistory\u0027 options to configure a\n          larger quickfix/location list stack\n          (64-bitman)\n\ncloses: #16920\n\nCo-authored-by: Hirohito Higashi \u003ch.east.727@gmail.com\u003e\nSigned-off-by: 64-bitman \u003c60551350+64-bitman@users.noreply.github.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "9943d4790e42721a6777da9e12637aa595ba4965",
      "tree": "39f6663c2b7850949dd2d74a19b3a37412229947",
      "parents": [
        "06774a271a7d728f188175340154361255d6b0a4"
      ],
      "author": {
        "name": "Yee Cheng Chin",
        "email": "ychin.git@gmail.com",
        "time": "Wed Mar 26 19:41:02 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Mar 26 19:46:09 2025 +0100"
      },
      "message": "patch 9.1.1243: diff mode is lacking for changes within lines\n\nProblem:  Diff mode\u0027s inline highlighting is lackluster. It only\n          performs a line-by-line comparison, and calculates a single\n          shortest range within a line that could encompass all the\n          changes. In lines with multiple changes, or those that span\n          multiple lines, this approach tends to end up highlighting\n          much more than necessary.\n\nSolution: Implement new inline highlighting modes by doing per-character\n          or per-word diff within the diff block, and highlight only the\n          relevant parts, add \"inline:simple\" to the defaults (which is\n          the old behaviour)\n\nThis change introduces a new diffopt option \"inline:\u003ctype\u003e\". Setting to\n\"none\" will disable all inline highlighting, \"simple\" (the default) will\nuse the old behavior, \"char\" / \"word\" will perform a character/word-wise\ndiff of the texts within each diff block and only highlight the\ndifferences.\n\nThe new char/word inline diff only use the internal xdiff, and will\nrespect diff options such as algorithm choice, icase, and misc iwhite\noptions. indent-heuristics is always on to perform better sliding.\n\nFor character highlight, a post-process of the diff results is first\napplied before we show the highlight. This is because a naive diff will\ncreate a result with a lot of small diff chunks and gaps, due to the\nrepetitive nature of individual characters. The post-process is a\nheuristic-based refinement that attempts to merge adjacent diff blocks\nif they are separated by a short gap (1-3 characters), and can be\nfurther tuned in the future for better results. This process results in\nmore characters than necessary being highlighted but overall less visual\nnoise.\n\nFor word highlight, always use first buffer\u0027s iskeyword definition.\nOtherwise if each buffer has different iskeyword settings we would not\nbe able to group words properly.\n\nThe char/word diffing is always per-diff block, not per line, meaning\nthat changes that span multiple lines will show up correctly.\nAdded/removed newlines are not shown by default, but if the user has\n\u0027list\u0027 set (with \"eol\" listchar defined), the eol character will be be\nhighlighted correctly for the specific newline characters.\n\nAlso, add a new \"DiffTextAdd\" highlight group linked to \"DiffText\" by\ndefault. It allows color schemes to use different colors for texts that\nhave been added within a line versus modified.\n\nThis doesn\u0027t interact with linematch perfectly currently. The linematch\nfeature splits up diff blocks into multiple smaller blocks for better\nvisual matching, which makes inline highlight less useful especially for\nmulti-line change (e.g. a line is broken into two lines). This could be\naddressed in the future.\n\nAs a side change, this also removes the bounds checking introduced to\ndiff_read() as they were added to mask existing logic bugs that were\nproperly fixed in #16768.\n\ncloses: #16881\n\nSigned-off-by: Yee Cheng Chin \u003cychin.git@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "038be2701dba3485d1ac65bb19a5bf011c23b600",
      "tree": "35fadad2061ff0e32b28016220a5b5d0468ee639",
      "parents": [
        "9d5487f6fdc47760e6bc6ca7beb2d007f2e10066"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Wed Mar 26 18:46:21 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Mar 26 18:46:21 2025 +0100"
      },
      "message": "patch 9.1.1239: if_python: no tuple data type support\n\nProblem:  if_python: no tuple data type support (after v9.1.1232)\nSolution: Add support for using Vim tuple in the python interface\n          (Yegappan Lakshmanan)\n\ncloses: #16964\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "d2232d70c894178b5120d85a42ce8ec9f9dd9d88",
      "tree": "6224ae093170e77be0193c3942c0d8831ed4ed9b",
      "parents": [
        "7cedae3ec3be2af24a7e717e4cb4b8658bc4e9b7"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Mon Mar 24 20:36:14 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Mar 24 20:36:14 2025 +0100"
      },
      "message": "patch 9.1.1235: cproto files are outdated\n\nProblem:  cproto files are outdated\nSolution: regenerate proto files by running make proto\n          (Yegappan Lakshmanan)\n\ncloses: #16956\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "9cb865e95bba333fa7b47c39c2729c125b911e36",
      "tree": "8198980af22ec50d7a84262c3b583da809900e01",
      "parents": [
        "adb703e1b98b71f2908ecc7b7d4180f586caafb8"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Mar 23 16:42:16 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Mar 23 16:42:16 2025 +0100"
      },
      "message": "patch 9.1.1232: Vim script is missing the tuple data type\n\nProblem:  Vim script is missing the tuple data type\nSolution: Add support for the tuple data type\n          (Yegappan Lakshmanan)\n\ncloses: #16776\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "e08f10a55c3f15b0b4af631908551d88ec4fe502",
      "tree": "303711e0e0bcb3c5717c1f389d4397c039053d07",
      "parents": [
        "11ab02c819449eaeddc3d8d291f06bc73f428e91"
      ],
      "author": {
        "name": "64-bitman",
        "email": "60551350+64-bitman@users.noreply.github.com",
        "time": "Tue Mar 18 22:14:34 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Mar 18 22:14:34 2025 +0100"
      },
      "message": "patch 9.1.1224: cannot :put while keeping indent\n\nProblem:  cannot :put while keeping indent (Peter Aronoff)\nSolution: add the :iput ex command (64-bitman)\n\nfixes: #16225\ncloses: #16886\n\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nCo-authored-by: Hirohito Higashi \u003ch.east.727@gmail.com\u003e\nSigned-off-by: 64-bitman \u003c60551350+64-bitman@users.noreply.github.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "8ac0f73eb1e0e6128dd21eb294d12b83b615f05a",
      "tree": "79dd3d0d5929e2a3656d3714d7a513b08beeebb5",
      "parents": [
        "a3a7d10bfb9547991e04bcf12d1391deb8060754"
      ],
      "author": {
        "name": "John Marriott",
        "email": "basilisk@internode.on.net",
        "time": "Tue Mar 18 20:49:01 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Mar 18 20:49:01 2025 +0100"
      },
      "message": "patch 9.1.1222: using wrong length for last inserted string\n\nProblem:  using wrong length for last inserted string\n          (Christ van Willegen, after v9.1.1212)\nSolution: use the correct length in get_last_insert_save(), make\n          get_last_insert() return a string_T (John Marriott)\n\ncloses: #16921\n\nSigned-off-by: John Marriott \u003cbasilisk@internode.on.net\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "762a79e15c8549bc78cbf735723644f9c8578139",
      "tree": "83fcdc4abb499b9ba2d282ec7e2d4d6764146dc8",
      "parents": [
        "28e40a7b55ce471656cccc2260c11a29d5da447e"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Mar 16 21:39:58 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Mar 16 21:39:58 2025 +0100"
      },
      "message": "patch 9.1.1215: Patch 9.1.1213 has some issues\n\nProblem:  Patch 9.1.1213 has some issues\nSolution: revert it for now\n\nThis reverts commit 250739d442b51ba76589d6eb67672d95645527ec.\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "28e40a7b55ce471656cccc2260c11a29d5da447e",
      "tree": "ca68b25dd93c9596706fdadbf72f671d54abf323",
      "parents": [
        "250739d442b51ba76589d6eb67672d95645527ec"
      ],
      "author": {
        "name": "glepnir",
        "email": "glephunter@gmail.com",
        "time": "Sun Mar 16 21:24:22 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Mar 16 21:29:19 2025 +0100"
      },
      "message": "patch 9.1.1214: matchfuzzy() can be improved for camel case matches\n\nProblem:  When searching for \"Cur\", CamelCase matches like \"lCursor\" score\n          higher than exact prefix matches like Cursor, which is\n          counter-intuitive (Maxim Kim).\nSolution: Add a \u0027camelcase\u0027 option to matchfuzzy() that lets users disable\n          CamelCase bonuses when needed, making prefix matches rank higher.\n          (glepnir)\n\nfixes: #16504\ncloses: #16797\n\nSigned-off-by: glepnir \u003cglephunter@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "250739d442b51ba76589d6eb67672d95645527ec",
      "tree": "f5b5f0da79341e361315594908a59513347f78fa",
      "parents": [
        "7ceca3eb004706d6406e42f9ef1931eb1298f1dc"
      ],
      "author": {
        "name": "64-bitman",
        "email": "60551350+64-bitman@users.noreply.github.com",
        "time": "Sun Mar 16 21:10:47 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Mar 16 21:15:11 2025 +0100"
      },
      "message": "patch 9.1.1213: cannot :put while keeping indent\n\nProblem:  cannot :put while keeping indent\n          (Peter Aronoff)\nSolution: add the :iput ex command (64-bitman)\n\nfixes: #16225\ncloses: #16886\n\nSigned-off-by: 64-bitman \u003c60551350+64-bitman@users.noreply.github.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "34954972c27244a4a1fb4eeeae2aa4e021efd100",
      "tree": "30dd1a22102c3ae70d00d8589f2032696d49ada5",
      "parents": [
        "20d23ce93b84ea199d5ea56d7ec86f5e6846d6cc"
      ],
      "author": {
        "name": "John Marriott",
        "email": "basilisk@internode.on.net",
        "time": "Sun Mar 16 20:49:52 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Mar 16 20:49:52 2025 +0100"
      },
      "message": "patch 9.1.1212: too many strlen() calls in edit.c\n\nProblem:  too many strlen() calls in edit.c\nSolution: refactor edit.c and remove strlen() calls\n          (John Marriott)\n\nThis commit attempts to make edit.c more efficient by:\n\n- in truncate_spaces() pass in the length of the string.\n- return a string_T from get_last_insert(), so that the length of the\n  string is available to the caller.\n- refactor stuff_insert():\n\n  - replace calls to stuffReadbuff() (which calls STRLEN() on it\u0027s\n    string argument) with stuffReadbuffLen() (which gets the length of\n    it\u0027s string argument passed in).\n  - replace call to vim_strrchr() which searches from the start of the\n    string with a loop which searches from end of the string to find the\n    last ESC character.\n\n- change get_last_insert_save() to call get_last_insert() to get the\n  last_insert string (the logic is in one place).\n\ncloses: #16863\n\nSigned-off-by: John Marriott \u003cbasilisk@internode.on.net\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "bcf66e014141982192e2743829bceef60ce77727",
      "tree": "6cd7596c3c3a4808f9259f26ed8610b8aeb8f59a",
      "parents": [
        "21ac3a49b52330bbac5815971a15b51bda405f96"
      ],
      "author": {
        "name": "Jim Zhou",
        "email": "jimzhouzzy@gmail.com",
        "time": "Sun Mar 16 20:24:57 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Mar 16 20:24:57 2025 +0100"
      },
      "message": "patch 9.1.1211: TabClosedPre is triggered just before the tab is being freed\n\nProblem:  TabClosedPre is triggered just before the tab is being freed,\n          which limited its functionality.\nSolution: Trigger it a bit earlier and also on :tabclose and :tabonly\n          (Jim Zhou)\n\ncloses: #16890\n\nSigned-off-by: Jim Zhou \u003cjimzhouzzy@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "00a749bd90e6b84e7e5132691d73fe9aa3fdff05",
      "tree": "00ebb88bf4cda80abb476c32aa1976b64402ae87",
      "parents": [
        "96395e15125502e6c29bc93c58d688a2bdc31300"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Sat Mar 15 09:53:32 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Mar 15 09:53:32 2025 +0100"
      },
      "message": "patch 9.1.1204: MS-Windows: crash when passing long string to expand()\n\nProblem:  MS-Windows: crash when passing long string to expand() with\n          \u0027wildignorecase\u0027.\nSolution: Use the same buflen as unix_expandpath() in dos_expandpath().\n          Remove an unnecessary STRLEN() while at it (zeertzjq).\n\ncloses: #16896\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "5606ca5349982fe53cc6a2ec6345aa66f0613d40",
      "tree": "15157191c26f9ef7ceda206d6a14c5e3dc5576e5",
      "parents": [
        "587601671cd06ddc4d78f907d98578cdab96003f"
      ],
      "author": {
        "name": "Jim Zhou",
        "email": "jimzhouzzy@gmail.com",
        "time": "Thu Mar 13 21:58:25 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Mar 13 21:58:25 2025 +0100"
      },
      "message": "patch 9.1.1202: Missing TabClosedPre autocommand\n\nProblem:  Missing TabClosedPre autocommand\n          (zoumi)\nSolution: Add the TabClosedPre autcommand (Jim Zhou).\n\nfixes: #16518\ncloses: #16855\n\nSigned-off-by: Jim Zhou \u003cjimzhouzzy@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "1830e787f6ee9828151284c44b494b801c677ee9",
      "tree": "834198123304b3bf5eec5bc03ae2b82afee464ec",
      "parents": [
        "0adbe639a587a2a5d16de3461adfbe800dd05dd8"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Thu Mar 13 20:29:13 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Mar 13 20:29:13 2025 +0100"
      },
      "message": "patch 9.1.1200: cmdline pum not cleared for input() completion\n\nProblem:  Cmdline pum not cleared for input() completion.\nSolution: Temporary reset RedrawingDisabled in cmdline_pum_cleanup(),\n          like what is done in wildmenu_cleanup() (zeertzjq).\n\nfixes: #16874\ncloses: #16876\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "dd42b05f8a37df03a9b77a16a47c08ab33af2b1f",
      "tree": "b6ea2de74b08e4bdaebe2b8dc2bcec8a624a4f0e",
      "parents": [
        "af056949007b2395b3f8ca8c7efb591fe9d4be9e"
      ],
      "author": {
        "name": "glepnir",
        "email": "glephunter@gmail.com",
        "time": "Sat Mar 08 16:52:55 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Mar 08 16:52:55 2025 +0100"
      },
      "message": "patch 9.1.1185: endless loop with completefuzzycollect and no match found\n\nProblem:  endless loop with completefuzzycollect and no match found\nSolution: move pointer to line end and break loop\n\ncloses: #16820\n\nSigned-off-by: glepnir \u003cglephunter@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "53d59ecc1d93ce3a3f6d0182479d825852018ceb",
      "tree": "0250bec4c8e1acc8bd6bd210068d8c0b5256ad74",
      "parents": [
        "4422de6316b544c282e6c74afd3df3ee3a4b1cfd"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Fri Mar 07 19:09:09 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Mar 07 19:09:09 2025 +0100"
      },
      "message": "patch 9.1.1182: No cmdline completion for \u0027completefuzzycollect\u0027\n\nProblem:  No cmdline completion for the \u0027completefuzzycollect\u0027 option\n          (after v9.1.1178)\nSolution: Add cmdline completion for the \u0027completefuzzycollect\u0027 option,\n          improve its description in optwin.vim (zeertzjq).\n\ncloses: #16813\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "f31cfa29bf72b0cdf6fa1b60346ea4e187bcafd1",
      "tree": "3a90995491ec525337ab81e08080bf3a587fddfa",
      "parents": [
        "25e833f4ec3de8e7286cd5a43d031ba7064c9f9a"
      ],
      "author": {
        "name": "glepnir",
        "email": "glephunter@gmail.com",
        "time": "Thu Mar 06 21:59:13 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Mar 06 21:59:13 2025 +0100"
      },
      "message": "patch 9.1.1178: not possible to generate completion candidates using fuzzy matching\n\nProblem:  not possible to generate completion candidates using fuzzy\n          matching\nSolution: add the \u0027completefuzzycollect\u0027 option for (some) ins-completion\n          modes (glepnir)\n\nfixes #15296\nfixes #15295\nfixes #15294\ncloses: #16032\n\nSigned-off-by: glepnir \u003cglephunter@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "0b5fe420715786249cd121d845dbd6a81f962d1b",
      "tree": "db6aeffbf681565a1ef659f3a25325713bd450f4",
      "parents": [
        "d2219d547d2e70ba7af498866b0d12d3b6517b16"
      ],
      "author": {
        "name": "Yee Cheng Chin",
        "email": "ychin.git@gmail.com",
        "time": "Mon Mar 03 20:12:05 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Mar 03 20:12:05 2025 +0100"
      },
      "message": "patch 9.1.1169: using global variable for get_insert()/get_lambda_name()\n\nProblem:  using global variable for get_insert()/get_lambda_name()\n          (after v9.1.1151)\nSolution: let the functions return a string_T object instead\n          (Yee Cheng Chin)\n\nIn #16720, `get_insert()` was modified to store a string length in a\nglobal variable to be queried immediately by another `get_insert_len()`\nfunction, which is somewhat fragile. Instead, just have the function\nitself return a `string_T` object instead. Also do the same for\n`get_lambda_name()` which has similar issues.\n\ncloses: #16775\n\nSigned-off-by: Yee Cheng Chin \u003cychin.git@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "1a741d3cb8ff3bf1a7097a63bc70c537655d190d",
      "tree": "866c5828cae39edc39e272a47e3328839be916a4",
      "parents": [
        "7003a5d63f099671886c235a83b3e4fb36fb6370"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Mar 01 16:30:33 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Mar 01 16:30:33 2025 +0100"
      },
      "message": "patch 9.1.1163: $MYVIMDIR is set too late\n\nProblem:  $MYVIMDIR is set too late and not available while sourcing\n          runtime files (Maxim Kim, after v9.1.1159)\nSolution: Also set it when $MYVIMRC file is found\n\nfixes: #16764\ncloses: #16767\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "ff159253eb55fa881e1fcfc45f1de5d73d15bdd4",
      "tree": "63607d73540ff5def137ba3ff044d9679200cc4f",
      "parents": [
        "94a045ed56d7616c0cd0080d3f308d6cf9fbe64c"
      ],
      "author": {
        "name": "glepnir",
        "email": "glephunter@gmail.com",
        "time": "Sat Mar 01 16:17:00 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Mar 01 16:19:44 2025 +0100"
      },
      "message": "patch 9.1.1162: completion popup not cleared in cmdline\n\nProblem:  When an info popup spans into the cmdline area and ESC is\n          pressed, some content remains visible on screen (yu3s)\nSolution: Add popup_overlays_cmdline() check in screen_fill() to prevent\n          prematurely clearing the clear_cmdline flag (glepnir).\n\nfixes: #15627\ncloses: #16765\n\nSigned-off-by: glepnir \u003cglephunter@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "18bacc811c30ba26405cadbeb79d9013d9885bb5",
      "tree": "dbb6ca3bd187c2796335165cb16f70d7b9351bd1",
      "parents": [
        "397700e50780325fbd2a4ce15225b983c018a93f"
      ],
      "author": {
        "name": "John Marriott",
        "email": "basilisk@internode.on.net",
        "time": "Wed Feb 26 19:14:06 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Feb 26 19:14:06 2025 +0100"
      },
      "message": "patch 9.1.1152: Patch v9.1.1151 causes problems\n\nProblem:  Patch v9.1.1151 causes problems\nSolution: partially revert it (John Marriott)\n\ncloses: #16736\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "d3c4b7e9461f90bad7a671c1221d65def9cccc89",
      "tree": "d611dccbb5075fc8eb0f9052a03a7e9e1a75e2cc",
      "parents": [
        "580e457a2a5fa63b9be0bf5f2c81434e157bcc0a"
      ],
      "author": {
        "name": "John Marriott",
        "email": "basilisk@internode.on.net",
        "time": "Tue Feb 25 20:56:38 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Feb 25 20:56:38 2025 +0100"
      },
      "message": "patch 9.1.1151: too many strlen() calls in getchar.c\n\nProblem:  too many strlen() calls in getchar.c\nSolution: store last inserted and recorded lengths,\n          add functions to retrieve those and use those\n          functions (John Marriott)\n\ncloses: #16720\n\nSigned-off-by: John Marriott \u003cbasilisk@internode.on.net\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "6c0128385e9196720edf771d7c5d6897e8abde57",
      "tree": "ed79b4a659b6d49258429fb7f12188f933563cbe",
      "parents": [
        "00a00f5d3fc8dcf08e959c207a90f5902abc6a08"
      ],
      "author": {
        "name": "Hirohito Higashi",
        "email": "h.east.727@gmail.com",
        "time": "Tue Feb 25 20:29:50 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Feb 25 20:29:50 2025 +0100"
      },
      "message": "patch 9.1.1148: Vim9: finding imported scripts can be further improved\n\nProblem:  Vim9: finding imported scripts can be further improved\n          (after v9.1.1146)\nSolution: Eliminate extra find_imported() call (Hirohito Higashi)\n\nrelated: #16602\nrelated: #16660\ncloses: #16731\n\nSigned-off-by: Hirohito Higashi \u003ch.east.727@gmail.com\u003e\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "16f2d3a46527094901080527dd3cade98cc877f9",
      "tree": "d09fc515cd754e2f818f3fa594fc417a74faf632",
      "parents": [
        "5090a1fecb86c44be83d55e139ed79b7785fa090"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Mon Feb 24 19:23:43 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Feb 24 19:26:56 2025 +0100"
      },
      "message": "patch 9.1.1146: Vim9: wrong context being used when evaluating class member\n\nProblem:  Vim9: wrong context being used when evaluating class member\n          (lifepillar, Ernie Rael)\nSolution: Use the correct script context when evaluating a class member\n          init expression(Yegappan Lakshmanan)\n\nfixes: #14011\nfixes: #14402\ncloses: #15112\ncloses: #16660\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "a7b8120820dc5257c76dc6086c077fa86189f4ee",
      "tree": "eb596ec89cae8c1c439835880935a26cf648d36c",
      "parents": [
        "f4b36417e893ff40296f1a5a264a4ecc6965f1d5"
      ],
      "author": {
        "name": "Yee Cheng Chin",
        "email": "ychin.git@gmail.com",
        "time": "Sun Feb 23 09:32:47 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Feb 23 09:34:50 2025 +0100"
      },
      "message": "patch 9.1.1138: cmdline completion for :hi is too simplistic\n\nProblem:  Existing cmdline completion for :highlight was barebone and\n          only completed the highlight group names.\n\nSolution: Implement full completion for the highlight group arguments\n          such as guifg and cterm. If the user tries to complete\n          immediately after the \u0027\u003d\u0027 (e.g. `hi Normal guifg\u003d\u003cTab\u003e`), the\n          completion will fill in the existing value, similar to how\n          cmdline completion for options work (Yee Cheng Chin).\n\ncloses: #16712\n\nSigned-off-by: Yee Cheng Chin \u003cychin.git@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "f4b36417e893ff40296f1a5a264a4ecc6965f1d5",
      "tree": "e234b195b5bf43869be3e79812094a7059022979",
      "parents": [
        "066a5340e3d7ccc1fd9d1ee3ddf02cdc5ccf2813"
      ],
      "author": {
        "name": "John Marriott",
        "email": "basilisk@internode.on.net",
        "time": "Sun Feb 23 09:09:59 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Feb 23 09:09:59 2025 +0100"
      },
      "message": "patch 9.1.1137: ins_str() is inefficient by calling STRLEN()\n\nProblem:  ins_str() is inefficient by calling STRLLEN()\nSolution: refactor ins_str() to take a length argument\n          and let all callers provide the correct length\n          when calling ins_str() (John Marriott)\n\ncloses: #16711\n\nSigned-off-by: John Marriott \u003cbasilisk@internode.on.net\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "7bbb0f357e9f9d3a737dac75e4b5ba7dfbf3ecc1",
      "tree": "585d363b6bb17291ad3cf7101859ff97f553ab02",
      "parents": [
        "bf595ae4ac9ecc1e0620664177072926ed3679ff"
      ],
      "author": {
        "name": "Luuk van Baal",
        "email": "luukvbaal@gmail.com",
        "time": "Sat Feb 22 09:19:04 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Feb 22 09:19:04 2025 +0100"
      },
      "message": "patch 9.1.1136: Match highlighting marks a buffer region as changed\n\nProblem:  Match highlighting marks a buffer region to be redrawn as if\n          its buffer text was changed, unnecessarily invoking syntax code.\nSolution: Set the `w_redraw_top/bot` variables instead of the b_mod_* ones\n          (Luuk van Baal)\n\ncloses: #16697\n\nSigned-off-by: Luuk van Baal \u003cluukvbaal@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "d6e3c9048dfb7e8f08f8fadc820c7e2208c3f030",
      "tree": "7f159a3daeba9e9652f7e36e2efdc795dc0982b7",
      "parents": [
        "07f0dbe3aa326fdf4d0f1b1cf7d79df89e91fc6e"
      ],
      "author": {
        "name": "John Marriott",
        "email": "basilisk@internode.on.net",
        "time": "Tue Feb 18 20:45:48 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Feb 18 20:45:48 2025 +0100"
      },
      "message": "patch 9.1.1122: too many strlen() calls in findfile.c\n\nProblem:  too many strlen() calls in findfile.c\nSolution: refactor findfile.c and remove calls to strlen()\n          (John Marriott)\n\ncloses: #16595\n\nSigned-off-by: John Marriott \u003cbasilisk@internode.on.net\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "bf7c88d852204c36d89da1b803c72339fbd7b5fc",
      "tree": "398208d1abe604df2f3d68b56acab4409354632d",
      "parents": [
        "e70587dbdbb1aba2c3f92490b8f870361d4a4177"
      ],
      "author": {
        "name": "Hirohito Higashi",
        "email": "h.east.727@gmail.com",
        "time": "Thu Feb 13 21:04:07 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Feb 13 21:04:07 2025 +0100"
      },
      "message": "patch 9.1.1111: Vim9: variable not found in transitive import\n\nProblem:  Vim9: variable not found in transitive import\n          (lifepillar)\nSolution: fix import and class extends (Hirohito Higashi)\n\nfixes: #16379\nrelated: #16440\ncloses: #16602\n\nSigned-off-by: Hirohito Higashi \u003ch.east.727@gmail.com\u003e\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "2c47ab8fcd7188fa87053c757ea86b0d846c06c1",
      "tree": "31b6edf48958945a6cd84ea8662413647506119b",
      "parents": [
        "c0b7ca406ba18640c56e2746d6f6d03549d53072"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Thu Feb 13 20:34:34 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Feb 13 20:34:34 2025 +0100"
      },
      "message": "patch 9.1.1108: \u0027smoothscroll\u0027 gets stuck with \u0027listchars\u0027 \"eol\"\n\nProblem:  \u0027smoothscroll\u0027 gets stuck with \u0027listchars\u0027 \"eol\".\nSolution: Count size of \u0027listchars\u0027 \"eol\" in line size when scrolling.\n          (zeertzjq)\n\nrelated: neovim/neovim#32405\ncloses: #16627\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "c5654b84480822817bb7b69ebc97c174c91185e9",
      "tree": "56fce0b3a9045d4dabe2a167142a4f7fb7fba386",
      "parents": [
        "97baa1cfe83c08eff1a452aca8d91f51112ca932"
      ],
      "author": {
        "name": "Hirohito Higashi",
        "email": "h.east.727@gmail.com",
        "time": "Mon Feb 10 20:55:17 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Feb 10 21:12:19 2025 +0100"
      },
      "message": "patch 9.1.1097: --log with non-existent path causes a crash\n\nProblem:  --log with non-existent path causes a crash\n          (Ekkosun)\nSolution: split initialization phase and init the execution stack\n          earlier (Hirohito Higashi)\n\nfixes: #16606\ncloses: #16610\n\nSigned-off-by: Hirohito Higashi \u003ch.east.727@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "76bdb82527a13b5b2baa8f7d7ce14b4d5dc05b82",
      "tree": "ad572c0a8339915a0e3bf9215b7c4b5f61ced365",
      "parents": [
        "746fe54d4f16ad1c5694cccc8bc8d93a97c050e1"
      ],
      "author": {
        "name": "glepnir",
        "email": "glephunter@gmail.com",
        "time": "Sat Feb 08 19:04:51 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Feb 08 19:09:02 2025 +0100"
      },
      "message": "patch 9.1.1086: completion doesn\u0027t work with multi lines\n\nProblem:  completion doesn\u0027t work with multi lines\n          (Łukasz Jan Niemier)\nSolution: handle linebreaks in completion code as expected\n          (glepnir)\n\nfixes: #2505\ncloses: #15373\n\nSigned-off-by: glepnir \u003cglephunter@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "b7147f8236c962cd74d1ce028d9106f1c449ea6c",
      "tree": "bb956aec8d2570740e6d727edf9f632f8cdb55a9",
      "parents": [
        "a35040f795fbf217b0a1e21b6b3a94ad56c2298b"
      ],
      "author": {
        "name": "Luuk van Baal",
        "email": "luukvbaal@gmail.com",
        "time": "Sat Feb 08 18:52:39 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Feb 08 18:52:39 2025 +0100"
      },
      "message": "patch 9.1.1084: Unable to persistently ignore events in a window and its buffers\n\nProblem:  Unable to persistently ignore events in a window and its buffers.\nSolution: Add \u0027eventignorewin\u0027 option to ignore events in a window and buffer\n          (Luuk van Baal)\n\nAdd the window-local \u0027eventignorewin\u0027 option that is analogous to\n\u0027eventignore\u0027, but applies to a certain window and its buffers. Identify\nevents that should be allowed in \u0027eventignorewin\u0027, adapt \"auto_event\"\nand \"event_tab\" to encode this information. Window context is not passed\nonto apply_autocmds_group(), and when to ignore an event is a bit\nambiguous when \"buf\" is not \"curbuf\", rather than a large refactor, only\nignore an event when all windows into \"buf\" are ignoring the event.\n\ncloses: #16530\n\nSigned-off-by: Luuk van Baal \u003cluukvbaal@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "e0a2ab397fd13a71efec85b017d5d4d62baf7f63",
      "tree": "10fed57536b949b198b9de3c0fd65b956b4f50cc",
      "parents": [
        "cbc1f409c1197ca93b3903f0dee9947cae411fb4"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Sun Feb 02 09:14:35 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Feb 02 09:14:35 2025 +0100"
      },
      "message": "patch 9.1.1068: getchar() can\u0027t distinguish between C-I and Tab\n\nProblem:  getchar() can\u0027t distinguish between C-I and Tab.\nSolution: Add {opts} to pass extra flags to getchar() and getcharstr(),\n          with \"number\" and \"simplify\" keys.\n\nrelated: #10603\ncloses: #16554\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "b32800f7c51c866dc0e87244eb4902540982309d",
      "tree": "f8dd4fa5897d5b91dd151e8616eb6bc803986584",
      "parents": [
        "3219da514c1f90b0883158d044512641407eacd6"
      ],
      "author": {
        "name": "John Marriott",
        "email": "basilisk@internode.on.net",
        "time": "Sat Feb 01 15:25:34 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Feb 01 15:25:34 2025 +0100"
      },
      "message": "patch 9.1.1063: too many strlen() calls in userfunc.c\n\nProblem:  too many strlen() calls in userfunc.c\nSolution: refactor userfunc.c and remove calls to strlen(),\n          drop set_ufunc_name() and roll it into alloc_ufunc(),\n          check for out-of-memory condition in trans_function_name_ext()\n          (John Marriott)\n\ncloses: #16537\n\nSigned-off-by: John Marriott \u003cbasilisk@internode.on.net\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "edd4ac3e895ce16034c7e098f1d68e0155d97886",
      "tree": "8001ae9e6e06e1ea3d81face47cf06cc3419142c",
      "parents": [
        "ec961b05dcc1efb0a234f6d0b31a0945517e75d2"
      ],
      "author": {
        "name": "glepnir",
        "email": "glephunter@gmail.com",
        "time": "Wed Jan 29 18:53:51 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Jan 29 18:58:04 2025 +0100"
      },
      "message": "patch 9.1.1056: Vim doesn\u0027t highlight to be inserted text when completing\n\nProblem:  Vim doesn\u0027t highlight to be inserted text when completing\nSolution: Add support for the \"preinsert\" \u0027completeopt\u0027 value\n          (glepnir)\n\nSupport automatically inserting the currently selected candidate word\nthat does not belong to the latter part of the leader.\n\nfixes: #3433\ncloses: #16403\n\nSigned-off-by: glepnir \u003cglephunter@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "1aefe1de0b20fe4966863e07efa14b6aa87323ee",
      "tree": "18f94aa077cee3a2c5cd5bea0f225b07c274ba34",
      "parents": [
        "1ac53b84ada3a992f320566737e66fa00d48611f"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Tue Jan 14 17:29:42 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Jan 14 17:29:42 2025 +0100"
      },
      "message": "patch 9.1.1016: Not possible to convert string2blob and blob2string\n\nProblem:  Not possible to convert string2blob and blob2string\nSolution: add support for the blob2str() and str2blob() functions\n\ncloses: #16373\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "7c7a4e6d1ad50d5b25b42aa2d5a33a8d04a4cc8a",
      "tree": "932f9901f5f8a8491bd0d62e3438085a4e0f0bac",
      "parents": [
        "faf250c9e4f6f9fa5db38d9373735e77ba438a90"
      ],
      "author": {
        "name": "Jonathon",
        "email": "jonathonwhite@protonmail.com",
        "time": "Sun Jan 12 09:58:00 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Jan 12 09:58:00 2025 +0100"
      },
      "message": "patch 9.1.1009: diff feature can be improved\n\nProblem:  diff feature can be improved\nSolution: include the linematch diff alignment algorithm\n          (Jonathon)\n\ncloses: #9661\n\nSigned-off-by: Jonathon \u003cjonathonwhite@protonmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "2051af1642843426714efc2572c3e270fe0948be",
      "tree": "94c54dd3f494a242dfac80170700c72b8fb24051",
      "parents": [
        "df4a7d761740d59a4f911c9e13ac620a459cdea6"
      ],
      "author": {
        "name": "Yee Cheng Chin",
        "email": "ychin.git@gmail.com",
        "time": "Thu Jan 09 22:14:34 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Jan 09 22:14:34 2025 +0100"
      },
      "message": "patch 9.1.0999: Vim9: leaking finished exception\n\nProblem:  leaking finished exception\n          (after v9.1.0984)\nSolution: use finish_exception to clean up caught exceptions\n          (Yee Cheng Chin)\n\nIn Vimscript, v:exception/throwpoint/stacktrace are supposed to reflect\nthe currently caught exception, and be popped after the exception is\nfinished (via endtry, finally, or a thrown exception inside catch).\nVim9script does not handle this properly, and leaks them instead. This\nis clearly visible when launching GVim with menu enabled.  A caught\nexception inside the s:BMShow() in menu.vim would show up when querying\n`v:stacktrace` even though the exception was already caught and handled.\n\nTo fix this, just use the same functionality as Vimscript by calling\n`finish_exception` to properly restore the states. Note that this\nassumes `current_exception` is always the same as `caught_stack` which\nbelieve should be the case.\n\nAdded tests for this. Also fix up test_stacktrace to properly test the\nstack restore behavior where we have nested exceptions in catch blocks\nand to also test the vim9script functionality properly.\n\n- Also, remove its dependency on explicitly checking a line number in\n  runtest.vim which is a very fragile way to write tests as any minor\n  change in runtest.vim (shared among all tests) would require changing\n  test_stacktrace.vim. We don\u0027t actually need such granularity in the\n  test.\n\ncloses: #16413\n\nSigned-off-by: Yee Cheng Chin \u003cychin.git@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "a21240b97debea2e087aee6ad1488b5f075d1259",
      "tree": "46a4a6980310e0a5dcf4911e56c4e8f17aa6c98d",
      "parents": [
        "8ab1819df625354f6cc9b36cb46989e7b7c9ebae"
      ],
      "author": {
        "name": "John Marriott",
        "email": "basilisk@internode.on.net",
        "time": "Wed Jan 08 20:10:59 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Jan 08 20:10:59 2025 +0100"
      },
      "message": "patch 9.1.0997: too many strlen() calls in drawscreen.c\n\nProblem:  too many strlen() calls in drawscreen.c\nSolution: refactor drawscreen.c and remove calls to strlen(),\n          make get_keymap_str() (in screen.c) return string length\n          instead of TRUE/FALSE (John Marriott).\n\nSigned-off-by: John Marriott \u003cbasilisk@internode.on.net\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "663d18d6102f40d14e36096ec590445e61026ed6",
      "tree": "f8d8b9a63d812e6dc54b0fdcbfed404ebf774916",
      "parents": [
        "fd771613b3e59923b1a82a5ed9036c82899d133b"
      ],
      "author": {
        "name": "ichizok",
        "email": "gclient.gaap@gmail.com",
        "time": "Thu Jan 02 18:06:00 2025 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Jan 02 18:06:00 2025 +0100"
      },
      "message": "patch 9.1.0984: exception handling can be improved\n\nProblem:  exception handling can be improved\nSolution: add v:stacktrace and getstacktrace()\n\ncloses: #16360\n\nCo-authored-by: Naruhiko Nishino \u003cnaru123456789@gmail.com\u003e\nSigned-off-by: ichizok \u003cgclient.gaap@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "00d3459ea66438f4bdf3ca37df25c85e864d256a",
      "tree": "b64eed04750a917846a5e17733020ab1b50219e0",
      "parents": [
        "9739086de2ff2f894671668be20e335cad3fba3b"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Wed Dec 25 10:20:51 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Dec 25 10:20:51 2024 +0100"
      },
      "message": "patch 9.1.0959: Coverity complains about type conversion\n\nProblem:  Coverity complains about type conversion\n          (after v9.1.0957)\nSolution: use size_t instead of int for file length\n          (Yegappan Lakshmanan)\n\ncloses: #16297\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "8d0bb6dc9f2e5d94ebb59671d592c1b7fa325ca6",
      "tree": "ab916b398c57bd9609677ab185d545d1aa95fb2f",
      "parents": [
        "f07c10d7bb770547ab88cf479621b06a16c09b55"
      ],
      "author": {
        "name": "glepnir",
        "email": "glephunter@gmail.com",
        "time": "Tue Dec 24 09:44:35 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Dec 24 09:44:35 2024 +0100"
      },
      "message": "patch 9.1.0956: completion may crash, completion highlight wrong with preview window\n\nProblem:  completion may crash, completion highlight wrong with preview\n          window (after v9.1.0954)\nSolution: correctly calculate scroll offset, check for preview window\n          when adding extra highlighting\n          (glepnir)\n\nwhen there have a preview window prepare_tagpreview\nwill change curwin to preview window and this may cause\nComplMatchIns check condition not correct. check wp is curwin\nand also the type of wp is not a preview or poup info\n\nfixes: #16284\ncloses: #16283\n\nSigned-off-by: glepnir \u003cglephunter@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "6a38aff218f5b99a1aed7edaa357df24b9092734",
      "tree": "280878ffe3b4f95b96e621b0d0843e4e5e1bd6a5",
      "parents": [
        "368ef5a48c7a41af7fe2c32a5d5659e23aff63d0"
      ],
      "author": {
        "name": "glepnir",
        "email": "glephunter@gmail.com",
        "time": "Mon Dec 16 21:56:16 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Dec 16 21:56:16 2024 +0100"
      },
      "message": "patch 9.1.0936: cannot highlight completed text\n\nProblem:  cannot highlight completed text\nSolution: (optionally) highlight auto-completed text using the\n          ComplMatchIns highlight group (glepnir)\n\ncloses: #16173\n\nSigned-off-by: glepnir \u003cglephunter@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "6cc3027e544e4389bd665140511a3d347490b102",
      "tree": "06cf4c441c1bad3ad14f64a60ddf740450762aa4",
      "parents": [
        "e29c8bafa78847414419522baecd008e287389db"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Dec 13 17:54:33 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Dec 13 17:56:46 2024 +0100"
      },
      "message": "patch 9.1.0924: patch 9.1.0923 causes issues\n\nProblem:  patch 9.1.0923 causes issues (Shane-XB-Qian)\nSolution: back-out the change\n\nThis reverts commit e29c8bafa78847414419522baecd008e287389db (v9.1.0923)\n\nfixes: #16213\nrelated: #16160\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "e29c8bafa78847414419522baecd008e287389db",
      "tree": "b70530eb8786d089d58ef2fc70c1dd5199b4a45e",
      "parents": [
        "618c4d36ca92a62212a37e787c202229ceff8537"
      ],
      "author": {
        "name": "John Marriott",
        "email": "basilisk@internode.on.net",
        "time": "Fri Dec 13 13:58:53 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Dec 13 13:58:53 2024 +0100"
      },
      "message": "patch 9.1.0923: too many strlen() calls in filepath.c\n\nProblem:  too many strlen() calls in filepath.c\nSolution: refactor filepath.c and remove calls to STRLEN(),\n          unify dos_expandpath() and unix_expandpath() into\n          a single function\n\ncloses: #16160\n\nSigned-off-by: John Marriott \u003cbasilisk@internode.on.net\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "51d4d84d6a7159c6ce9e04b36f8edc105ca3794b",
      "tree": "c0e39a00f278e75af462d1307b70d936ce909aa1",
      "parents": [
        "ee9bc68f03877b2ebffed53b89222b2e4d74a723"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Dec 06 17:26:25 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Dec 06 17:26:25 2024 +0100"
      },
      "message": "patch 9.1.0908: not possible to configure :messages\n\nProblem:  not possible to configure :messages\nSolution: add the \u0027messagesopt\u0027 option (Shougo Matsushita)\n\ncloses: #16068\n\nCo-authored-by: h_east \u003ch.east.727@gmail.com\u003e\nSigned-off-by: Shougo Matsushita \u003cShougo.Matsu@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "2cddf0e85a7f8304476397e1c51dcd0e41835ac3",
      "tree": "bb301b0e2b22ef8b117325f8367065d671fef795",
      "parents": [
        "511eb84c08ea28a0a1363a4e780ee4311818f459"
      ],
      "author": {
        "name": "Milly",
        "email": "milly.ca@gmail.com",
        "time": "Thu Nov 28 18:16:55 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Nov 28 18:16:55 2024 +0100"
      },
      "message": "patch 9.1.0892: the max value of \u0027tabheight\u0027 is limited by other tabpages\n\nProblem:  the max value of \u0027tabheight\u0027 is limited by other tabpages\nSolution: Limit the maximum value of \u0027cmdheight\u0027 to the current tabpage only.\n          (Milly)\n\nThe Help says that cmdheight is local to the tab page, but says nothing\nabout the maximum value depending on the state of all tab pages. Users\nmay wonder why they can\u0027t increase cmdheight when there are still rows\navailable on the current tab page. This PR changes the behavior of\ncmdheight so that its maximum value depends only on the state of the\ncurrent tab page.\n\nAlso, since magic numbers were embedded in various places with the\nminimum value of cmdheight being 1, we defined a constant to make it\neasier to understand.\n\ncloses: #16131\n\nSigned-off-by: Milly \u003cmilly.ca@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "9f860a14c308f7a9a27a6850d36790615717a710",
      "tree": "b1ef3664ddae9d0f4af6886cdfc6c76caacde4a0",
      "parents": [
        "a01148d2cb2f8d2820a5b95474d11db0d1802360"
      ],
      "author": {
        "name": "Shougo Matsushita",
        "email": "Shougo.Matsu@gmail.com",
        "time": "Sun Nov 24 13:48:05 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Nov 24 13:48:05 2024 +0100"
      },
      "message": "patch 9.1.0883: message history cleanup is missing some tests\n\nProblem:  message history cleanup is missing some tests\nSolution: Add tests, refactor common code into did_set_msghistory()\n          (Shougo Matsushita)\n\ncloses: #16078\n\nCo-authored-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nCo-authored-by: Milly \u003cmilly.ca@gmail.com\u003e\nSigned-off-by: Shougo Matsushita \u003cShougo.Matsu@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "5e6ea92b2c58cbfc642d7e35bd717f99aa2e1e53",
      "tree": "a940689e690ec822fbe0631c8398351287dac1cd",
      "parents": [
        "991603cc04149aeed86470637540b22bc9f622c2"
      ],
      "author": {
        "name": "John Marriott",
        "email": "basilisk@internode.on.net",
        "time": "Sat Nov 23 14:01:57 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Nov 23 14:01:57 2024 +0100"
      },
      "message": "patch 9.1.0882: too many strlen() calls in insexpand.c\n\nProblem:  too many strlen() calls in insexpand.c\nSolution: Refactor insexpand.c and reduce number of calls to STRLEN(),\n          fix a warning get_next_filename_completion(), add new function\n          ins_compl_leader_len() (John Marriott)\n\ncloses: #16095\n\nSigned-off-by: John Marriott \u003cbasilisk@internode.on.net\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "a73dfc2f550155d676372c713011e6227245e9dc",
      "tree": "97d9bd180dac9e75ad9a063086366b048fa1eb69",
      "parents": [
        "bd4614f43d0eac4aff743132bab8e53b015ac801"
      ],
      "author": {
        "name": "mikoto2000",
        "email": "mikoto2000@gmail.com",
        "time": "Mon Nov 18 21:12:21 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Nov 18 21:12:21 2024 +0100"
      },
      "message": "patch 9.1.0871: getcellpixels() can be further improved\n\nProblem:  getcellpixels() can be further improved\nSolution: Fix floating point exception, implement getcellpixels() in the\n          UI (mikoto2000)\n\ncloses: #16059\n\nSigned-off-by: mikoto2000 \u003cmikoto2000@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "bd4614f43d0eac4aff743132bab8e53b015ac801",
      "tree": "863199ba1202854fe2189cfb524f8c41588418d7",
      "parents": [
        "ba9e1570d26b64dc4472394a67a026f2820910d5"
      ],
      "author": {
        "name": "John Marriott",
        "email": "basilisk@internode.on.net",
        "time": "Mon Nov 18 20:25:21 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Nov 18 20:26:13 2024 +0100"
      },
      "message": "patch 9.1.0870: too many strlen() calls in eval.c\n\nProblem:  too many strlen() calls in eval.c\nSolution: Refactor eval.c to remove calls to STRLEN()\n          (John Marriott)\n\ncloses: #16066\n\nSigned-off-by: John Marriott \u003cbasilisk@internode.on.net\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "1083cae7091f006249c1349d0575412d2ff6a7dc",
      "tree": "b921f7fd0d5a861800cd05db3aa4225043f255ff",
      "parents": [
        "6fbf63de865001dedafc227465e651926cf6f6dc"
      ],
      "author": {
        "name": "mikoto2000",
        "email": "mikoto2000@gmail.com",
        "time": "Mon Nov 11 21:24:14 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Nov 11 21:24:14 2024 +0100"
      },
      "message": "patch 9.1.0854: cannot get terminal cell size\n\nProblem:  cannot get terminal cell size\nSolution: add getcellpixels() function to return xpixel * ypixel\n          cell size on terminal Unix (mikoto2000)\n\ncloses: #16004\n\nSigned-off-by: mikoto2000 \u003cmikoto2000@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "45e0704d9670c10bfaf2bb408d6a5cd639d23835",
      "tree": "98d7cc47ea09f24d06524ab811e9212c344fd1b8",
      "parents": [
        "e7a1bbf2102ecd2083613ff18d7d46c45d1e568e"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Nov 11 20:52:55 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Nov 11 20:52:55 2024 +0100"
      },
      "message": "patch 9.1.0852: No warning when X11 registers are not available\n\nProblem:  No warning when X11 registers are not available\n          (delvh)\nSolution: Output W23 once when connection to X11 clipboard/selection\n          is not possible, mention in the documentation, that register 0\n          will be used instead\n\nVim silently uses the 0 register, when clipboard or selection register * or +\nare not available. This might be a bit unexpected for the user.\n\nSo let\u0027s just warn once when this happens.\n\nfixes: #14768\ncloses: #16013\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "56d45f1b6658ca64857b4cb22f18a18eeefa0f1d",
      "tree": "bbe3414fa1d7140ef25d332d6731934708d01332",
      "parents": [
        "622f6f5b9a9c2b88423f31a98e99cd3324446fcf"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Mon Nov 11 19:58:55 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Nov 11 20:01:06 2024 +0100"
      },
      "message": "patch 9.1.0850: Vim9: cannot access nested object inside objects\n\nProblem:  Vim9: cannot access nested object inside objects\n          (lifepillar, 91khr, mawkish)\nSolution: Add support for accessing an object member using a \"any\"\n          variable type (Yegappan Lakshmanan)\n\nfixes: #11822\nfixes: #12024\nfixes: #12196\nfixes: #12198\ncloses: #16029\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "ea19e7856b6c7850eab7ce74aa209e09e2c6eae3",
      "tree": "aa18194a9b2a479ff4276dc85f7661d827607b89",
      "parents": [
        "fd1a838d364b62a9211af23c47e0eab8d54ea452"
      ],
      "author": {
        "name": "Ben Jackson",
        "email": "puremourning@gmail.com",
        "time": "Wed Nov 06 21:50:05 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Nov 06 21:53:07 2024 +0100"
      },
      "message": "patch 9.1.0844: if_python: no way to pass local vars to python\n\nProblem:  if_python: no way to pass local vars to python\nSolution: Add locals argument to py3eval(), pyeval() and pyxeval()\n          (Ben Jackson)\n\nfixes: #8573\ncloses: #10594\n\nSigned-off-by: Ben Jackson \u003cpuremourning@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "a13f3a4f5de9c150f70298850e34747838904995",
      "tree": "a6ed380325af51e922e3a57d48b902fbd625716b",
      "parents": [
        "0b8176dff2dada4be1c8d3ca5e1dd1a7a536b4ca"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sat Nov 02 18:40:10 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Nov 02 18:43:42 2024 +0100"
      },
      "message": "patch 9.1.0831: \u0027findexpr\u0027 can\u0027t be used as lambad or Funcref\n\nProblem:  \u0027findexpr\u0027 can\u0027t be used for lambads\n          (Justin Keyes)\nSolution: Replace the findexpr option with the findfunc option\n          (Yegappan Lakshmanan)\n\nrelated: #15905\ncloses: #15976\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "a04003a929e443813c8060242e9809135b134a4c",
      "tree": "3abfb4a25a656959d8876660fa4084b108f5fa16",
      "parents": [
        "8f1d09828a92469a7fa824a8653bf689a7864d21"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Sun Oct 27 21:54:11 2024 +0100"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Oct 27 21:54:11 2024 +0100"
      },
      "message": "patch 9.1.0818: some global functions are only used in single files\n\nProblem:  some global functions are only used in single files\nSolution: refactor code slightly and make some more functions static\n          (Yegappan Lakshmanan)\n\ncloses: #15951\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "2f6efaccfd5c4e7df1f54ed0f41f329abbe05f60",
      "tree": "27735cf2f869b5d281cecf1ab1b455b65401a78d",
      "parents": [
        "aeb1c97db5b9de4f4903e7f288f2aa5ad6c49440"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Wed Oct 23 21:06:10 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Oct 23 21:06:10 2024 +0200"
      },
      "message": "patch 9.1.0811: :find expansion does not consider \u0027findexpr\u0027\n\nProblem:  :find expansion does not consider \u0027findexpr\u0027\nSolution: Support expanding :find command argument using \u0027findexpr\u0027\n          (Yegappan Lakshmanan)\n\ncloses: #15929\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "aeb1c97db5b9de4f4903e7f288f2aa5ad6c49440",
      "tree": "c26a21866f1fbf7d6f1ead889cb9cd652aca75cb",
      "parents": [
        "626b6ab48682b211c22ede5a6e63513c85f93e58"
      ],
      "author": {
        "name": "Yegappan Lakshmanan",
        "email": "yegappan@yahoo.com",
        "time": "Tue Oct 22 23:42:20 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Oct 22 23:42:20 2024 +0200"
      },
      "message": "patch 9.1.0810: cannot easily adjust the |:find| command\n\nProblem:  cannot easily adjust the |:find| command\nSolution: Add support for the \u0027findexpr\u0027 option (Yegappan Lakshmanan)\n\ncloses: #15901\ncloses: #15905\n\nSigned-off-by: Yegappan Lakshmanan \u003cyegappan@yahoo.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "6d5f4a0bed7644d5fcd442000a902ed3ae0704fe",
      "tree": "dac7a1701f7f345bd837ed92103fa02328ccac10",
      "parents": [
        "3e5bbb8e11758d879acf17aa6668874bfccd7e96"
      ],
      "author": {
        "name": "Milly",
        "email": "milly.ca@gmail.com",
        "time": "Tue Oct 22 23:17:45 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Oct 22 23:17:45 2024 +0200"
      },
      "message": "patch 9.1.0808: Terminal scrollback doesn\u0027t shrink when decreasing \u0027termwinscroll\u0027\n\nProblem:  Terminal scrollback doesn\u0027t shrink when reducing\n          \u0027termwinscroll\u0027\nSolution: Check if option value was decreased (Milly).\n\ncloses: #15904\n\nSigned-off-by: Milly \u003cmilly.ca@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "b38700ac81d90a652e5c8495056dd78df5babdde",
      "tree": "070d6df3a74e8ac888d24d89b7ea1d641e9f39f2",
      "parents": [
        "231480f9753fa3fb28e17b670550ce43172c0eba"
      ],
      "author": {
        "name": "Milly",
        "email": "milly.ca@gmail.com",
        "time": "Tue Oct 22 22:59:39 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Oct 22 22:59:39 2024 +0200"
      },
      "message": "patch 9.1.0806: tests: no error check when setting global \u0027briopt\u0027\n\nProblem:  tests: no error check when setting global \u0027briopt\u0027\nSolution: also parse and check global \u0027briopt\u0027 value (Milly)\n\ncloses: #15911\n\nSigned-off-by: Milly \u003cmilly.ca@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "a441a3eaabbfc14b4772e07ecbecaaff3bd06a58",
      "tree": "3e20dbeb47a03922cc788b2efd97f42c3d457b89",
      "parents": [
        "5e7a6a4a106923e45c67dae6810e4c9753f88025"
      ],
      "author": {
        "name": "Milly",
        "email": "milly.ca@gmail.com",
        "time": "Tue Oct 22 22:43:01 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Oct 22 22:43:01 2024 +0200"
      },
      "message": "patch 9.1.0804: tests: no error check when setting global \u0027cc\u0027\n\nProblem:  tests: no error check when setting global \u0027cc\u0027\nSolution: also parse and check global \u0027cc\u0027 value (Milly)\n\ncloses: #15914\n\nSigned-off-by: Milly \u003cmilly.ca@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "5e7a6a4a106923e45c67dae6810e4c9753f88025",
      "tree": "c6040a7ef0c747840525c0d1a3de094307de4e28",
      "parents": [
        "142cad1f88d1d3aa34b6050151e620b66185112e"
      ],
      "author": {
        "name": "Milly",
        "email": "milly.ca@gmail.com",
        "time": "Tue Oct 22 22:27:19 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Oct 22 22:27:19 2024 +0200"
      },
      "message": "patch 9.1.0803: tests: no error check when setting global \u0027isk\u0027\n\nProblem:  tests: no error check when setting global \u0027isk\u0027\nSolution: also parse and check global \u0027isk\u0027 value (Milly)\n\ncloses: #15915\n\nSigned-off-by: Milly \u003cmilly.ca@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "322ad0c953b7a3023cd2a65db61d05e180a5d682",
      "tree": "c2d722ec31a2561138f73977f8f57ef3ca7beda8",
      "parents": [
        "0c59c3027199ce593f6612d7cd418f375933c7cb"
      ],
      "author": {
        "name": "Milly",
        "email": "milly.ca@gmail.com",
        "time": "Mon Oct 14 20:21:48 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Oct 14 20:21:48 2024 +0200"
      },
      "message": "patch 9.1.0783: \u0027spell\u0027 option setting has problems\n\nProblem:  \u0027spell\u0027 option setting has problems\nSolution: correctly check for comma for \u0027spellfile\u0027 option,\n          remove unnecessary checks, refactor slightly (Milly)\n\ncloses: #15873\n\nSigned-off-by: Milly \u003cmilly.ca@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "0407d621bbad020b840ffbbbd25ba023bbc05edd",
      "tree": "efad4fea504c7f3aaafb906d906f50901443c8d4",
      "parents": [
        "347d43bd33519ab537f77d1a8fa8ab8f9196bcb9"
      ],
      "author": {
        "name": "Ruslan Russkikh",
        "email": "dvrussk@yandex.ru",
        "time": "Tue Oct 08 22:21:05 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Oct 08 22:24:04 2024 +0200"
      },
      "message": "patch 9.1.0770: current command line completion is a bit limited\n\nProblem:  current command completion is a bit limited\nSolution: Add the shellcmdline completion type and getmdcomplpat()\n          function (Ruslan Russkikh).\n\ncloses: #15823\n\nSigned-off-by: Ruslan Russkikh \u003cdvrussk@yandex.ru\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "ccf8907570e14396e265b742e51f5089fdf97bf5",
      "tree": "f8e66f5aca2df546d85a1d09b5a2639ba2d9f4d0",
      "parents": [
        "6e56484f051d34265acfb3bf390ba69482554ed6"
      ],
      "author": {
        "name": "John Marriott",
        "email": "basilisk@internode.on.net",
        "time": "Mon Oct 07 21:40:39 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Oct 07 21:40:39 2024 +0200"
      },
      "message": "patch 9.1.0766: too many strlen() calls in ex_getln.c\n\nProblem:  too many strlen() calls in ex_getln.c\nSolution: refactor the code to reduce the number of strlen() calls\n          (John Marriott)\n\ncloses: #15809\n\nSigned-off-by: John Marriott \u003cbasilisk@internode.on.net\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "51b62387be93c65fa56bbabe1c3c1ea5df187641",
      "tree": "7201c63085dac1cc24b07d3e67a0040b4abd6858",
      "parents": [
        "818c641b6fac73b574a2b760213f515cee9a3c8e"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Oct 06 17:31:10 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sun Oct 06 17:36:31 2024 +0200"
      },
      "message": "patch 9.1.0764: [security]: use-after-free when closing a buffer\n\nProblem:  [security]: use-after-free when closing a buffer\nSolution: When splitting the window and editing a new buffer,\n          check whether the newly to be edited buffer has been marked\n          for deletion and abort in this case\n\nGithub Advisory:\nhttps://github.com/vim/vim/security/advisories/GHSA-rj48-v4mq-j4vg\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "6a89c94a9eeee53481ced1a1260a177bffde4c0f",
      "tree": "e239e366dc63c217793df16e7ab563970923d1da",
      "parents": [
        "e021f39b79339385d6f70001cb35a79c611456ff"
      ],
      "author": {
        "name": "glepnir",
        "email": "glephunter@gmail.com",
        "time": "Tue Oct 01 20:32:12 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Oct 01 20:32:12 2024 +0200"
      },
      "message": "patch 9.1.0754: fixed order of items in insert-mode completion menu\n\nProblem:  fixed order of items in insert-mode completion menu\nSolution: Introduce the \u0027completeitemalign\u0027 option with default\n          value \"abbr,kind,menu\" (glepnir).\n\nAdding an new option `completeitemalign` abbr is `cia` to custom\nthe complete-item order in popupmenu.\n\ncloses: #14006\ncloses: #15760\n\nSigned-off-by: glepnir \u003cglephunter@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "25876a6cdd439054d0b3f920ccca0a435481de15",
      "tree": "121944ed52448915568da7b5c08b27481babb2a7",
      "parents": [
        "d9af78b9450362847b344f8dc0f68d015b428d03"
      ],
      "author": {
        "name": "h-east",
        "email": "h.east.727@gmail.com",
        "time": "Thu Sep 26 16:01:57 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Sep 26 16:01:57 2024 +0200"
      },
      "message": "patch 9.1.0742: getcmdprompt() implementation can be improved\n\nProblem:  getcmdprompt() implementation can be improved\nSolution: Improve and simplify it (h-east)\n\ncloses: #15743\n\nSigned-off-by: h-east \u003ch.east.727@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "6908428560a0d6ae27bf7af6fcb6dc362e31926c",
      "tree": "04254678ce72cc2fa5382beb98aa9989279a85d9",
      "parents": [
        "770b38df40dc0ba252e227dd14499276b710c91d"
      ],
      "author": {
        "name": "Shougo Matsushita",
        "email": "Shougo.Matsu@gmail.com",
        "time": "Mon Sep 23 20:34:47 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Sep 23 20:34:47 2024 +0200"
      },
      "message": "patch 9.1.0741: No way to get prompt for input()/confirm()\n\nProblem:  No way to get prompt for input()/confirm()\nSolution: add getcmdprompt() function (Shougo Matsushita)\n          (Shougo Matsushita)\n\ncloses: #15667\n\nSigned-off-by: Shougo Matsushita \u003cShougo.Matsu@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "61a6ac4d0066317131528f1b3ecc3b3a2599a75c",
      "tree": "2f066440decfc54296d24e72f08039b059d0a2d3",
      "parents": [
        "66f65a46c5d169f20f780721d4f74d4729855b96"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Sat Sep 07 11:23:54 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Sat Sep 07 11:23:54 2024 +0200"
      },
      "message": "patch 9.1.0720: Wrong breakindentopt\u003dlist:-1 with multibyte or TABs\n\nProblem:  Wrong breakindentopt\u003dlist:-1 with multibyte chars or TABs in\n          text matched by \u0027formatlistpat\u0027 (John M Devin)\nSolution: Use the width of the match text (zeertzjq)\n\nfixes: #15634\ncloses: #15635\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "fa16e4351afd8f639428b09aa6a04c213683e9c2",
      "tree": "c7facd3f8f62a1187ec97f0b753bbdec65cf6dd4",
      "parents": [
        "eccc92792ae45fd706b7d8958fd6c23e0e194161"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Sep 04 22:10:34 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Sep 04 22:10:34 2024 +0200"
      },
      "message": "patch 9.1.0715: Not correctly parsing color names (after v9.1.0709)\n\nProblem:  Not correctly parsing color names (chdiza, after v9.1.0709)\nSolution: Revert part of the patch that compares the color names and\n          fall-back to the macro STRICMP\n\nfixes: #15617\ncloses: #15619\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "84e3175c4e70486b52e15cc6c40095fa311c1107",
      "tree": "7ae89cb789d77aecb88f4785011115d820f9bf49",
      "parents": [
        "bd69b39514f1fec45a5ac76cd36db5dec2faebe2"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Sep 02 09:59:18 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Mon Sep 02 09:59:18 2024 +0200"
      },
      "message": "patch 9.1.0709: GUIEnter event not found in Turkish locale\n\nProblem:   GUIEnter not found in Turkish locale\n           (James McCoy, after v9.1.0256, the issue was there before,\n            but v9.1.0256 made it more apparent)\nSolution:  explicitly compare autocommand events by ASCII value and\n           ignoring locale, because according to the documentation,\n           events are case insensitive (:h autocommand-events)\n\nfixes: #15574\ncloses: #15603\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "0a6e57b09bc8c76691b367a5babfb79b31b770e8",
      "tree": "03442904cdd3bd40c7748a313f9cb66a3d6c3bbf",
      "parents": [
        "3b59be4ed8a145d3188934f1a5cd85432bd2433d"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 15 22:15:28 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 15 22:15:28 2024 +0200"
      },
      "message": "patch 9.1.0678: [security]: use-after-free in alist_add()\n\nProblem:  [security]: use-after-free in alist_add()\n          (SuyueGuo)\nSolution: Lock the current window, so that the reference to\n          the argument list remains valid.\n\nThis fixes CVE-2024-43374\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "58c957943030b4dc551bf210b76cb2882182260c",
      "tree": "32714fc474d0af2ad85f15885ab1cb114b65d89d",
      "parents": [
        "d33afe12c6639d70fca82230df6b9fdee7365423"
      ],
      "author": {
        "name": "Ernie Rael",
        "email": "errael@raelity.com",
        "time": "Tue Aug 13 23:27:22 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Aug 13 23:27:22 2024 +0200"
      },
      "message": "patch 9.1.0673: Vim9: too recursive func calls when calling super-class method\n\nProblem:  Vim9: too recursive func calls when calling super-class method\n          with non-overriden super-call methods. (Aliaksei Budavei)\nSolution: use interface method, when super is to be used (Ernie Rael)\n\nWhen compiling \"super.Func()\" force class context to class that defines\nfunction that is doing \"super.Func()\".\nISN_METHODCALL arg \"cmf_is_super\" for specific ufunc.\n\nfixes: #15448\nfixes: #15463 (2) super.method may not execute in context of defining\n                  class\ncloses: #15477\n\nSigned-off-by: Ernie Rael \u003cerrael@raelity.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "c1ed788c1b41db9b5f1ef548dc877f771f535bbe",
      "tree": "365d5c779316b7e989d3a37a4211332cf8e39ad8",
      "parents": [
        "b29f4abcd4b3382fa746edd1d0562b7b48c9de60"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Thu Aug 01 22:46:54 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Aug 01 22:46:54 2024 +0200"
      },
      "message": "patch 9.1.0649: Wrong comment for \"len\" argument of call_simple_func()\n\nProblem:  Wrong comment for \"len\" argument of call_simple_func().\nSolution: Remove the \"or -1 to use strlen()\".  Also change its type to\n          size_t to remove one cast. (zeertzjq)\n\ncloses: #15410\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "22e8e12d9f5034e1984db0c567b281fda4de8dd7",
      "tree": "856c42096fc98bd92eb4a475d5039ebf4cf9cb25",
      "parents": [
        "df9f67e10d214e0124f2141f59593529801307a4"
      ],
      "author": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Jul 30 20:39:18 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Tue Jul 30 20:39:18 2024 +0200"
      },
      "message": "patch 9.1.0645: regex: wrong match when searching multi-byte char case-insensitive\n\nProblem:  regex: wrong match when searching multi-byte char\n          case-insensitive (diffsetter)\nSolution: Apply proper case-folding for characters and search-string\n\nThis patch does the following 4 things:\n\n1) When the regexp engine compares two utf-8 codepoints case\n   insensitive it may match an adjacent character, because it assumes\n   it can step over as many bytes as the pattern contains.\n\n   This however is not necessarily true because of case-folding, a\n   multi-byte UTF-8 character can be considered equal to some\n   single-byte value.\n\n   Let\u0027s consider the pattern \u0027ſ\u0027 and the string \u0027s\u0027. When comparing and\n   ignoring case, the single character \u0027s\u0027 matches, and since it matches\n   Vim will try to step over the match (by the amount of bytes of the\n   pattern), assuming that since it matches, the length of both strings is\n   the same.\n\n   However in that case, it should only step over the single byte value\n   \u0027s\u0027 by 1 byte and try to start matching after it again. So for the\n   backtracking engine we need to ensure:\n   * we try to match the correct length for the pattern and the text\n   * in case of a match, we step over it correctly\n\n   There is one tricky thing for the backtracing engine. We also need to\n   calculate correctly the number of bytes to compare the 2 different\n   utf-8 strings s1 and s2. So we will count the number of characters in\n   s1 that the byte len specified. Then we count the number of bytes to\n   step over the same number of characters in string s2 and then we can\n   correctly compare the 2 utf-8 strings.\n\n2) A similar thing can happen for the NFA engine, when skipping to the\n   next character to test for a match. We are skipping over the regstart\n   pointer, however we do not consider the case that because of\n   case-folding we may need to adjust the number of bytes to skip over.\n   So this needs to be adjusted in find_match_text() as well.\n\n3) A related issue turned out, when prog-\u003ematch_text is actually empty.\n   In that case we should try to find the next match and skip this\n   condition.\n\n4) When comparing characters using collections, we must also apply case\n   folding to each character in the collection and not just to the\n   current character from the search string.  This doesn\u0027t apply to the\n   NFA engine, because internally it converts collections to branches\n   [abc] -\u003e a\\|b\\|c\n\nfixes: #14294\ncloses: #14756\n\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "242667ae142d9862a7bace82c58cb11c79fdab7a",
      "tree": "e46e81b339824a908e2b1e0530b58da37ee37ecb",
      "parents": [
        "4d68054c1e49b937a1aa9567196b97b36fe99c27"
      ],
      "author": {
        "name": "zeertzjq",
        "email": "zeertzjq@outlook.com",
        "time": "Thu Jul 25 20:58:42 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Jul 25 20:58:42 2024 +0200"
      },
      "message": "patch 9.1.0615: Unnecessary STRLEN() in make_percent_swname()\n\nProblem:  Unnecessary STRLEN() in make_percent_swname()\nSolution: Pass the end of \"dir\" to make_percent_swname()\n          (zeertzjq)\n\ncloses: #15340\n\nSigned-off-by: zeertzjq \u003czeertzjq@outlook.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "1165f7850b3899952850434c964cb06dc70ac99c",
      "tree": "fcc9e7e6394636e9ee90f3e5e931b8c3fef67509",
      "parents": [
        "aef6179bcf04918002103528651996c754c03840"
      ],
      "author": {
        "name": "Dominique Pellé",
        "email": "dominique.pelle@gmail.com",
        "time": "Thu Jul 18 20:40:28 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Jul 18 20:40:28 2024 +0200"
      },
      "message": "patch 9.1.0600: Unused function and unused error constants\n\nProblem:  unused function typval_compare_class() and error constants\nSolution: remove function typval_compare_class() and ifdef out\n          unused error constants (Dominique Pellé)\n\ncloses: #15299\n\nSigned-off-by: Dominique Pellé \u003cdominique.pelle@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "8159fb18a92e9a9f5e35201bd92bf651f4d5835c",
      "tree": "35fe650055efba7263980609c726d094a07490ad",
      "parents": [
        "fcc1b5741e391c163c9ce979653987c83287ce20"
      ],
      "author": {
        "name": "glepnir",
        "email": "glephunter@gmail.com",
        "time": "Wed Jul 17 20:32:54 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Wed Jul 17 20:32:54 2024 +0200"
      },
      "message": "patch 9.1.0598: fuzzy completion does not work with default completion\n\nProblem:  fuzzy completion does not work with default completion\nSolution: Make it work (glepnir)\n\ncloses: #15193\n\nSigned-off-by: glepnir \u003cglephunter@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "5247b0b92e191a046b034171a3b34031e317735f",
      "tree": "cedcbae8ce173ce4006262f069d3ce81ed26f877",
      "parents": [
        "74703f1086e7815f356123736666d9930db8683a"
      ],
      "author": {
        "name": "LemonBoy",
        "email": "thatlemon@gmail.com",
        "time": "Fri Jul 12 19:30:58 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Fri Jul 12 19:36:53 2024 +0200"
      },
      "message": "patch 9.1.0572: cannot specify tab page closing behaviour\n\nProblem:  cannot specify tab page closing behaviour\n          (Gianluca Pacchiella)\nSolution: Add the \u0027tabclose\u0027 option (LemonBoy).\n\nfixes: #5967\ncloses: #15204\n\nSigned-off-by: LemonBoy \u003cthatlemon@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    },
    {
      "commit": "a20bf69a3b32024cb7809be87af33bf9dc490a19",
      "tree": "a7d62b4c59841d2a466f82dbe26d5be861308602",
      "parents": [
        "764526e2799fbed040fc867858ee2eb0677afe98"
      ],
      "author": {
        "name": "LemonBoy",
        "email": "thatlemon@gmail.com",
        "time": "Thu Jul 11 22:35:53 2024 +0200"
      },
      "committer": {
        "name": "Christian Brabandt",
        "email": "cb@256bit.org",
        "time": "Thu Jul 11 22:45:42 2024 +0200"
      },
      "message": "patch 9.1.0568: Cannot expand paths from \u0027cdpath\u0027 setting\n\nProblem:  Cannot expand paths from \u0027cdpath\u0027 setting\n          (Daniel Hahler)\nSolution: Implement \u0027cdpath\u0027 completion, add the new \u0027dir_in_path\u0027\n          completion type (LemonBoy)\n\nfixes #374\ncloses: #15205\n\nSigned-off-by: LemonBoy \u003cthatlemon@gmail.com\u003e\nSigned-off-by: Christian Brabandt \u003ccb@256bit.org\u003e\n"
    }
  ],
  "next": "83678849095abfa914f5405e8a5e5d23346b5917"
}
