Commit Graph

32694 Commits

Author SHA1 Message Date
Yee Cheng Chin
91d6fa59e7 MacVim r182
Updated to Vim 9.1.1887

This update is still built against macOS 15 Sequoia, and does not
contain any specific fixes or improvements for macOS 26 Tahoe. That will
come in a future update.

Announcements
====================

Moving macOS 10.13 - 10.15 support to legacy release
--------------------

Currently, MacVim binary releases are available in two versions: a
normal version (macOS 10.13 or above), and a legacy version (macOS
10.9-10.12). Starting next release (r183), the normal version will
require macOS 11 or above (due to Xcode 26 requirements), and macOS
10.13-10.15 users will need to use the legacy version instead. This will
mostly be a transparent change, and the updater will automatically
update to the right version. The legacy version should be almost
identical to said users as they are using older versions of macOS that
can't make use of newer OS features to begin with.

In the future we may remove support for macOS 10.9-10.12 but for now
they are still supported.

Features
====================

Better mouse support
--------------------

- Scroll wheels should feel much better to use in MacVim. A small scroll
  is now guaranteed to scroll at least one line, and shift-scrolling
  (horizontal scroll) works correctly now. You can now also turn off
  macOS's scroll wheel acceleration to scroll a fixed amount of lines in
  the "Input" settings pane. #1566
- Mouse buttons 4 and 5 can now be bound to `<X1Mouse>` and `<X2Mouse>`
  in Vim mappings (`:h X1Mouse`). #1534

New Vim Features
====================

- Diff mode improvements
    - Vim diff can now highlight per-character or per-word differences
      within a line. Per-character highlighting is now used by default.
      See `:h 'diffopt'` under "inline". v9.1.1243
    - Diff anchors allow for more explicit controls over how and where
      the diff algorithm aligns text across files (`:h diff-anchors`).
      v9.1.1557
- Lots of auto-completion improvements. Some highlights below:
    - New option: `autocomplete`. Get completion suggestions as you
      type. See `:h ins-autocompletion`. v9.1.1590
    - Fuzzy matching now uses the fzf algorithm. v9.1.1627
    - Popup menu borders can now be styled (`:h 'pumborder'` / `:h
      'completepopup'`). v9.1.1835 / v9.1.1856
    - Can now specify a custom completion source when using insert-mode
      completion (`:h 'complete'`). v9.1.1301
    - `set completeopt+=nearest` will sort completion items by proximity
      to the cursor. v9.1.1308
    - Command-line completion
        - Search commands like `/` and `:g` can be tab-completed now.
          v9.1.1490 v9.1.1526
        - Commands like `:filetype` and `:highlight` have better
          auto-completion. v9.1.1340 / v9.1.1138
- New vertical tab panel (`:h tabpanel`). v9.1.1391
- new bundled optional plugins (use `packadd` to enable them):
    - hlyank (`:h package-hlyank`): Briefly highlight region of last
      yank command
- new commands:
    - `:uniq` (`:h :uniq`): Remove duplicate adjacent lines v9.1.1477

General
====================

- Sparkle (updater for MacVim) is now updated to 2.8.0. #1605

Security Fixes
====================

- Fixed MacVim erroneously setting the get-task-allow entitlement, which
  could allow another user-installed application to inspect it
  (CVE-2025-8597) #1585

Fixes
====================

- Fixed issue where macOS services (available in the "Services" menu)
  could not insert text when not in visual mode. #1571 #1569
- Fixed issue where guifont did not accept PostScript names with
  underscores (e.g. "CascadiaMono-Regular_Light"). #1600
- MacVim now uses the standard `v:colornames` variable for choosing
  highlight colors. #1568
- Vim syntax now understands MacVim-specific function
  `showdefinition()`. #1601

Compatibility
====================

Requires macOS 10.9 or above. (10.9 - 10.12 requires downloading a
separate legacy build)

Script interfaces have compatibility with these versions:

- Lua 5.4
- Perl 5.34
- Python2 2.7
- Python3 3.9 or above
- Ruby 3.4
release-182
2025-10-30 01:39:32 -07:00
Yee Cheng Chin
91e24d4213 Merge pull request #1609 from ychin/fix-test-popup-italics-macos-13
ci: Fix test_popup failing on macos-13 due to lack of italics support
2025-10-30 00:16:45 -07:00
Yee Cheng Chin
0b0f5984fa ci: Fix test_popup failing on macos-13 due to lack of italics support
Up till macOS 13, the default terminal does not properly advertise it
supports italics, and Vim just silently replaces it with the "reverse"
effect. Revently, a test in test_popup (Test_popup_shadow_hiddenchar)
was added and the test dumps assume italics support. Add checks to skip
this test if we detect that italics is not supported to avoid failing
the screen dump tests.

