Commit Graph
870 Commits
Author SHA1 Message Date
Volodymyr Chernetskyi a31f9affde fix(msgpack): strptime() fails east of UTC+12 #41743
Problem:
msgpack#strptime() finds a timestamp by bisecting strftime() output, and
brackets the search with the extreme UTC offsets. The lower bound
subtracts 12 hours, but -12:00 is the westernmost offset, which produces
the *largest* timestamp for a given local time. The easternmost offset
is +14:00, so in any zone east of UTC+12 the search can start above the
target and the function throws:

    internal-start-string:Internal error: start > string

With TZ=GMT-14, four of the five timestamps in msgpack_spec.lua fail,
as do three tests in shada_spec.lua, which reaches the same function
through shada#strings_to_sd().

Solution:
Subtract 14 hours instead. The upper bound is already generous enough at
+14, and widening a bisection bracket downwards cannot change the result
in zones that worked before.

The test disables the python3 provider, because msgpack#strptime() only
uses the Vimscript implementation changed here when no provider answers,
and otherwise hands the work to datetime.strptime().

AI-assisted
2026-09-07 08:24:16 -04:00
zeertzjqandChristian Brabandt f9186e0c0e vim-patch:9.2.1011: [security]: arbitrary Ex command execution during C omni-completion (#41501)
Problem:  arbitrary Ex command execution during C omni-completion via
          tag file names (Yazan Balawneh)
Solution: Escape the | for all returned tag files

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-r77m-8m55-rpr6

https://github.com/vim/vim/commit/331d5d67028505c5b6043603a57d1e8497b922b5

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-08-26 07:53:04 +00:00
Justin M. Keyes 7d2249c579 docs: misc, :bcd, slug() 2026-08-06 10:27:29 +02:00
Barrett Ruth e29af9c32f refactor(zip)!: builtin zip.lua plugin #40846
Problem:
The bundled `zip` plugin is implemented in Vimscript, making it harder to
maintain and build on with Nvim's Lua runtime infrastructure.

Solution:
Add an opt-out `zip.lua` browser backed by `nvim.dir`, and disable the legacy
Vimscript implementation by moving it to `pack/dist/opt/zip/`. Load it with
`:packadd zip`.
2026-07-29 12:54:43 -04:00
zeertzjqandqwavies 1d36cf1dbe vim-patch:f88e719: runtime(python): Fix indenting for brackets within python byte strings
Problem:  s:SearchBracket()'s skip-expression matches syntax group
          names ending in "Comment", "Todo", or "String" to decide
          whether a candidate bracket is inside a string/comment
          and should be skipped for indentation purposes. Byte and
          raw-byte string literals (b"...", rb"...") are highlighted
          via the pythonBytes/pythonRawBytes syntax groups, which
          don't end in "String", so brackets inside them (e.g.
          b"[") were never skipped and were counted as real,
          unmatched brackets, producing incorrect indentation.

Solution: Add "Bytes" to the indent script's existing suffix match,
          so pythonBytes/pythonRawBytes are recognized directly, the
          same way pythonString/pythonFString/pythonRawString
          already are.

          This supersedes an earlier version of this fix that
          renamed pythonBytes/pythonRawBytes to
          pythonBytesString/pythonRawBytesString in
          runtime/syntax/python.vim.

fixes:  vim/vim#20812
closes: vim/vim#20827

https://github.com/vim/vim/commit/f88e7191da1a03b2e79a2ba5fbc26f4948bcca81

Co-authored-by: qwavies <qwavsbusiness@gmail.com>
2026-07-27 06:31:40 +08:00
zeertzjqandAliaksei Budavei ef93e93958 vim-patch:4e3df44: runtime(indent-tests): Annotate timed "search*()"es for tracing
related: vim/vim#17116

https://github.com/vim/vim/commit/4e3df44aa2a4f99c3c35e11371f7f1b2b6207558

Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
2026-07-27 06:31:33 +08:00
zeertzjqandYasuhiro Matsumoto 72b2c713ea vim-patch:9.2.0845: [security]: arbitrary Ex command execution during C omni-completion
Problem:  [security]: arbitrary Ex command execution during C
          omni-completion (Threonine)
Solution: Match tags typeref literally to block Ex command injection
          (Yasuhiro Matsumoto).

