aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.c
Commit message (Collapse)AuthorAge
...
* vim-patch:8.1.0214 (#8927)Vivek R2018-08-28
| | | | | | | Problem: +autochdir feature not reported by has() or :version. Solution: Add the feature in the list. Author: Bram Moolenaar <Bram@vim.org> https://github.com/vim/vim/commit/83ec2a7f5fb481b30a5d556b6aad49a62585bccd
* vim-patch:8.0.1242: function argument with only dash is seen as number zeroJan Edmund Lazo2018-08-22
| | | | | | | Problem: Function argument with only dash is seen as number zero. (Wang Shidong) Solution: See a dash as a string. (Christian Brabandt) https://github.com/vim/vim/commit/ffd99f729bd806e09d9355ede9c17780b61057bf
* vim-patch:8.1.0184: not easy to figure out the window layoutJan Edmund Lazo2018-08-15
| | | | | | Problem: Not easy to figure out the window layout. Solution: Add "wincol" and "winrow" to what getwininfo() returns. https://github.com/vim/vim/commit/b6959a8e06cef6d2126b030b2f8acd49457a3582
* vim-patch:8.0.1364: there is no easy way to get the window positionJan Edmund Lazo2018-08-15
| | | | | | Problem: There is no easy way to get the window position. Solution: Add win_screenpos(). https://github.com/vim/vim/commit/22044dc31788d9f1c2da7725269884d9923b4795
* vim-patch:8.1.0262: not enough testing for getftype()Jan Edmund Lazo2018-08-13
| | | | | | Problem: Not enough testing for getftype(). Solution: Add a test. (Dominique Pelle, closes vim/vim#3300) https://github.com/vim/vim/commit/1598f9937a18c056d7b713dc254325c8f8456c8f
* vim-patch:8.0.1630: trimming white space is not that easyJan Edmund Lazo2018-08-13
| | | | | | Problem: Trimming white space is not that easy. Solution: Add the trim() function. (Bukn, closes vim/vim#1280) https://github.com/vim/vim/commit/295ac5ab5e840af6051bed5ec9d9acc3c73445de
* eval: match in find_some_match() is boolJan Edmund Lazo2018-08-11
|
* vim-patch:8.0.1410: hang when using count() with an empty stringJan Edmund Lazo2018-08-09
| | | | | | Problem: Hang when using count() with an empty string. Solution: Return zero for an empty string. (Dominique Pelle, closes vim/vim#2465) https://github.com/vim/vim/commit/338e47fdfdf0d918dae50a5cbf0cf4f7be45b4f0
* vim-patch:8.0.1004: matchstrpos() without a match returns too many itemsJan Edmund Lazo2018-08-08
| | | | | | | Problem: Matchstrpos() without a match returns too many items. Solution: Also remove the second item when the position is beyond the end of the string. (Hirohito Higashi) Use an enum for the type. https://github.com/vim/vim/commit/8d9f0ef5c6a6f6d19c3d02690e1ee347a70b8452
* Merge #8744 from janlazo/vim-8.0.0890Justin M. Keyes2018-08-08
|\
| * window: no_display in restore_win() is boolJan Edmund Lazo2018-08-07
| |
| * eval: add const to f_gettabvar() variablesJan Edmund Lazo2018-08-06
| |
| * vim-patch:8.0.1160: getting tab-local variable fails after closing windowJan Edmund Lazo2018-08-06
| | | | | | | | | | | | Problem: Getting tab-local variable fails after closing window. Solution: set tp_firstwin and tp_lastwin. (Jason Franklin, closes vim/vim#2170) https://github.com/vim/vim/commit/816968defc8ae79eb7e2319e991e74661be8d750
* | Remove all occurences of the mb_ptr2char macroZviRackover2018-08-06
|/ | | | | | | First step towards implemening issue #7401. The same can be done for all deprecated mb_ functions in follow-up patches.
* vim-patch:8.0.0948: crash if timer closes window while dragging status lineJan Edmund Lazo2018-08-05
| | | | | | | Problem: Crash if timer closes window while dragging status line. Solution: Check if the window still exists. (Yasuhiro Matsumoto, closes vim/vim#1979) https://github.com/vim/vim/commit/989a70c590c2bd109eb362d3a0e48cb1427ae13d
* eval, ex_getln: Fix incompatible pointer types (#8792)hyatskov2018-08-05
| | | | | | | | | | | Fixes #8786 gcc (GCC) 8.1.1 20180531 warning: [76/182] Building C object src/nvim/CMakeFiles/nvim.dir/ex_getln.c.o ../src/nvim/ex_getln.c: In function ‘ExpandUserDefined’: ../src/nvim/ex_getln.c:5071:34: warning: cast between incompatible function types from ‘char * (*)(const char * const, const int, const char_u * const* const, const _Bool)’ {aka ‘char * (*)(const char * const, const int, const unsigned char * const* const, const _Bool)’} to ‘void * (*)(char_u *, int, char_u **, int)’ {aka ‘void * (*)(unsigned char *, int, unsigned char **, int)’} [-Wcast-function-type] retstr = call_user_expand_func((user_expand_func_T)call_func_retstr, xp,
* system(): handle profiling and 'verbose' #8730Marcos Almeida2018-07-29
| | | | | | | | | | | | closes #8362 Vim's code calls `call_shell` directly from `get_system_output_as_rettv` whereas in Nvim this function has been rewritten to not call `call_shell` but to call `os_system` via `do_os_system`, losing the support for profiling and verbose. Changing the code to call `call_shell` from `get_system_output_as_rettv` seems to be too complicated to be worth it on the current version of the code. So this commit duplicates the relevant code.
* vim-patch:8.0.0794: checking translations fails with multiple NLJan Edmund Lazo2018-07-23
| | | | | | | Problem: The script to check translations fails if there is more than one NL in one line. Solution: Count the number of NL characters. Make count() accept a string. https://github.com/vim/vim/commit/9966b21a57277986217aa28237d6c247ebd060d7
* Make "v:errmsg", "v:shell_error" and "v:this_session" distinctShougo Matsushita2018-07-23
|
* vim-patch: finish port of 8.0.0{654,663,667}Jan Edmund Lazo2018-07-07
| | | | | Fix ex_function so that :endfunction passes the test. Remove variables, added in 60c025267265ba4bfc2abd34ea02b13bd5c0e63f.
* vim-patch:8.0.0593: DRY: setting list/dict return value (#8639)Jan Edmund Lazo2018-06-30
| | | | | Problem: Duplication of code for adding a list or dict return value. Solution: Add rettv_dict_set() and rettv_list_set(). (Yegappan Lakshmanan) https://github.com/vim/vim/commit/45cf6e910c6d162775ca9d470fac4b6db844001f
* vim-patch:8.0.0642: writefile() continues after detecting an errorJan Edmund Lazo2018-06-24
| | | | | | | Problem: writefile() continues after detecting an error. Solution: Bail out as soon as an error is detected. (suggestions by Nikolai Pavlov, closes vim/vim#1476) https://github.com/vim/vim/commit/8cf91286ca46a501d24e4b7d631b193256782c88
* vim-patch:8.0.0548: saving the redo buffer only works one time (#8629)KunMing Xie2018-06-24
| | | | | | | 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 vim/vim#1619) https://github.com/vim/vim/commit/d4863aa99e0527e9505c79cbeafc68a6832200bf
* vim-patch:8.0.0535: leak when exiting user function (#8574)KunMing Xie2018-06-24
| | | | | | Problem: Memory leak when exiting from within a user function. Solution: Clear the function call stack on exit. https://github.com/vim/vim/commit/6914c64ee58ce68f31fb8a8793293a9b3f2f6240
* *: Replace b_changedtick with new always-inline functionsZyX2018-06-22
| | | Ref #8474
* vim-patch:8.0.0542: getpos() can return a negative line number (#8580)Jan Edmund Lazo2018-06-19
| | | | | Problem: getpos() can return a negative line number. (haya14busa) Solution: Handle a zero topline and botline. (closes vim/vim#1613) https://github.com/vim/vim/commit/a1d5fa65bc7e8a548858e9c295a192b63dcd011b
* vim-patch:8.0.0547: extra line break in verbosefileJan Edmund Lazo2018-06-18
| | | | | | | Problem: Extra line break in verbosefile when using ":echomsg". (Ingo Karkat) Solution: Don't call msg_start(). (closes vim/vim#1618) https://github.com/vim/vim/commit/52604f2454e5369f861d3ce34764f74a0999c773
* vim-patch:8.0.0467: using g< after :for does not show the right outputJan Edmund Lazo2018-06-18
| | | | | | | Problem: Using g< after :for does not show the right output. (Marcin Szamotulski) Solution: Call msg_sb_eol() in :echomsg. https://github.com/vim/vim/commit/57002ad70c4c32f3afefec24994a974cf3eef3ad
* vim-patch:8.0.0625: shellescape() always escapes a newline (#8573)Jan Edmund Lazo2018-06-17
| | | | | | | Problem: shellescape() always escapes a newline, which does not work with some shells. (Harm te Hennepe) Solution: Only escape a newline when the "special" argument is non-zero. (Christian Brabandt, closes vim/vim#1590) https://github.com/vim/vim/commit/206155280def51160a9d81d983aed639015ffb44
* Merge #8526 from janlazo/vim-8.0.0451Justin M. Keyes2018-06-16
|\
| * vim-patch:8.0.0451: some macros are in lower caseJan Edmund Lazo2018-06-12
| | | | | | | | | | | | | | Problem: Some macros are in lower case. Solution: Make a few more macros upper case. Avoid lower case macros use an argument twice. https://github.com/vim/vim/commit/91acfffc1e6c0d8c2abfb186a0e79a5bf19c3f3f
* | screen: use UTF-8 representationBjörn Linse2018-06-13
|/ | | | | | | | | | | | | | Store text in ScreenLines as UTF-8, so it can be sent as-is to the UI layer. `utfc_char2bytes(off,buf)` is removed, as `ScreenLines[off]` now already contains this representation. To recover the codepoints that the screen arrays previously contained, use utfc_ptr2char (or utf_ptr2char to ignore composing chars). NB: This commit does NOT change how screen.c processes incoming UTF-8 data from buffers, cmdline, messages etc. Any algorithm that operates on UCS-4 (like arabic shaping, treatment of non-printable chars) is left unchanged for now.
* vim-patch:8.0.0466: still macros that should be all-caps (#8510)Jan Edmund Lazo2018-06-10
| | | | | Problem: There are still a few macros that should be all-caps. Solution: Make a few more macros all-caps. https://github.com/vim/vim/commit/8820b48654b62472821d9b155fe03ab7ac13a05c
* vim-patch:8.0.0452: some macros are in lower case (#8505)Jan Edmund Lazo2018-06-08
| | | | | Problem: Some macros are in lower case. Solution: Make a few more macros upper case. https://github.com/vim/vim/commit/1c46544412382db8b3203d6c78e550df885540bd
* Merge #8491 from janlazo/vim-8.0.0255Justin M. Keyes2018-06-07
|\
| * vim-patch:8.0.0256: missing changes to one file breaks testJan Edmund Lazo2018-06-07
| | | | | | | | | | | | Problem: Tests fail because some changes were not included. Solution: Add changes to evalfunc.c https://github.com/vim/vim/commit/3a29abcb6154d9f55ca8abd6d97e5822b97ac4b3
* | vim-patch:8.0.0254: error message of assert functions (#8488)Jan Edmund Lazo2018-06-07
|/ | | | | | Problem: When using an assert function one can either specify a message or get a message about what failed, not both. Solution: Concatenate the error with the message. https://github.com/vim/vim/commit/c7b831ca154537505f5a22d01335a86b2e9cb023
* cleanupJustin M. Keyes2018-05-18
|
* do not pass NULL to os_getenvJustin M. Keyes2018-05-18
| | | | closes #8393
* timer: make sure to free callback after the last timer due callbackBjörn Linse2018-05-13
| | | | | | | | fixes #6974 Before this change, the partial could be freed before the last due callback got invoked, which caused a use-after-free when the due callback called the partial.
* Merge #8329 'API: Make nvim_set_option() update `:verbose set …`'Justin M. Keyes2018-05-11
|\
| * lintb-r-o-c-k2018-05-10
| |
| * api: Make nvim_set_option() update `:verbose set ...`b-r-o-c-k2018-05-03
| | | | | | | | | | | | Make `:verbose set ...` show when an option was last modified by an API client or Lua script/chunk. In the case of an API client, the channel ID is displayed.
* | API: better way to capture abort-causing non-exception errorsJustin M. Keyes2018-05-09
| | | | | | | | | | | | | | | | This condition is not perfectly reliable: (did_emsg && force_abort && !current_exception) The more proper way to check for abort-causing non-exception errors is to set up `msg_list` using the "pattern" given by do_cmdline().
* | API: return non-generic VimL errorsJustin M. Keyes2018-05-09
|/ | | | | | | | | | - Return VimL errors instead of generic errors for: - nvim_call_function - nvim_call_dict_function - Fix tests which were silently broken before this change. This violates #6150 where we agreed not to translate API errors. But that can be fixed later.
* Merge #8218 'Fix errors reported by PVS'Justin M. Keyes2018-04-27
|\ | | | | closes #4983
| * eval: Silence PVS/V547: PVS cannot stand `!known_val` expressionsZyX2018-04-15
| |
| * eval: Fix PVS/V547: skipping is now done using eval0ZyX2018-04-15
| |
| * eval: Silence PVS/V547: E882 may be triggeredZyX2018-04-15
| | | | | | | | | | | | | | | | | | | | I failed to deduce why analyzer thinks E882 may not be triggered, though conditions for triggering it are strange: it would trigger E882 only in the single case “function returned non-number”. Cases “function thrown exception”, or “built-in sorter encountered error” will neither yield E882 nor stop sort()/uniq(). Note though that searching test code revealed that neither E702 nor E882 are not tested anywhere.
| * eval: Silence PVS/V614: use of potentially uninitialized pointerZyX2018-04-10
| | | | | | | | | | | | It is hard to say whether it actually is uninitialized, need to go deeper into regex code. Probably analyzer did not go that far as regmatch for sure would not be initialized up until calling NFA/DFA engine functions, which is to be done by pointer.