aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.c
Commit message (Collapse)AuthorAge
* vim-patch:8.1.2348: :const cannot be followed by "| endif"Jan Edmund Lazo2019-11-26
| | | | | | | Problem: :const cannot be followed by "| endif". Solution: Check following command for :const. (closes vim/vim#5269) Also fix completion after :const. https://github.com/vim/vim/commit/8f76e6b12b958f2779444a92234bbaf3f49eeb99
* Add v:lua.func() vimL syntax for calling luaBjörn Linse2019-11-16
| | | | Also simplify error messages when calling lua from vimL.
* f_getenv/setenv: Access v_special when v_type is VAR_SPECIAL #11388James McCoy2019-11-13
| | | | | | | | | | | | | | | | | | | | Multiple Debian builds were failing these tests: Failures: From test_environ.vim: Found errors in Test_external_env(): function RunTheTest[37]..Test_external_env line 16: Expected '' but got 'FOO=null\n' Found errors in Test_getenv(): function RunTheTest[37]..Test_getenv line 2: Expected v:null but got v:false Found errors in Test_setenv(): function RunTheTest[37]..Test_setenv line 5: Expected v:null but got 'null' This is because nvim has a separate tag (`v_special`) in `typval_T` for special variables, whereas vim re-uses the `v_number` tag. On little-endian architectures, using the incorrect tag is not an issue because the byte representation is the same. However, on big-endian systems this caused the `v_number == kSpecialVarNull` checks to fail, and the non-special code to execute.
* vim-patch:8.1.2262: unpack assignment in function not recognizedJan Edmund Lazo2019-11-09
| | | | | | Problem: Unpack assignment in function not recognized. Solution: Skip over "[a, b]". (closes vim/vim#5051) https://github.com/vim/vim/commit/1e673b9eb686459bd0e7fc3f2199dd077546a18e
* vim-patch:8.1.2173: searchit() has too many argumentsJaehwang Jerry Jung2019-10-27
| | | | | | Problem: Searchit() has too many arguments. Solution: Move optional arguments to a struct. Add the "wrapped" argument. https://github.com/vim/vim/commit/92ea26b925a0835badb0af2d5887238a4198cabb
* vim-patch:8.1.2168: heredoc not skipped in if-block #11265Marco Hinz2019-10-20
| | | | | | | | Problem: Heredoc assignment not skipped in if block. Solution: Check if "skip" is set. https://github.com/vim/vim/commit/b1ba9abcb385b0a5355788a7eefef78ec68d2f65 Fixes https://github.com/neovim/neovim/issues/11264
* vim-patch:8.1.1729: heredoc with trim not properly handled in functionJurica Bradaric2019-10-13
| | | | | | Problem: Heredoc with trim not properly handled in function. Solution: Allow for missing indent. (FUJIWARA Takuya, closes vim/vim#4713) https://github.com/vim/vim/commit/ecaa75b4cea329a3902b8565e028b32279b8322b
* vim-patch:8.1.1723: heredoc assignment has no room for new featuresJurica Bradaric2019-10-13
| | | | | | | Problem: Heredoc assignment has no room for new features. (FUJIWARA Takuya) Solution: Require the marker does not start with a lower case character. (closes vim/vim#4705) https://github.com/vim/vim/commit/24582007294b0db3be9669d3b583ea45fc4f19b8
* vim-patch:8.1.1625: script line numbers are not exactly rightJurica Bradaric2019-10-13
| | | | | | | Problem: Script line numbers are not exactly right. Solution: Handle heredoc and continuation lines better. (Ozaki Kiichi, closes vim/vim#4611, closes vim/vim#4511) https://github.com/vim/vim/commit/bc2cfe4672d370330b8698d4d025697a9a6ec569
* vim-patch:8.1.1585: :let-heredoc does not trim enoughJurica Bradaric2019-10-13
| | | | | | | Problem: :let-heredoc does not trim enough. Solution: Trim indent from the contents based on the indent of the first line. Use let-heredoc in more tests. https://github.com/vim/vim/commit/e7eb92708ec2092a2fc11e78703b5dcf83844412
* fnamemodify: fix handling of :r after :e #11165Rob Pilling2019-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Test fnamemodify() - Test handling of `expand("%:e:e:r")`. - Fix :e:e:r on filenames with insufficiently many extensions During `fnamemodify()`, ensuring that we don't go before the filename's tail is insufficient in cases where we've already handled a ":e" modifier, for example: ``` "path/to/this.file.ext" :e:e:r:r ^ ^-------- *fnamep +------------- tail ``` This means for a ":r", we'll go before `*fnamep`, and outside the bounds of the filename. This is both incorrect and causes neovim to exit with an allocation error. We exit because we attempt to calculate `s - *fnamep` (line 23948). Since `s` is before `*fnamep`, we caluclate a negative length, which ends up being interpreted as an amount to allocate, causing neovim to exit with ENOMEM (`memory.c:xmalloc`). We must instead ensure we don't go before `*fnamep` nor `tail`. The check for `tail` is still relevant, for example: ``` "path/to/this.file.ext" :r:r:r ^ ^------------- tail +--------------------- *fnamep ``` Here we don't want to go before `tail`. close #11165
* Merge #11077 'vim-patch:8.1.{1354,1356,1362,1588}'Justin M. Keyes2019-10-07
|\
| * vim-patch:8.1.1588: in :let-heredoc line continuation is recognizedJurica Bradaric2019-10-07
| | | | | | | | | | | | Problem: In :let-heredoc line continuation is recognized. Solution: Do not consume line continuation. (Ozaki Kiichi, closes vim/vim#4580) https://github.com/vim/vim/commit/e96a2498f9a2d3e93ac07431f6d4afd77f30afdf
| * vim-patch:8.1.1356: some text in heredoc assignment ends the textJurica Bradaric2019-10-07
| | | | | | | | | | | | Problem: Some text in heredoc assignment ends the text. (Ozaki Kiichi) Solution: Recognize "let v =<<" and skip until the end. https://github.com/vim/vim/commit/8471e57026714c5a0faf89288ceef5231fb88d4f
| * vim-patch:8.1.1354: getting a list of text lines is clumsyJurica Bradaric2019-10-07
|/ | | | | | Problem: Getting a list of text lines is clumsy. Solution: Add the =<< assignment. (Yegappan Lakshmanan, closes vim/vim#4386) https://github.com/vim/vim/commit/f5842c5a533346c4ff41ff666e465c85f1de35d5
* vim-patch:8.1.2120: some MB_ macros are more complicated than necessaryJan Edmund Lazo2019-10-06
| | | | | | | Problem: Some MB_ macros are more complicated than necessary. (Dominique Pelle) Solution: Simplify the macros. Expand inline. https://github.com/vim/vim/commit/1614a14901558ca091329315d14a7d5e1b53aa47
* vim-patch:8.1.2095: leaking memory when getting item from dictJan Edmund Lazo2019-10-01
| | | | | | Problem: Leaking memory when getting item from dict. Solution: Also free the key when not evaluating. https://github.com/vim/vim/commit/a893194d91a2942d4d54085d746ed137a9251b69
* cmdline: wildmenumode() should be true with wildoptions+=pumBjörn Linse2019-09-28
|
* vim-patch:8.1.2055: profile: adjust line format #11058Daniel Hahler2019-09-21
| | | | | | Problem: Not easy to jump to function line from profile. Solution: Use "file:99" instead of "file line 99" so that "gf" works. (Daniel Hahler, closes vim/vim#4951) https://github.com/vim/vim/commit/181d4f58cc421f2e6d3b16333d4cb70d35ad1342
* Merge #11060 from janlazo/vim-8.1.1783Justin M. Keyes2019-09-21
|\ | | | | vim-patch:8.0.{1109,1529,1539,1621,1733,1771,1776},8.1.{1783,2054,2058}
| * vim-patch:8.0.1529: assert_equalfile() does not close file descriptorsJan Edmund Lazo2019-09-21
| | | | | | | | | | | | Problem: Assert_equalfile() does not close file descriptors. (Coverity) Solution: Close the file descriptors. https://github.com/vim/vim/commit/3049418f3dbc571463a04d068069f6c5b7a8ccf1
| * vim-patch:8.0.1109: timer causes error on exit from Ex modeJan Edmund Lazo2019-09-21
| | | | | | | | | | | | | | Problem: Timer causes error on exit from Ex mode. (xtal8) Solution: save and restore the ex_pressedreturn flag. (Christian Brabandt, closes vim/vim#2079) https://github.com/vim/vim/commit/f5291f301e9322545f0621b2157e93050d1d4fb3
* | vim-patch:8.1.0460: assert_fails() message argument #11051Jan Edmund Lazo2019-09-21
|/ | | | | Problem: assert_fails() does not take a message argument Solution: Add the argument. https://github.com/vim/vim/commit/1307d1c003b01b4f67524c95feb07c3d91c7c428
* vim-patch:8.0.1770: assert functions don't return anythingJan Edmund Lazo2019-09-16
| | | | | | Problem: Assert functions don't return anything. Solution: Return non-zero when the assertion fails. https://github.com/vim/vim/commit/65a5464985f980d2bbbf4e14d39d416dce065ec7
* vim-patch:8.0.1523: cannot write and read terminal screendumpsJan Edmund Lazo2019-09-16
| | | | | | | Problem: Cannot write and read terminal screendumps. Solution: Add term_dumpwrite(), term_dumpread() and term_dumpdiff(). Also add assert_equalfile(). https://github.com/vim/vim/commit/d96ff165113ce5fe62107add590997660e3d4802
* Context: rename "buflist" => "bufs"Justin M. Keyes2019-09-14
| | | | | Given the other type names "jumps", "vars", etc., the name "buflist" is somewhat unintuitive.
* lintJustin M. Keyes2019-09-13
|
* getdigits: introduce `strict`, `def` parametersJustin M. Keyes2019-09-13
| | | | | | | | | | | | Problem: During a refactor long ago, we changed the `getdigits_*` familiy of functions to abort on overflow. But this is often wrong, because many of these codepaths are handling user input. Solution: Decide at each call-site whether to use "strict" mode. fix #5555
* syntax, TUI: support "strikethrough"Jaskaran Singh2019-09-13
| | | | | | fix #3436 Includes: vim-patch:8.0.1038: strike-through text not supported
* eval: wait(): always spin up dummy-timer #10990Justin M. Keyes2019-09-11
| | | | This avoids getting "stuck". If user actually _wants_ to get stuck forever, they could use `:sleep` or specify a really big `interval`.
* provider: has("python3_dynamic") et al. #10980Justin M. Keyes2019-09-09
| | | | | | | | | | | Vim added more flags for testing yet more dimensions of its Python situation. Handle those in eval_has_provider(). vim-patch:8.0.1436: not enough information about what Python version may work Problem: Not enough information about what Python version may work. Solution: Add "python_compiled", "python3_compiled", "python_dynamic" and "python3_dynamic" values for has(). ref: https://github.com/neovim/neovim/pull/10942#issuecomment-529479500
* refactor: allow us to process a child queue only while waiting on inputBjörn Linse2019-09-08
|
* Merge #10869 'vim-patch:8.1.{0309,0362,0365,0515,1946}'Justin M. Keyes2019-09-05
|\
| * vim-patch:8.1.1946: memory error when profiling a function without a script IDerw72019-09-04
| | | | | | | | | | | | Problem: Memory error when profiling a function without a script ID. Solution: Check for missing script ID. (closes vim/vim#4877) https://github.com/vim/vim/commit/163588005da3a240e49416093d0d0251951d60a1
| * vim-patch:8.1.0515: reloading a script gives errors for existing functionserw72019-09-04
| | | | | | | | | | | | Problem: Reloading a script gives errors for existing functions. Solution: Allow redefining a function once when reloading a script. https://github.com/vim/vim/commit/ded5f1bed7ff2d138b3ee0f9610d17290b62692d
| * vim-patch:8.1.0365: function profile doesn't specify where it was definederw72019-09-04
| | | | | | | | | | | | Problem: Function profile doesn't specify where it was defined. Solution: Show the script name and line number. https://github.com/vim/vim/commit/4c7b08f6409349cf5324a26f7523c438590550ef
| * vim-patch:8.1.0362: cannot get the script line number when executing a functionerw72019-09-04
| | | | | | | | | | | | | | Problem: Cannot get the script line number when executing a function. Solution: Store the line number besides the script ID. (Ozaki Kiichi, closes vim/vim#3362) Also display the line number with ":verbose set". https://github.com/vim/vim/commit/f29c1c6aa3f365c025890fab5fb9efbe88eb1761
* | anchor float to buffer positionBjörn Linse2019-09-04
| | | | | | | | vim-patch:8.1.1645: cannot use a popup window for a balloon
* | Merge pull request #10926 from blueyed/fix-echon-qBjörn Linse2019-09-04
|\ \ | |/ |/| Check got_int in msg_multiline_attr with ex_echo
| * only check got_int with ex_echoDaniel Hahler2019-09-04
| | | | | | | | Ref: https://github.com/neovim/neovim/pull/10926#discussion_r320706446
* | f_jobwait: cleanupJustin M. Keyes2019-09-03
| |
* | jobwait(): fix race if job exits before waiting on itJustin M. Keyes2019-09-03
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: If a job exits while waiting on another job, the on_exit handler is queued but f_jobwait() skips it. Solution: Always do process_wait(), so that handlers are run during f_jobwait(). fix #8302 Test case: $ BUSTED_ARGS="--repeat=2000 --no-keep-going" TEST_FILE=test/functional/core/job_spec.lua TEST_FILTER=waiting make functionaltest Failure example (macOS CI): FAILED test/functional/core/job_spec.lua: jobs jobwait will run callbacks while waiting test/functional/core/job_spec.lua:606: Expected objects to be the same. Passed in: (table: 0x1be77c80) { [1] = 'notification' [2] = 'wait' *[3] = { *[1] = 3 } } Expected: (table: 0x1be77d10) { [1] = 'notification' [2] = 'wait' *[3] = { *[1] = 4 } } stack traceback: test/functional/core/job_spec.lua:606: in function <test/functional/core/job_spec.lua:583
* vim-patch:8.0.1729: no comma after last enum itemJan Edmund Lazo2019-09-02
| | | | | | | Problem: No comma after last enum item. Solution: Add a few commas to check if this works for all compilers. Also add a few // comments. https://github.com/vim/vim/commit/ea3ece405ab55f44018257bd2f5021231af8e87f
* fixup! eval: add wait() testAbdelhakeem2019-09-01
|
* eval: add wait()Abdelhakeem2019-09-01
| | | | closes #10362
* screen: use dedicated message gridBjörn Linse2019-09-01
| | | | | | | | add proper msg_set_pos event, delet win_scroll_over_* make compositor click through unfocusable grids add MsgArea attribute for the message/cmdline area, and add docs and tests
* vim-patch:8.1.0233: "safe" argument of call_vim_function() is always FALSEJan Edmund Lazo2019-08-30
| | | | | | Problem: "safe" argument of call_vim_function() is always FALSE. Solution: Remove the argument. https://github.com/vim/vim/commit/ded27a1febda3db7447958b60a7d791af514d124
* vim-patch:8.1.1938: may crash when out of memoryJan Edmund Lazo2019-08-29
| | | | | | Problem: May crash when out of memory. Solution: Initialize v_type to VAR_UNKNOWN. (Dominique Pelle, closes vim/vim#4871) https://github.com/vim/vim/commit/c507a2d164cfa3dcf31a7ba9dad6663a17243bb4
* vim-patch:8.1.1932: ml_get errors after append() #10866Marco Hinz2019-08-27
| | | | | | | | Problem: Ml_get errors after using append(). (Alex Genco) Solution: Do not update the cursor twice. https://github.com/vim/vim/commit/d20070274c47668560e02db184e1f8e456c3c326 fix #10847
* Merge pull request #10841 from janlazo/vim-7.4.1407Daniel Hahler2019-08-25
|\ | | | | vim-patch:7.4.1407,8.1.1111