389 Commits

Author SHA1 Message Date
Yasuhiro Matsumoto e7745b7cbf patch 9.2.0411: tabpanel: no Vim script functions for the tabpanel
Problem:  tabpanel: no Vim script functions for the tabpanel
Solution: Add tabpanel_getinfo() and tabpanel_scroll()
          (Yasuhiro Matsumoto).

tabpanel_getinfo() returns a dict describing the tabpanel (align,
columns, scrollbar, offset, total, max_offset).

tabpanel_scroll(n) scrolls the tabpanel by n rows (positive for
down, negative for up). With {absolute: 1} the argument is used as
the new absolute offset instead of a delta. The offset is clamped to
the valid range; returns true when it actually changes.

closes: #20056

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-04-28 20:31:34 +00:00
Foxe Chen d0b6ee320b patch 9.2.0382: Wayland: focus-stealing is non-working
Problem:  Wayland: focus-stealing is non-working
Solution: Remove it, the feature could be re-implemented using
          clipboard-providers feature, see :h wayland-primary-selection
          (Foxe Chen).

closes: #19984

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-04-20 18:24:17 +00:00
Eisuke Kawashima 1c88aee1fa runtime: Remove wrong syn oneline keyword from a few syntax files
Also:
- drop a few trailing whitespaces
- mark the oneline keyword for :syn keyword as error in the
  Vim syntax script, add tests for it.

closes: #20018

Signed-off-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-04-20 15:14:31 +00:00
McAuley Penney a414630393 patch 9.2.0356: Cannot apply 'scrolloff' context lines at end of file
Problem:  Cannot apply 'scrolloff' context lines at end of file
Solution: Add the 'scrolloffpad' option to keep 'scrolloff' context even
          when at the end of the file (McAuley Penney).

closes: #19040

Signed-off-by: McAuley Penney <jacobmpenney@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-04-15 19:17:13 +00:00
Christian Brabandt 4c28794716 patch 9.2.0350: Enabling modelines poses a risk
Problem:  Enabling modelines poses a risk, cannot whitelist specific
          modelines
Solution: Include the 'modelinestrict' option, enabled by default, that
          allows only a few very specific modelines, all others will be
          ignored

When set (which it is by default), only the following settings will be
applied, all others will be ignored:

  'autoindent'
  'cindent'
  'commentstring'
  'expandtab'
  'filetype'
  'foldcolumn'
  'foldenable'
  'foldmethod'
  'modifiable'
  'readonly'
  'rightleft'
  'shiftwidth'
  'smartindent'
  'softtabstop'
  'spell'
  'spelllang'
  'tabstop'
  'textwidth'
  'varsofttabstop'
  'vartabstop'

Supported by AI

closes: #19875

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-04-14 18:57:41 +00:00
Hirohito Higashi c72196529b patch 9.2.0349: cannot style non-current window separator
Problem:  cannot style non-current window separator
Solution: Add the VertSplitNC highlighting group
          (Hirohito Higashi).

Add VertSplitNC highlight group for vertical separators of non-current
windows, similar to StatusLine/StatusLineNC distinction.  The separator
adjacent to the current window uses VertSplit, others use VertSplitNC.
Default: linked to VertSplit.

At the current window's status line rows, the separator cell is drawn as
a space with the StatusLine highlight so it blends into the status line
without a stray fillchar glyph.

Also:
- :redrawstatus[!] now also redraws vertical separators.
- statusline height changes trigger vsep redraw.

closes: #19951

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-04-14 18:42:38 +00:00
Yasuhiro Matsumoto 317351c745 patch 9.2.0318: cannot configure opacity for popup menu
Problem:  cannot configure opacity for popup menu
Solution: Add the 'pumopt' option, consolidate existing pum options into
          the pumopt option (Yasuhiro Matsumoto)

closes: #19931

Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-04-07 19:51:20 +00:00
Yasuhiro Matsumoto ba861f8c53 patch 9.2.0153: No support to act as a channel server
Problem:  Vim can only act as a channel client (ch_open). There is
          no way for an external process to initiate a connection
          to a running Vim instance using the Channel API.
Solution: Implement ch_listen() and the underlying server-side
          socket logic. This allows Vim to listen on a port or
          Unix domain socket. When a client connects, a new
          channel is automatically created and passed to a
          user-defined callback (Yasuhiro Matsumoto).

closes: #19231

Co-authored-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
2026-03-13 19:15:25 +00:00
Foxe Chen c970b470fb patch 9.2.0139: Cannot configure terminal resize event
Problem:  Cannot configure terminal resize event
Solution: Add the 'termresize' option and allow to use in-band window
          resize events (Foxe Chen).

