| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Problem: Can modify a:000 when using a reference.
Solution: Make check for locked variable stricter. (Ozaki Kiichi,
closes #3930)
|
|
|
|
|
|
| |
Problem: The a: dict is not immutable as documented.
Solution: Make the a:dict immutable, add a test. (Ozaki Kiichi, Yasuhiro
Matsumoto, closes #3929)
|
|
|
|
|
|
|
| |
Problem: Crash if triggering garbage collector after a function call.
(Michael Henry)
Solution: Don't call the garbage collector right away, do it later.
(closes #3894)
|
|
|
|
|
| |
Problem: Too many #ifdefs.
Solution: Graduate FEAT_VIRTUALEDIT. Adds about 10Kbyte to the code.
|
|
|
|
|
|
|
| |
Problem: May use a lot of memory when a function creates a cyclic
reference.
Solution: After saving a funccal many times, invoke the garbage collector.
(closes #3835)
|
|
|
|
|
|
| |
Problem: Depending on the configuration some functions are unused.
Solution: Add more #ifdefs, remove unused functions. (Dominique Pelle,
closes #3822)
|
|
|
|
|
| |
Problem: Argument for message functions is inconsistent.
Solution: Make first argument to msg() "char *".
|
|
|
|
|
|
|
|
| |
Problem: Giving error messages is not flexible.
Solution: Add semsg(). Change argument from "char_u *" to "char *", also
for msg() and get rid of most MSG macros. (Ozaki Kiichi, closes
#3302) Also make emsg() accept a "char *" argument. Get rid of
an enormous number of type casts.
|
|
|
|
|
| |
Problem: Cannot attach properties to text.
Solution: First part of adding text properties.
|
|
|
|
|
| |
Problem: Reloading a script gives errors for existing functions.
Solution: Allow redefining a function once when reloading a script.
|
|
|
|
|
| |
Problem: ml_get error when calling a function with a range.
Solution: Don't position the cursor after the last line.
|
|
|
|
|
|
| |
Problem: :filter only supports some commands.
Solution: Add :filter support for more commands. (Marcin Szamotulski,
closes #2856)
|
|
|
|
|
| |
Problem: Memory not freed on exit when quit in autocmd.
Solution: Remember funccal stack when executing autocmd.
|
|
|
|
|
| |
Problem: Function profile doesn't specify where it was defined.
Solution: Show the script name and line number.
|
|
|
|
|
|
| |
Problem: Cannot get the script line number when executing a function.
Solution: Store the line number besides the script ID. (Ozaki Kiichi,
closes #3362) Also display the line number with ":verbose set".
|
|
|
|
|
| |
Problem: Crash when dumping profiling data.
Solution: Reset flag indicating that initialization was done.
|
|
|
|
|
|
|
| |
Problem: Defining function in sandbox is inconsistent, cannot use :function
but can define a lambda.
Solution: Allow defining a function in the sandbox, but also use the sandbox
when executing it. (closes #3182)
|
|
|
|
|
| |
Problem: Lock flag in new dictitem is reset in many places.
Solution: Always reset the lock flag.
|
|
|
|
|
|
|
| |
Problem: ":profdel func" does not work if func was called already.
(Dominique Pelle)
Solution: Reset uf_profiling and add a flag to indicate initialization was
done.
|
|
|
|
|
|
| |
Problem: Error when defining a Lambda with index of a function result.
Solution: When not evaluating an expression and skipping a function call,
set the return value to VAR_UNKNOWN.
|
|
|
|
|
|
| |
Problem: Too many #ifdefs.
Solution: Graduate the +autocmd feature. Takes away 450 #ifdefs and
increases code size of tiny Vim by only 40 Kbyte.
|
|
|
|
|
| |
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)
|