1
0
forked from aniani/vim
Commit Graph

40 Commits

Author SHA1 Message Date
Shane Harper
2d18789aa6 patch 9.1.1195: inside try-block: fn body executed with default arg undefined
Problem:  inside try-block: fn body executed when default arg is
          undefined
Solution: When inside a try-block do not execute function body after an
          error in evaluating a default argument expression
          (Shane Harper).

closes: #16865

Signed-off-by: Shane Harper <shane@shaneharper.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-03-12 21:12:12 +01:00
zeertzjq
04d2a3fdc0 patch 9.1.1071: args missing after failing to redefine a function
Problem:  Arguments of a function are missing after failing to redefine
          it (after 8.2.2505), and heap-use-after-free with script-local
          function (after 9.1.1063).
Solution: Don't clear arguments or free uf_name_exp when failing to
          redefine an existing function (zeertzjq)

closes: #16567

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-02-02 19:04:22 +01:00
zeertzjq
2101230f40 patch 9.1.1066: heap-use-after-free and stack-use-after-scope with :14verbose
Problem:  heap-use-after-free and stack-use-after-scope with :14verbose
          when using :return and :try (after 9.1.1063).
Solution: Move back the vim_free(tofree) and the scope of numbuf[].
          (zeertzjq)

closes: #16563

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-02-02 08:55:57 +01:00
Yegappan Lakshmanan
6289f91591 patch 9.1.1013: Vim9: Regression caused by patch v9.1.0646
Problem:  Vim9: Regression caused by patch v9.1.0646
Solution: Translate the function name before invoking it in call()
          (Yegappan Lakshmanan)

fixes: #16430
closes: #16445

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-01-14 17:13:36 +01:00
zeertzjq
6a04bf5ee5 patch 9.1.0182: Can define function with invalid name inside 'formatexpr'
Problem:  Can define function with invalid name inside 'formatexpr'.
Solution: Use goto instead of checking for did_emsg later.
          (zeertzjq)

closes: #14209

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-16 09:39:06 +01:00
Yegappan Lakshmanan
0ab500dede patch 9.0.2059: outstanding exceptions may be skipped
Problem:  outstanding exceptions may be skipped
Solution: When restoring exception state, process remaining outstanding
          exceptions

closes: #13386

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-10-21 11:59:42 +02:00
Yegappan Lakshmanan
c59c1e0d88 patch 9.0.2050: Vim9: crash with deferred function call and exception
Problem:  Vim9: crash with deferred function call and exception
Solution: Save and restore exception state

Crash when a deferred function is called after an exception and another
exception is thrown

closes: #13376
closes: #13377

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-10-19 10:52:34 +02:00
Yegappan Lakshmanan
0672595fd5 patch 9.0.2044: Vim9: exceptions confuse defered functions
Problem:  Vim9: exceptions confuse defered functions
Solution: save and restore exception state when calling defered
          functions

closes: #13364
closes: #13372

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-10-18 11:47:37 +02:00
zeertzjq
1be4b81bfb patch 9.0.1470: deferred functions invoked in unexpected order
Problem:    Deferred functions invoked in unexpected order when using :qa and
            autocommands.
