Commit Graph

19394 Commits

Author SHA1 Message Date
Florian Walch
58b87579cf CMake: Pass build type CFLAGS to header generator. 2014-11-05 11:54:05 +01:00
Rainer Borene
2d8d4285e4 legacy tests: migrate test7 2014-11-04 12:57:33 -03:00
Rainer Borene
ef08a2c0df legacy tests: migrate test6 2014-11-04 12:57:33 -03:00
Rainer Borene
38bef424a2 legacy tests: migrate test28 2014-11-04 12:57:33 -03:00
Rainer Borene
ca0a55c2a9 legacy tests: migrate test20 2014-11-04 12:57:33 -03:00
Rainer Borene
afe9aa758e legacy tests: migrate test97 2014-11-04 12:57:33 -03:00
Rainer Borene
5ea94e14f0 legacy tests: migrate test46 2014-11-04 12:57:33 -03:00
Rainer Borene
ac52d84f16 legacy tests: migrate test27 2014-11-04 12:57:33 -03:00
Rainer Borene
34cc2b1e33 legacy tests: migrate test54 2014-11-04 12:57:33 -03:00
Rainer Borene
fd503f1432 legacy tests: migrate test41 2014-11-04 12:57:33 -03:00
Rainer Borene
f85051b67e legacy tests: migrate test23 2014-11-04 12:57:33 -03:00
Rainer Borene
ffd5c43e84 legacy tests: migrate test56 2014-11-04 12:57:33 -03:00
Rainer Borene
4873171fc6 legacy tests: migrate test_autoformat_join 2014-11-04 12:57:33 -03:00
Rainer Borene
b67ad4f67f legacy tests: migrate test_changelist 2014-11-04 12:57:33 -03:00
Rainer Borene
4ca353d3bd legacy tests: migrate test81 2014-11-04 12:57:33 -03:00
Rainer Borene
79cd4a98ec legacy tests: migrate test_utf8 2014-11-04 12:57:33 -03:00
Rainer Borene
683b75d052 legacy tests: migrate test_insertcount 2014-11-04 12:57:33 -03:00
Rainer Borene
5b7d9bbd08 legacy tests: migrate test_options 2014-11-04 12:57:32 -03:00
Rainer Borene
b33c92439b legacy tests: migrate test18 2014-11-04 12:57:32 -03:00
Rainer Borene
481c449c72 legacy tests: migrate test106 2014-11-04 12:57:32 -03:00
Rainer Borene
6c90902c7a legacy tests: migrate test22 2014-11-04 12:57:32 -03:00
Rainer Borene
b780e946d5 legacy tests: migrate test9 2014-11-04 12:57:32 -03:00
Rainer Borene
d4f92e521c legacy tests: migrate test102 2014-11-04 12:57:32 -03:00
Rainer Borene
dbc7a8d987 legacy tests: migrate test4 2014-11-04 12:57:32 -03:00
henadzit
e5389600ec Passing current range to provider calls
- updated script_host_execute and script_host_execute_file to pass current range
2014-11-04 09:47:06 -03:00
Thiago de Arruda
c9cc2aa53d event: Assert that all libuv handles are closed on exit.
Travis build will now fail when core files are dumped, so call `abort()` when
the event loop is not fully released before exiting.
2014-11-03 21:51:51 -03:00
Thiago de Arruda
636fc6b08d channel: Move mch_exit(0) call to a non-deferred event handler
Since `mch_exit` will re-enter event_poll, it is necessary to call it outside
libuv event loop.
2014-11-03 21:51:51 -03:00
Thiago de Arruda
74b9f33a95 event: Do an early return from event_teardown when not initialized 2014-11-03 21:51:51 -03:00
Thiago de Arruda
75a5674cd2 event: Ensure the event loop has been cleaned up in event_teardown
- Add input_teardown/signal_teardown to take care of closing signal/stdin
  handles.