Escaping only "/" and "\" left the typeref able to break out of the
:vimgrep pattern without a "/": an unclosed "[" makes vimgrep's pattern
skipping fail, and the parser then treats a following "|" as a command
separator, so the tag value runs as Ex commands during C omni-completion.
Match the field literally with \V so no regex metacharacter can affect
pattern parsing.

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-cx73-phcg-3j5g

https://github.com/vim/vim/commit/2f628d8104958fa7421664f792ca6d4f7a39a10f

Co-authored-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
2026-07-25 06:23:13 +08:00
567053bb3c vim-patch:dd89754: runtime(typst): Improve ftplugin, and syntax file
- Move whitespace formatting settings from the indent to the filetype
  plugin behind a "typst_recommended_style" config option.
- Set browsefilter
- Improve syntax file

Thanks to Maxim Kim for taking on maintainership of the typst runtime
files.

related: vim/vim#20036
closes:  vim/vim#20077

https://github.com/vim/vim/commit/dd8975428bae4139d400df1ebac96aec65633089

Co-authored-by: Doug Kearns <dougkearns@gmail.com>
Co-authored-by: Maxim Kim <habamax@gmail.com>
2026-07-02 08:14:48 +08:00
zeertzjqandYasuhiro Matsumoto d3509eac6a vim-patch:3fa4da4: runtime: add missing fnameescape()/shellescape() in a few runtime files (#40486)
ping @jamessan for the debugchangelog change.

https://github.com/vim/vim/commit/3fa4da4acb194660b7f44bba027af9f2120c27fe

Co-authored-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
2026-06-30 06:58:18 +08:00
zeertzjqandHirohito Higashi d844a276bb vim-patch:9.2.0735: [security]: arbitrary Ex command execution during C omni-completion (#40441)
Problem:  [security]: With C omni-completion, a crafted tags file can execute
          arbitrary Ex commands when completing a struct/union member
          (cipher-creator)
Solution: Escape the type field before inserting it into the :vimgrep
          pattern so it cannot close the pattern and start a new command
          (Hirohito Higashi).

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-mf92-v4xw-j45x

https://github.com/vim/vim/commit/6b611b0d15603c52ebdad17172b0232b4f65704e

Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
2026-06-27 01:07:56 +00:00
zeertzjqandChristian Brabandt 7d0adc08f7 vim-patch:9.2.0699: [security]: possible code execution with python complete (#40363)
Problem:  [security]: possible code execution with python complete
          (morningbread)
Solution: Use repr() to quote the doc strings correctly

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-ppj8-wqjf-6fp3

Supported by AI

https://github.com/vim/vim/commit/cce141c42740f122dd8486ae04e21c2a81016ba8

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-06-22 02:26:37 +00:00
zeertzjqandChristian Brabandt 9a5944cdc0 vim-patch:9.2.0678: [security]: potential powershell code execution in zip.vim (#40343)
Problem:  [security]: potential powershell code execution in zip.vim
          (DDugs)
Solution: Cleanup zip.vim, introduce PSEscape() to escape() potential powershell code,
          use consistent s:Escape() in the various PowerShell functions

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-x5fg-h5w9-9frf

https://github.com/vim/vim/commit/b2cc9be119d51212bf0d3f2a994c7e517c73f4a9

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-06-21 08:12:27 +08:00
zeertzjqandVladimír Marek 3e851d407e vim-patch:b0ce576: runtime(tar): fix lz4 extraction on non-Linux systems
Patch 9.2.0306 fixed malformed lz4 extraction commands by using "tar -I lz4"
on Linux and leaving non-Linux tar implementations to auto-detect lz4 input.
That still fails on systems where tar does not support either -I lz4 or
automatic lz4 decompression, such as Solaris /usr/bin/tar.

Keep the existing Linux path using GNU tar's "-I lz4" support.  For non-Linux
systems, use lz4 explicitly to decompress the archive to stdout and feed the
resulting tar stream to the configured tar extraction command.  This is the
same style tar.vim already used for lz4 archives before patch 9.2.0306.

Follow-up for vim/vim#19925

closes: vim/vim#20555

https://github.com/vim/vim/commit/b0ce576fbc7af4a33226a8d076a01aadd024a23e

Co-authored-by: Vladimír Marek <vlmarek13@gmail.com>
2026-06-19 09:44:07 +08:00
zeertzjqandChristian Brabandt 025a3e2baf vim-patch:9.2.0479: [security]: runtime(tar): command injection in tar plugin
Problem:  [security]: runtime(tar): command injection in tar plugin
          (Christopher Lusk)
Solution: Use the correct shellescape(args, 1) form for a :! command

Github Advisory:
https://github.com/vim/vim/security/advisories/GHSA-2fpv-9ff7-xg5w

https://github.com/vim/vim/commit/3fb5e58fbc63d86a3e65f1a141b0d67af2aa38a1

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-06-19 09:43:55 +08:00
zeertzjqandBruno BELANYI 8ea5747f6d vim-patch:1fee3cd: runtime(beancount): Include Beancount runtime files
Include with adjustments from the upstream repo:
https://github.com/nathangrigg/vim-beancount

closes: vim/vim#20373

https://github.com/vim/vim/commit/1fee3cd4b9a38b18656933d38a4977548d27808b

Co-authored-by: Bruno BELANYI <bruno@belanyi.fr>
2026-06-14 09:37:00 +08:00
zeertzjqandChristian Brabandt e887cfb3b5 vim-patch:9.2.0597: [security]: possible code execution with python complete (#40117)
Problem:  [security]: another possible code execution with python complete
          (David Carliez)
Solution: Strip default expressions and annotations from generated
          source for pythoncomplete and python3complete.

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-65p9-mwwx-7468

https://github.com/vim/vim/commit/c8c63673bc4253212820626aeeb75999d9a539d2

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-06-05 04:59:44 +02:00
zeertzjqandthinca 3f4a108cf4 vim-patch:9.2.0568: pythoncomplete: g:pythoncomplete_allow_import had no effect (#40067)
Problem:  The security patch 9.2.0561 added a vim.eval() call inside
          Completer.evalsource() to honor g:pythoncomplete_allow_import.
          But the 'vim' module is only imported inside the outer
          vimcomplete() / vimpy3complete() function, not at the script's
          top level, so referring to it from a Completer method raises
          NameError.  The surrounding bare 'except' silently swallows
          the error and leaves allow_imports at 0, meaning the opt-in
          never takes effect -- 'import os' (and any other
          buffer-level import) is always skipped, no candidates are
          produced for 'os.<...>' and
          Test_popup_and_preview_autocommand() fails on the Windows
          CI matrix (Linux skips the test because Python 2 is absent).
Solution: Re-import 'vim' at the top of evalsource() in both
          pythoncomplete.vim and python3complete.vim so the eval reads
          the global, and set g:pythoncomplete_allow_import = 1 in the
          test (it is the opt-in intended for callers that trust the
          buffer contents) (thinca).

closes: vim/vim#20386

https://github.com/vim/vim/commit/868ad62cb8bf8038322eab2badd31bd98b02b9df

Co-authored-by: thinca <thinca@gmail.com>
2026-05-31 13:00:32 +00:00
zeertzjq f8a56a8439 vim-patch:6de842c: runtime(autoload): consistently align with TABs in README.txt
closes: vim/vim#20378

https://github.com/vim/vim/commit/6de842c273afbb2b1a17ab42ff7fd50069dd243d
2026-05-31 09:36:07 +08:00
zeertzjqandChristian Brabandt de8c2db577 vim-patch:9.2.0561: [security]: possible code execution with python3complete
Problem:  [security]: possible code execution with python3complete
Solution: Disable execution of import/from statements

Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-52mc-rq6p-rc7c

https://github.com/vim/vim/commit/4b850457e12e1a678dd209f2868154f7553cbf8d

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-05-30 11:46:27 +08:00
zeertzjqandChristian Brabandt 61eddb3fe7 vim-patch:9.2.0523: tests: no test for using shellescape() in combination with :! (#39972)
Problem:  tests: no test for using shellescape() in combination with :!
Solution: Add a test that checks runtime files for using wrong
          combination of shellescape() with ! ex command

This has lead to a few security relevant issues, so add a test that
checks all runtime files for any ! followed by a shellescape() that does
not use the {special} arg.

related: Commit: 3fb5e58fbc63d86a3e65f1a141b0d67af2 (patch 9.2.0479:
         [security]: runtime(tar): command injection in tar plugin)

closes: vim/vim#20286

Supported by AI

https://github.com/vim/vim/commit/fccc2adc98c3d6664f1f2d8ddab17b096e647986

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-05-24 09:29:50 +08:00
zeertzjqandChristian Brabandt 040c5deb3f vim-patch:1294861: runtime(getscript,vimball,rust): Use correct shellescape() form for ! ex cmd
Problem:  shellescape() called without {special} flag for :! ex command
Solution: Pass 1 as second argument to shellescape() in :! contexts

related: Commit: 3fb5e58fbc63d86a3e65f1a141b0d67af2 (patch 9.2.0479:
         [security]: runtime(tar): command injection in tar plugin)

https://github.com/vim/vim/commit/129486193c16bb5c0208eff5501f9e665b7c4803

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-05-21 08:07:01 +08:00
Nathan Zeng dbdd73e846 refactor(tutor): use inline comments instead of json file #39714
Problem: Expected text for interactive marks is in a separate json file
from the tutor file. When the tutor file is updated, line numbers
(potentially many) have to be updated in the json file. This is a
burden for maintenance and automatic testing.

Solution: Put the expected text inline in the tutor file, marked
with `[[]]`. Parse and remove the comments before opening the tutor
file so extmarks can be applied.
2026-05-13 07:31:17 -04:00
zeertzjqandYasuhiro Matsumoto 03193e2963 vim-patch:ab02d65: runtime(gzip): Remove compatibility fall-backs, harden random filename generation (#39165)
https://github.com/vim/vim/commit/ab02d65b1f045607e51a28317894c39ae9512d1d

Co-authored-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
2026-04-18 06:39:54 +08:00
zeertzjqandChristian Brabandt 3cca237984 vim-patch:e6a84bb: runtime(tar): missing g:tar_secure in tar#Extract() (#39123)
https://github.com/vim/vim/commit/e6a84bb6b0e45ddb106f689054b0d96aba161f67

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-04-16 22:19:48 +08:00
zeertzjqandq1uf3ng c3c06723f0 vim-patch:9.2.0355: runtime(tar): missing path traversal checks in tar#Extract() (#39095)
Problem:  runtime(tar): missing path traversal checks in tar#Extract()
Solution: Add check for leading slash, however gnu tar should already
          detect this (q1uf3ng)

tar#Extract() did not check for ../ sequences or absolute paths,
unlike zip#Extract() which was patched in recent commits. Add the
same checks: ../ (relative traversal), leading slash (Unix), drive
letter and UNC/leading slash (Windows).

closes: vim/vim#19981

https://github.com/vim/vim/commit/490b737f3e172c3c66744c7531ee85f19618419d

Co-authored-by: q1uf3ng <q1uf3ng@protone.me>
2026-04-16 08:40:41 +08:00
zeertzjqandq1uf3ng 56ed27d718 vim-patch:351a16c: runtime(zip): also block single leading slash and absolute paths in Extract (#39094)
zip#Write(): the Windows path check did not match a single leading
slash (/path), which resolves to the current drive root on Windows.
Simplify the regex to match any leading slash or backslash.

zip#Extract(): add absolute path checks for both Unix and Windows,
matching the existing checks in zip#Write().

closes: vim/vim#19976

https://github.com/vim/vim/commit/351a16c88f56aeeca5e06095624dd701b264b2a9

Co-authored-by: q1uf3ng <q1uf3ng@protone.me>
2026-04-16 08:40:27 +08:00
zeertzjqandChristian Brabandt c0f33c9a86 vim-patch:6836599: runtime(zip): Detect path traversal issues on Windows (#39051)
https://github.com/vim/vim/commit/6836599733950e1f52864a9742ff3e5bca5820fd

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-04-14 22:01:34 +08:00
Owen 26f77f8fcd feat(provider): support bun as node.js provider #38517
Problem:
Neovim's Node.js provider does not support the Bun package manager.
PR #26829 attempted to add this but used a hardcoded path and was abandoned.

Solution:
- Use `bun pm bin -g` to dynamically locate the global binary directory.
- Update `health.lua` to recognize bun installations.
2026-04-12 15:01:32 -04:00
zeertzjqandAaron Burrow ec8d352117 vim-patch:9.2.0326: runtime(tar): but with dotted path
Problem:  runtime(tar): but with dotted path
Solution: Do not strip everything after the first dot
          (Aaron Burrow)

tar#Extract was getting the extensionless basename by
stripping away everything starting with the leftmost
dot.  So if a directory had a dot or the file had an
'extra' dot then the code did the wrong thing.  For
example, if it was given:

  /tmp/foo.bar/baz.tar.gz

Then it would treat /tmp/foo as the extensionless
basename, but it actually should have grabbed:

  /tmp/foo.bar/baz

This patch fixes the issue by instead looking at the
rightmost dot(s).

This bug was discovered by ChatGPT 5.4.  I wrote the
patch and tested vim.

closes: vim/vim#19930

https://github.com/vim/vim/commit/4a1bcc67b4b6fc2dfe564ab4faca490f8afac857

Co-authored-by: Aaron Burrow <burrows@fastmail.com>
2026-04-10 12:30:38 +08:00
zeertzjqandAaron Burrow dc3b49d5a1 vim-patch:9.2.0325: runtime(tar): bug in zstd handling
Problem:  patch 9.2.0325: runtime(tar): bug in zstd handling
Solution: use correct --zstd argument, separated from other arguments,
          rework testing framework (Aaron Burrow).

The tar.vim plugin allows vim to read and manipulate zstd archives,
but it had a bug that caused extraction attempts to fail.
Specifically, if the archive has a .tar.zst or .tzst extension, then
the code was generating invalid extraction commands that looked like
this:

  tar --zstdpxf foo.tar.zst foo

When they should be like this:

  tar --zstd -pxf foo.tar.zst foo

This patch changes the flag manipulation logic so that --zstd isn't
glued to pxf.

The labor for this change was divided between ChatGPT 5.4 and me.
ChatGPT 5.4 identified the issue (from a code scan?), and I wrote
the patch and tested vim.

related: vim/vim#19930

https://github.com/vim/vim/commit/00285c035aa7d92971bc50b7b124e1408dda53ad

Note: tests need the next patch to pass in Nvim.

Co-authored-by: Aaron Burrow <burrows@fastmail.com>
2026-04-10 12:30:31 +08:00
zeertzjqandAaron Burrow 056304ef5b vim-patch:9.2.0306: runtime(tar): some issues with lz4 support (#38826)
Problem:  runtime(tar): some issues with lz4 support
Solution: Fix bugs (see below) (Aaron Burrow)

The tar plugin allows users to extract files from tar archives that are
compressed with lz4. But, tar#Extract() builds malformed extraction commands
for lz4-compressed tar archives. This commit fixes three issues in that code.
The first affects archives with a .tlz4 extension and the other two affect
archives with .tar.lz4 extension (but one of these is symmetric to the issue
that .tlz4 archives had).

(1) When trying to extract .tlz4 archives the command created by
tar#Extract looked like this:

    tar -I lz4pxf foo.tlz4 foo

This isn't right.  It should be something like this:

    tar -I lz4 -pxf foo.tlz4 foo

This was happening because tar.plugin is just substituting on the
first - in "tar -pxf".  This works fine if we just add a simple flag for
extraction (eg, z for .tgz), but for lz4 we need to add "-I lz4".

I don't believe that there is an obvious good way to fix this without
reworking the way the command is generated.  Probably we should collect
the command and flags separately and the flags should be stored in a
set. Then put everything together into a string just before issuing it
as an extraction command.  Unfortunately, this might break things for users
because they have access to tar_extractcmd.

This patch just makes the substitution a little bit more clever so that it
does the right thing when substituting on a string like "tar -pxf".

(2) .tar.lz4 extractions had the same issue, which my patch fixes in
the same way.

(3) .tar.lz4 extractions had another issue.  There was a space missing
in the command generated by tar#Extract.  This meant that commands
looked like this (notice the lack of space between the archive and output
file names):

    tar -I lz4pxf foo.tar.lz4foo

This patch just puts a space where it should be.

Finally, I should note that ChatGPT 5.4 initially identified this issue
in the code and generated the test cases.  I reviewed the test cases,
wrote the patch, and actually ran vim against the tests (both with and
without the patch).

closes: vim/vim#19925

https://github.com/vim/vim/commit/78954f86c2027c766d9e2b5f7904b5fb4041d250

Co-authored-by: Aaron Burrow <burrows@fastmail.com>
2026-04-06 13:43:28 +00:00
zeertzjqandChristian Brabandt 4aa8969d29 vim-patch:9.2.0299: runtime(zip): may write using absolute paths (#38810)
Problem:  runtime(zip): may write using absolute paths
          (syndicate)
Solution: Detect this case and abort on Unix, warn in the documentation
          about possible issues

https://github.com/vim/vim/commit/46f530e517bd1b59acc2eb0d2aa76d02e54ca9fe

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-04-06 10:15:19 +08:00
zeertzjqandChristian Brabandt 0851ac2706 vim-patch:9.2.0280: [security]: path traversal issue in zip.vim (#38693)
Problem:  [security]: path traversal issue in zip.vim
          (Michał Majchrowicz)
Solution: Detect more such attacks and warn the user.

Github Advisory:
https://github.com/vim/vim/security/advisories/GHSA-jc86-w7vm-8p24

https://github.com/vim/vim/commit/7088926316d8d4a7572a242d0765e99adfc8b083

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-04-01 22:23:23 +00:00
Matthew ChenandPhạm Bình An 410ba8374d fix(tutor): open a temporary copy instead of original file #38522
Problem:
`:Tutor` should open a copy of the tutor file instead of the original. This is
because edits modify the original file buffer, and crashes or other misuse could
potentially corrupt the original file even if it's WO.

Solution:
Copy the tutor file to a temp path before opening. Store the original path in
`b:tutor_file` so metadata json loading still works.

- `tutor#TutorCmd` will now copy the tutor file to a temp path via `tempname()`
  before opening with `drop`. Store the original path in `b:tutor_file` only
  after the buffer is created.
- `tutor#LoadMetadata` now uses `b:tutor_file` to resolve the JSON path instead
  of `expand('%')`, which now points to the temp copy buffer
- `ftplugin/tutor.vim` does not make the `tutor#LoadMetadata` call anymore. It
  was guarded by `filereadable(expand('%').'.json')` which fails for the new
  temp copy path logic . Instead, `tutor#LoadMetadata` is already called
  directly inside `tutor#TutorCmd` since we are already assumed to enable
  interactive.

Co-authored-by: Phạm Bình An <111893501+brianhuster@users.noreply.github.com>
2026-03-31 15:27:06 -04:00
zeertzjqandChristian Brabandt cbe142d3a4 vim-patch:068c060: runtime(rustfmt): not correctly escaping directory names (#38597)
Problem:  runtime(rustfmt): not correctly escaping directory names
Solution: Use fnamescape() (Michał Majchrowicz)

https://github.com/vim/vim/commit/068c0604c95e76f0f98984f908747deba94ed155

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-03-30 19:32:55 +08:00
zeertzjqandChristian Brabandt 60b997b71d vim-patch:2c1269f: runtime(zip): Make ZipUpdatePS() check that shell is powershell (#38204)
fixes: vim/vim#19576

https://github.com/vim/vim/commit/2c1269f0d34f6526f0aaff89b85e0a83e9233fe1

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-03-09 07:44:04 +08:00
zeertzjqandChristian Brabandt 6877fef972 vim-patch:89712b9: runtime(ccomplete): handle structs from tags file (#37956)
fixes: vim/vim#7292

https://github.com/vim/vim/commit/89712b9f0e8cbf6074cc5dc0465bdd62245ad9c1

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-02-19 00:18:55 +00:00
b8ec43a4a7 vim-patch:abac1c1: runtime(zip): use system() instead of :!
- ':!' is not stable, so use system() to get more consistent behaviour.
- Only warns when using 'pwsh'.
- Remove trailing spaces.

closes: vim/vim#19370

https://github.com/vim/vim/commit/abac1c1aa67d96313a9cfd086e2267f1c684e740

Co-authored-by: Mao-Yining <mao.yining@outlook.com>
Co-Authored-by: @lxhillwind
2026-02-16 10:29:22 +08:00
zeertzjqandMao-Yining deac3fc13f vim-patch:27630b2: runtime(python3complete): remove trailing white space
related: vim/vim#19354

https://github.com/vim/vim/commit/27630b28ad70fd97466e324f741f90ca3ef2536a

Co-authored-by: Mao-Yining <mao.yining@outlook.com>
2026-02-08 07:07:50 +08:00
zeertzjqandChristian Brabandt 1196bf8f40 vim-patch:7ccb81b: runtime(tar): Make the path traversal detection more robust (#37764)
closes: vim/vim#19341

https://github.com/vim/vim/commit/7ccb81bdb6c5454ff801be11082775ec82a96efc

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-02-07 23:03:07 +08:00
zeertzjqandKevin Goodsell 6dd0a7d60a vim-patch:9.1.2135: tests: tar plugin does not consider 'nowrapscan' (#37752)
Problem:  search() is used to check for the message from tar that
          indicates leading slashes found in the tar archive, or to
          check for the leading slashes themselves. However, if
          'nowrapscan' is in effect these searches are limited to the
          last line and don't find any results. This causes the warning
          message from tar to be seen in the buffer, the "Path Traversal
          Attack Detected" message to be omitted, and editing actions
          can fail. This can be seen, for example, when editing
          src/testdir/samples/evil.tar.
Solution: Use the 'w' flag for search() (Kevin Goodsell)

closes: vim/vim#19333

https://github.com/vim/vim/commit/18d844e365c21043d187f142bc88e75e9966822f

Co-authored-by: Kevin Goodsell <kevin-opensource@omegacrash.net>
2026-02-06 20:25:14 +08:00
zeertzjqandArkissa 396edf1e46 vim-patch:61044eb: runtime(haskellcomplete): fix Undefined variable b:completingLangExtension. (#37712)
closes: vim/vim#19259

https://github.com/vim/vim/commit/61044eb5364b7a044820933e2cb32d7b0e7c9cdd

Co-authored-by: Arkissa <mrarkssac@gmail.com>
2026-02-05 01:32:40 +00:00
zeertzjqandArkissa 7c90e77a7c vim-patch:ad0dd7c: runtime(rustfmt): Recover accidentally deleted code, don't hide rustfmt error
closes: vim/vim#19251

https://github.com/vim/vim/commit/ad0dd7cd1ef405086e8266f8f62221a307a72fe9

Co-authored-by: Arkissa <mrarkssac@gmail.com>
2026-01-27 07:20:41 +08:00
zeertzjqandAnton Kesy e790c87cd8 vim-patch:9.1.2078: A few more typos in various files (#37368)
Problem:  A few more typos in various files
Solution: Fix those (zeertzjq, antonkesy)

related: neovim/neovim#37348
closes:  vim/vim#19153

https://github.com/vim/vim/commit/6a2b5b2246833f7922e38eabab7090e29e89c3a1

Co-authored-by: Anton Kesy <anton@kesy.de>
2026-01-12 01:27:03 +00:00
zeertzjqandChristian Brabandt 8eba81182a vim-patch:5eb10c5: runtime(xml): update XML runtime files
closes: vim/vim#19112

https://github.com/vim/vim/commit/5eb10c5359e05338050819b8229bd4c8af36d365

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-01-08 09:30:03 +08:00
zeertzjqandChristian Brabandt db210dd2a4 vim-patch:57352b2: runtime: mention subscription only ml, fix typo in maintainer email (#37222)
https://github.com/vim/vim/commit/57352b279d4de492dee4be07d6bc4a116599bbac

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-01-03 23:27:49 +00:00
zeertzjqandChristian Brabandt ab20681c52 vim-patch:62d8f3d: runtime: Revert several "mark invalid contact addresses" commits (#37192)
This reverts commits:
- 6b652a785033fd4164e049492a7327c1ed7c3e5f
- 2f689d5abde0ccddca9e20d8c93a0299bd054e32
- a025a46d4169587145fb54f04af349cd05cb6122

Several email addresses that are known to be valid caused bounces
due to an issue with my email setup. The previous commits incorrectly
marked these addresses as invalid. So revert the whole thing again.

https://github.com/vim/vim/commit/62d8f3dab5a0b30c31a8df86a973c5e59821a3f0

N/A patch:
vim-patch:2f689d5: runtime: mark more invalid email addresses

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-01-02 06:53:44 +08:00
zeertzjqandChristian Brabandt cabefb52ff vim-patch:a025a46: runtime: mark more invalid email addresses
https://github.com/vim/vim/commit/a025a46d4169587145fb54f04af349cd05cb6122

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-01-01 08:23:03 +08:00
zeertzjqandChristian Brabandt 65e7aa9255 vim-patch:partial:2f689d5: runtime: mark more invalid email addresses
https://github.com/vim/vim/commit/2f689d5abde0ccddca9e20d8c93a0299bd054e32

Skip colors/ and syntax/help_ru.vim: missing previous changes.

Co-authored-by: Christian Brabandt <cb@256bit.org>
2026-01-01 08:17:57 +08:00
zeertzjqandzoumi 245a4696a2 vim-patch:1a4a1b9: runtime(zip): Use :lcd instead of :cd in zip.vim (#37054)
closes: vim/vim#18967

https://github.com/vim/vim/commit/1a4a1b9fa6a57af49e2d0955850f21c631e92263

Co-authored-by: zoumi <zoumi@users.noreply.github.com>
2025-12-20 23:26:28 +00:00