| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Problem: Debugger can't break on a condition. (Charles Campbell)
Solution: Add ":breakadd expr". (Christian Brabandt, closes #859)
|
|
|
|
|
|
| |
Problem: Clearing a pointer takes two lines.
Solution: Add VIM_CLEAR() and replace vim_clear(). (Hirohito Higashi,
closes #2629)
|
|
|
|
|
| |
Problem: Error in return not caught by try/catch.
Solution: Call update_force_abort(). (Yasuhiro Matsomoto, closes #2483)
|
|
|
|
|
|
| |
Problem: Autoload script sources itself when defining function.
Solution: Pass TFN_NO_AUTOLOAD to trans_function_name(). (Yasuhiro
Matsumoto, closes #2423)
|
|
|
|
|
| |
Problem: Cannot call a dict function in autoloaded dict.
Solution: Call get_lval() passing the read-only flag.
|
|
|
|
|
|
| |
Problem: Memory access error when command follows :endfunction. (Nikolai
Pavlov)
Solution: Make memory handling in :function straightforward. (closes #1793)
|
|
|
|
|
| |
Problem: Giving an error message only when 'verbose' set is unexpected.
Solution: Give a warning message instead.
|
|
|
|
|
| |
Problem: Not easy to make sure a function does not exist.
Solution: Add ! as an optional argument to :delfunc.
|
|
|
|
|
|
| |
Problem: Text found after :endfunction is silently ignored.
Solution: Give a warning if 'verbose' is set. When | or \n are used,
execute the text as a command.
|
|
|
|
|
|
|
| |
Problem: Saving the redo buffer only works one time, resulting in the "."
command not working well for a function call inside another
function call. (Ingo Karkat)
Solution: Save the redo buffer at every user function call. (closes #1619)
|
|
|
|
|
| |
Problem: Memory leak when exiting from within a user function.
Solution: Clear the function call stack on exit.
|
|
|
|
|
| |
Problem: There are still a few macros that should be all-caps.
Solution: Make a few more macros all-caps.
|
|
|
|
|
| |
Problem: Some macros are in lower case.
Solution: Make a few more macros upper case.
|
|
|
|
|
| |
Problem: Double free on exit when using a closure. (James McCoy)
Solution: Split free_al_functions in two parts. (closes #1428)
|
|
|
|
|
|
| |
Problem: Cannot access the arguments of the current function in debug mode.
(Luc Hermitte)
Solution: use get_funccal(). (Lemonboy, closes #1432, closes #1352)
|
|
|
|
|
|
| |
Problem: It is not so easy to write a script that works with both Python 2
and Python 3, even when the Python code works with both.
Solution: Add 'pyxversion', :pyx, etc. (Marc Weber, Ken Takata)
|
|
|
|
|
| |
Problem: Using :change in between :function and :endfunction fails.
Solution: Recognize :change inside a function. (ichizok, closes #1374)
|
|
|
|
|
|
| |
Problem: Cannot make Vim fail on an internal error.
Solution: Add IEMSG() and IEMSG2(). (Domenique Pelle) Avoid reporting an
internal error without mentioning where.
|
|
|
|
|
| |
Problem: Modelines in source code are inconsistant.
Solution: Use the same line in most files. Add 'noet'. (Naruhiko Nishino)
|
|
|
|
|
| |
Problem: Missing colon in error message.
Solution: Add the colon. (Dominique Pelle)
|
|
|
|
|
| |
Problem: All functions are freed on exit, which may hide leaks.
Solution: Only free named functions, not reference counted ones.
|
|
|
|
|
|
| |
Problem: A funccal is garbage collected while it can still be used.
Solution: Set copyID in all referenced functions. Do not list lambda
functions with ":function".
|
|
|
|
|
|
|
| |
Problem: Leaking memory when redefining a function.
Solution: Don't increment the function reference count when it's found by
name. Don't remove the wrong function from the hashtab. More
reference counting fixes.
|
|
|
|
|
|
| |
Problem: Coverity reports bogus NULL check.
Solution: When checking for a variable in the funccal scope don't pass the
varname.
|
|
|
|
|
| |
Problem: :delfunction causes illegal memory access.
Solution: Correct logic when deciding to free a function.
|
|
|
|
|
|
|
| |
Problem: Using function() with a name will find another function when it is
redefined.
Solution: Add funcref(). Refer to lambda using a partial. Fix several
reference counting issues.
|
|
|
|
|
| |
Problem: Closure function fails.
Solution: Don't reset uf_scoped when it points to another funccal.
|
|
|
|
|
| |
Problem: No error for using function() badly.
Solution: Check for passing wrong function name. (Ken Takata)
|
|
|
|
|
|
| |
Problem: User defined functions can't be a closure.
Solution: Add the "closure" argument. Allow using :unlet on a bound
variable. (Yasuhiro Matsumoto, Ken Takata)
|
|
|
|
|
|
| |
Problem: Closures are not supported.
Solution: Capture variables in lambdas from the outer scope. (Yasuhiro
Matsumoto, Ken Takata)
|
|
|
|
|
| |
Problem: Code duplication when unreferencing a function.
Solution: De-duplicate.
|
|
|
|
|
| |
Problem: Lambda functions show up with completion.
Solution: Don't show lambda functions. (Ken Takata)
|
|
|
|
|
|
| |
Problem: Using submatch() in a lambda passed to substitute() is verbose.
Solution: Use a static list and pass it as an optional argument to the
function. Fix memory leak.
|
|
|
|
|
|
| |
Problem: Coverity complains about not restoring a value.
Solution: Restore the value, although it's not really needed. Change return
to jump to cleanup, might leak memory.
|
|
|
|
|
| |
Problem: Syntax error when dict has '>' key.
Solution: Check for endchar. (Ken Takata)
|
|
|
|
|
| |
Problem: One more place using a dummy variable.
Solution: Use offsetof(). (Ken Takata)
|
|
Problem: eval.c is too big.
Solution: Move user functions to userfunc.c
|