Note that macos-13 is being sunset by GitHub Actions, but we still use a
self-hosted version of it to make legacy builds.

Note that due to MacVim silently passing all flaky tests currently, this
test wasn't breaking CI anyway, but it did slow it down due to test
retries, and we do want to go back to not silently passing flaky tests
in near future.
2025-10-29 23:51:49 -07:00
Yee Cheng Chin
19f411e5e8 Merge remote-tracking branch 'vim/master'
Contains a local fix to regenerate the help tags to keep them sorted.
2025-10-28 16:48:08 -07:00
John Marriott
110656ba60 patch 9.1.1887: string handling in strings.c can be improved
Problem:  string handling in strings.c can be improved
Solution: Refactor strings.c and remove calls to STRLEN()
          (John Marriott)

This change does:
- In vim_strsave_shellescape() a small cosmetic change.
- In string_count() move the call to STRLEN() outside the while loop.
- In blob_from_string() refactor to remove call to STRLEN().
- In string_from_blob() call vim_strnsave() instead of vim_strsave().
- In vim_snprintf_safelen() call vim_vsnprintf_typval() directly instead
  of vim_vsnprintf() which then calls vim_vsnprintf_typval().
- In copy_first_char_to_tv() change to return -1 on failure or the length
  of resulting v_string. Change string_filter_map() and string_reduce() to
  use the return value of copy_first_char_to_tv().

closes: #18617

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-28 20:56:47 +00:00
Christian Brabandt
469f870c5e runtime(compiler): Fix invalid expression in tombi compiler after d659fafcc
related: #18590

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-28 20:54:34 +00:00
Konfekt
d659fafccd runtime(compiler): add tombi compiler to lint TOML files
closes: #18590

Signed-off-by: Konfekt <Konfekt@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-28 20:42:17 +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
Bruno Belanyi
7adeb09bb2 patch 9.1.1886: filetype: Android aconfig files are not recognized
Problem:  filetype: Android aconfig files are not recognized
Solution: Detect *.aconfig files as pbtxt filetype (Bruno Belanyi)

Reference:
https://source.android.com/docs/setup/build/feature-flagging/declare-flag

closes: #18656

Signed-off-by: Bruno Belanyi <bruno@belanyi.fr>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-28 20:34:12 +00:00
zeertzjq
b2e6b328da patch 9.1.1885: Wrong restored cursor pos when re-entering buffer after changes
Problem:  Wrong restored cursor position when re-entering a buffer
          previously viewed in a window after making changes to the same
          buffer in another window.
Solution: Adjust per-window "last cursor" positions on buffer changes.
          (zeertzjq)

closes: #18655

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-28 20:27:19 +00:00
Doug Kearns
9ad706735d runtime(doc): Highlight [expr] arg in :help :return description
closes: #18654

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-28 20:20:02 +00:00
Yegappan Lakshmanan
f09ff72d48 patch 9.1.1884: :defer an empty lambda causes a crash
Problem:  :defer an empty lambda causes a crash
          (Maxim Kim, after v9.1.1882)
Solution: Check for missing arguments (Yegappan Lakshmanan)

related: #18641
closes: #18653

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-28 20:05:13 +00:00
Christian Brabandt
6be154f5e6 runtime(doc): revert wrong 'incsearch' description
This reverts commit 3fc00c05fb.

related: #18639

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-28 19:48:19 +00:00
zeertzjq
e06e70f7b1 patch 9.1.1883: Wrong display with 'smoothscroll' with -diff
Problem:  Wrong display with 'smoothscroll' when FEAT_DIFF is disabled.
Solution: Use plines_correct_topline() (zeertzjq).

closes: #18649

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-28 19:03:22 +00:00
Yee Cheng Chin
007cbaccd0 Merge tag 'v9.1.1881'
Don't merge vim/master as the latest commit (v9.1.1882) could lead to a
crash if used incorrectly.
2025-10-28 02:39:10 -07:00
Yee Cheng Chin
c70bf990a0 Merge pull request #1608 from macvim-dev/dependabot/github_actions/actions/upload-artifact-5
CI: Bump actions/upload-artifact from 4 to 5
2025-10-27 16:11:05 -07:00
Yegappan Lakshmanan
21ef3c6e59 patch 9.1.1882: Vim9: Not able to use a lambda with :defer
Problem:  Vim9: Not able to use a lambda with :defer
          (Maxim Kim)
Solution: Add support for this (Yegappan Lakshmanan)

fixes: #18626
closes: #18643

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-27 18:07:52 +00:00
zeertzjq
58ab3438b7 runtime(netrw): fix misaligned comment after #18611
related" #18611
closes: #18644

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-27 18:04:22 +00:00
Yee Cheng Chin
50ede52829 patch 9.1.1881: tests: test_popupwin fails after c8eeda9b
Problem:  tests: test_popupwin fails after c8eeda9b due to syntax
          highlighting change