closes: #19596

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-11 20:03:36 +00:00
Foxe Chen 7ba60f17c2 patch 9.2.0110: No support for terminal synchronization mode
Problem:  No support for terminal synchronization mode
Solution: Add DEC 2026 support using the 'termsync' option
          (Foxe Chen).

related: #11718
closes:  #19541

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-04 21:09:25 +00:00
Foxe Chen 98174caabb patch 9.2.0093: Not possible to have window-local highlighting groups
Problem:  Not possible to have window-local highlighting groups
          (Hima)
Solution: Port Neovims 'winhighlight' option to Vim (Foxe Chen).

fixes:  #3576
closes: #19493

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-02 19:36:07 +00:00
Hirohito Higashi a4186316ba patch 9.2.0083: Cannot have a mutli-line statusline
Problem:  Cannot have a mutli-line statusline.
Solution: Add support for multi-line statusline
          (Hirohito Higashi).

closes: #19123

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-03-01 16:57:08 +00:00
Doug Kearns b901fa9a6a runtime(vim): Update base syntax, improve :syntax group list arg matching
Attempt to match all variations of group name and comma separator across
continuation lines.

Fixes issues:
- #18491 (Two ")"s are incorrectly colored 'vimOperError' in
  syntax/mail.vim), reported by @lkintact
- #19366 (highlight error for contains elements in a new line), reported
  by Maxim Kim

fixes: #18491
fixes: #19366

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-28 17:20:42 +00:00
Peter Kenny 3794d9b33c runtime(vim): Error codes should not be highlighed with vim9CommentTitle
closes: #19390

Signed-off-by: Peter Kenny <github.com@k1w1.cyou>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-15 15:59:36 +00:00
Doug Kearns 2e4c98b6f3 runtime(vim): Update base syntax, match Vim9 :unlet command
closes: #19290

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-02-01 15:03:46 +00:00
zeertzjq 6a2b5b2246 patch 9.1.2078: A few more typos in various files
Problem:  A few more typos in various files
Solution: Fix those (zeertzjq, antonkesy)

related: neovim/neovim#37348
closes:  #19153

Co-authored-by: Anton Kesy <anton@kesy.de>
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-01-11 18:59:51 +00:00
Doug Kearns c4dc4d8f1e runtime(syntax-tests): Add :help command termination tests
Problem:  The :help command lacks command termination tests.
Solution: Add tests for command termination at "|", "^M" and "^J".

- Check special handling of "|" in arguments.
- Update the Vim syntax file.

closes: #18932

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-01-11 18:25:38 +00:00
Foxe Chen 4438b8e071 patch 9.1.1976: Cannot define callbacks for redraw events
Problem:  When using listeners, there is no way to run callbacks at
          specific points in the redraw cycle.
Solution: Add redraw_listener_add() and redraw_listener_remove() and
          allow specifying callbacks for redraw start and end
          (Foxe Chen).

closes: #18902

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-13 18:23:54 +01:00
Foxe Chen fcd3958dcb patch 9.1.1972: No way to access the clipboard without X11/Wayland
Problem:  No way to access the clipboard without X11/Wayland.
Solution: Add the clipboard provider feature (Foxe Chen).

closes: #18781

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-11 21:13:35 +01:00
Doug Kearns 927ad166a4 runtime(vim): Update base syntax, match full :help command
closes: #18833

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-09 13:40:59 +01:00
Doug Kearns a4c43a6cf5 runtime(vim): Update base syntax, match full :language command
closes: #18808

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-30 15:44:36 +00:00
Girish Palya cbcbff8712 patch 9.1.1933: completion: complete_match() is not useful
Problem:  completion: complete_match() Vim script function and
          'isexpand' option are not that useful and confusing
          (after v9.1.1341)
Solution: Remove function and option and clean up code and documentation
          (Girish Palya).

complete_match() and 'isexpand' add no real functionality to Vim. They
duplicate what `strridx()` already does, yet pretend to be part of the
completion system. They have nothing to do with the completion mechanism.

* `f_complete_match()` in `insexpand.c` does not call any completion code.
   It’s just a `STRNCMP()` wrapper with fluff logic.
* `'isexpand'` exists only as a proxy argument to that function.
   It does nothing on its own and amounts to misuse of a new option.

The following Vim script function can be used to implement the same
functionality:

```vim
  func CompleteMatch(triggers, sep=',')
    let line = getline('.')->strpart(0, col('.') - 1)
    let result = []
    for trig in split(a:triggers, a:sep)
      let idx = strridx(line, trig)
      if l:idx >= 0
        call add(result, [idx + 1, trig])
      endif
    endfor
    return result
  endfunc
```

