aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* | build(clint.py): remove rules for includes, whitespace, tabs #18611dundargoc2022-05-20
| | | | | | | | | | | | | | Uncrustify is the source of truth where possible. Remove any redundant checks from clint.py. See also https://github.com/neovim/neovim/pull/18563 Closes https://github.com/neovim/neovim/issues/17763
* | ci: lint with uncrustify #18563dundargoc2022-05-20
| | | | | | | | | | | | | | This lint job will ensure that the C codebase is properly formatted at all times. This helps eliminate most of clint.py. To save CI time, it's faster to manually compile uncrustify and cache the binary instead of using homebrew (the apt-get package is too old).
* | refactor: remove unused USE_WCHAR_FUNCTIONS #18618Lewis Russell2022-05-20
| | | | | | | | USE_WCHAR_FUNCTIONS is never defined and we don't trust libc wchar functions anyway.
* | fix(unittests): coredump when running unit tests #18663Jun-ichi TAKIMOTO2022-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fs_init() must be called before early_init() in init/helpers.lua If I run 'make unittest' on my Mac (macOS 10.14/Mojave or 12/Big Sur, intel CPU), every test produce a core dump. Call sequence in the core is: early_init() main.c:197 set_init_1() option.c:508 runtimepath_default() runtime.c:1205 get_lib_dir() runtime.c:1175 os_isdir() fs.c:137 os_getperm() fs.c:777 os_stat() fs.c:761 fs_loop_lock() fs.c:72 uv_mutex_lock(&fs_loop_mutex) thread.c:352 abort() .deps/build/src/libuv/src/unix/thread.c: void uv_mutex_lock(uv_mutex_t* mutex) { if (pthread_mutex_lock(mutex)) abort(); // line 352 } So pthread_mutex_lock(&fs_loop_mutex) failed. The reason seems to be simple. fs_init() was not called and fs_loop_mutex has not been initialized. fs_init() was moved out from early_init() in main.c by b87867e69e94d9784468a126f21c721446f080de, but unit/helpers.lua was not updated accordingly.
* | Merge pull request #18648 from jamessan/coverity-fixesJames McCoy2022-05-20
|\ \
| * | perf(cid/350479): avoid copying ExtmarkInfo when calling extmark_to_array()James McCoy2022-05-20
| | |
| * | fix(cid/352782): assert str->items is non-NULL to hint static analyzersJames McCoy2022-05-20
| | | | | | | | | | | | | | | | | | | | | The earlier vsnprintf() call checks whether str->items is NULL, sets of the "possible NULL" spidey sense. kv_ensure_space() guarantees str->items is non-NULL but since it doesn't use NULL checks to decide whether to alloc, static analyzers can't tell this code path is safe.
| * | fix(cid/348314): free user_copy, not userJames McCoy2022-05-20
| | | | | | | | | | | | | | | user is passed in by the caller, which we internally copy. We should be freeing our copy, not the caller's string.
| * | fix(cid/351940): free compl_arg in create_user_commands()'s error path exitJames McCoy2022-05-20
| | |
| * | ci(coverity): annotate register_cfunc as leaking memoryJames McCoy2022-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | register_cfunc allocates a ufunc_T, but doesn't store the pointer anywhere before returning. The uf_name member variable is stored in a hashtable and used to lookup the ufunc_T later, but that's too much for Coverity to track. Adding the annotation ensures that any new callers to register_cfunc don't pop up as new "leaks" in the Coverity scans.
| * | ci(coverity): model our allocation functionsJames McCoy2022-05-20
| | | | | | | | | | | | | | | | | | | | | | | | Coverity was reporting false positives, particularly around for non-NUL terminated strings around uses of xmemdupz(). The updated model ensures Coverity understands xmemdupz allocates an extra byte and sets it to NUL as well as the main details of our other allocation related wrappers.
* | | Merge pull request #18664 from famiu/fix/winbar_crashbfredl2022-05-20
|\ \ \ | | | | | | | | fix: prevent crash when statusline expression sets value of 'winbar'
| * | | fix: prevent crash when statusline expression sets value of 'winbar'Famiu Haque2022-05-20
| | | | | | | | | | | | | | | | Closes #18649
* | | | Merge pull request #18653 from dundargoc/refactor/move-reverse-textbfredl2022-05-20
|\ \ \ \ | | | | | | | | | | refactor: move reverse_text to strings.c as it's a string operation
| * | | | refactor: move reverse_text to strings.c as it's a string operationDundar Goc2022-05-20
| |/ / / | | | | | | | | | | | | | | | | | | | | Also add tests for reverse_text. Co-authored-by: Kalle Ranki <kalle.ranki@gmail.com>
* / / / vim-patch:8.2.4985: PVS warns for possible array underrunDundar Goc2022-05-20
|/ / / | | | | | | | | | | | | | | | Problem: PVS warns for possible array underrun. Solution: Add a check for a positive value. (closes vim/vim#10451) https://github.com/vim/vim/commit/875339b22a989d0782097036169e8fb9e2100d7e
* | | Merge pull request #18641 from famiu/fix/nvim_cmd/keymap_error_suppressbfredl2022-05-20
|\ \ \ | |/ / |/| | fix: make `nvim_cmd` not suppress errors inside key mapping
| * | fix: make `nvim_cmd` not suppress errors inside key mappingFamiu Haque2022-05-19
| | | | | | | | | | | | Closes #18632
* | | vim-patch:8.2.4980: when 'shortmess' contains 'A' loading session may still ↵zeertzjq2022-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | warn (#18636) Problem: When 'shortmess' contains 'A' loading a session may still warn for an existing swap file. (Melker Österberg) Solution: Keep the 'A' flag to 'shortmess' in the session file. (closes vim/vim#10443) https://github.com/vim/vim/commit/aaadb5b6f76ea03e5eb460121f3dbf46ad04ce50 Use readfile() with "B" flag in test as readblob() needs patch 8.2.2343.
* | | Merge pull request #18629 from famiu/fix/ui/winbarbfredl2022-05-19
|\ \ \ | | | | | | | | fix(ui): make `winbar` properly equalize window heights for local value
| * | | fix(ui): make `winbar` properly equalize window heights for local valueFamiu Haque2022-05-19
| | | | | | | | | | | | | | | | | | | | Fixes `'winbar'` not properly equalizing window heights for splits when the global value is empty and a window-local value is set instead.
* | | | fix(mouse): fix mouse drag position with winbar or border in multigridzeertzjq2022-05-19
| | | |
* | | | fix(mouse): fix mouse drag position with winbarzeertzjq2022-05-19
| |/ / |/| |
* | | vim-patch:8.2.4979: accessing freed memory when line is flushed (#18634)zeertzjq2022-05-19
| | | | | | | | | | | | | | | Problem: Accessing freed memory when line is flushed. Solution: Make a copy of the pattern to search for. https://github.com/vim/vim/commit/28d032cc688ccfda18c5bbcab8b50aba6e18cde5
* | | Merge pull request #18630 from dundargoc/refactor/remove-remapGregory Anders2022-05-18
|\ \ \
| * | | refactor!: remove 'terse' optionDundar Goc2022-05-19
| | | | | | | | | | | | | | | | | | | | Having two methods of setting the same option is redundant and can be potentially confusing. Recommend adding 's' to 'shortmess' instead.
| * | | refactor!: remove 'remap' optionDundar Goc2022-05-19
| | | | | | | | | | | | | | | | | | | | An option that should always be kept on except for when working with old Vi scripts is of little use to us.
* | | | fix(termopen): avoid ambiguity in URI when CWD is root dir (#16988)zeertzjq2022-05-19
| | | |
* | | | Merge pull request #18620 from bfredl/multibarbfredl2022-05-18
|\ \ \ \ | |/ / / |/| | | fix(ui): make winbar work with floats and multigrid
| * | | refactor(events): remove unnecessary fudging of updating_screenbfredl2022-05-18
| | | | | | | | | | | | | | | | | | | | This was not necessary after the introduction of `resize_events`, after which ui resizes are not `fast_events` anymore.
| * | | fix(ui): make winbar work with floats and multigridbfredl2022-05-18
| | | |
| * | | refactor: move more grid functions to grid.c. Clean up some variablesbfredl2022-05-18
| | | |
| * | | refactor: grid->rows and grid->colsbfredl2022-05-18
| | | |
* | | | Merge pull request #18507 from gpanders/au-lsp-attachedGregory Anders2022-05-18
|\ \ \ \
| * | | | feat(lsp): add LspAttach and LspDetach autocommandsGregory Anders2022-05-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current approach of using `on_attach` callbacks for configuring buffers for LSP is suboptimal: 1. It does not use the standard Nvim interface for driving and hooking into events (i.e. autocommands) 2. There is no way for "third parties" (e.g. plugins) to hook into the event. This means that *all* buffer configuration must go into the user-supplied on_attach callback. This also makes it impossible for these configurations to be modular, since it all must happen in the same place. 3. There is currently no way to do something when a client detaches from a buffer (there is no `on_detach` callback). The solution is to use the traditional method of event handling in Nvim: autocommands. When a LSP client is attached to a buffer, fire a `LspAttach`. Likewise, when a client detaches from a buffer fire a `LspDetach` event. This enables plugins to easily add LSP-specific configuration to buffers as well as enabling users to make their own configurations more modular (e.g. by creating multiple LspAttach autocommands that each do something unique).
* | | | | Merge pull request #18624 from famiu/feat/ui/winbarbfredl2022-05-18
|\ \ \ \ \ | |/ / / / |/| | / / | | |/ / | |/| | fix(ui): set correct position on mouse click when 'winbar' is enabled
| * | | fix(ui): set correct position on mouse click when 'winbar' is enabledFamiu Haque2022-05-18
| |/ /
* / / feat(api): enable nvim_exec_autocmds to pass arbitrary data (#18613)Gregory Anders2022-05-18
|/ / | | | | | | Add a "data" key to nvim_exec_autocmds that passes arbitrary data (API objects) to autocommand callbacks.
* | Merge pull request #18562 from famiu/feat/ui/winbarbfredl2022-05-18
|\ \ | | | | | | feat(ui): add `'winbar'`
| * | feat(ui): add `'winbar'`Famiu Haque2022-05-18
| | | | | | | | | | | | | | | | | | | | | Adds support for a bar at the top of each window, enabled through the `'winbar'` option. Co-authored-by: Björn Linse <bjorn.linse@gmail.com>
* | | Merge #18605 PVS fixesJustin M. Keyes2022-05-18
|\ \ \
| * | | fix(PVS/V568): correct placement of ignore directiveDundar Goc2022-05-17
| | | |
| * | | fix(PVS/V547): "expression is always false"Dundar Goc2022-05-17
| | | | | | | | | | | | | | | | | | | | Suppress warning in loop.c, the expression can be true if EXITFREE isn't defined.
| * | | fix(PVS/V1028): prevent potential overflowDundar Goc2022-05-17
| | | |
* | | | vim-patch:8.2.4975: recursive command line loop may cause a crash (#18614)zeertzjq2022-05-18
|/ / / | | | | | | | | | | | | | | | | | | Problem: Recursive command line loop may cause a crash. Solution: Limit recursion of getcmdline(). https://github.com/vim/vim/commit/51f0bfb88a3554ca2dde777d78a59880d1ee37a8 Cherry-pick e_command_too_recursive from patch 8.2.3957.
* | | fix(terminal): do not trim whitespace that is actually in the terminal (#16423)zeertzjq2022-05-17
| | |
* | | docs(api): update v:errmsg behavior #18593Famiu Haque2022-05-17
| |/ |/|
* | vim-patch:8.2.4969: changing text in Visual mode may cause invalid memory accesszeertzjq2022-05-17
| | | | | | | | | | | | Problem: Changing text in Visual mode may cause invalid memory access. Solution: Check the Visual position after making a change. https://github.com/vim/vim/commit/7ce5b2b590256ce53d6af28c1d203fb3bc1d2d97
* | vim-patch:8.2.4968: reading past end of the line when C-indentingzeertzjq2022-05-17
| | | | | | | | | | | | Problem: Reading past end of the line when C-indenting. Solution: Check for NUL. https://github.com/vim/vim/commit/60ae0e71490c97f2871a6344aca61cacf220f813
* | vim-patch:8.2.4121: Visual test fails on MS-Windowszeertzjq2022-05-17
|/ | | | | | Problem: Visual test fails on MS-Windows. Solution: Set 'isprint' so that the character used is not printable. https://github.com/vim/vim/commit/262898ae43fa223916cfa27b0de81e5d9f3fc4b0