Solution: Regenerate terminal dumps Test_popup_setbuf*dump
          (Yee Cheng Chin).

closes: #18646

Signed-off-by: Yee Cheng Chin <ychin.git@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-27 17:55:27 +00:00
Christian Brabandt
f11d9e4d28 runtime(doc): regenerate help tags file after eba51337
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-27 17:53:44 +00:00
Aaron Jacobs
eba51337d4 runtime(rust): Do not use rustfmt as 'formatprg' by default
This reverts commit 4ac995bf93.

This was added in #16807, with no explanation for why it was necessary beyond
"it's an example of an idea". It completely breaks `gq` for me—rustfmt doesn't
reflow comments so is not an appropriate tool here! Beyond that, formatting a
selection with rustfmt treats that selection as if it were an entire file,
throwing away any indentation.

For example, the commit causes `gq` to turn this:

```rust
pub fn foo() {
    // blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
}
```

into this:

```rust
pub fn foo() {
// blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
}

```

which is totally wrong. In contrast, if I clear `formatprg` then `gq` does the
right thing again:

```rust
pub fn foo() {
    // blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
    // blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
    // blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
    // blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
    // blah blah blah blah blah blah
}
```

related: #16967
related: #17055
closes: #18640

Signed-off-by: Aaron Jacobs <jacobsa@google.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-27 17:46:11 +00:00
kuuote
7d3b647f88 patch 9.1.1880: Allocation error with complete_info()
Problem:  Allocation error with complete_info()
          (after v9.1.1876)
Solution: Make sure length is positive (kuuote)

closes: #18640

Signed-off-by: kuuote <znmxodq1@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-27 17:26:29 +00:00
dependabot[bot]
ec35839ddf CI: Bump actions/upload-artifact from 4 to 5
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 16:19:06 +00:00
Yee Cheng Chin
7249b1fc7d Fix test_popupwin failure due to syntax highlight change
This test is broken upstream, and needs to be fixed upstream in Vim.
Fixing it downstream for now to unblock CI.
2025-10-27 01:46:13 -07:00
Yee Cheng Chin
1ac8fbf579 Merge remote-tracking branch 'vim/master' 2025-10-27 01:46:08 -07:00
Yee Cheng Chin
7e3022b10a Merge pull request #1607 from ychin/check-more-features-clipboard_working
test: Enforce more feature flags are present in MacVim
2025-10-26 20:48:19 -07:00
Yee Cheng Chin
56fcd4155d test: Enforce more feature flags are present in MacVim
In particular, `clipboard_working` was broken upstream recently. This
helps catch the issue pre-emptively.
2025-10-26 19:53:04 -07:00
Yegappan Lakshmanan
bd9155ebb6 patch 9.1.1879: Crash when using a lambda funcref with :defer
Problem:  Crash when using a lambda funcref with :defer
Solution: De-reference the partial correctly after invoking the deferred
          functions (Yegappan Lakshmanan).

closes: #18640

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-26 20:03:18 +00:00
Riley Bruins
9fff99c3c2 patch 9.1.1878: filetype: Soy files are not recognized
Problem:  filetype: Soy files are not recognized
Solution: Detect *.soy files as soy filetype,
          include a soy filetype plugin (Riley Bruins)

closes: #18640

Signed-off-by: Riley Bruins <ribru17@hotmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-26 20:00:03 +00:00
Christian Brabandt
6a8ab8f5d4 runtime(doc): update the :split help tags.
closes: #18640

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-26 19:57:46 +00:00
Anttoni Erkkilä
61ef8a3db9 patch 9.1.1877: cindent: wrong indentation after an array declaration
Problem:  cindent: wrong indentation after an array declaration
Solution: check if the filetype if javascript before matching the syntax
          (Anttoni Erkkilä)

cindent matches a javascript syntax for C files causing wrong
indentation in the following case:
```
void foo() {
float a[5],
b;
}
```

closes: #18631

Signed-off-by: Anttoni Erkkilä <anttoni.erkkila@protonmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-26 19:46:38 +00:00
Doug Kearns
c8eeda9b15 runtime(doc): Improve header formatting
- Normalise header formatting and highlight all bylines.
- Remove broken email address from if_sniff.txt.

closes: #18601

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-26 19:29:28 +00:00
Christian Brabandt
3fc00c05fb runtime(doc): mention that 'incsearch' ignores addresses and offset
closes: #18639

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-26 18:53:00 +00:00
Doug Kearns
8e600aded2 runtime(doc): Normalise heredoc end marker label at :help const
Match the name used at :help :let-heredoc, {endmarker}.