- Call those functions in event_teardown, and ensure there are no active handles
  by entering an infinite loop when there are unclosed handles(think of this as
  an assertion that can't go unoticed on travis).
- Move event_teardown call to the end of mch_exit. That is required because
  event_poll may still be called in that function.
2014-11-02 16:47:50 -03:00
Thiago de Arruda
a1dd70b1d0 event: Reintroduce the immediate event queue
Commit @264e0d872c("Remove automatic event deferral") removed the immediate
event queue because event deferral now had to be explicit. The problem is that
while some events don't need to be deferred, they still can result in recursive
`event_poll` calls, and recursion is not supported by libuv. Examples of those
are msgpack-rpc requests while a server->client request is pending, or signals
which can call `mch_exit`(and that will result in `uv_run` calls).

To fix the problem, this reintroduces the immediate event queue for events that
can potentially result in event loop recursion. The non-deferred events are
still processed in `event_poll`, but only after `uv_run` returns.
2014-11-02 16:47:50 -03:00
Thiago de Arruda
e378965a44 event: Rename pending_events to deferred_events 2014-11-02 16:47:50 -03:00
Thiago de Arruda
5322333b47 server: Refactor to ensure server handles are always properly closed
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`.
2014-11-02 16:47:50 -03:00
Thiago de Arruda
d4f032a133 wstream: Memory allocation improvements
- Rename WriteData to WRequest
- Inline uv_write_t into WRequest, avoiding an extra allocation
- Manage WBuffer/WRequest instances using klib memory pools
2014-11-02 16:47:50 -03:00
Thiago de Arruda
0ffeb140a4 job: Simplify job_teardown function
Remove the current teardown logic and reuse the job top timers with
event_poll_until all jobs exit or are killed.
2014-11-02 16:47:50 -03:00
Justin M. Keyes
48847fbafc Merge pull request #951 from bfredl/curfix
api: window_set_cursor doesn't always update position.
2014-11-01 21:24:58 -04:00
Victor Fonseca
235287810e coverity/74362: Initialized Array using ARRAY_DICT_INIT 2014-11-01 18:47:09 -02:00
Björn Linse
b34705bf5f api/window_set_cursor: make sure cursor line is visible.
Previously, the cursor could be left outside the visible range if window
is not the current window
2014-11-01 12:04:47 +01:00
Thiago de Arruda
d878569dc7 job: Fix job_wait to properly cleanup the job when it exits. 2014-10-31 22:52:10 -03:00
Thiago de Arruda
d5d98f14b6 job: Refactor how job kill timeouts are handled
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.
2014-10-31 22:52:10 -03:00
Thiago de Arruda
01761cdd32 job/shell: Refactor os_call_shell/os_system to share code 2014-10-31 22:52:10 -03:00
Thiago de Arruda
88c4747556 rstream: Add rstream_buffer method to get a reference to RBuffer 2014-10-31 22:52:10 -03:00
Thiago de Arruda
68015367a0 shell: Rename dyn_buffer_t to DynamicBuffer
To follow our coding conventions
2014-10-31 22:52:10 -03:00
Thiago de Arruda
c92d17b4aa job: Let job_start callers to selectively ignore stdio
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.
2014-10-31 22:52:10 -03:00
Thiago de Arruda
25e26e0056 job: Close libuv handles when uv_spawn fails
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
2014-10-31 22:52:10 -03:00
Scott Prager
e94c9db43d Mark patch 427 as included. (#1357) 2014-10-30 09:57:04 -04:00
Justin M. Keyes
181e652ee1 Merge pull request #1312 from GokuITA/coverity1289
coverity/71507: Unchecked return value (CHECKED_RETURN)
2014-10-30 02:12:28 -04:00
Justin M. Keyes
6b47e13ee0 fs.c: add FUNC_ATTR_NONNULL_ALL to all functions 2014-10-30 05:17:12 +00:00
Thiago de Arruda
3800b24c5a api: Add vim_input function and mark vim_feedkeys as deferred
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).
2014-10-29 23:33:10 -03:00
Thiago de Arruda
94527245a5 input: Fix sizes of input/read buffers
Input buffer must be bigger than read buffer to ensure it always has space for
converted data.
2014-10-29 23:32:55 -03:00
Thiago de Arruda
4fd9ee4a6b input/job: process ctrl+c and do conversion in the read callback
- 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)
2014-10-29 23:08:43 -03:00