related: #16716
fixes: #18563
closes: #18790

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-27 21:28:05 +00:00
Girish Palya 33fbfe003c patch 9.1.1930: completion: 'completefuzzycollect' is too obscure
Problem:  completion: 'completefuzzycollect' option is too obscure
Solution: Deprecate the option, but don't error out for existing scripts,
          behave like 'completefuzzycollect' is set when fuzzy
          completion is enabled (Girish Palya).

fixes: #18498
closes: #18788

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-26 21:00:16 +00:00
Doug Kearns 8da886269a runtime(vim): Update base syntax, match full :history command
closes: #18784

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-21 18:18:51 +00:00
Doug Kearns ea86e53c2b runtime(vim): Update base syntax, match :debug and :break* commands
Match full :debug, :breakadd, :breakdel and :breaklist commands.

closes: #18748

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-20 20:57:15 +00:00
Doug Kearns f46616f0c4 runtime(vim): Update base syntax and generator, match :cd commands
Match :cd commands explicitly.

fixes: #17964
closes: #18736

Reported by Maxim Kim.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-15 10:17:17 +00:00
Doug Kearns 4f19d2768a runtime(vim): Update base syntax, match :prompt command args
closes: #18732

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-12 19:17:11 +00:00
Doug Kearns fe24972139 runtime(vim): Update base syntax, refine object constructor matching
Match "object" and "<" ... ">" separately with dedicated syntax groups
to allow for highlighting distinct from that generally used for types.

closes: #18721

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-11 16:37:09 +00:00
Doug Kearns e1e347475e runtime(vim): Update base syntax, fix :augroup error matching
Only terminate the :augroup END argument at whitespace, comments and
trailing bars.

closes: #18711

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-10 19:50:57 +00:00
Doug Kearns 8869800f70 runtime(vim): Update base syntax, match :*do command arg
Match the Ex command arg to all :*do commands.

closes: #18700

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-09 18:59:52 +00:00
Doug Kearns 59f0ea5b3e runtime(vim): Update base syntax, match Vim9 object type constructor
fixes: #18677.
closes: #18691

Reported by Aliaksei Budavei.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-08 17:23:47 +00:00
Christian Brabandt 461dd9aca6 runtime(vim): 'iskeyword' setting not correctly restored
fixes: #18673

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-04 18:13:55 +00:00
Evgeni Chasnovski 294bce21ee patch 9.1.1892: Not possible to know once Vim is done with sourcing vimrc
Problem:   A plugin does not know when startup scripts were already
           triggered. This is useful to determine if a function is
           called inside vimrc or after (like when sourcing 'plugin/'
           files).
Solution:  Add the v:vim_did_init variable (Evgeni Chasnovski)

closes: #18668

Signed-off-by: Evgeni Chasnovski <evgeni.chasnovski@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-11-01 15:54:35 +00:00
Doug Kearns 433d2ab206 runtime(vim): Update base syntax, match Vim9 lambda arg to :defer
Support added in commit 21ef3c6e59.

See: #18643
closes: #18645

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-28 20:36:04 +00:00
Doug Kearns 842c7788a5 runtime(vim): Update base syntax, improve :@ highlighting
- Highlight :@ as a normal Ex command rather than something special.
- Fix erroneous matching of the Ex command as a register variable.

closes: #18624

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-26 13:50:05 +00:00
Foxe Chen 00e8452191 patch 9.1.1873: Clipboard provider feature broke clipboard support
Problem:  Clipboard provider feature broke clipboard support
          (Yee Cheng Chin)
Solution: Revert clipboard changes (Foxe Chen).

fixes: #18600
closes: #18633

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-26 13:46:05 +00:00
Foxe Chen 67860efe5b patch 9.1.1857: Missing clipboard provider support
Problem:  Missing clipboard provider support
          (lilydjwg)
Solution: Add clipboard provider feature
          (Foxe Chen)

fixes: #12419
closes: #17998

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-14 19:35:17 +00:00
Doug Kearns 7e9ccdd3f2 runtime(vim): Update syntax, add missing commands to generator exclusion list
closes: #18548

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-12 15:15:00 +00:00
Doug Kearns 7dba04f15c runtime(doc,vim): Update base syntax, match full :syntime command
- Use the optional tail command-name spec at :help :syntime.
- Match full :syntime command and highlight args.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-09 19:39:57 +00:00
Doug Kearns ce5f9f45af runtime(vim): Update base syntax, allow legacy script comments after :eval
closes: #18522

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-08 18:22:23 +00:00
Girish Palya 474b981e40 patch 9.1.1835: completion: not possible to style popup borders globally
Problem:  not possible to style popup borders globally
Solution: Add the 'pumborder' option (Girish Palya)

