summaryrefslogtreecommitdiff
path: root/src/ex_eval.c
Commit message (Collapse)AuthorAgeFilesLines
* patch 8.2.2725: Vim9: message about compiling is wrong when using try/catchv8.2.2725Bram Moolenaar2021-04-051-0/+1
| | | | | Problem: Vim9: message about compiling is wrong when using try/catch. Solution: Store the compiling flag with the message. (closes #8071)
* patch 8.2.2657: Vim9: error message for declaring variable in for loopv8.2.2657Bram Moolenaar2021-03-261-7/+31
| | | | | Problem: Vim9: error message for declaring variable in for loop. Solution: Clear variables when entering block again. (closes #8012)
* patch 8.2.2652: Vim9: can use command modifier without an effectv8.2.2652Bram Moolenaar2021-03-251-0/+17
| | | | | | Problem: Vim9: can use command modifier without an effect. Solution: Give an error for a misplaced command modifier. Fix error message number.
* patch 8.2.2553: Vim9: Cannot put "|" after "{"v8.2.2553Bram Moolenaar2021-02-261-1/+1
| | | | | Problem: Vim9: Cannot put "|" after "{". Solution: Add the EX_TRLBAR flag. (issue #7904)
* patch 8.2.2417: condition stack values may be used when not setv8.2.2417Bram Moolenaar2021-01-271-0/+7
| | | | | | Problem: Condition stack values may be used when not set. Solution: Clear cs_script_var_len and cs_block_id just in case they get used later. (issue #7733)
* patch 8.2.2289: Vim9: 'cpo' can become emptyv8.2.2289Bram Moolenaar2021-01-031-1/+1
| | | | | | Problem: Vim9: 'cpo' can become empty. Solution: Use empty_option instead of an empty string. Update quickfix buffer after restoring 'cpo'. (closes #7608)
* patch 8.2.2163: crash when discarded exception is the current exceptionv8.2.2163Bram Moolenaar2020-12-191-5/+4
| | | | | Problem: Crash when discarded exception is the current exception. Solution: Compare the execption with current_exception. (closes #7499)
* patch 8.2.1870: Vim9: no need to keep all script variablesv8.2.1870Bram Moolenaar2020-10-201-2/+8
| | | | | | Problem: Vim9: no need to keep all script variables. Solution: Only keep script variables when a function was defined that could use them. Fix freeing static string on exit.
* patch 8.2.1846: Vim9: block variables are not found in compiled functionv8.2.1846Bram Moolenaar2020-10-151-2/+8
| | | | | | Problem: Vim9: variables declared in a local block are not found in when a function is compiled. Solution: Look for script variables in sn_all_vars.
* patch 8.2.1845: Vim9: function defined in a block can't use block variablesv8.2.1845Bram Moolenaar2020-10-141-24/+18
| | | | | | | Problem: Vim9: function defined in a block can't use variables defined in that block. Solution: First step: Make a second hashtab that holds all script variables, also block-local ones, with more information.
* patch 8.2.1826: Vim9: cannot use a {} block at script levelv8.2.1826Bram Moolenaar2020-10-101-2/+33
| | | | | Problem: Vim9: cannot use a {} block at script level. Solution: Recognize a {} block.
* patch 8.2.1825: Vim9: accessing freed memoryv8.2.1825Bram Moolenaar2020-10-101-13/+19
| | | | | Problem: Vim9: accessing freed memory. Solution: Clear sv_name when the variable is deleted.
* patch 8.2.1824: Vim9: variables at the script level escape their scopev8.2.1824Bram Moolenaar2020-10-101-12/+56
| | | | | Problem: Vim9: variables at the script level escape their scope. Solution: When leaving a scope remove variables declared in it.
* patch 8.2.1653: expand('<stack>') does not include the final line numberv8.2.1653Bram Moolenaar2020-09-101-2/+2
| | | | | Problem: Expand('<stack>') does not include the final line number. Solution: Add the line nuber. (closes #6927)
* patch 8.2.1297: when a test fails it's often not easy to see wherev8.2.1297Bram Moolenaar2020-07-261-2/+2
| | | | | | Problem: When a test fails it's often not easy to see what the call stack is. Solution: Add more entries from the call stack in the exception message.
* patch 8.2.1281: the "trailing characters" error can be hard to understandv8.2.1281Bram Moolenaar2020-07-231-1/+1
| | | | | Problem: The "trailing characters" error can be hard to understand. Solution: Add the trailing characters to the message.
* patch 8.2.1280: Ex command error cannot contain an argumentv8.2.1280Bram Moolenaar2020-07-231-22/+22
| | | | | | Problem: Ex command error cannot contain an argument. Solution: Add ex_errmsg() and translate earlier. Use e_trailing_arg where possible.
* patch 8.2.1110: Vim9: line continuation does not work in function argumentsv8.2.1110Bram Moolenaar2020-07-011-7/+1
| | | | | | Problem: Vim9: line continuation does not work in function arguments. Solution: Pass "evalarg" to get_func_tv(). Fix seeing double quoted string as comment.
* patch 8.2.1080: Vim9: no line break allowed in a for loopv8.2.1080Bram Moolenaar2020-06-281-3/+22
| | | | | Problem: Vim9: no line break allowed in a for loop. Solution: Skip line breaks in for command.
* patch 8.2.1071: Vim9: no line break allowed inside a lambdav8.2.1071Bram Moolenaar2020-06-271-0/+1
| | | | | Problem: Vim9: no line break allowed inside a lambda. Solution: Handle line break inside a lambda in Vim9 script.
* patch 8.2.1049: Vim9: leaking memory when using continuation linev8.2.1049Bram Moolenaar2020-06-241-6/+6
| | | | | | Problem: Vim9: leaking memory when using continuation line. Solution: Keep a pointer to the continuation line in evalarg_T. Centralize checking for a next command.
* patch 8.2.1047: Vim9: script cannot use line continuation like :def functionv8.2.1047Bram Moolenaar2020-06-241-2/+5
| | | | | | Problem: Vim9: script cannot use line continuation like in a :def function. Solution: Pass the getline function pointer to the eval() functions. Use it for addition and multiplication operators.
* patch 8.2.0967: unnecessary type casts for vim_strnsave()v8.2.0967Bram Moolenaar2020-06-121-3/+3
| | | | | Problem: Unnecessary type casts for vim_strnsave(). Solution: Remove the type casts.
* patch 8.2.0823: Vim9: script reload test is disabledv8.2.0823Bram Moolenaar2020-05-251-15/+32
| | | | | | | Problem: Vim9: script reload test is disabled. Solution: Compile a function in the context of the script where it was defined. Set execution stack for compiled function. Add a test that an error is reported for the right file/function.
* patch 8.2.0753: Vim9: expressions are evaluated in the discovery phasev8.2.0753Bram Moolenaar2020-05-141-1/+2
| | | | | | Problem: Vim9: expressions are evaluated in the discovery phase. Solution: Bail out if an expression is not a constant. Require a type for declared constants.
* patch 8.2.0612: Vim9: no check for space before #commentv8.2.0612Bram Moolenaar2020-04-201-4/+7
| | | | | Problem: Vim9: no check for space before #comment. Solution: Add space checks.
* patch 8.2.0570: Vim9: no error when omitting type from argumentv8.2.0570Bram Moolenaar2020-04-131-2/+5
| | | | | Problem: Vim9: no error when omitting type from argument. Solution: Enforce specifying argument types.
* patch 8.2.0502: Vim9: some code is not testedv8.2.0502Bram Moolenaar2020-04-021-1/+1
| | | | | Problem: Vim9: some code is not tested. Solution: Add more tests. Fix uncovered problems.
* patch 8.2.0149: maintaining a Vim9 branch separately is more workv8.2.0149Bram Moolenaar2020-01-261-12/+11
| | | | | Problem: Maintaining a Vim9 branch separately is more work. Solution: Merge the Vim9 script changes.
* patch 8.2.0056: execution stack is incomplete and inefficientv8.2.0056Bram Moolenaar2019-12-291-3/+4
| | | | | | Problem: Execution stack is incomplete and inefficient. Solution: Introduce a proper execution stack and use it instead of sourcing_name/sourcing_lnum. Create a string only when used.
* patch 8.2.0013: not using a typedef for condstackv8.2.0013Bram Moolenaar2019-12-161-21/+21
| | | | | Problem: Not using a typedef for condstack. Solution: Add a typedef.
* patch 8.1.2379: using old C style commentsv8.1.2379Bram Moolenaar2019-12-011-183/+181
| | | | | Problem: Using old C style comments. Solution: Use // comments where appropriate.
* patch 8.1.2341: not so easy to interrupt a script programaticallyv8.1.2341Bram Moolenaar2019-11-251-0/+1
| | | | | Problem: Not so easy to interrupt a script programatically. Solution: Add the interrupt() function. (Yasuhiro Matsumoto, closes #2834)
* patch 8.1.1891: functions used in one file are globalv8.1.1891Bram Moolenaar2019-08-201-2/+2
| | | | | Problem: Functions used in one file are global. Solution: Add "static". (Yegappan Lakshmanan, closes #4840)
* patch 8.1.1807: more functions can be used as a methodv8.1.1807Bram Moolenaar2019-08-041-0/+12
| | | | | | Problem: More functions can be used as a method. Solution: Add append(), appendbufline(), assert_equal(), etc. Also add the :eval command.
* patch 8.1.1414: alloc() returning "char_u *" causes a lot of type castsv8.1.1414Bram Moolenaar2019-05-281-3/+3
| | | | | | Problem: Alloc() returning "char_u *" causes a lot of type casts. Solution: Have it return "void *". (Mike Williams) Define ALLOC_ONE() to check the simple allocations.
* patch 8.1.1384: using "int" for alloc() often results in compiler warningsv8.1.1384Bram Moolenaar2019-05-241-3/+3
| | | | | | Problem: Using "int" for alloc() often results in compiler warnings. Solution: Use "size_t" and remove type casts. Remove alloc_check(), Vim only works with 32 bit ints anyway.
* patch 8.1.0779: argument for message functions is inconsistentv8.1.0779Bram Moolenaar2019-01-191-4/+4
| | | | | Problem: Argument for message functions is inconsistent. Solution: Make first argument to msg() "char *".
* patch 8.1.0743: giving error messages is not flexiblev8.1.0743Bram Moolenaar2019-01-131-53/+53
| | | | | | | | 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.
* patch 8.1.0443: unnecessary static function prototypesv8.1.0443Bram Moolenaar2018-09-301-6/+0
| | | | | Problem: Unnecessary static function prototypes. Solution: Remove unnecessary prototypes.
* patch 8.0.0705: crash when there is an error in a timer callbackv8.0.0705Bram Moolenaar2017-07-101-2/+8
| | | | | | | Problem: Crash when there is an error in a timer callback. (Aron Griffis, Ozaki Kiichi) Solution: Check did_throw before discarding an exception. NULLify current_exception when no longer valid.
* patch 8.0.0075v8.0.0075Bram Moolenaar2016-11-101-3/+3
| | | | | Problem: Using number for exception type lacks type checking. Solution: Use an enum.
* patch 8.0.0074v8.0.0074Bram Moolenaar2016-11-101-4/+4
| | | | | | Problem: Cannot make Vim fail on an internal error. Solution: Add IEMSG() and IEMSG2(). (Domenique Pelle) Avoid reporting an internal error without mentioning where.
* patch 7.4.2293v7.4.2293Bram Moolenaar2016-08-291-1/+1
| | | | | Problem: Modelines in source code are inconsistant. Solution: Use the same line in most files. Add 'noet'. (Naruhiko Nishino)
* patch 7.4.1500v7.4.1500Bram Moolenaar2016-03-061-2/+2
| | | | | Problem: Should_free flag set to FALSE. Solution: Set it to TRUE. (Neovim 4415)
* patch 7.4.1282v7.4.1282Bram Moolenaar2016-02-071-0/+4
| | | | | | Problem: Crash when evaluating the pattern of ":catch" causes an error. (Dominique Pelle) Solution: Block error messages at this point.
* patch 7.4.1206v7.4.1206Bram Moolenaar2016-01-301-92/+53
| | | | | | Problem: Using old style function declarations. Solution: Change to new style function declarations. (script by Hirohito Higashi)
* patch 7.4.1197v7.4.1197Bram Moolenaar2016-01-291-7/+7
| | | | | Problem: Still using __ARGS. Solution: Remove __ARGS in several files. (script by Hirohito Higashi)
* updated for version 7.4.107v7.4.107Bram Moolenaar2013-11-281-49/+83
| | | | | | Problem: Python: When vim.eval() encounters a Vim error, a try/catch in the Python code doesn't catch it. (Yggdroot Chen) Solution: Throw exceptions on errors in vim.eval(). (ZyX)
* updated for version 7.3.1149v7.3.1149Bram Moolenaar2013-06-081-1/+1
| | | | | | Problem: New regexp engine: Matching plain text could be faster. Solution: Detect a plain text match and handle it specifically. Add vim_regfree().