Problem: Detecting if the process of a swap file is running fails if the
process is owned by another user.
Solution: Check for the ESRCH error. (closesvim/vim#8436)
44dea9da4b
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: MS-Windows: swap file test sometimes fails.
Solution: Use a more reliable way to change the process ID. When "timeout"
fails use "ping" to wait up to ten minutes. (Ken Takata,
closesvim/vim#7365)
5ee0981fb5
Problem: Coverity warns for possibly using not NUL terminated string.
Solution: Put a NUL in b0_hname just in case.
e79cdb69a4
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Swap file test is a little flaky.
Solution: Don't set a byte to a fixed value, increment it.
c6ca9f3a29
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: It is easy to make mistakes when cleaning up swap files after the
system crashed.
Solution: Warn for the process still running after recovery. Do not
automatically delete a swap file created on another system.
(David Fries, closesvim/vim#7273)
f883508e36
The needs:response label should only be added and removed manually, and
the action's behavior of removing the label on any activity (e.g. title
change, removing reviewers) is unwanted.
Allow Include What You Use to remove unnecessary includes and only
include what is necessary. This helps with reducing compilation times
and makes it easier to visualise which dependencies are actually
required.
Work on https://github.com/neovim/neovim/issues/549, but doesn't close
it since this only works fully for .c files and not headers.
Problem: Using freed memory after SpellFileMissing autocmd uses bwipe.
Solution: Bail out if the window no longer exists.
c3d27ada14
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: A silent mapping may cause dots on the command line.
Solution: Don't show dots for completion if they are not going to be removed
again. (closesvim/vim#11501)
698a00f55d
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Coverity warns for dead code.
Solution: Remove the dead code.
b298fe6cba
Nvim has refactored this function and does not have the dead code.
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Various code not used when features are disabled.
Solution: Add #ifdefs. (Dominique Pellé, closesvim/vim#9491)
748b308eeb
N/A patches for version.c:
vim-patch:8.2.2186: Vim9: error when using 'opfunc'
Problem: Vim9: error when using 'opfunc'.
Solution: Do not expect a return value from 'opfunc'. (closesvim/vim#7510)
5b3d1bb0f5
Problem: Insert complete code uses global variables.
Solution: Make variables local to the file and use accessor functions.
(Yegappan Lakshmanan, closesvim/vim#9470)
d94fbfc74a
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Problem: Code is indented more than needed.
Solution: Return early. (Yegappan Lakshmanan, closesvim/vim#11538)
623e94e138
Only port the first change to init_history() as Nvim has refactored it.
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
This is essentially a convenience wrapper around the `pending()`
function, similar to `skip_fragile()` but more general-purpose.
Also remove `pending_win32` function as it can be replaced by
`skip(iswin())`.
Problem: Duplicate arguments are not always detected.
Solution: Expand to full path before comparing arguments. (Nir Lichtman,
closesvim/vim#11505, closesvim/vim#9402)
b3052aa1b5
Co-authored-by: Nir Lichtman <nir@lichtman.org>
Problem: col() and charcol() only work for the current window.
Solution: Add an optional winid argument. (Yegappan Lakshmanan,
closesvim/vim#11466, closesvim/vim#11461)
4c8d2f02b3
Cherry-pick test_functions.vim change from patch 8.2.0633.
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Problem: Bogus error when string used after :elseif.
Solution: Do not consider a double quote the start of a comment.
(closesvim/vim#11534)
28c56d5013
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Followup to #20883
Related: #18144
This patch changes the behavior of the default `vim.ui.input` when the user
aborts with `<C-c>`. Currently, it produces an error message + stack and causes
`on_confirm` to not be called. With this patch, `<C-c>` will cause `on_confirm`
to be called with `nil`, the same behavior as when the user aborts with `<Esc>`.
I can think of three good reasons why the behavior should be this way:
1. Easier for the user to understand** It's not intuitive for there to be two
ways to abort an input dialog that have _different_ outcomes. As a user,
I would expect any action that cancels the input to leave me in the same
state. As a plugin author, I see no value in having two possible outcomes for
aborting the input. I have to handle both cases, but I can't think of
a situation where I would want to treat one differently than the other.
2. Provides an API that can be overridden by other implementations** The current
contract of "throw an error upon `<C-c>`" cannot be replicated by async
implementations of `vim.ui.input`. If the callsite wants to handle the case
of the user hitting `<C-c>` they need to use `pcall(vim.ui.input, ...)`,
however an async implementation will instantly return and so there will be no
way for it to produce the same error-throwing behavior when the user inputs
`<C-c>`. This makes it impossible to be fully API-compatible with the
built-in `vim.ui.input`.
3. Provides a useful guarantee to the callsite** As a plugin author, I want the
guarantee that `on_confirm` will _always_ be called (only catastrophic errors
should prevent this). If I am in the middle of some async thread of logic,
I need some way to resume that logic after handing off control to
`vim.ui.input`. The only way to handle the `<C-c>` case is with `pcall`,
which as already mentioned, breaks down if you're using an alternative
implementation.