closes: #18638

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-26 18:44:19 +00:00
Girish Palya
ef5bf58d8c patch 9.1.1876: pre-inserted text not exposed in cmdcomplete_info()
Problem:  pre-inserted text not exposed in complete_info()
Solution: Add the pre-inserted text to the complete_info() Vim script
          function (Girish Palya)

closes: #18571

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Feat: expose preinserted text in complete_info()

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-26 18:37:57 +00:00
Václav Kobera
f17f78c557 patch 9.1.1875: username parsing bug in netrw plugin
Problem:  username parsing bug in netrw plugin when using remote adding
          feature
Solution: Allow any characters except for "@" (Václav Kobera), add a
          test for the netrw plugin

closes: #18611

Signed-off-by: Václav Kobera <vasekobera@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-26 18:21:04 +00:00
Girish Palya
f0e11d3279 patch 9.1.1874: short-description
Problem:  PMenuShadow overrides highlighting attributes
          (Maxim Kim)
Solution: Use hl_combine_attr() to combine popup attribute with shadow
          attribute (Girish Palya)

fixes: #18557
closes: #18634

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-26 13:52:03 +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
zeertzjq
97b6e8b424 patch 9.1.1872: Cmdline history not updated when mapping <Up> and <CR>
Problem:  Cmdline history not updated when mapping both <Up> and <CR>.
Solution: Consider the command typed when in Cmdline mode and there is
          no pending input (zeertzjq).

Although the existing behavior technically does match documentation, the
"completely come from mappings" part is a bit ambiguous, because one may
argue that the command doesn't completely come from mappings as long as
the user has typed a key in Cmdline mode.  I'm not entirely sure if this
change will cause problems, but it seems unlikely.

fixes: #2771
related: neovim/neovim#36256
closes: #18607

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-26 13:29:09 +00:00
Maxim Kim
4eef8ba498 runtime(colors): Add PmenuBorder/PmenuShadow
closes: #18635

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-26 13:24:53 +00:00
James McCoy
d535e5852b runtime(debversions): Add resolute (26.04) as Ubuntu release name
closes: #18637

Signed-off-by: James McCoy <jamessan@jamessan.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-26 13:24:04 +00:00
Yee Cheng Chin
3cca9ff898 Merge pull request #1605 from ychin/sparkle-2.8.0
Sparkle 2.8.0
2025-10-25 16:47:28 -07:00
Yee Cheng Chin
1cb7b935d0 Sparkle 2.8.0
Features a new updater dialog box design and Tahoe support. Delta
updates also get performance improvements.

Also contains security fixes for the XPC services (which MacVim strips out
from the build already)
2025-10-25 16:17:59 -07:00
Yee Cheng Chin
a4fe500ae4 Merge pull request #1606 from ychin/fix-python3.14-test-breakage
Fix test failures with Python 3.14 and test_python3
2025-10-25 16:17:23 -07:00
Yee Cheng Chin
8fb97859cf Fix test failures with Python 3.14 and test_python3
Vim upstream is broken right now (clipboard does not work) and so we
cherry-pick the specific fix from it instead of just merging.

(cherry picked from commit 6cb995970e)
2025-10-25 15:47:58 -07:00
Aliaksei Budavei
b32da7de63 CI: Include a job index in names of collected artifacts
And include "extra" Linux elements to further disambiguate
archive names.

The current naming of artifacts is inadequate when it comes
to files whose differing name-parts only come from array
values, as arrays are not automatically converted to string.
For example, both artifacts for failing "socketserver" and
"no_x11" CI jobs will claim the same name, and whichever job
finishes last is allowed to overwrite another matching name
artifact.

Reference:
https://docs.github.com/en/actions/reference/workflows-and-actions/expressions#functions

closes: #18556

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-25 14:21:56 +00:00
Yiyang Wu
7193cab6c8 runtime(make): Prevent makeTargetinDefine matching extra line
This fixes a bug introduced in 2a33b499a3:
When makeTargetinDefine ends with makeIdent, makeSpecTarget or
makeComment, the following line is also matched as makeTargetinDefine.

So, add keepend to prevent that just as makeTarget does.

related: #18403
closes: #18570

Signed-off-by: Yiyang Wu <xgreenlandforwyy@gmail.com>
Signed-off-by: Roland Hieber <rohieb+vim-iR0jGdkV@rohieb.name>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-25 14:19:07 +00:00
Doug Kearns
418ff5185e runtime(doc): Improve highlighting of the +feature-list table
Fix false positives for headings and command specification counts.

closes: #18603

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-25 14:15:15 +00:00
zeertzjq
826326f13b patch 9.1.1871: Wrong 'showcmd' in the cmdwin
Problem:  Wrong 'showcmd' in the command-line window.
Solution: Clear 'showcmd' when entering cmdwin (zeertzjq).

related: neovim/neovim#36271
closes: #18616

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-10-25 03:40:45 +00:00