aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
| * | | | | | vim-patch:9.0.0245: mechanism to prevent recursive screen updating is ↵zeertzjq2024-02-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | incomplete (#27448) Problem: Mechanism to prevent recursive screen updating is incomplete. Solution: Add "redraw_not_allowed" and set it in build_stl_str_hl(). (issue vim/vim#10952) https://github.com/vim/vim/commit/471c0fa3eed4f6207d1cb7636970547bfd2eee26 Co-authored-by: Bram Moolenaar <Bram@vim.org>
| * | | | | | Merge pull request #27439 from bfredl/nofreeallmembfredl2024-02-12
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | fix(exitfree): don't use ex commands to close windows in free_all_mem()
| | * | | | | | fix(exitfree): don't use ex commands to close windows in free_all_mem()bfredl2024-02-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Attempting to manipulate the window layout via ex commands is not safe here. It is also redundant: `win_free_all()` can free multiple windows by itself perfectly fine.
| * | | | | | | Merge pull request #27348 from fredizzimo/fsundvik/fix-ext-hlstatebfredl2024-02-12
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | fix: crashes with large msgpack messages
| | * | | | | | | fix: splitting of big UI messagesFred Sundvik2024-02-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Determine the needed buffer space first, instead of trying to revert the effect of prepare_call if message does not fit. The previous code did not revert the full state, which caused corrupted messages to be sent. So, rather than trying to fix all of that, with fragile and hard to read code as a result, the code is now much more simple, although slightly slower.
| | * | | | | | | fix: buffer overrun in lmpack_session_receiveFred Sundvik2024-02-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The offset was not taken into account when calculating the remaining buffer size.
| * | | | | | | | fix(extmarks): redraw pre-undo position (#27437)zeertzjq2024-02-12
| | |/ / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Virtual text not redrawn properly after undo moves its extmark. Solution: Redraw the moved extmark's pre-undo position.
| * | | | | | | vim-patch:9.1.0098: CompleteChanged not triggered when new leader added ↵Raphael2024-02-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | without matches (#27436) Problem: CompleteChanged not triggered when new leader added causing no matching item in the completion menu Solution: When completion is active but no items matched still trigger CompleteChanged event (glepnir) closes: vim/vim#13982 https://github.com/vim/vim/commit/0d3c0a66a39570cbc52b9536604c39e324b989b3 Fix #15077
| * | | | | | | perf(extmarks): avoid unnecessary invalidations for virt_text (#27435)zeertzjq2024-02-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Invalidation of most w_valid flags isn't needed when adding or removing virtual text below cursor.
| * | | | | | | fix(column): use a single path for sign sorting (#27431)luukvbaal2024-02-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: #25826 added a (duplicate) sign comparison function, which was modified and strayed from the original in #27418. Solution: Merge the two functions and add a display test that actually tests for this order in addition to the legacy tests.
| * | | | | | | vim-patch:9.1.0097: 'breakindent' behaves inconsistently with 'list' and ↵zeertzjq2024-02-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | splits (#27432) Problem: 'breakindent' behaves inconsistently with 'list' and splits. Solution: Use 'listchars' from the correct window and handle caching properly. Move cheaper comparisons to the top. (zeertzjq) closes: vim/vim#14008 https://github.com/vim/vim/commit/efabd7c8d4f733350364356b8950a11f013aec49
| * | | | | | | refactor(indent): refactor computing of a string's indent size (#27252)VanaIgr2024-02-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `get_indent_str_vtab()` function currently calls `tabstop_padding()` every time a tab is encountered (unless tabstops aren't used). `tabstop_padding()` either does a division by 'tabstop' If 'vartabstop' is not set, or iterates through the 'vartabstop' list to find current tab width. Since the virtual column only increases, we can keep track of where the next tabstop would be, and update this information once it was reached. `get_indent_str_vtab()` also depends on 'listchars' "tab" value from the current window, even though it may be called for a line from the same buffer in a different window. In most cases, it is called with tabstops enabled (last argument was `false`), so I split the function into one that uses tabstops and the other that doesn't. I removed `get_indent_str()` since I couldn't find any calls to it.
| * | | | | | | refactor(api): use an arena for nvim_buf_get_lines and buffer updatesbfredl2024-02-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactor some earlier "temporary Array" code in buffer_updates.c to use the modern style of MAXSIZE_TEMP_ARRAY and ADD_C
| * | | | | | | fix(messages): clear new lines when increasing 'cmdheight' (#27421)zeertzjq2024-02-11
| | | | | | | |
| * | | | | | | feat(shortmess): "q" flag fully hides recording message (#27415)Trevor Arjeski2024-02-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When "q" is set in 'shortmess' it now fully hides the "recording @a" message when you are recording a macro instead of just shortening to "recording". This removes duplication when using reg_recording() in the statusline. Related #19193
| * | | | | | | refactor: rename w_float_config to w_config #27419Will Hopkins2024-02-10
| | | | | | | | | | | | | | | | | | | | | | | | Follows up on rename of `FloatConfig` to `WinConfig` in #27397.
| * | | | | | | refactor: don't use subtraction in qsort() comparison functionszeertzjq2024-02-10
| | | | | | | |
| * | | | | | | vim-patch:9.1.0093: Still a qsort() comparison function that returns result ↵zeertzjq2024-02-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of subtraction Problem: Still a qsort() comparison function fuzzy_match_item_compare() that returns result of subtraction (after 9.1.0089). Solution: Use an explicit comparison instead of subtraction. (zeertzjq) closes: vim/vim#14004 https://github.com/vim/vim/commit/77078276bfe695070441a1bbdc02949d31de8922
| * | | | | | | vim-patch:9.1.0089: qsort() comparison functions should be transitivezeertzjq2024-02-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: qsort() comparison functions should be transitive Solution: Do not subtract values, but rather use explicit comparisons Improve qsort() comparison functions There has been a recent report on qsort() causing out-of-bounds read & write in glibc for non transitive comparison functions https://www.qualys.com/2024/01/30/qsort.txt Even so the bug is in glibc's implementation of the qsort() algorithm, it's bad style to just use substraction for the comparison functions, which may cause overflow issues and as hinted at in OpenBSD's manual page for qsort(): "It is almost always an error to use subtraction to compute the return value of the comparison function." So check the qsort() comparison functions and change them to be safe. closes: vim/vim#13980 https://github.com/vim/vim/commit/e06e43766500ecb4cd1031fa16cf9cbebdb222c1 Co-authored-by: Christian Brabandt <cb@256bit.org>
| * | | | | | | refactor: reduce some globals #27406Justin M. Keyes2024-02-10
| | | | | | | |
| * | | | | | | Merge pull request #27398 from bfredl/arena2bfredl2024-02-10
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | refactor(api): use arena for more stuff
| | * | | | | | | refactor(api): use arena for nvim_get_option_info()bfredl2024-02-09
| | | | | | | | |
| | * | | | | | | refactor(api): use arena for nvim_parse_cmd()bfredl2024-02-09
| | | | | | | | |
| | * | | | | | | refactor(api): use arena for hlstate inspectionbfredl2024-02-09
| | | | | | | | |
| | * | | | | | | refactor(api): use arena for nvim_list_uis()bfredl2024-02-09
| | | | | | | | |
| | * | | | | | | refactor(api): make cstr_as_string accept "const char*"bfredl2024-02-09
|