Solution:   Call deferred functions for the current funccal before using the
            stack. (closes #12278)
2023-04-19 14:21:24 +01:00
zeertzjq
960cf9119e patch 9.0.1469: deferred functions not called from autocommands
Problem:    Deferred functions not called from autocommands.
Solution:   Also go through the funccal_stack. (closes #12267)
2023-04-18 21:52:54 +01:00
zeertzjq
a1f2b5ddc6 patch 9.0.1468: recursively calling :defer function if it does :qa
Problem:    Recursively calling :defer function if it does :qa in a compiled
            function.
Solution:   Clear the defer entry before calling the function. (closes #12271)
2023-04-18 21:04:53 +01:00
Bram Moolenaar
42994bf678 patch 9.0.1462: recursively calling :defer function if it does :qa
Problem:    Recursively calling :defer function if it does :qa.
Solution:   Clear the defer entry before calling the function. (closes #12266)
2023-04-17 19:23:45 +01:00
Bram Moolenaar
34820944ed patch 9.0.1081: using "->" with split lines does not always work
Problem:    Using "->" with split lines does not always work.
Solution:   Avoid trying to get another line. (closes #11723)
2022-12-19 20:28:38 +00:00
Bram Moolenaar
5b148ef262 patch 9.0.0768: too many delete() calls in tests
Problem:    Too many delete() calls in tests.
Solution:   Use deferred delete where possible.
2022-10-15 21:35:56 +01:00
Bram Moolenaar
73e28dcc61 patch 9.0.0491: no good reason to build without the float feature
Problem:    No good reason to build without the float feature.
Solution:   Remove configure check for float and "#ifdef FEAT_FLOAT".
2022-09-17 21:08:33 +01:00
Bram Moolenaar
169003289f patch 9.0.0419: the :defer command does not check the function arguments
Problem:    The :defer command does not check the function argument count and
            types.
Solution:   Check the function arguments when adding a deferred function.
2022-09-08 19:51:45 +01:00
Bram Moolenaar
9667b2c888 patch 9.0.0406: deferred functions not invoked when partial func exits
Problem:    Deferred functions not invoked when partial func exits.
Solution:   Create a funccall_T when calling a :def function.
2022-09-07 17:28:09 +01:00
Bram Moolenaar
c9c967da09 patch 9.0.0405: arguments in a partial not used by a :def function
Problem:    Arguments in a partial not used by a :def function.
Solution:   Put the partial arguments on the stack.
2022-09-07 16:48:46 +01:00
Bram Moolenaar
98aff658d5 patch 9.0.0399: using :defer in expression funcref not tested
Problem:    Using :defer in expression funcref not tested.
Solution:   Add a test.  Fix uncovered problems.
2022-09-06 21:02:35 +01:00
Bram Moolenaar
58779858fb patch 9.0.0397: :defer not tested with exceptions and ":qa!"
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.
2022-09-06 18:31:14 +01:00
Bram Moolenaar
86d87256c4 patch 9.0.0390: cannot use a partial with :defer
Problem:    Cannot use a partial with :defer.
Solution:   Add the partial arguments before the other arguments.  Disallow
            using a dictionary.
2022-09-05 21:21:25 +01:00
Bram Moolenaar
1d84f7608f patch 9.0.0370: cleaning up afterwards can make a function messy
Problem:    Cleaning up afterwards can make a function messy.
Solution:   Add the :defer command.
2022-09-03 21:35:53 +01:00
Yegappan Lakshmanan
7c7e19cf50 patch 8.2.4716: memory allocation failure not tested when defining a function
Problem:    Memory allocation failure not tested when defining a function.
Solution:   Add a test. (Yegappan Lakshmanan, closes #10127)
2022-04-09 11:09:07 +01:00
Bram Moolenaar
c553a21e18 patch 8.2.3907: error messages are spread out
Problem:    Error messages are spread out.
Solution:   Move error messages to errors.h.  Avoid duplicates.
2021-12-26 20:20:34 +00:00
Bram Moolenaar
ddfc05100a patch 8.2.3408: can delete a numbered function
Problem:    Can delete a numbered function. (Naohiro Ono)
Solution:   Disallow deleting a numbered function. (closes #8760)
2021-09-06 20:56:56 +02:00
Yegappan Lakshmanan
34fcb69724 patch 8.2.2886: various pieces of code not covered by tests
Problem:    Various pieces of code not covered by tests.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8255)
2021-05-25 20:14:00 +02:00
Yegappan Lakshmanan
611728f806 patch 8.2.2881: various pieces of code not covered by tests
Problem:    Various pieces of code not covered by tests.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8245)
2021-05-24 15:15:47 +02:00
Bram Moolenaar
e9b8b78e04 patch 8.2.2727: function test fails
Problem:    Function test fails.
Solution:   Adjust expected error number.
2021-04-06 20:18:29 +02:00
Bram Moolenaar
67322bf74a patch 8.2.2100: insufficient testing for function range and dict
Problem:    Insufficient testing for function range and dict.
Solution:   Add a few tests. (Dominique Pellé, closes #7428)
2020-12-06 15:03:19 +01:00
Bram Moolenaar
531be47ac5 patch 8.2.1736: failure to compile a pattern not tested much
Problem:    Failure to compile a pattern not tested much.
Solution:   Add tests where a pattern fails to compile. (Yegappan Lakshmanan,
            closes #7004)
2020-09-23 22:38:05 +02:00
Bram Moolenaar
e2e4075fad patch 8.2.1593: tests do not check the error number properly
Problem:    Tests do not check the error number properly.0
Solution:   Add a colon after the error number. (closes #6869)
2020-09-04 21:18:46 +02:00
Bram Moolenaar
a0d072ef82 patch 8.2.1113: no test for verbose output of :call
Problem:    No test for verbose output of :call.
Solution:   Add a test.
2020-07-01 20:19:37 +02:00
Bram Moolenaar
476a613135 patch 8.2.0531: various errors not tested
Problem:    Various errors not tested.
Solution:   Add tests. (Yegappan Lakshmanan, closes #5895)
2020-04-08 19:48:56 +02:00
Bram Moolenaar
ee4e0c1e9a patch 8.2.0522: several errors are not tested for
Problem:    Several errors are not tested for.
Solution:   Add tests. (Yegappan Lakshmanan, closes #5892)
2020-04-06 21:35:05 +02:00
Bram Moolenaar
8dfcce3a78 patch 8.2.0401: not enough test coverage for evalvars.c
Problem:    Not enough test coverage for evalvars.c.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5804)
2020-03-18 19:32:26 +01:00
Bram Moolenaar
e51bb17dd0 patch 8.2.0267: no check for a following cmd when calling a function fails
Problem:    No check for a following command when calling a function fails.
Solution:   Also check for a following command when inside a try block.
            (closes #5642)
2020-02-16 19:42:23 +01:00
Bram Moolenaar
5feabe00c4 patch 8.2.0183: tests fail when the float feature is disabled
Problem:    Tests fail when the float feature is disabled.
Solution:   Skip tests that don't work without float support.
2020-01-30 18:24:53 +01:00
Bram Moolenaar
fcfe1a9b89 patch 8.1.1816: cannot use a user defined function as a method
Problem:    Cannot use a user defined function as a method.
Solution:   Pass the base as the first argument to the user defined function
            after "->". (partly by FUJIWARA Takuya)
2019-08-04 23:04:39 +02:00
Bram Moolenaar
42ae78cfff patch 8.1.1310: named function arguments are never optional
Problem:    Named function arguments are never optional.
Solution:   Support optional function arguments with a default value. (Andy
            Massimino, closes #3952)
2019-05-09 21:08:58 +02:00
Bram Moolenaar
53f0c96239 patch 8.0.1209: still too many old style tests
Problem:    Still too many old style tests.
Solution:   Convert a few more tests to new style. (Yegappan Lakshmanan,
            closes #2230)
2017-10-22 14:23:59 +02:00