Problem: too many strlen() calls in buffer.c
Solution: refactor buffer.c and remove strlen() calls
(John Marriott)
closes: vim/vim#17063ec032de646
Co-authored-by: John Marriott <basilisk@internode.on.net>
Problem: Wrong display with cpo+=$, matchparen and wrapped line.
Solution: Use old cursor line height when scrolling with cpo+=$. Also
fix wrong redraw in non-current window. (zeertzjq)
fixes: vim/vim#18647closes: vim/vim#186625c3e762631
This was part of an attempt to add "git describe" to zig build
without re-building too much. This doesn't yet work as zig upstream
changes are are also needed, but I think this was a sensible refactor
even in isolation, so breaking it out.
"API dispatch" doesn't depend on any ui event stuff nor on
version, that was just an accident of the metadata collection
being crammed into the same file.
Remove "manual invocation" instruction. this is going to bitrot anyway.
Both cmake and build.zig allows you to extract the command line of a
step, so you can debug it separately.
problem: termkey/driver-ti.c had its internal dependency upon unibilium
which would completely skip builtin terminfo defs.
solution: add termkey info to TerminfoEntry struct
NOTE: this disables a lot of named function keys which are present as
terminfo "keys" both are mostly unset in terminfo entries for modern
terminals, and also not recognized by nvim as mappable keys
anyway, except a few ones like `<undo>` which this still will keep.
We probably don't want to encode up to F63 keys forever. While only 12
physical keys are available on modern keybords, instead Chords using
F-keys are usually encoded as high key numbers, like <C-S-F3>
becoming <F39> . But reconsideirg that has implications for configuration
that is best done as a separate (breaking) change.
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: vim/vim#18655b2e6b328da
Problem: Wrong display with 'smoothscroll' when FEAT_DIFF is disabled.
Solution: Use plines_correct_topline() (zeertzjq).
closes: vim/vim#18649e06e70f7b1
Problem:
fe4faaf81a added an invalid "redirect" item, which caused the
assert() to fail, which then caused the neovim/doc/ CI to fail:
https://github.com/neovim/doc/actions/runs/18830779387/job/53721736276 :
The previous commit e69beb9b1a tried to fix a different issue, which
has gone hidden because the "invalid tags" failure has been present on
the neovim/doc/ but was silently failing.
invalid tags: {
["g:netrw_keepdir"] = "usr_22.txt",
netrw = "vi_diff.txt",
...
plugins = "editorconfig"
}
Solution:
- Fix the invalid redirect.
- Improve the redirects assertion.
Problem:
The doc/ repo CI is failing
https://github.com/neovim/doc/actions/runs/18830779387/job/53721736276 :
invalid tags: {
["g:netrw_keepdir"] = "usr_22.txt",
netrw = "vi_diff.txt",
["netrw-P"] = "usr_22.txt",
...
["netrw-v"] = "usr_22.txt",
plugins = "editorconfig"
}
Solution:
Add the "generate netrw tags" hack to the `gen()` step. Previously it was only
in the `validate()` step. (idk why it only started failing 3 days ago...)
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: vim/vim#18571
Feat: expose preinserted text in complete_info()
ef5bf58d8c
Co-authored-by: Girish Palya <girishji@gmail.com>
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: vim/vim#1863161ef8a3db9
Co-authored-by: Anttoni Erkkilä <anttoni.erkkila@protonmail.com>
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: vim/vim#2771
related: neovim/neovim#36256closes: vim/vim#1860797b6e8b424
vim-patch:8.1.2194: modifyOtherKeys is not enabled by default
vim-patch:8.2.0513: reading past allocate memory when using varargs
vim-patch:8.2.0556: Vim9: memory leak when finding common type
vim-patch:8.2.1446: Vim9: line number in error message is not correct
vim-patch:8.2.1680: Vim9: line number for compare error is wrong
vim-patch:8.2.1817: Vim9: wrong instruction when reusing a local variable spot
vim-patch:8.2.2159: Vim9: when declaring a list it is not allocated yet
vim-patch:8.2.2210: Vim9: allocating a type to set TTFLAG_BOOL_OK
vim-patch:8.2.2550: signal stack size is wrong with latest glibc 2.34
vim-patch:8.2.2585: Vim9: illegal memory access
vim-patch:8.2.2615: test is sourcing the wrong file
vim-patch:8.2.2791: Vim9: memory leak when using \=expr in :substitute
vim-patch:8.2.3065: Vim9: error when sourcing script twice and reusing function
vim-patch:8.2.3310: Vim9: unpack assignment does not mention source of type error
vim-patch:8.2.3327: no check for sysconf() failing
vim-patch:8.2.4558: Motif: using default colors does not work as expected
vim-patch:9.0.0039: not all systems have GDK_KEY_dead_circumflex
vim-patch:9.0.0068: build fails with tiny features
vim-patch:9.0.0074: Coverity warns for double free
vim-patch:9.0.0172: trying to allocate zero bytes
vim-patch:9.0.0209: build error with small features
vim-patch:9.0.0239: build failure without the +wildmenu feature
vim-patch:9.0.0255: build failure without the eval feature
vim-patch:9.0.0290: compiler warning for variable set but not used
vim-patch:9.0.0367: Coverity complains about dropping sign of character
vim-patch:9.0.0368: old Coverity warning for using NULL pointer
vim-patch:9.0.0467: build failure
vim-patch:9.0.0494: small build misses float function declaraitons
vim-patch:9.0.0501: warning for using uninitialized value in mouse test
vim-patch:9.0.0503: build failure
vim-patch:9.0.0504: still a build failure
vim-patch:9.0.0522: build fails on Appveyor
vim-patch:9.0.0624: leaking argument type array
vim-patch:9.0.0628: Coverity warns for not checking return value
vim-patch:9.0.0658: tiny build fails on Mac OS
vim-patch:9.0.0685: FORTIFY_SOURCE causes a crash in Vim9 script
vim-patch:9.0.0689: compiler warning for unused function
vim-patch:9.0.0717: compiler warning for unused variable in tiny build
vim-patch:9.0.0787: mouse scrolling in terminal misbehaves without dll
vim-patch:9.0.0792: MS-Windows: compiler complains about unused function
vim-patch:9.0.0832: deprecation warning causes build failure
vim-patch:9.0.0838: compiler warnings for unused variables
vim-patch:9.0.0921: missing defined(PROTO) in #ifdef
vim-patch:9.0.0929: build failure with tiny version
vim-patch:9.0.0972: build failure on some systems
vim-patch:9.0.0981: build error in tiny version
vim-patch:9.0.0986: build failure with tiny version
vim-patch:9.0.0997: Coverity warns for dead code
vim-patch:9.0.1003: tiny build fails
vim-patch:9.0.1037: lalloc(0) error for a class without members
vim-patch:9.0.1055: Coverity warns for using uninitialized memory
vim-patch:9.0.1059: build failure with some compilers
vim-patch:9.0.1075: build fails if compiler doesn't allow declaration after case
vim-patch:9.0.1102: complicated use of #ifdef
vim-patch:9.0.1109: leaking allocated type
vim-patch:9.0.1110: build fails on Mac OS X 10.4/10.5
vim-patch:9.0.1116: compiler may complain about an unused function
vim-patch:9.0.1131: build failure without the +eval feature
vim-patch:9.0.1153: build error with some compilers
vim-patch:9.0.1154: Coverity warns for dead code
vim-patch:9.0.1162: configure does not handle all FORTIFY_SOURCE variants
vim-patch:9.0.1173: compiler warning for unused variable on non-Unix systems
vim-patch:9.0.1180: compiler warnings without the +job feature
vim-patch:9.0.1216: Coverity warns for ignoring return value
vim-patch:9.0.1219: handling of FORTIFY_SOURCE flags doesn't match Fedora usage
vim-patch:9.0.1260: Coverity warns for possible NULL pointer usage
vim-patch:9.0.1323: build failure with +eval feature
vim-patch:9.0.1340: Coverity warns for using NULL pointer
vim-patch:9.0.1341: build error with mzscheme but without GUI
vim-patch:9.0.1364: build error with older Mac OS
vim-patch:9.0.1420: build failure because SIZE_MAX is not defined
vim-patch:9.0.1465: Haiku build fails
vim-patch:9.0.1642: build failure with tiny features
vim-patch:9.0.1780: Vim9 type not defined during object creation
vim-patch:9.0.1850: Vim9: wrong line number where options set
vim-patch:9.0.1902: Vim9: Coverity complains about dead code
vim-patch:9.0.1905: FEAT_FLOAT no longer defined
vim-patch:9.0.1988: Vim9: potential use-after-free for class members
vim-patch:9.0.1993: warning about unused function definition
vim-patch:9.0.2003: xxd: compilation warning
vim-patch:9.0.2014: confusing ifdefs in if_<lang>.c
vim-patch:9.0.2048: python: uninitialized warning
vim-patch:9.0.2115: crash when callback function aborts because of recursiveness
vim-patch:9.0.2120: un-used assignment in do_source_buffer_init
vim-patch:9.0.2129: [security]: use-after-free in call_dfunc()
vim-patch:9.0.2166: Memory leak in Configure Script when checking GTK
vim-patch:9.0.2175: Compiler warning for uninitialized var
vim-patch:9.0.2185: Coverity complains about not checking return value
vim-patch:9.1.0018: use of #if instead of #ifdef
vim-patch:9.1.0031: Link Error on Windows
vim-patch:9.1.0036: MS-Windows: Warning about unused variable
vim-patch:9.1.0072: Not able to build without FEAT_DIFF
vim-patch:9.1.0203: build-error on GNU/Hurd
vim-patch:9.1.0209: leaking memory in exe_newdict() on error
vim-patch:9.1.0210: Motif: leaking memory when mui_mch_dialog() fails
vim-patch:9.1.0298: MS-Windows: GETTEXT_PATH hard-coded in src/po/Make_mvc.mak
vim-patch:9.1.0346: Patch v9.1.0338 fixed sourcing a script with import
vim-patch:9.1.0362: expanding rc config files does not work well
vim-patch:9.1.0432: Ancient XPM preprocessor hack may cause build errors
vim-patch:9.1.0530: xxd: MSVC warning about non-ASCII character
vim-patch:9.1.0561: netbeans: variable used un-initialized (Coverity)
vim-patch:9.1.0609: outdated comments in Makefile
vim-patch:9.1.0621: MS-Windows: startup code can be improved
vim-patch:9.1.0627: MinGW: build-error when COVERAGE is enabled
vim-patch:9.1.0630: MS-Windows: build fails with VIMDLL and mzscheme
vim-patch:9.1.0825: compile error for non-diff builds
vim-patch:9.1.0829: Vim source code uses a mix of tabs and spaces
vim-patch:9.1.0842: not checking for the sync() systemcall
vim-patch:9.1.0858: Coverity complains about dead code
vim-patch:9.1.0947: short-description
vim-patch:9.1.0959: Coverity complains about type conversion
vim-patch:9.1.0970: VMS: build errors on VMS architecture
vim-patch:9.1.1032: link error when FEAT_SPELL not defined
vim-patch:9.1.1041: Vim9: out-of-bound access when echoing an enum
vim-patch:9.1.1079: GUI late startup leads to uninitialized scrollbars
vim-patch:9.1.1153: build error on Haiku
vim-patch:9.1.1199: gvim uses hardcoded xpm icon file
vim-patch:9.1.1248: compile error when building without FEAT_QUICKFIX
vim-patch:9.1.1251: if_python: build error with tuples and dynamic python
vim-patch:9.1.1270: missing out-of-memory checks in buffer.c
vim-patch:9.1.1316: missing memory allocation failure in os_mswin.c
vim-patch:9.1.1440: too many strlen() calls in os_win32.c
rim-patch:9.1.1514: Coverity complains about the use of tmpfile()
vim-patch:9.1.1547: Wayland: missing ifdef
vim-patch:9.1.1580: possible memory leak in vim9type.c
vim-patch:9.1.1581: possible memory leak in vim9generics.c
vim-patch:9.1.1624: Cscope not enabled on MacOS
vim-patch:9.1.1661: Coverity finds a few issues in clientserver.c
vim-patch:9.1.1662: Issues with proto files: missing or inconsistent prototypes.
vim-patch:9.1.1677: wrong ifdef in message.c
vim-patch:9.1.1678: Amiga: cannot handle large undo files
vim-patch:9.1.1705: time.h include is available on all platforms
vim-patch:9.1.1707: diff.pro contains #ifdefs
vim-patch:9.1.1716: wrong indent in win_line()
vim-patch:9.1.1723: Missing ifdefs
vim-patch:9.1.1793: Link error when build without channel feature
vim-patch:9.1.1804: Wrong indentation of nested ifdefs in findfile.c
vim-patch:9.1.1806: Missing PROTO defines
vim-patch:9.1.1842: MS-Windows: build failure when mzscheme is included
vim-patch:9.1.1851: memory leak in heredoc_get()
vim-patch:9.1.1852: vim9class: memory leak in parse_member()
Problem: When pumborder is set, the scrollbar still occupies
a column on the screen, wasting a 1 column of space.
Solution: Render the scrollbar on the right/left (rl mode) side
of the border when pumborder is set.
Follow-up to #33721.
This doesn't seem to affect actual behavior for now, as these two lines
seem only reachable when the 'scrollback' option is changed, and options
can currently only be changed in the current buffer.
Problem: MS-Windows: Relative import in a script sourced from a buffer
doesn't work (Ernie Rael)
Solution: Set a filename, so that we are not trying to use
script-relative filename (Yegappan Lakshmanan)
When a script is sourced from a buffer, the file name is set to ":source
buffer=". In MS-Windows, the ":" is a path separator character (used
after a drive letter). This results in the code trying to use the ":"
prefix to import the script on MS-Windows. To fix this, when importing a
script from a script sourced from a buffer with nofile, don't use
a script relative path name.
fixesvim/vim#14588closes: vim/vim#14603f135fa28e4
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Problem:
Border width calculations were scattered with repeated
`*p_pumborder != NUL ? 2 : 0` patterns. The "none" value was not
consistently checked, causing borders to appear when pumborder="none".
When "shadow" the info floating window have an extra cell of spacing.
Solution:
Add `pum_border_width()` helper that returns 0 when pumborder is unset
or "none" (opt_winborder_values[7]), returns 1 when pumborder is shadow,
otherwise return 2.
Problem: Crash when allocating signal stack fails.
Solution: Only using sourcing info when available. (closesvim/vim#9215)
0bd8d05638
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Coverity warns for not checking allocation failure.
Solution: Check that allocating a list or blob succeeded.
12553ada3b
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: v:register is wrong in v_: command (after 9.1.1858).
Solution: Don't reset v:register for OP_COLON (zeertzjq)
related: https://github.com/vim/vim/pull/18583#issuecomment-3418030021closes: vim/vim#185970124320c97
While at it, also fix using stale set_prevcount value. That only matters
when readbuf1 ends with an operator or a register, which never happens,
but it's still good to avoid using a stale value.