summaryrefslogtreecommitdiff
path: root/src/vim9execute.c
Commit message (Collapse)AuthorAgeFilesLines
* patch 9.0.0504: still a build failurev9.0.0504Bram Moolenaar2022-09-191-3/+3
| | | | | Problem: still a Build failure. Solution: Add another missing changes. Avoid compiler warning.
* patch 9.0.0502: a closure in a nested loop in a :def function does not workv9.0.0502Bram Moolenaar2022-09-191-68/+133
| | | | | Problem: A closure in a nested loop in a :def function does not work. Solution: Use an array of loopvars, one per loop level.
* patch 9.0.0499: in :def function list created after const is lockedv9.0.0499Bram Moolenaar2022-09-181-0/+1
| | | | | Problem: In :def function list created after const is locked. Solution: Reset v_lock. (closes #11154)
* patch 9.0.0495: closure doesn't work properly in nested loopv9.0.0495Bram Moolenaar2022-09-181-2/+2
| | | | | Problem: Closure doesn't work properly in nested loop. Solution: Save variables up to the outer loop.
* patch 9.0.0491: no good reason to build without the float featurev9.0.0491Bram Moolenaar2022-09-171-24/+0
| | | | | Problem: No good reason to build without the float feature. Solution: Remove configure check for float and "#ifdef FEAT_FLOAT".
* patch 9.0.0487: using freed memory with combination of closuresv9.0.0487Bram Moolenaar2022-09-171-16/+21
| | | | | | Problem: Using freed memory with combination of closures. Solution: Do not use a partial after it has been freed through the funcstack.
* patch 9.0.0485: in :def function all closures in loop get the same variablesv9.0.0485Bram Moolenaar2022-09-171-13/+180
| | | | | Problem: In a :def function all closures in a loop get the same variables. Solution: Make a copy of loop variables used in a closure.
* patch 9.0.0481: in :def function all closures in loop get the same variablesv9.0.0481Bram Moolenaar2022-09-161-34/+93
| | | | | | Problem: In a :def function all closures in a loop get the same variables. Solution: Use a separate list of variables for LOADOUTER and STOREOUTER. Not copied at end of loop yet.
* patch 9.0.0470: in :def function all closures in loop get the same variablesv9.0.0470Bram Moolenaar2022-09-151-16/+96
| | | | | | Problem: In a :def function all closures in a loop get the same variables. Solution: When in a loop and a closure refers to a variable declared in the loop, prepare for making a copy of variables for each closure.
* patch 9.0.0440: crash when using mkdir() with "R" flag in compiled functionv9.0.0440Bram Moolenaar2022-09-111-4/+10
| | | | | | Problem: Crash when using mkdir() with "R" flag in compiled function. Solution: Reserve a variable for deferred function calls. Handle more than one argument.
* patch 9.0.0432: crash when using for loop variable in closurev9.0.0432Bram Moolenaar2022-09-091-0/+6
| | | | | Problem: Crash when using for loop variable in closure. Solution: Check that the variable wasn't deleted. (issue #11094)
* patch 9.0.0405: arguments in a partial not used by a :def functionv9.0.0405Bram Moolenaar2022-09-071-12/+21
| | | | | Problem: Arguments in a partial not used by a :def function. Solution: Put the partial arguments on the stack.
* patch 9.0.0399: using :defer in expression funcref not testedv9.0.0399Bram Moolenaar2022-09-061-1/+22
| | | | | Problem: Using :defer in expression funcref not tested. Solution: Add a test. Fix uncovered problems.
* patch 9.0.0398: members of funccall_T are inconsistently namedv9.0.0398Bram Moolenaar2022-09-061-3/+3
| | | | | Problem: Members of funccall_T are inconsistently named. Solution: Use the "fc_" prefix for all members.
* patch 9.0.0397: :defer not tested with exceptions and ":qa!"v9.0.0397Bram Moolenaar2022-09-061-9/+31
| | | | | | Problem: :defer not tested with exceptions and ":qa!". Solution: Test :defer works when exceptions are thrown and when ":qa!" is used. Invoke the deferred calls on exit.
* patch 9.0.0382: freeing the wrong string on failurev9.0.0382Bram Moolenaar2022-09-051-5/+6
| | | | | Problem: Freeing the wrong string on failure. Solution: Adjust the argument. Reorder the code.
* patch 9.0.0379: cleaning up after writefile() is a hasslev9.0.0379Bram Moolenaar2022-09-041-16/+79
| | | | | | Problem: Cleaning up after writefile() is a hassle. Solution: Add the 'D' flag to defer deleting the written file. Very useful in tests.
* patch 9.0.0373: Coverity warns for NULL check and unused return valuev9.0.0373Bram Moolenaar2022-09-041-3/+2
| | | | | | Problem: Coverity warns for NULL check and unused return value. Solution: Remove the NULL check, it was already checked earlier. Add (void) to ignore the return value.
* patch 9.0.0370: cleaning up afterwards can make a function messyv9.0.0370Bram Moolenaar2022-09-031-15/+111
| | | | | Problem: Cleaning up afterwards can make a function messy. Solution: Add the :defer command.
* patch 9.0.0350: :echowindow does not work in a compiled functionv9.0.0350Bram Moolenaar2022-09-011-0/+14
| | | | | Problem: :echowindow does not work in a compiled function. Solution: Handle the expression at compile time.
* patch 9.0.0056: wrong line number reported when :cexpr fails in :def functionBram Moolenaar2022-07-181-0/+1
| | | | | Problem: Wrong line number reported when :cexpr fails in :def function. Solution: Set line_number before executing :cexpr. (closes #10735)
* patch 9.0.0004: plural messages not translated properlyv9.0.0004Matvey Tarasov2022-06-291-16/+8
| | | | | | Problem: Plural messages not translated properly. Solution: Use ngettext() in a few more places. (Matvey Tarasov, closes #10606)
* patch 8.2.5006: asan warns for undefined behaviorv8.2.5006Bram Moolenaar2022-05-221-1/+1
| | | | | Problem: Asan warns for undefined behavior. Solution: Cast the shifted value to unsigned.
* patch 8.2.5004: right shift on negative number does not work as documentedv8.2.5004Bram Moolenaar2022-05-221-6/+1
| | | | | Problem: Right shift on negative number does not work as documented. Solution: Use a uvarnumber_T type cast.
* patch 8.2.5003: cannot do bitwise shiftsv8.2.5003Yegappan Lakshmanan2022-05-221-0/+28
| | | | | Problem: Cannot do bitwise shifts. Solution: Add the >> and << operators. (Yegappan Lakshmanan, closes #8457)
* patch 8.2.4995: still a compiler warning for possibly uninitialized variablev8.2.4995Bram Moolenaar2022-05-211-2/+2
| | | | | | Problem: Still a compiler warning for possibly uninitialized variable. (Tony Mechelynck) Solution: Initialize variables.
* patch 8.2.4992: compiler warning for possibly uninitialized variablev8.2.4992Bram Moolenaar2022-05-211-1/+1
| | | | | | Problem: Compiler warning for possibly uninitialized variable. (Tony Mechelynck) Solution: Initialize variable in the caller instead of in the function.
* patch 8.2.4989: cannot specify a function name for :defcompilev8.2.4989Bram Moolenaar2022-05-211-42/+2
| | | | | Problem: Cannot specify a function name for :defcompile. Solution: Implement a function name argument for :defcompile.
* patch 8.2.4976: Coverity complains about not restoring a saved valuev8.2.4976Bram Moolenaar2022-05-181-3/+4
| | | | | Problem: Coverity complains about not restoring a saved value. Solution: Restore value before handling error.
* patch 8.2.4973: Vim9: type error for list unpack mentions argumentv8.2.4973Bram Moolenaar2022-05-171-3/+7
| | | | | Problem: Vim9: type error for list unpack mentions argument. Solution: Mention variable. (close #10435)
* patch 8.2.4928: various white space and cosmetic mistakesv8.2.4928Bram Moolenaar2022-05-091-8/+8
| | | | | Problem: Various white space and cosmetic mistakes. Solution: Change spaces to tabs, improve comments.
* patch 8.2.4870: Vim9: expression in :substitute is not compiledv8.2.4870LemonBoy2022-05-051-0/+4
| | | | | Problem: Vim9: expression in :substitute is not compiled. Solution: Use an INSTR instruction if possible. (closes #10334)
* patch 8.2.4836: Vim9: some lines not covered by testsv8.2.4836Bram Moolenaar2022-04-281-16/+4
| | | | | Problem: Vim9: some lines not covered by tests. Solution: Remove dead code. Add disassemble tests.
* patch 8.2.4835: Vim9: some lines not covered by testsv8.2.4835Bram Moolenaar2022-04-271-1/+1
| | | | | Problem: Vim9: some lines not covered by tests. Solution: Add a few more tests. Fix disassemble output.
* patch 8.2.4834: Vim9: some lines not covered by testsv8.2.4834Bram Moolenaar2022-04-271-58/+33
| | | | | Problem: Vim9: some lines not covered by tests. Solution: Add a few more tests. Remove dead code.
* patch 8.2.4823: concat more than 2 strings in :def function is inefficientv8.2.4823LemonBoy2022-04-251-15/+51
| | | | | | Problem: Concatenating more than 2 strings in a :def function is inefficient. Solution: Add a count to the CONCAT instruction. (closes #10276)
* patch 8.2.4754: using cached values after unsetting some environment variablesv8.2.4754LemonBoy2022-04-151-1/+2
| | | | | | Problem: Still using cached values after unsetting some known environment variables. Solution: Take care of the side effects. (closes #10194)
* patch 8.2.4748: cannot use an imported function in a mappingv8.2.4748Bram Moolenaar2022-04-141-11/+27
| | | | | Problem: Cannot use an imported function in a mapping. Solution: Recognize <SID>name.Func.
* patch 8.2.4698: Vim9: script variable has no flag that it was setv8.2.4698Bram Moolenaar2022-04-051-3/+4
| | | | | | Problem: Vim9: script variable has no flag that it was set. Solution: Add a flag that it was set, to avoid giving it a value when used. (closes #10088)
* patch 8.2.4697: Vim9: crash when adding a duplicate key to a dictionaryv8.2.4697Bram Moolenaar2022-04-051-2/+4
| | | | | | Problem: Vim9: crash when adding a duplicate key to a dictionary. Solution: Clear the stack item when it has been moved into the dictionary. (closes #10087)
* patch 8.2.4680: build failure without +postscriptv8.2.4680Bram Moolenaar2022-04-031-1/+1
| | | | | Problem: Build failure without +postscript. Solution: Use another error message.
* patch 8.2.4678: Vim9: not all code is testedv8.2.4678Bram Moolenaar2022-04-031-0/+3
| | | | | Problem: Vim9: not all code is tested. Solution: Add a few more tests.
* patch 8.2.4662: no error for using out of range list indexv8.2.4662Bram Moolenaar2022-04-011-1/+1
| | | | | | Problem: No error for using out of range list index. Solution: Check list index at script level like in compiled function. (closes #10051)
* patch 8.2.4657: errors for functions are sometimes hard to readv8.2.4657Bram Moolenaar2022-03-311-11/+8
| | | | | Problem: Errors for functions are sometimes hard to read. Solution: Use printable_func_name() in more places.
* patch 8.2.4652: leaking memory if assignment failsv8.2.4652Bram Moolenaar2022-03-311-0/+2
| | | | | Problem: Leaking memory if assignment fails. Solution: Clear assigned value on failure.
* patch 8.2.4650: "import autoload" only works with using 'runtimepath'v8.2.4650Bram Moolenaar2022-03-301-15/+94
| | | | | Problem: "import autoload" only works with using 'runtimepath'. Solution: Also support a relative and absolute file name.
* patch 8.2.4643: Vim9: variable may be locked unintentionallyv8.2.4643Bram Moolenaar2022-03-281-0/+1
| | | | | Problem: Vim9: variable may be locked unintentionally. Solution: Clear "v_lock". (closes #10036)
* patch 8.2.4642: Vim9: in :def function script var cannot be nullv8.2.4642Bram Moolenaar2022-03-281-5/+7
| | | | | | Problem: Vim9: in :def function script var cannot be null. Solution: Only initialize a script variable when not set to a null value. (closes #10034)
* patch 8.2.4634: Vim9: cannot initialize a variable to null_listv8.2.4634Bram Moolenaar2022-03-271-55/+86
| | | | | | Problem: Vim9: cannot initialize a variable to null_list. Solution: Give negative count to NEWLIST. (closes #10027) Also fix inconsistencies in comparing with null values.
* patch 8.2.4602: Vim9: not enough test coverage for executing :def functionv8.2.4602Bram Moolenaar2022-03-201-22/+8
| | | | | Problem: Vim9: not enough test coverage for executing :def function. Solution: Add a few more tests. Fix uncovered problem. Remove dead code.