summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2023-11-27patch 9.0.2131: not all nushell files detectedv9.0.2131Daniel Buch Hansen
Problem: not all nushell files detected Solution: use *.nu to detect nushell files closes: #13586 Signed-off-by: Daniel Buch Hansen <boogiewasthere@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-27translation(de): Updated German translations (#13585)Christian Brabandt
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-26runtime(nginx): add additional nginx keywords (#13581)Chris Aumann
* Add support for missing keywords to the nginx syntax plugin This adds support for several keywords from - the built-in HTTP/2 module, - the built-in SSL module, - the built-in uWSGI module, - the experimental QUIC branch, - the third-party SSL CT module, - the third-party dynamic TLS records patch. Co-Author: ObserverOfTime <chronobserver@disroot.org> * Add missing http2/ http3 keywords to nginx plugin Co-authored-by: Christian Brabandt <cb@256bit.org> Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-26runtime(tutor): add Make_mvc.mak file for tutor (#13580)Restorer
* Added Make_mvc.mak file for tutor * updated Filelist Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-26translation(ru): updated Russian translations for tutorials (#13579)Restorer
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-26translation(it): updated Italian translationAntonio Giovanni Colombo
Signed-off-by: Antonio Giovanni Colombo <azc100@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-25patch 9.0.2130: some errors with translation Makefilesv9.0.2130Ken Takata
Problem: some errors with translation Makefiles Solution: fix issues Update src/po/ makefiles after 9.0.2127 * Change how to check `%LANGUAGE%`. Check it only when needed. * Add double quotes to where `GETTEXT_PATH` is used. Before 9.0.2127, this worked: `nmake -f Make_mvc.mak GETTEXT_PATH="\"C:\Program Files\Git\usr\bin\""` (which was a bit tricky.) 9.0.2127 broke this and syntax error occurred. This doesn't work either in 9.0.2127: `nmake -f Make_mvc.mak GETTEXT_PATH="C:\Program Files\Git\usr\bin"` With this Commit, this works: `nmake -f Make_mvc.mak GETTEXT_PATH="C:\Program Files\Git\usr\bin"` * Better error report for the `check` target. Show the line number of the error. (Imported from vim-jp/lang-ja.) closes: #13567 Signed-off-by: Ken Takata <kentkt@csc.jp> Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-25patch 9.0.2129: [security]: use-after-free in call_dfunc()v9.0.2129mityu
Problem: [security]: use-after-free in call_dfunc() Solution: Refresh dfunc pointer closes: #13571 This Commit fixes a SEGV caused by a use-after-free bug in call_dfunc(). When calling check_ufunc_arg_types() from the call_dfunc() it may cause def functions to be re-compiled and if there are too many def functions, the def_functions array will be re-allocated. Which means, that the dfunc pointer in call_dfunc() now starts pointing to freed memory. So we need to reset the dfunc pointer after calling check_ufunc_arg_types(). Let's also add a test, to ensure we do not regress. Signed-off-by: mityu <mityu.mail@gmail.com> Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-25runtime(doc): Update doc Makefiles with comments from #13567 (#13577)Restorer
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-25runtime(tsx): add indentation plugin (fixes #13574) (#13576)Jōshin
for now, let's just use the typescript indent file. Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-25patch 9.0.2128: runtime(swig): add syntax and filetype pluginsv9.0.2128Julien Marrec
Add syntax and filetype plugins for SWIG (Simplified Wrapper Interface Generator) description files. The default syntax for .i files highlights comments in a reverse color scheme which doesn't look well. This syntax builds on vim's c++ syntax by adding highlighting for common swig directives and user defined directives. For an alternative syntax, see vimscript #1247 (which I found after writing this). closes: #13562 Co-authored-by: Matěj Cepl <mcepl@cepl.eu> Co-authored-by: Julien Marrec <julien.marrec@gmail.com> Signed-off-by: Julien Marrec <julien.marrec@gmail.com> Signed-off-by: Doug Kearns <dougkearns@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-23patch 9.0.2127: translation Makefiles can be improvedv9.0.2127RestorerZ
Problem: translation Makefiles can be improved Solution: Modified and extended po-related Makefiles and related files closes: #13518 Signed-off-by: RestorerZ <restorer@mail2k.ru> Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-23patch 9.0.2126: unused assignments when checking 'listchars'v9.0.2126zeertzjq
Problem: Unused assignments when checking the value of 'listchars'. Solution: Loop only once when just checking the value. Add a test to check that this change doesn't cause double-free. closes: #13559 Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-23patch 9.0.2125: File info disappears when 'cmdheight' has decreasedv9.0.2125zeertzjq
Problem: File info disappears immediately when 'cmdheight' has just decreased due to switching tabpage and 'shortmess' doesn't contain 'o' or 'O'. Solution: Make sure msg_row isn't smaller than cmdline_row. fixes: #13560 closes: #13561 Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-23patch 9.0.2124: INT overflow detection logic can be simplifiedv9.0.2124Ernie Rael
Problem: INT overflow logic can be simplified Solution: introduce trim_to_int() function closes: #13556 Signed-off-by: Ernie Rael <errael@raelity.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-23patch 9.0.2123: Problem with initializing the length of range() listsv9.0.2123Christian Brabandt
Problem: Problem with initializing the length of range() lists Solution: Set length explicitly when it shouldn't contain any items range() may cause a wrong calculation of list length, which may later then cause a segfault in list_find(). This is usually not a problem, because range_list_materialize() calculates the length, when it materializes the list. In addition, in list_find() when the length of the range was wrongly initialized, it may seem to be valid, so the check for list index out-of-bounds will not be true, because it is called before the list is actually materialized. And so we may eventually try to access a null pointer, causing a segfault. So this patch does 3 things: - In f_range(), when we know that the list should be empty, explicitly set the list->lv_len value to zero. This should happen, when start is larger than end (in case the stride is positive) or end is larger than start when the stride is negative. This should fix the underlying issue properly. However, - as a safety measure, let's check that the requested index is not out of range one more time, after the list has been materialized and return NULL in case it suddenly is. - add a few more tests to verify the behaviour. fixes: #13557 closes: #13563 Co-authored-by: Tim Pope <tpope@github.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-22patch 9.0.2122: [security]: prevent overflow in indentingv9.0.2122Christian Brabandt
Problem: [security]: prevent overflow in indenting Solution: use long long and remove cast to (int) The shiftwidth option values are defined as being long. However, when calculating the actual amount of indent, we cast down to (int), which may cause the shiftwidth value to become negative and later it may even cause Vim to try to allocate a huge amount of memory. We already use long and long long variable types to calculate the indent (and detect possible overflows), so the cast to (int) seems superfluous and can be safely removed. So let's just remove the (int) cast and calculate the indent using longs. Additionally, the 'shiftwidth' option value is also used when determining the actual 'cino' options. There it can again cause another overflow, so make sure it is safe in parse_cino() as well. fixes: #13554 closes: #13555 Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-22patch 9.0.2121: [security]: use-after-free in ex_substitutev9.0.2121Christian Brabandt
Problem: [security]: use-after-free in ex_substitute Solution: always allocate memory closes: #13552 A recursive :substitute command could cause a heap-use-after free in Vim (CVE-2023-48706). The whole reproducible test is a bit tricky, I can only reproduce this reliably when no previous substitution command has been used yet (which is the reason, the test needs to run as first one in the test_substitute.vim file) and as a combination of the `:~` command together with a :s command that contains the special substitution atom `~\=` which will make use of a sub-replace special atom and calls a vim script function. There was a comment in the existing :s code, that already makes the `sub` variable allocate memory so that a recursive :s call won't be able to cause any issues here, so this was known as a potential problem already. But for the current test-case that one does not work, because the substitution does not start with `\=` but with `~\=` (and since there does not yet exist a previous substitution atom, Vim will simply increment the `sub` pointer (which then was not allocated dynamically) and later one happily use a sub-replace special expression (which could then free the `sub` var). The following commit fixes this, by making the sub var always using allocated memory, which also means we need to free the pointer whenever we leave the function. Since sub is now always an allocated variable, we also do no longer need the sub_copy variable anymore, since this one was used to indicated when sub pointed to allocated memory (and had therefore to be freed on exit) and when not. Github Security Advisory: https://github.com/vim/vim/security/advisories/GHSA-c8qm-x72m-q53q Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-22runtime(netrw): Fix handling of very long filename on longlist style (#12150)K.Takata
If there is a file with a very long filename (longer than g:netrw_maxfilenamelen), and if g:netrw_liststyle is set to 1, no space is inserted between the filename and the filesize and the file cannot be opened because of this. E.g.: ``` $ echo hello > 12345678901234567890123456789012 # 32 bytes: OK $ echo hello > 123456789012345678901234567890123 # 33 bytes: not OK $ echo hello > 1234567890123456789012345678901234 # 34 bytes: not OK $ echo hello > こんにちは # multibyte filename $ LC_ALL=C.UTF-8 vim . --clean --cmd "set loadplugins" --cmd "let g:netrw_liststyle=1" ``` Then, it will be shown like this: ``` " ============================================================================ " Netrw Directory Listing (netrw v171) " /cygdrive/c/work/netrw-test " Sorted by name " Sort sequence: [\/]$,\<core\%(\.\d\+\)\=\>,\.h$,\.c$,\.cpp$,\~\=\*$,*,\.o$,\ " Quick Help: <F1>:help -:go up dir D:delete R:rename s:sort-by x:special " ============================================================================== ../ 0 Mon Mar 13 19:25:16 2023 ./ 0 Mon Mar 13 19:44:58 2023 12345678901234567890123456789012 6 Mon Mar 13 19:29:43 2023 12345678901234567890123456789012346 Mon Mar 13 19:32:40 2023 1234567890123456789012345678901236 Mon Mar 13 19:29:49 2023 こんにちは 6 Mon Mar 13 19:30:41 2023 ``` If the length of the filename is 32 bytes, there is a space between the filename and the filesize. However, when it is longer than 32 bytes, no space is shown. Also, you may find that the filesize of the multibyte named file is not aligned. After this patch is applied, the filelist will be shown like this: ``` " ============================================================================ " Netrw Directory Listing (netrw v171) " /cygdrive/c/work/netrw-test " Sorted by name " Sort sequence: [\/]$,\<core\%(\.\d\+\)\=\>,\.h$,\.c$,\.cpp$,\~\=\*$,*,\.o$,\ " Quick Help: <F1>:help -:go up dir D:delete R:rename s:sort-by x:special " ============================================================================== ../ 0 Mon Mar 13 20:49:22 2023 ./ 0 Mon Mar 13 21:12:14 2023 1234567890123456789012345678901 10000 Mon Mar 13 20:57:55 2023 12345678901234567890123456789012 6 Mon Mar 13 19:29:43 2023 123456789012345678901234567890123 6 Mon Mar 13 19:29:49 2023 1234567890123456789012345678901234 6 Mon Mar 13 19:32:40 2023 1234567890123456789012345678901234567 10000 Mon Mar 13 21:03:23 2023 1234567890123456789012345678901234567890 10000 Mon Mar 13 21:03:36 2023 123456789012345678901234567890123456789012 10000 Mon Mar 13 21:03:59 2023 1234567890123456789012345678901234567890123 10000 Mon Mar 13 21:03:45 2023 1234567890123456789012345678901234567890123456 5 Mon Mar 13 21:08:15 2023 12345678901234567890123456789012345678901234567 10 Mon Mar 13 21:05:21 2023 こんにちは 6 Mon Mar 13 19:30:41 2023 ``` Now we have 32 + 2 + 15 = 49 characters for filename and filesize. It tries to align the filesize as much as possible. The last line that has multibyte filename is also aligned. Also fixed the issue that the file list is not shown correctly when g:netrw_sort_by is set to 'size' and g:netrw_sizestyle is set to 'h' or 'H'. Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-21patch 9.0.2120: un-used assignment in do_source_buffer_initv9.0.2120Christian Brabandt
Problem: un-used assignment in do_source_buffer_init Solution: Remove it Coverity warns about assigning NULL to line in scriptfile.c:1408, because right after that assignment, in the next iteration of the loop, line will be overwritten by the next value from vim_strsave(). And in case this was the last iteration, the line variable is no longer used until the function returns. So we can safely remove that assignment. closes: #13547 Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-21patch 9.0.2119: remove dead-condition in ex_classv9.0.2119Christian Brabandt
Problem: remove dead-condition in ex_class() Solution: remove the extra condition The variable is_class must be true once we reach the ,---- | else if (has_static) `---- in line 1750, because we break out earlier if is_class is false in line 1598 of vim9class.c. And once 'has_static = TRUE', we must be in a class and there fore is_class is true. Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-21patch 9.0.2118: [security]: avoid double-free in get_style_font_variantsv9.0.2118Christian Brabandt
Problem: [security]: avoid double-free Solution: Only fee plain_font, when it is not the same as bold_font When plain_font == bold_font and bold_font is not NULL, we may end up trying to free bold_font again, which already has been freed a few lines above. So only free bold_font, when the condition gui.font_can_bold is true, which means that bold_font is not pointing to plain_font (so it needs to be freed separately). Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-21patch 9.0.2117: [security] use-after-free in qf_free_itemsv9.0.2117Christian Brabandt
Problem: [security] use-after-free in qf_free_items Solution: only access qfpnext, if it hasn't been freed Coverity discovered a possible use-after-free in qf_free_items. When freeing the qfline items, we may access freed memory, when qfp == qfpnext. So only access qfpnext, when it hasn't been freed. Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-21runtime(netrw): expand $COMSPEC without applying 'wildignore' (#13542)Christian Brabandt
When expanding $COMSPEC and a user has set :set wildignore=*.exe netrw won't be able to properly cmd.exe, because it does not ignore the wildignore setting. So let's explicitly use expand() without applying the 'wildignore' and 'suffixes' settings to the result closes: #13426 Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-21runtime(vim): Improve keymap file highlighting (#13550)dkearns
- Match :loadkeymap to EOF as a region and contain only allowed items. - Add highlighting for <Char- notation. - add basic syntax highlighting tests Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-21runtime(Filelist): include new doc-Makefiles (#13551)zdohnal
Tags for help files disappeared with the latest Vim update in Fedora, which is caused by silent error (it didn't stop the build) about missing file. I use 'make unixall' in Fedora to get the latest patchlevels and the new files were missing from Filelist file which is used for generating the tarball. Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-21runtime(doc): Fix whitespace and formatting of some help files (#13549)h_east
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-20runtime(doc): minor typo fixes (#13548)njohnston
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-19patch 9.0.2116: No test for defining sign without attributev9.0.2116Luuk van Baal
Problem: No test for defining sign without attribute Solution: Add test for defining sign without attributes closes: #13544 Signed-off-by: Luuk van Baal <luukvbaal@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-19patch 9.0.2115: crash when callback function aborts because of recursivenessv9.0.2115Christian Brabandt
Problem: crash when callback function aborts because of recursiveness Solution: correctly initialize rettv Initialize rettv in invoke_popup_callback() Since v9.0.2030, call_callback may exit early when the callback recurses too much. This meant that call_func, which would set rettv->v_type = VAR_UNKNOWN, was not being called. Without rettv->v_type being explicitly set, it still contained whatever garbage was used to initialize the stack value in invoke_popup_callback. This would lead to possible crashes when calling clear_tv(&rettv). Rather than rely on action at a distance, explicitly initialize rettv's type to VAR_UNKNOWN so clear_tv can tell nothing needs to be done. closes: #13495 closes: #13545 Signed-off-by: James McCoy <jamessan@jamessan.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-19patch 9.0.2114: overflow detection not accurate when adding digitsv9.0.2114Christian Brabandt
Problem: overflow detection not accurate when adding digits Solution: Use a helper function Use a helper function to better detect overflows before adding integer digits to a long or an integer variable respectively. Signal the overflow to the caller function. closes: #13539 Signed-off-by: Christian Brabandt <cb@256bit.org> Signed-off-by: Michael Henry <vim@drmikehenry.com> Signed-off-by: Ernie Rael <errael@raelity.com>
2023-11-19patch 9.0.2113: Coverity warns for another overflow in shift_line()v9.0.2113Christian Brabandt
Problem: Coverity warns for another overflow in shift_line() Solution: Test for INT_MAX after the if condition, cast integer values to (long long) before multiplying. Signed-off-by: Christian Brabandt <cb@256bit.org> Signed-off-by: Michael Henry <vim@drmikehenry.com> Signed-off-by: Ernie Rael <errael@raelity.com>
2023-11-18runtime(doc): Refactor doc-Makefiles (#13519)Restorer
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-18runtime(doc): document proper notation of gVim, document vim-security listChristian Brabandt
Also, while at it, document the vim-security mailing list. closes: #13429 Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-17translation(sr): Update Serbian messages translation (#13538)Ivan Pešić
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-16patch 9.0.2112: [security]: overflow in shift_linev9.0.2112Christian Brabandt
Problem: [security]: overflow in shift_line Solution: allow a max indent of INT_MAX [security]: overflow in shift_line When shifting lines in operator pending mode and using a very large value, we may overflow the size of integer. Fix this by using a long variable, testing if the result would be larger than INT_MAX and if so, indent by INT_MAX value. Special case: We cannot use long here, since on 32bit architectures (or on Windows?), it typically cannot take larger values than a plain int, so we have to use long long count, decide whether the resulting multiplication of the shiftwidth value * amount is larger than INT_MAX and if so, we will store INT_MAX as possible larges value in the long long count variable. Then we can safely cast it back to int when calling the functions to set the indent (set_indent() or change_indent()). So this should be safe. Add a test that when using a huge value in operator pending mode for shifting, we will shift by INT_MAX closes: #13535 Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-16patch 9.0.2111: [security]: overflow in get_numberv9.0.2111Christian Brabandt
Problem: [security]: overflow in get_number Solution: Return 0 when the count gets too large [security]: overflow in get_number When using the z= command, we may overflow the count with values larger than MAX_INT. So verify that we do not overflow and in case when an overflow is detected, simply return 0 Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-16patch 9.0.2110: [security]: overflow in ex address parsingv9.0.2110Christian Brabandt
Problem: [security]: overflow in ex address parsing Solution: Verify that lnum is positive, before substracting from LONG_MAX [security]: overflow in ex address parsing When parsing relative ex addresses one may unintentionally cause an overflow (because LONG_MAX - lnum will overflow for negative addresses). So verify that lnum is actually positive before doing the overflow check. Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-16patch 9.0.2109: [security]: overflow in nv_z_get_countv9.0.2109Christian Brabandt
Problem: [security]: overflow in nv_z_get_count Solution: break out, if count is too large When getting the count for a normal z command, it may overflow for large counts given. So verify, that we can safely store the result in a long. Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-16patch 9.0.2108: [security]: overflow with count for :s commandv9.0.2108Christian Brabandt
Problem: [security]: overflow with count for :s command Solution: Abort the :s command if the count is too large If the count after the :s command is larger than what fits into a (signed) long variable, abort with e_value_too_large. Adds a test with INT_MAX as count and verify it correctly fails. It seems the return value on Windows using mingw compiler wraps around, so the initial test using :s/./b/9999999999999999999999999990 doesn't fail there, since the count is wrapping around several times and finally is no longer larger than 2147483647. So let's just use 2147483647 in the test, which hopefully will always cause a failure Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-16patch 9.0.2107: [security]: FPE in adjust_plines_for_skipcolv9.0.2107Christian Brabandt
Problem: [security]: FPE in adjust_plines_for_skipcol Solution: don't divide by zero, return zero Prevent a floating point exception when calculating w_skipcol (which can happen with a small window when the number option is set and cpo+=n). Add a test to verify Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-16patch 9.0.2106: [security]: Use-after-free in win_close()v9.0.2106Christian Brabandt
Problem: [security]: Use-after-free in win_close() Solution: Check window is valid, before accessing it If the current window structure is no longer valid (because a previous autocommand has already freed this window), fail and return before attempting to set win->w_closing variable. Add a test to trigger ASAN in CI Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-14runtime(tar): comment out strange error condition checkChristian Brabandt
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-14patch 9.0.2105: skipcol not reset when topline changedv9.0.2105Luuk van Baal
Problem: Skipcol is not reset when topline changed scrolling cursor to top Solution: reset skipcol closes: #13528 closes: #13532 Signed-off-by: Luuk van Baal <luukvbaal@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-14patch 9.0.2104: wast filetype should be replaced by wat filetypev9.0.2104rhysd
Problem: wast filetype should be replaced by wat filetype Solution: start using the official wat filetype name runtime: rename `wast` filetype to `wat` (Wasm text format) The problem is the name of the current filetype wast. When the plugin was initially created, the file extension for Wasm text format was not fixed and .wast was more popular. However, recently .wat became the official file extension for WebAssembly text (WAT) format and .wast is now a file extension for the unofficial WAST format, which is a superset of .wat for the convenience to describe the Wasm specification conformance tests. https://webassembly.js.org/docs/contrib-wat-vs-wast.html However for now, let's keep using the `wat` filetype even for the .wast extension, so that we at least do not lose the filetype settings and syntax highlighting. This can be adjusted later, if it turns out to have a separate need for. closes: #13533 Signed-off-by: rhysd <lin90162@yahoo.co.jp> Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-14runtime(doc): fix typo in pi_gzip.txtChristian Brabandt
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-12patch 9.0.2103: recursive callback may cause issues on some archsv9.0.2103Christian Brabandt
Problem: recursive callback may cause issues on some archs Solution: Decrease the limit drastically to 20 Recursive callback limit causes problems on some architectures Since commit 47510f3d6598a1218958c03ed11337a43b73f48d we have a test that causes a recursive popup callback function to be executed. However it seems the current limit of 'maxfuncdepth' option value is still too recursive for some 32bit architectures (e.g. 32bit ARM). So instead of allowing a default limit of 100 (default value for 'maxfuncdepth'), let's reduce this limit to 20. I don't think there is a use case where one would need such a high recursive callback limit and a limit of 20 seems reasonable (although it is currently hard-coded). closes: #13495 closes: #13502 Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-12patch 9.0.2102: matchparen highlight not cleared in completion modev9.0.2102Christian Brabandt
Problem: matchparen highlight not cleared in completion mode Solution: Clear matchparen highlighting in completion mode Remove hard-coded hack in insexpand.c to clear the :3match before displaying the completion menu. Add a test for matchparen highlighting. While at it, move all test tests related to the matchparen plugin into a separate test file. closes: #13493 closes: #13524 Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-12runtime(termdebug): improve the breakpoint sign label (#13525)Shane-XB-Qian
// related #12589 // that should be the last chat (I) with Bram, r.i.p Signed-off-by: shane.xb.qian <shane.qian@foxmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-11-12Improve CONTRIBUTING.mdshane.xb.qian
closes: #13521 Signed-off-by: shane.xb.qian <shane.qian@foxmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>