| Commit message (Collapse) | Author | Age |
... | |
|
|
|
| |
Leave a note in vim_diff.txt about it.
|
|
|
|
|
|
|
|
| |
Problem: Comparing functions and partials doesn't work well.
Solution: Add tests. (Nikolai Pavlov) Compare the dict and arguments in the
partial.
https://github.com/vim/vim/commit/8e759ba8651428995b338b66c615367259f79766
|
| |
|
|
|
|
|
|
|
| |
Problem: Using a partial for timer_start() may cause a crash.
Solution: Set the copyID in timer objects. (Ozaki Kiichi)
https://github.com/vim/vim/commit/e3188e261569ae512fb1ae2653b57fdd9e259ca3
|
|
|
|
|
|
|
| |
Problem: get() works for Partial but not for Funcref.
Solution: Accept Funcref. Also return the function itself. (Nikolai Pavlov)
https://github.com/vim/vim/commit/03e19a04ac2ca55643663b97b6ab94043233dcbd
|
|
|
|
|
|
|
| |
Problem: Cannot get the items stored in a partial.
Solution: Support using get() on a partial.
https://github.com/vim/vim/commit/2bbf8eff6fab16d86e7bcfc0da1962d31bec7891
|
|
|
|
|
|
|
|
|
| |
Problem: When using a partial on a dictionary it always gets bound to that
dictionary.
Solution: Make a difference between binding a function to a dictionary
explicitly or automatically.
https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Problem: Leaking memory when there is a cycle involving a job and a
partial.
Solution: Add a copyID to job and channel. Set references in items referred
by them. Go through all jobs and channels to find unreferenced
items. Also, decrement reference counts when garbage collecting.
https://github.com/vim/vim/commit/107e1eef1df3b786ad3ad49fbdb9e058649303b5
|
|
|
|
|
|
|
| |
Problem: Coverity: not using return value of set_ref_in_item().
Solution: Use the return value.
https://github.com/vim/vim/commit/d56374e25df0b317b01423a01f158157faa647fa
|
|
|
|
|
|
|
|
| |
Problem: Double free when a partial is in a cycle with a list or dict.
(Nikolai Pavlov)
Solution: Do not free a nested list or dict used by the partial.
https://github.com/vim/vim/commit/ddecc25947dbdd689d5bcaed32f298a08abdd497
|
|
|
|
|
|
|
|
| |
Problem: When a dict contains a partial it can't be redefined as a
function. (Nikolai Pavlov)
Solution: Remove the partial when overwriting with a function.
https://github.com/vim/vim/commit/c5fbe8af4cd80789f831b78aa44ff0b238138769
|
| |
|
|
|
|
|
|
|
| |
Problem: Invoking garbage collection may cause a double free.
Solution: Don't free the dict in a partial when recursive is FALSE.
https://github.com/vim/vim/commit/5f436fcf9960c95702820d5ac1b8b612995f6c04
|
|
|
|
|
|
|
|
| |
Problem: When binding a function to a dict the reference count is wrong.
Solution: Decrement dict reference count, only reference the function when
actually making a copy. (Ken Takata)
https://github.com/vim/vim/commit/e4eb6ff089e79e659acf33c17dd0fda7177de526
|
|
|
|
|
|
|
| |
Problem: string() doesn't handle a partial.
Solution: Make a string from a partial.
https://github.com/vim/vim/commit/5c29154b521e9948190be653cfda666ecbb63b5b
|
|
|
|
|
|
|
|
| |
Problem: Comparing a function that exists on two dicts is not backwards
compatible. (Thinca)
Solution: Only compare the function, not what the partial adds.
https://github.com/vim/vim/commit/f0e86a0dbddc18568910e9e4aaae0cd88ca8087a
|
|
|
|
|
|
|
|
| |
Problem: Having type() handle a Funcref that is or isn't a partial
differently causes problems for existing scripts.
Solution: Make type() return the same value. (Thinca)
https://github.com/vim/vim/commit/953cc7fb139dc2ba8590f8b03a095b63f4e1208f
|
|
|
|
|
|
|
| |
Problem: Catching exception that won't be thrown.
Solution: Remove try/catch.
https://github.com/vim/vim/commit/3905e291fe4375ca5c59efa9ffcb01a39c7be3a9
|
|
|
|
|
|
|
| |
Problem: Warning for shadowed variable. (Christian Brabandt)
Solution: Move the variable into a local block.
https://github.com/vim/vim/commit/3f242a844e83a5a04943869f6e3bcbf8650dc465
|
|
|
|
|
|
|
| |
Problem: Combining dict and args with partial doesn't always work.
Solution: Use the arguments from the partial.
https://github.com/vim/vim/commit/9e63f61cb01c70fd71652f54b2d01ee27b2a3534
|
|
|
|
|
|
|
| |
Problem: Nesting partials doesn't work.
Solution: Append arguments. (Ken Takata)
https://github.com/vim/vim/commit/8a1bb046378f4bc68d6a04af2eab80fb3ce04da6
|
|
|
|
|
|
|
|
| |
Problem: Partial is not recognized everywhere.
Solution: Check for partial in trans_function_name(). (Yasuhiro Matsumoto)
Add a test.
https://github.com/vim/vim/commit/d22a18928ebcb465393da1418bb88204b97badb1
|
|
|
|
|
|
|
|
|
| |
Problem: Get E923 when using function(dict.func, [], dict). (Kent Sibilev)
Storing a function with a dict in a variable drops the dict if the
function is script-local.
Solution: Translate the function name. Use dict arg if present.
https://github.com/vim/vim/commit/6f2e4b36c9d9908e1cace2b1b96e2c154a837bc2
|
|
|
|
|
|
|
|
|
| |
Problem: Using ":call dict.func()" where the function is a partial does
not work. Using "dict.func()" where the function does not take a
Dictionary does not work.
Solution: Handle partial properly in ":call". (Yasuhiro Matsumoto)
https://github.com/vim/vim/commit/65639032bb7b17996cd255d1508a1df4ad528a1f
|
|
|
|
|
|
|
| |
Problem: Crash when using function reference. (Luchr)
Solution: Set initial refcount. (Ken Takata)
https://github.com/vim/vim/commit/7a5c46a9df7ef01a4f6a620861c35400d5ad28d9
|
|
|
|
|
|
|
| |
Problem: Cannot pass "dict.Myfunc" around as a partial.
Solution: Create a partial when expected.
https://github.com/vim/vim/commit/ab1fa3955f25dfdb7e329c3bd76e175c93c8cb5e
|
|
|
|
|
|
|
| |
Problem: An empty list in function() causes an error.
Solution: Handle an empty list like there is no list of arguments.
https://github.com/vim/vim/commit/346418c624f1bc7c04c98907134a2b284e6452dd
|
|
|
|
|
|
|
| |
Problem: Partial test fails on windows.
Solution: Return 1 or -1 from compare function.
https://github.com/vim/vim/commit/790500a8e65bee295ef51a59dfa67ecbaab8ea17
|
|
|
|
|
|
|
| |
Problem: Passing cookie to a callback is clumsy.
Solution: Change function() to take arguments and return a partial.
https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
|
|\
| |
| | |
option.c: Update free_oldval after adjusting opt_idx for shada/viminfo
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, free_oldval was set immediately on entering
did_set_string_option. However, opt_idx hadn't been adjusted to account
for diverting 'viminfo' manipulation to 'shada'.
Therefore, the code which determines whether to free the old value was
looking at the flags for 'viminfo' while the code which sets whether a
value was allocated was modifying the flags for 'shada'. This led to a
leak of any values set for 'viminfo'.
Updating free_oldval once opt_idx has been adjusted for the
'viminfo'/'shada' handling ensures the check/set values are consistent.
Closes #5698
|
|/
|
|
|
|
|
| |
Problem: Memory leak in test_matchstrpos.
Solution: Free the string before overwriting. (Yegappan Lakshmanan)
https://github.com/vim/vim/commit/3c809343c72d9964475f421fd03bb892bc584a51
|
|\
| |
| | |
doc: api_info(), typval_encode.h
|
| |
| |
| |
| | |
Annotate TYPVAL_ENCODE_DEFINE_CONV_FUNCTIONS to aid code navigation.
|
| | |
|
| | |
|
| |
| |
| |
| | |
Closes #5465
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fix session load with winminheight/winminwidth >1.
Problem: Vim temporarily sets winheight/winwidth to 1 while loading
session. If user has his minimum window size set higher, this
causes an error.
Solution: Temporarily set winminheight/winminwidth, and restore the
original values (in the right order) when finishing session read.
The order of the compound 'set' command is important, if it is
wrong there will be an error.
|
| |
| |
| |
| |
| |
| | |
Problem: Doubled semicolons.
Solution: Reduce to one. (Dominique Pelle)
https://github.com/vim/vim/commit/945ec093cd4ddefab930239990564b12eb232153
|
| |
| |
| |
| |
| |
| | |
Problem: Various typos, long lines and style mistakes.
Solution: Fix the typos, wrap lines, improve style.
https://github.com/vim/vim/commit/fd89d7ea81b18d32363456b16258174dc9e095dc
|
| |
| |
| |
| |
| |
| |
| | |
Instead of managing max_visits, check the time every N visits. This avoids edge
cases where max_visits is large but the chunk frequency slowed down, which would
causing the "..." pulse to show for a very long time. It's more important to
show output at reasonable intervals than to avoid calling os_hrtime().
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This ameliorates use-cases like:
:!cat foo.txt
:make
where the user is interested in the last few lines of output.
Try these shell-based ex-commands before/after this commit:
:grep -r '' *
:make
:!yes
:!grep -r '' *
:!git grep ''
:!cat foo
:!echo foo
:!while true; do date; done
:!for i in `seq 1 20000`; do echo XXXXXXXXXX $i; done
In all cases the last few lines of the command should always be shown,
regardless of where throttling was triggered.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Periodically skip :! spam. This is a "cheat" that works for all UIs and greatly
improves responsiveness when :! spams MB or GB of output:
:!yes
:!while true; do date; done
:!git grep ''
:grep -r '' *
After ~10KB of data is seen from a single :! invocation, output will be skipped
for ~1s and three dots "..." will pulse in the bottom-left. Thereafter the
behavior alternates at every:
* 10KB received
* ~1s throttled
This also avoids out-of-memory which could happen with large :! outputs.
Note: This commit does not change the behavior of execute(':!foo').
execute(':!foo') returns the string ':!foo^M', it captures *only* Vim
messages, *not* shell command output. Vim behaves the same way.
Use system('foo') for capturing shell command output.
Closes #1234
Helped-by: oni-link <knil.ino@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Closes #1234
multiqueue:
- Implement multiqueue_size()
- Rename MultiQueueItem.parent to MultiQueueItem.parent_item, to avoid confusion
with MultiQueue.parent.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
vim-patch:7.4.1758
Problem: Triggering CursorHoldI when in CTRL-X mode causes problems.
Solution: Do not trigger CursorHoldI in CTRL-X mode. Add "!" flag to
feedkeys() (test with that didn't work though).
https://github.com/vim/vim/commit/245c41070c7f37d52be43cce0cb140bd3ade6c7e
vim-patch:7.4.1759
Problem: When using feedkeys() in a timer the inserted characters are not
used right away.
Solution: Break the wait loop when characters have been added to typebuf.
use this for testing CursorHoldI.
https://github.com/vim/vim/commit/40b1b5443c88fab77f1f7c6f9e801f7ffdb7e0a8
vim-patch:7.4.1692
Problem: feedkeys('i', 'x') gets stuck, waits for a character to be typed.
Solution: Behave like ":normal". (Yasuhiro Matsumoto)
|
|\ \
| | |
| | | |
vim-patch:7.4.1754
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: When 'filetype' was set and reloading a buffer which does not
cause it to be set, the syntax isn't loaded. (KillTheMule)
Solution: Remember whether the FileType event was fired and fire it if not.
(Anton Lindqvist, closes vim/vim#747)
https://github.com/vim/vim/commit/c3691332f72169c486066200c0f3935418364900
|