summaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)Author
2023-10-17patch 9.0.2035: [security] use-after-free with wildmenuv9.0.2035Yee Cheng Chin
Problem: [security] use-after-free with wildmenu Solution: properly clean up the wildmenu when exiting Fix wildchar/wildmenu/pum memory corruption with special wildchar's Currently, using `wildchar=<Esc>` or `wildchar=<C-\>` can lead to a memory corruption if using wildmenu+pum, or wrong states if only using wildmenu. This is due to the code only using one single place inside the cmdline process loop to perform wild menu clean up (by checking `end_wildmenu`) but there are other odd situations where the loop could have exited and we need a post-loop clean up just to be sure. If the clean up was not done you would have a stale popup menu referring to invalid memory, or if not using popup menu, incorrect status line (if `laststatus=0`). For example, if you hit `<Esc>` two times when it's wildchar, there's a hard-coded behavior to exit command-line as a failsafe for user, and if you hit `<C-\><C-\><C-N>` it will also exit command-line, but the clean up code would not have hit because of specialized `<C-\>` handling. Fix Ctrl-E / Ctrl-Y to not cancel/accept wildmenu if they are also used for 'wildchar'/'wildcharm'. Currently they don't behave properly, and also have potentially memory unsafe behavior as the logic is currently not accounting for this situation and try to do both. (Previous patch that addressed this: #11677) Also, correctly document Escape key behavior (double-hit it to escape) in wildchar docs as it's previously undocumented. In addition, block known invalid chars to be set in `wildchar` option, such as Ctrl-C and `<CR>`. This is just to make it clear to the user they shouldn't be set, and is not required for this bug fix. closes: #13361 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
2023-10-16patch 9.0.2034: don't try to copy SMACK attribute, when none existv9.0.2034Christian Brabandt
Problem: don't try to copy SMACK attribute, when none exist Solution: return early if SMACK extended attributes do not exist or if they are not supported closes: #1711 closes: #13348 Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-10-16patch 9.0.2033: gcc overflow-warning for f_resolvev9.0.2033Ken Takata
Problem: gcc overflow-warning for f_resolve Solution: use pointer p instead of pointer q[-1] Suppress the following warning: ``` filepath.c: In function ‘f_resolve’: filepath.c:2162:27: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=] 2162 | q[-1] = NUL; ``` Closes: #13352 closes: #13353 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Ken Takata <kentkt@csc.jp>
2023-10-16runtime: Fix more typos (#13354)Viktor Szépe
* Fix more typos * Fix typos in ignored runtime/ directory Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-10-15patch 9.0.2032: cannot get mouse click pos for tab or virt textv9.0.2032zeertzjq
Problem: Cannot accurately get mouse clicking position when clicking on a TAB or with virtual text. Solution: Add a "coladd" field to getmousepos() result. closes: #13335 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: zeertzjq <zeertzjq@outlook.com>
2023-10-15patch 9.0.2031: TextChangedI may be triggered by non-insert mode changev9.0.2031Evgeni Chasnovski
Problem: `TextChangedI` can trigger on entering Insert mode if there was previously a change not in Insert mode. Solution: Make it trigger only when text is actually changed in Insert mode. closes: #13265 closes: #13338 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Evgeni Chasnovski <evgeni.chasnovski@gmail.com>
2023-10-15patch 9.0.2030: no max callback recursion limitv9.0.2030Christian Brabandt
Problem: no max callback recursion limit Solution: bail out, if max call recursion for callback functions has been reached. This checks the 'maxfuncdepth' setting and throws E169 when a callback function recursively calls itself. closes: #13337 closes: #13339 Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-10-15patch 9.0.2029: Vim9: no support for partials using call()v9.0.2029Yegappan Lakshmanan
Problem: Vim9: no support for partials using call() Solution: Add support closes: #13341 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-10-15patch 9.0.2028: confusing build dependenciesv9.0.2028Yee Cheng Chin
Problem: confusing build dependencies Solution: clean them up, make them parallelizable Separate vim binary and unittest dependencies, make them parallelizable Clean up make dependencies so Vim and unit test binaries only depend on the object files they need. This fixes an existing issue where after running unit tests, the Vim binary would be invalidated, which results in it having to be linked again when running script tests, even though Vim was already previously built. Make link.sh (script we use to link those binaries) generate namespaced temporary files for each app to avoid them colliding with each other. This allows `unittesttargets` to be built in parallel. These fixes are useful when using link-time-optimization as the link phase could now take minutes rather than a few seconds. closes: #13344 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
2023-10-15patch 9.0.2027: Vim9: no support for bitwise operators in lambda funcsv9.0.2027Yegappan Lakshmanan
Problem: Vim9: no support for bitwise operators in lambda funcs Solution: move "evaluate" assignment a bit up in order to decide to perform bitwise operations closes: #13342 closes: #13345 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-10-14patch 9.0.2026: win32: python3 dll loading can be improvedv9.0.2026Ken Takata
Problem: win32: python3 dll loading can be improved Solution: Load DLL from registry path Support loading python3.dll and/or python3xx.dll from the path written in the registry. To support Stable ABI's forwarder DLL (python3.dll), use the `LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR` flag for `LoadLibraryExW()` because python3xx.dll is placed in the same directory of python3.dll. If Stable ABI is used, search the latest version from the registry (both from HKEY_CURRENT_USER and HKEY_LOCAL_MACHINE). If Stable ABI is not used, search only the matching version. closes: #13315 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Ken Takata <kentkt@csc.jp>
2023-10-14patch 9.0.2025: no cmdline completion for ++opt argsv9.0.2025Yee Cheng Chin
Problem: no cmdline completion for ++opt args Solution: Add cmdline completion for :e ++opt=arg and :terminal [++options] closes: #13319 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
2023-10-14patch 9.0.2024: no filetype detection for Debian sourcesv9.0.2024James McCoy
Problem: no filetype detection for Debian sources Solution: Add new deb822sources filetype closes: #13320 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: James McCoy <jamessan@jamessan.com>
2023-10-14patch 9.0.2023: need more tests for :cqv9.0.2023Christian Brabandt
Problem: need more tests for :cq Solution: Add more tests, including wraparound on linux Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-10-14patch 9.0.2022: getmousepos() returns wrong index for TAB charv9.0.2022zeertzjq
Problem: When clicking in the middle of a TAB, getmousepos() returns the column of the next char instead of the TAB. Solution: Break out of the loop when the vcol to find is inside current char. Fix invalid memory access when calling virtcol2col() on an empty line. closes: #13321 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: zeertzjq <zeertzjq@outlook.com>
2023-10-14patch 9.0.2021: Coverity complains about change in charsetv9.0.2021Christian Brabandt
Problem: Coverity complains about change in charset (after v9.0.2017) Solution: check pointer t at index 0 closes: #13322 Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-10-14translation(sr): Update Serbian messages translation (#13324)Ivan Pešić
Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-10-14patch 9.0.2020: Vim9: islocked() needs more workv9.0.2020Ernie Rael
Problem: Vim9: islocked() needs more work Solution: rework islocked() and remove sync_root from get_lval() closes: #13329 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Ernie Rael <errael@raelity.com>
2023-10-14patch 9.0.2019: Vim9: no support for funcrefsv9.0.2019Yegappan Lakshmanan
Problem: Vim9: no support for funcrefs Solution: Add support for object/class funcref members closes: #11981 #12417 #12960 #12324 #13333 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-10-11patch 9.0.2018: complete_info() returns wrong indexv9.0.2018LemonBoy
Problem: complete_info() returns wrong index Solution: Make order of 'info' in completion_info consistent Start the iteration from the same point and follow the same direction as done when assigning the completion numbers. This way we remove the dependence on the completion direction and make the order of 'info' consistent. closes: #12230 closes: #12971 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: LemonBoy <thatlemon@gmail.com>
2023-10-11patch 9.0.2017: linebreak applies for leading whitespacev9.0.2017Christian Brabandt
Problem: linebreak applies for leading whitespace Solution: only apply linebreak, once we have found non-breakat chars in the line closes: #13228 closes: #13243 Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-10-11patch 9.0.2016: Vim9: assignment operators don't work for class varsv9.0.2016Yegappan Lakshmanan
Problem: Vim9: assignment operators don't work for class vars Solution: implement it closes: #13306 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-10-11patch 9.0.2015: Vim9: does not handle islocked() from a method correctlyv9.0.2015Ernie Rael
Problem: Vim9: does not handle islocked() from a method correctly Solution: Handle islocked() builtin from a method. - Setup `lval_root` from `f_islocked()`. - Add function `fill_exec_lval_root()` to get info about executing method. - `sync_root` added in get_lval to handle method member access. - Conservative approach to reference counting. closes: #13309 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Ernie Rael <errael@raelity.com>
2023-10-11patch 9.0.2013: confusing ifdefs in if_<lang>.cv9.0.2014Ken Takata
Problem: confusing ifdefs in if_<lang>.c Solution: refactor ifndefs to #ifdefs if_x: Avoid using #ifndef - #else - #endif Using #ifndef - #else - #endif is sometimes confusing. Use #ifdef - #else - #endif instead. closes: #13310 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Ken Takata <kentkt@csc.jp>
2023-10-11patch 9.0.2013: Unicode tables outdatedv9.0.2013Christian Brabandt
Problem: Unicode tables outdated Solution: Update Unicode tables to v15.1 (released 23.09.2023) closes: #13311 Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-10-11patch 9.0.2012: Vim9: error message can be more accuratev9.0.2012Ernie Rael
Problem: Vim9: error message can be more accurate Solution: Fix the error messages Fix message for some single use error messages. closes: #13312 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Ernie Rael <errael@raelity.com>
2023-10-11patch 9.0.2011: INI files not detectedv9.0.2011Martin Tournoij
Problem: INI files not detected Solution: detect uppercase .INI as dosini files It previo~1 only worked for lower-case .ini files, but upperc~1 .INI is also somewhat common on account of DOS' old 8.3 upperc~2 only filena~1. closes: #13316 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Martin Tournoij <martin@arp242.net>
2023-10-11patch 9.0.2010: [security] use-after-free from buf_contents_changed()v9.0.2010Christian Brabandt
Problem: [security] use-after-free from buf_contents_changed() Solution: block autocommands Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-10-09patch 9.0.2009: cmdline-completion for comma-separated options wrongv9.0.2009Yee Cheng Chin
Problem: cmdline-completion for comma-separated options wrong Solution: Fix command-line expansions for options with filenames with commas Fix command-line expansions for options with filenames with commas Cmdline expansion for option values that take a comma-separated list of file names is currently not handling file names with commas as the commas are not escaped. For such options, the commas in file names need to be escaped (to differentiate from a comma that delimit the list items). The escaped comma is unescaped in `copy_option_part()` during option parsing. Fix as follows: - Cmdline completion for option values with comma-separated file/folder names will not start a new match when seeing `\\,` and will instead consider it as one value. - File/folder regex matching will strip the `\\` when seeing `\\,` to make sure it can match the correct files/folders. - The expanded value will escape `,` with `\\,`, similar to how spaces are escaped to make sure the option value is correct on the cmdline. This fix also takes into account the fact that Win32 Vim handles file name escaping differently. Typing '\,' for a file name results in it being handled literally but in other platforms '\,' is interpreted as a simple ',' and commas need to be escaped using '\\,' instead. Also, make sure this new logic only applies to comma-separated options like 'path'. Non-list options like 'set makeprg=<Tab>' and regular ex commands like `:edit <Tab>` do not require escaping and will continue to work. Also fix up documentation to be clearer. The original docs are slightly misleading in how it discusses triple slashes for 'tags'. closes: #13303 related: #13301 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
2023-10-09patch 9.0.2008: test: undofile left behindv9.0.2008Dominique Pellé
Problem: test: undofile left behind Solution: cleanup undofile fix: tmp file not deleted when running make test_undo Temporary file `.Xtestfile.txt.un~` was left running `make test_undo` and vim was configured with: ``` ./configure --with-features=normal --enable-gui=no --enable-terminal ``` closes: #13304 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Dominique Pellé <dominique.pelle@tomtom.com>
2023-10-09patch 9.0.2007: Vim9: covariant parameter types allowedv9.0.2007Yegappan Lakshmanan
Problem: Vim9: covariant parameter types allowed when assigning functions Solution: Enforce invariant type check for arguments and return value when assigning a funcref closes: #13299 closes: #13305 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-10-09patch 9.0.2006: Vim9: need more testsv9.0.2006Yegappan Lakshmanan
Problem: Vim9: need more tests Solution: add additional disassembly tests closes: #13305 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-10-09patch 9.0.2005: partially revert patch v9.0.1997v9.0.2005Christian Brabandt
Problem: partially revert patch v9.0.1997 Solution: add a comment, to make clear it's not used related: #13288 Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-10-09patch 9.0.2004: Missing test filev9.0.2004Christian Brabandt
Problem: Missing test file Solution: git-add the file to the repo closes: #13305 Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-10-08patch 9.0.2003: xxd: compilation warningv9.0.2003Christian Brabandt
Problem: xxd: compilation warning Solution: initialize variables Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-10-08patch 9.0.2002: Vim9: need cleanup of class related interface codev9.0.2002Yegappan Lakshmanan
Problem: Vim9: need cleanup of class related interface code Solution: Remove the unused class variable and class method related code for interfaces. Remove unused class variable and class method related code for interfaces. Refactor the code. Optimize the object/class member double lookup in compile_lhs(). Change unused global functions to static functions. closes: #13302 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-10-07patch 9.0.2001: Vim9: segfault with islocked()v9.0.2001Ernie Rael
Problem: Vim9: segfault with islocked() Solution: Check that the lval pointer is not null for objects and class variables closes: #13295 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Ernie Rael <errael@raelity.com>
2023-10-07patch 9.0.2000: Vim9: use-after-free in deep call stackv9.0.2000Yegappan Lakshmanan
Problem: Vim9: use-after-free in deep call stack Solution: Get the objct pointer from execution stack closes: #13296 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-10-06patch 9.0.1999: Vim9: some error messages can be improvedv9.0.1999Ernie Rael
Problem: Vim9: some error messages can be improved Solution: Mention the defining class for variable access error message closes: #13272 Signed-off-by: Christian Brabandt <cb@256bit.org> Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com> Co-authored-by: Ernie Rael <errael@raelity.com>
2023-10-06patch 9.0.1998: xxd: cannot reverse a bit dumpv9.0.1998tristhaus
Problem: xxd: cannot reverse a bit dump Solution: implement reversing the bit dump using -b -r closes: #13286 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: tristhaus <tristhaus@yahoo.de>
2023-10-06patch 9.0.1997: Some unused code in move.c and string.cv9.0.1997dundargoc
Problem: Some unused code in move.c and string.c Solution: Remove it closes: #13288 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: dundargoc <gocdundar@gmail.com>
2023-10-06patch 9.0.1996: Cannot build with python312v9.0.1996Ken Takata
Problem: Cannot build with python312 Solution: Define wrapper types and functions for python 3.12 Py_SIZE() uses PyLong_Type and PyBool_Type starting from Python 3.12. We need to define our own Py_SIZE() to replace Py{Bool,Long}_Type with py3_Py{Bool,Long}_Type. We also need to redefine PyTuple_GET_SIZE() and PyList_GET_SIZE(), because they use Py_SIZE(). closes: #13281 closes: #13290 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Ken Takata <kentkt@csc.jp>
2023-10-06patch 9.0.1995: Invalid memory access with empty 'foldexpr'v9.0.1995zeertzjq
Problem: Invalid memory access when 'foldexpr' returns empty string. Solution: Check for NUL. closes: #13293 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: zeertzjq <zeertzjq@outlook.com>
2023-10-05patch 9.0.1994: inconsistent feature descriptionv9.0.1994RestorerZ
Problem: inconsistent feature description Solution: delete old mentioned feature sets small and big The may however still be mentioned for historical reasons. e.g. The last Amiga built version is for Vim6.2 and is still a big version. closes: #13273 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: RestorerZ <restorer@mail2k.ru>
2023-10-05patch 9.0.1993: warning about unused function definitionv9.0.1993Christian Brabandt
Problem: warning about unused function definition Solution: add ifdefs Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-10-05patch 9.0.1992: [security] segfault in exmodev9.0.1992Christian Brabandt
Problem: segfault in exmode when redrawing Solution: skip gui_scroll when exmode_active Signed-off-by: Christian Brabandt <cb@256bit.org>
2023-10-05patch 9.0.1991: no cmdline completion for setting the fontv9.0.1991Yee Cheng Chin
Problem: no cmdline completion for setting the font Solution: enable it on Win32 and GTK builds Add guifont cmdline completion (for Windows and GTK) For Windows, auto-complete will only suggest monospace fonts as that's the only types allowed. Will also suggest font options after the colon, including suggesting the current font size for convenience, and misc charset and quality options like `cANSI` and `qCLEARTYPE`. For GTK, auto-complete will suggest only monospace fonts for `guifont` but will include all fonts for `guifontwide`. The completion code doesn't currently suggest the current font size, as the GTK guifont format does not have a clear delimiter (':' for other platforms). closes: #13264 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
2023-10-05patch 9.0.1990: strange error numberv9.0.1990Christ van Willegen
Problem: strange error number Solution: change error number, add doc tag for E1507 closes: #13270 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Christ van Willegen <cvwillegen@gmail.com>
2023-10-05patch 9.0.1989: Vim9: double error message givenv9.0.1989Ernie Rael
Problem: Vim9: double error message given Solution: Only give second error message, if ther wasn't one given before closes: #13278 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Ernie Rael <errael@raelity.com>
2023-10-05patch 9.0.1988: Vim9: potential use-after-free for class membersv9.0.1988Yegappan Lakshmanan
Problem: Vim9: potential use-after-free for class members Solution: Use the class-related grow array for storing the member type instead of using a temporary type list grow array Use the type list grow array associated with the class than using a temporary type list grow array to allocate the class member type. For simple types, a predefined type is used. For complex types, the type is dynamically allocated from a grow array. For class variables, the type grow array in the class should be used. So that the lifetime of the type is same as the lifetime of the class. closes: #13279 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>