aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/viml/executor
Commit message (Collapse)AuthorAge
* Merge branch 'master' into luaviml'/luaZyX2017-04-08
|
* executor: Add :lua debug.debug mockZyX2017-03-27
|
* executor,functests: Add print() tests, some fixesZyX2017-03-27
|
* executor: Add print() functionZyX2017-03-27
|
* executor: Do not use S_LEN for memcpyZyX2017-03-27
| | | | Sometimes it is implemented as a macro and `S_LEN` is treated as a single argument in this case.
* executor: Add :luafile commandZyX2017-03-27
|
* executor: Fix some memory leaksZyX2017-03-27
|
* executor,functests: Add tests for :luado, also some fixesZyX2017-03-27
| | | | | | | | Fixes: 1. Allocate space for the NUL byte. 2. Do not exclude last line from range. 3. Remove code for sandbox: it is handled earlier. 4. Fix index in new_line_transformed when converting NULs to NLs. 5. Always allocate new_line_transformed, but save allocated value.
* executor: Add :luado commandZyX2017-03-27
|
* ex_getln: Refactor script_get()ZyX2017-03-27
| | | | | | | | | | | | | | 1. Use `char *` for strings. 2. Add `const` qualifiers. 3. Add attributes and documentation. 4. Handle skipping *inside*. 5. Handle non-heredoc argument also inside: deferring this to the caller is pointless because all callers need the same thing. Though new ex_lua caller may live without allocations in this case, allocating nevertheless produces cleaner code. 6. Note that all callers call script_get with `eap` and `eap->arg`. Thus second argument is useless in practice: it is one and the same always and can be reached through the first argument.
* executor: Add some const qualifiersZyX2017-03-27
|
* executor: Add :lua commandZyX2017-03-27
| | | Does not work currently.
* executor/executor: Free lcmd on errorZyX2017-03-27
|
* executor/executor: When reporting errors use lua string lengthZyX2017-03-27
|
* eval/decode: Fix memory leak in JSON functionsZyX2017-03-27
|
* executor/converter: Use readable lua numbers for handlesZyX2017-03-27
|
* executor/converter: Allow converting self-referencing lua objectsZyX2017-03-27
|
* functests: Test for error conditionsZyX2017-03-27
| | | | | | | | | | | | | | | | | | | | | | | During testing found the following bugs: 1. msgpack-gen.lua script is completely unprepared for Float values either in return type or in arguments. Specifically: 1. At the time of writing relevant code FLOAT_OBJ did not exist as well as FLOATING_OBJ, but it would be used by msgpack-gen.lua should return type be Float. I added FLOATING_OBJ macros later because did not know that msgpack-gen.lua uses these _OBJ macros, otherwise it would be FLOAT_OBJ. 2. msgpack-gen.lua should use .data.floating in place of .data.float. But it did not expect that .data subattribute may have name different from lowercased type name. 2. vim_replace_termcodes returned its argument as-is if it receives an empty string (as well as _vim_id*() functions did). But if something in returned argument lives in an allocated memory such action will cause double free: once when freeing arguments, then when freeing return value. It did not cause problems yet because msgpack bindings return empty string as {NULL, 0} and nothing was actually allocated. 3. New code in msgpack-gen.lua popped arguments in reversed order, making lua bindings’ signatures be different from API ones.
* executor/converter: Make it possible to supply `{}` to Dictionary argZyX2017-03-27
|
* executor/converter: Make nlua_pop_Object not recursiveZyX2017-03-27
|
* executor/converter: Fix how maxidx is determinedZyX2017-03-27
|
* executor/converter: Fix conversion of self-containing containersZyX2017-03-27
|
* executor: Make sure it works with API valuesZyX2017-03-27
|
* *: Silence linterZyX2017-03-27
|
* viml/executor: Directly generate typval_T valuesZyX2017-03-27
| | | | | Note: this will *still* crash when using API in cases similar to the one described in first commit. Just it needs different code to reproduce.
* eval: Add luaeval functionZyX2017-03-27
No tests yet, no documentation update, no :lua* stuff, no vim module. converter.c should also work with typval_T, not Object. Known problem: luaeval("1", {}) results in PANIC: unprotected error in call to Lua API (attempt to index a nil value) Ref #3823