aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* server: Refactor to ensure server handles are always properly closedThiago de Arruda2014-11-02
| | | | | | | | If the server fails to start(due to used address for example), the `server_start` function was freeing the handle memory before it was properly removed from libuv event loop queue. Fix that by replacing the `free(server)` call by `uv_close` call, which will take care of freeing the server on the next event loop iteration. Also replace `EMSG` calls by `ELOG`/`WLOG`.
* wstream: Memory allocation improvementsThiago de Arruda2014-11-02
| | | | | | - Rename WriteData to WRequest - Inline uv_write_t into WRequest, avoiding an extra allocation - Manage WBuffer/WRequest instances using klib memory pools
* job: Simplify job_teardown functionThiago de Arruda2014-11-02
| | | | | Remove the current teardown logic and reuse the job top timers with event_poll_until all jobs exit or are killed.
* Merge pull request #951 from bfredl/curfixJustin M. Keyes2014-11-01
|\ | | | | api: window_set_cursor doesn't always update position.
| * api/window_set_cursor: make sure cursor line is visible.Björn Linse2014-11-01
| | | | | | | | | | Previously, the cursor could be left outside the visible range if window is not the current window
* | coverity/74362: Initialized Array using ARRAY_DICT_INITVictor Fonseca2014-11-01
|/
* job: Fix job_wait to properly cleanup the job when it exits.Thiago de Arruda2014-10-31
|
* job: Refactor how job kill timeouts are handledThiago de Arruda2014-10-31
| | | | | | | Use a timer to periodically compare the current HR time against the HR time of when `job_stop` was called. After 1 second, send SIGTERM, after 2 seconds, send SIGKILL. The timer is only active when there's at least one `job_stop` call pending.
* job/shell: Refactor os_call_shell/os_system to share codeThiago de Arruda2014-10-31
|
* rstream: Add rstream_buffer method to get a reference to RBufferThiago de Arruda2014-10-31
|
* shell: Rename dyn_buffer_t to DynamicBufferThiago de Arruda2014-10-31
| | | | To follow our coding conventions
* job: Let job_start callers to selectively ignore stdioThiago de Arruda2014-10-31
| | | | | | | | Passing NULL as the callback for stdout/stderr will result in job_start ignoring stdout/stderr, respectively. A 'writable' boolean argument was also added, and when false `job_start` will ignore stdin. Also, refactor os_system to allow passing NULL as the `output` argument.
* job: Close libuv handles when uv_spawn failsThiago de Arruda2014-10-31
| | | | | | | Commit @709685b4612f4 removed the close_job_* calls when uv_spawn fails because of memory errors when trying to cleanup unitialized {R,W}Stream instances, but the uv_pipe_t instances must be closed because they are added to the event loop queue by previous `uv_pipe_init()` calls
* Mark patch 427 as included. (#1357)Scott Prager2014-10-30
|
* Merge pull request #1312 from GokuITA/coverity1289Justin M. Keyes2014-10-30
|\ | | | | coverity/71507: Unchecked return value (CHECKED_RETURN)
| * coverity/71507: Unchecked return value (CHECKED_RETURN)Victor Fonseca2014-10-20
| | | | | | | | Don't check for err->set since object_to_vim always return false when error is set
* | fs.c: add FUNC_ATTR_NONNULL_ALL to all functionsJustin M. Keyes2014-10-30
| |
* | api: Add vim_input function and mark vim_feedkeys as deferredThiago de Arruda2014-10-29
| | | | | | | | | | | | | | | | The `vim_feedkeys` must be deferred because it can potentially free the buffer passed to `os_inchar`(which in turns calls `vim_feedkeys` indirectly). The new `vim_input` function can be used to emulate user input(Since it does not mess with the typeahead, it is safe to execute without deferring).
* | input: Fix sizes of input/read buffersThiago de Arruda2014-10-29
| | | | | | | | | | Input buffer must be bigger than read buffer to ensure it always has space for converted data.
* | input/job: process ctrl+c and do conversion in the read callbackThiago de Arruda2014-10-29
| | | | | | | | | | | | | | | | | | - Extract `process_interrupts` out of `convert_input` - Instead of waiting for os_breakcheck/os_inchar calls, call `convert_input` and `process_interrupts` directly from the read callback in input.c. - Remove the `settmode` calls from `job_wait`. Now that interrupts are processed in the event loop, there's no need to set the terminal to cooked which introduces other problems(ref 7.4.427)
* | fix #1027: :wundo segfault in new, non-empty bufferJustin M. Keyes2014-10-26
| |
* | Merge pull request #1347 from splinterofchaos/433Justin M. Keyes2014-10-29
|\ \ | | | | | | vim-patch:7.4.433
| * | version: Mark patch 430 NA.Scott Prager2014-10-25
| | | | | | | | | | | | Not relevant because we always compile with +conceal.
| * | vim-patch:7.4.433Scott Prager2014-10-25
| | | | | | | | | | | | | | | | | | | | | Problem: Test 75 fails on MS-Windows. Solution: Use ":normal" instead of feedkeys(). (Michael Soyka) https://code.google.com/p/vim/source/detail?r=v7-4-433
* | | fix 'sign unplace id'Kartik K. Agaram2014-10-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the introduction of the FOR_ALL_BUFFERS macro, 'sign unplace id' without a buffer was only removing the sign from the first buffer rather than all buffers, as described in the documentation. :help sign-unplace -- modeline discussion: https://github.com/akkartik/neovim/commit/7863c247db#commitcomment-8342590
* | | api: Implement vim_command_output functionThiago de Arruda2014-10-28
| | | | | | | | | | | | | | | This function can be used by API clients to execute a command and capture the output.
* | | job_start: Do not close in/out/err on error.Scott Prager2014-10-28
| | | | | | | | | | | | | | | | | | The streams job_close_*() reference have not been initialized by the time we call uv_spawn() and libuv closes these pipes for us when spawn() fails.
* | | job/valgrind: Fix invalid reads/missing free.Scott Prager2014-10-28
| | | | | | | | | | | | | | | | | | | | | | | | The JobEvent structure may refer to a job after it has been freed. Apply @tarruda's patch to extract the job data before pushing the event. Also, fix the type, "data" -> "job", in on_job_exit() and free the job name in the last job event.
* | | input: Fix conversion error in `convert_input()`Thiago de Arruda2014-10-28
| | | | | | | | | | | | | | | | | | | | | The `rbuffer_consumed` was being passed a consumed count from another buffer, causing integer overflow in `rbuffer_relocate`. Fixes #1343
* | | msgpack-rpc: Terminate server->client calls when the channel closesThiago de Arruda2014-10-28
| | |
* | | channel: fix `REQ` definition for msgpack-rpc loggingThiago de Arruda2014-10-28
|/ /
* | msgpack-rpc: Improve logging of msgpack-rpc messagesThiago de Arruda2014-10-23
| | | | | | | | | | | | | | | | | | | | - Expose more logging control from the log.c module(get log stream and omit newlines) - Remove logging from the generated functions in msgpack-gen.lua - Refactor channel.c/helpers.c to log every msgpack-rpc payload using msgpack_object_print(a helper function from msgpack.h) - Remove the api_stringify function, it was only useful for logging msgpack-rpc which is now handled by msgpack_object_print.
* | job: Only decrease refcount after `settmode` in `job_wait`Thiago de Arruda2014-10-23
| | | | | | | | This is required to prevent the scenario explained by @akkartik in #1324
* | job: Refactor to ensure that all callbacks will be invokedThiago de Arruda2014-10-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | It's possible that a child process won't close it's standard streams, even after it exits. This can be evidenced with the "xclip" program: :call system('xclip -i -selection clipboard', 'DATA') Before this commit, the above command wouldn't return, even though the xclip program had exited. That is because `xclip` wasn't closing it's stdout/stderr streams, which would block pending_refs from ever reaching 0. Now the job.c module was refactored to ensure all streams are closed when the uv_process_t handle is closed.
* | msgpack-rpc: Fix error handling and leak in call_request_handlerThiago de Arruda2014-10-23
| | | | | | | | | | Free the arguments array after sending the response and also avoid double-sending responses in cases of errors.
* | msgpack-rpc: Ensure stdio channels are properly closedThiago de Arruda2014-10-23
| | | | | | | | | | | | When stdio was closed, parse_msgpack was called with eof == true, with caused a free_channel call. To ensure the correct behavior for all types of channels, the close_channel must be called before free_channel.
* | Merge pull request #1332 from splinterofchaos/listbrJustin M. Keyes2014-10-23
|\ \ | | | | | | vim-patch:7.4.422
| * | vim-patch:7.4.422Scott Prager2014-10-23
| | | | | | | | | | | | | | | | | | | | | | | | Problem: When using conceal with linebreak some text is not displayed correctly. (Grüner Gimpel) Solution: Check for conceal mode when using linebreak. (Christian Brabandt) https://code.google.com/p/vim/source/detail?r=v7-4-422
* | | version: update patches to 488Scott Prager2014-10-23
| | |
* | | version: More NA patches.Scott Prager2014-10-23
| | |
* | | vim-patch:7.4.406Scott Prager2014-10-23
|/ / | | | | | | | | | | | | Problem: Test 72 and 100 fail on MS-Windows. Solution: Set fileformat to unix in the tests. (Taro Muraoka) https://code.google.com/p/vim/source/detail?r=v7-4-406
* | legacy tests: migrate test35. #1318Nate Sullivan2014-10-22
| | | | | | | | | | Migrate vim's integration test 35 (increment/decrement commands) to lua/busted.
* | debug: Improve debugging of msgpack-rpc requestsThiago de Arruda2014-10-22
| | | | | | | | | | | | - Add the api_stringify function to display API objects - Use api_stringify to display request arguments and return values in DLOG statements.
* | debug: Fix broken DLOG macro callsThiago de Arruda2014-10-22
| |
* | input: Fix ctrl+c handling in convert_inputThiago de Arruda2014-10-22
| |
* | input: Don't remove Ctrl+C from the input_bufferThiago de Arruda2014-10-21
| |
* | event: Remove direct calls to `uv_run` from job.c/shell.cThiago de Arruda2014-10-21
| |
* | compilation: Add -Wconversion to more files and validate CONV_SOURCESThiago de Arruda2014-10-21
| | | | | | | | | | | | All files under the os, api and msgpack_rpc directories have -Wconversion automatically applied. CONV_SOURCES is also checked for missing files(when renaming, for example)
* | api: Add FUNC_ATTR_DEFERRED attribute to a number of functionsThiago de Arruda2014-10-21
| | | | | | | | | | Any function that can directly mutate the screen or execute vimscript had the attribute applied.
* | msgpack-rpc: Allow selective deferral API callsThiago de Arruda2014-10-21
| | | | | | | | | | | | | | | | | | | | | | | | | | Since all API functions now run immediately after a msgpack-rpc request is parsed by libuv callbacks, a mechanism was added to override this behavior and allow certain functions to run in Nvim main loop. The mechanism is simple: Any API function tagged with the FUNC_ATTR_DEFERRED (a "dummy" attribute only used by msgpack-gen.lua) will be called when Nvim main loop receives a K_EVENT key. To implement this mechanism it was necessary some restructuration on the msgpack-rpc modules, especially in the msgpack-gen.lua script.