This commit introduces a new global option, 'pumborder' ('pb'), that
allows users to define borders and optional decorations for the
completion popup menu.

```
Defines a border and optional decorations for the popup menu in
completion.  The value is a comma-separated list of keywords.

Border styles (at most one):
"single"singleuse thin box-drawing characters
"double"doubleuse double-line box-drawing characters
"round"rounduse rounded corners
"ascii"asciiuse ASCII characters (-, |, +)
"custom:XXXXXXXX"
    use eight characters given after "custom:",
    in order: top, right, bottom, left,
    topleft, topright, botright, botleft

Additional flags:
"margin"marginadds one-cell spacing inside the left and right border
"shadow"shadowdraws a shadow at the right and bottom edges

Highlight groups:
|hl-PmenuBorder|hl-PmenuBorderused for the border characters
|hl-PmenuShadow|hl-PmenuShadowused for the shadow

Examples: >
  :set pumborder=single
  :set pumborder=double,margin,shadow
  :set pumborder=custom:─│─│┌┐┘└,shadow

Border styles using box-drawing characters ("single", "double",
"round") are only available when |'encoding'| is "utf-8" and
|'ambiwidth'| is "single".  "margin" requires a border style.
See also: |ins-completion-menu|.
```

fixes: https://github.com/vim/vim/pull/18441#issuecomment-3360188458
closes: #18486
closes: #17091

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-07 20:51:02 +00:00
Mao-Yining 2c09368273 patch 9.1.1834: MS-Windows: not possible to highlight the title bar
Problem:  MS-Windows: not possible to highlight the title bar
Solution: Make the title/caption bar configurable by introducing the
          'go-C' option value which allows to highlight it using the
          TitleBar and TitleBarNC highlighting groups (Mao-Yining).

Introduce titlebar color customization for Windows 11 GUI through
highlight groups and new 'guioptions' flag:

- Add 'C' flag to enable titlebar color customization (opt-in)
- New highlight groups: TitleBar (active) and TitleBarNC (inactive)
- Uses DWMWA_CAPTION_COLOR and DWMWA_TEXT_COLOR DWM attributes
- Dynamically loads dwmapi.dll for Windows 11 compatibility
- Defaults to system colors when set to NONE or feature disabled

closes: #18449

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-07 19:41:59 +00:00
Doug Kearns 0977c8b03e runtime(vim): Update base syntax, contain user command replacement text
Ensure that :command replacement text terminates at the end of the
logical line.

Add :command to the generator exclusion list.

fixes: #18414 (@Dougaak)
fixes: #18448 (Maxim Kim)
closes: #18415

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-01 21:03:22 +00:00
Doug Kearns 3a56139398 runtime(help): Update syntax, add vim9 example language
"vim9" is Vim9 script and "vim" is legacy script.

See: https://github.com/vim/vim/pull/18350#discussion_r2372462539

closes: #18407

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-09-28 18:09:38 +00:00
Doug Kearns ae20d732ae runtime(vim): Update base syntax, improve line-continuation skip patterns
Factor out the common prefix in line-continuation :syn-skip patterns.

closes: #18416

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-09-28 18:02:13 +00:00
Doug Kearns f4a6acd86e runtime(vim): Update base syntax, allow Vim9 :echo tail comments
- Match comments after Vim9 :echo and :execute.
- Match comments after Vim9 and legacy :eval.

closes: #18420

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-09-28 17:56:01 +00:00
Girish Palya c05335082a patch 9.1.1797: completion: autocompletion can be improved
Problem:  completion: autocompletion can be improved
Solution: Add support for "longest" and "preinsert" in 'autocomplete';
          add preinserted() (Girish Palya)

* Add support for "longest" in 'completeopt' when 'autocomplete'
  is enabled. (Note: the cursor position does not change automatically
  when 'autocomplete' is enabled.)
* Add support for "preinsert" when 'autocomplete' is enabled. Ensure
  "preinsert" works the same with and without 'autocomplete'
* introduce the preinserted() Vim script function, useful for defining
  custom key mappings.

fixes: #18314
closes: #18387

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-09-26 17:29:38 +00:00
Doug Kearns 7bb733f6bf runtime(vim): Update base syntax, match null_tuple literal
closes: #18404

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-09-26 16:28:00 +00:00
Doug Kearns da5b6007fb runtime(vim): Update base syntax, match :terminal command
Match the full :terminal command syntax.

closes: #18367

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-09-23 18:31:34 +00:00
Doug Kearns b1446dfd23 runtime(vim): Update base syntax, match :wincmd
Match the full :wincmd command syntax.

Allow for oneline assignment to Vim9 variables named winc[md].

Fixes #18368.

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-09-23 18:24:53 +00:00