aboutsummaryrefslogtreecommitdiff
path: root/src/nvim
Commit message (Collapse)AuthorAge
...
| * Generate unicode tables with script when buildingZyX2015-07-26
| |
* | os/fs.c: remove os_file_is_readonly()Justin M. Keyes2015-08-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | os_file_is_readonly() in its current form is equivalent to !os_file_is_writable(). This does not appear to be a bug, because Vim's use of check_file_readonly() (which we changed to os_file_is_readonly()) is equivalent to !os_file_is_writable() in every case. os_file_is_readonly() also fails this test: returns false if the file is non-read, non-write A more useful form would define behavior under these cases: - path is executable (but not writable) - path is non-existent - path is directory But there is no reason for os_file_is_readonly() to exist, so remove it.
* | os_file_is_*: libuv implJustin M. Keyes2015-08-17
| | | | | | | | | | | | - uv_fs_access() is far more robust than access(). In particular, it handles utf16 paths (Windows). - Still need R_OK, W_OK in win_defs.h
* | win_defs.h: define R_OK, W_OK for MSVC.Rui Abreu Ferreira2015-08-17
| |
* | fs.c: implement os_file_is_readable()Justin M. Keyes2015-08-17
| | | | | | | | | | | | | | Use access() because: - We already use it for os_file_is_writable() - Vim's old check_file_readonly() ends up using access() after all.
* | Merge pull request #3179 from ZyX-I/clint-find-new-errorsJustin M. Keyes2015-08-16
|\ \ | | | | | | Add ability to suppress errors to clint.py
| * | vim.h: Fix error which is not suppressed by clintZyX2015-08-16
| | |
* | | rstream.c: Prevent stream closing if a read event is still queued. #3172oni-link2015-08-16
| | | | | | | | | | | | | | | | | | | | | | | | Processing a stream's output can be queued. If stream_close() is called before the queue is processed, the RBuffer containing the stream's data is freed and the next read event would try to access freed memory. To fix this behavior, use the stream's pending requests counter.
* | | Remove unused assignement #3173Pepe Padial2015-08-16
| | | | | | | | | | | | | | | Based on this report http://neovim.io/doc/reports/clang/report-808d3e.html#EndPath
* | | Add introductory text to intro screen. #1885Florian Walch2015-08-15
| | |
* | | tui: restore got_winch in sigwinch_cb #3171Felipe Morales2015-08-15
|/ / | | | | | | Fixes minor regression from #3145.
* | eval: Fix jobwait() to process multiple jobs concurrentlyThiago de Arruda2015-08-13
| | | | | | | | | | | | | | | | | | | | | | | | | | The new event processing architecture changed `jobwait()` semantics: Only one job is processed at time since process_wait only focuses on one queue. This fixes the problem with a few changes: - Allow the event queue polled by `process_wait` to be overriden by a new argument. - Allow the parent queue to be overriden with `queue_replace_parent` - Create a temporary queue that serves as the parent for all jobs passed to `jobwait()`
* | pty_process: Make termios structure a static variableThiago de Arruda2015-08-13
| | | | | | | | The structure has a constant initializer and is only used for reading.
* | rstream: Pass read count to read eventsThiago de Arruda2015-08-13
| | | | | | | | This is necessary to keep events in the same order received from the OS.
* | process: Remove indeterminism that causes reordering of pty eventsoni-link2015-08-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since pty events are queued, it is possible that the reads will be reordered. Example scenario: In the terminal you have output combined from stdout and stderr. A program generates output, first you have some output on stdout, then output on stderr, output on stdout, output on stderr,... The whole output should be interleaved from both streams. Each output generates a read_event and they are placed in the same queue. If the queue is processed, the first read_event will send the whole stdout output to the terminal (on_job_output() consumes the whole buffer). The next read_event is similar for stderr. The remaining read events do nothing because now both RBuffer are already empty. So the terminal would show first the stdout output and after that the stderr output. This commit fixes the problem by disabling stderr stream in pty processes. That's ok because they all represent the same stream(duplicate file descriptors), plus one stream is simpler to deal with.
* | event: Refactor async event processingThiago de Arruda2015-08-13
| | | | | | | | | | | | | | | | | | | | - Improve the implementation of deferred/immediate events. - Use the new queue module to change how/when events are queued/processed by giving a private queue to each emitter. - Immediate events(which only exist to break uv_run recursion) are now represented in the `loop->fast_events` queue. - Events pushed to child queues are propagated to the event loop main queue and processed as K_EVENT keys.
* | queue: Implement a more flexible event queueThiago de Arruda2015-08-13
| |
* | lib: Include libuv circularly linked listThiago de Arruda2015-08-13
| | | | | | | | | | This is simpler and more efficient than klist.h for implementing queues that support insertion or removal at arbitrary positions.
* | terminal: Ensure terminal buffers are flushed on exitThiago de Arruda2015-08-13
| | | | | | | | | | When a terminal closed, make sure it is refreshed before the Terminal structure is freed. Also extract `refresh_terminal` from `on_refresh`.
* | process: Pass loop reference during initializationThiago de Arruda2015-08-13
| | | | | | | | | | Change the API so that it is passed to {uv,pty}_process_init instead of `process_spawn`.
* | loop: Simplify loop.c and move some code to input.cThiago de Arruda2015-08-13
| | | | | | | | | | | | - Declare poll timer in Loop structure instead of a loop_poll_events local variable. - Move deferred event management to input.c
* | msgpack: Replace FUNC_ATTR_DEFERRED by FUNC_ATTR_ASYNCThiago de Arruda2015-08-13
| | | | | | | | | | | | | | | | | | | | | | API functions exposed via msgpack-rpc now fall into two categories: - async functions, which are executed as soon as the request is parsed - sync functions, which are invoked in nvim main loop when processing the `K_EVENT special key Only a few functions which can be safely executed in any context are marked as async.
* | pty_process: Simplify cleanup after error during spawnThiago de Arruda2015-08-13
| |
* | eval: Fixes to job controlThiago de Arruda2015-08-13
| | | | | | | | | | - Ensure TerminalJobData is freed in case of error when spawning pty jobs - Check if job was stopped in every function that receives a job id.
* | events: Add missing function attributes to some APIsThiago de Arruda2015-08-13
| |
* | shell.c: A full RBuffer with no NL can freeze shell output. #3156oni-link2015-08-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | out_data_cb() can return without emptying the full RBuffer (no NL was seen). Because the shell output stream is stopped until space in the Rbuffer is freed up, no more shell output is written. To prevent this, output the full RBuffer when write_output() did not write anything. write_output() can also process the same RBuffer content more than once, if no NL was seen. To prevent NUL bytes from producing new lines (if lines are not written to a buffer), translate NUL to SOH(1). Fixes #2983
* | tui: avoid double-resize on SIGWINCH. #3145Felipe Morales2015-08-10
| |
* | vim-patch:7.4.781 #3065Marco Hinz2015-08-09
| | | | | | | | | | | | | | | | Problem: line2byte() returns one less when 'bin' and 'noeol' are set. Solution: Only adjust the size for the last line. (Rob Wu) Original patch: https://code.google.com/p/vim/source/detail?r=30c9301f33ed76d0b76b9e22362f5e78e26786da
* | vim-patch:7.4.773 #3066Marco Hinz2015-08-09
| | | | | | | | | | | | | | | | Problem: 'langmap' is used in command-line mode when checking for mappings. Solution: Do not use 'langmap' in command-line mode. (Larry Velazquez) Original patch: https://code.google.com/p/vim/source/detail?r=5b1eefbf9a532f32a66fa13abbd671488aaafd5c
* | vim-patch:7.4.776 #3062Marco Hinz2015-08-09
| | | | | | | | | | | | | | | | Problem: Equivalence class for 'd' does not work correctly. Solution: Fix 0x1e0f and 0x1d0b. (Dominique Pelle) Original patch: https://code.google.com/p/vim/source/detail?r=94b17958585153641ad1e813fa144cad57c7170f
* | clipboard: support clipboard=unnamedplus,unnamedBjörn Linse2015-08-07
| |
* | clipboard: fixup inconsequential yet embarrassing mixupBjörn Linse2015-08-06
| |
* | eval: Use proper refcount of msgpack type listsZyX2015-08-05
| |
* | channel.c: Only free a channel after close callbacks are executed #3132oni-link2015-08-05
| | | | | | | | | | | | | | | | | | | | | | | | parse_msgpack() closes a channel's stream on EOF error and the stream's close callback close_cb() is queued for the next libuv loop iteration. When parse_msgpack() returns, it has freed the channel and the queued stream callback will access this freed memory. To prevent this, increase the channel's reference count and let the stream's close callback call decref(). Fixes #3128
* | os_get_user_name() for non UNIX system #2729Rui Abreu Ferreira2015-08-04
| | | | | | | | | | | | | | | | os_get_user_name() requires getuid(), which is only available in UNIX. Return FAIL for non UNIX systems. On FAIL os_get_user_name() fills the buffer with the uid. In Windows libuv uses 0 for uid in stat structs, so 0 is used here too.
* | tui: Fix terminal detection for cursor shape #3129Keerthan Jaic2015-08-04
| | | | | | | | | | Default to DECSCUSR, except for known cases where other codes are used or changing cursor shape is unsupported
* | Merge pull request #3034 from ZyX-I/msgpack-evalJustin M. Keyes2015-08-03
|\ \ | | | | | | msgpack viml functions for dump/restore
| * | eval: Call list_append_allocated_string from list_append_stringZyX2015-08-02
| | |
| * | vim_to_msgpack: Silence -Werror=unitialized compiler errorZyX2015-08-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Compiler warning was found in [QuickBuild logs][1] from [this page][2]. GCC and clang on travis appear to be fine. Relevant log parts: Step Log (master>buildall>build-node?testNode=linux-64>build-and-run-tests>build-and-run-tests-parameterized?buildType=Release>configure-neovim-and-build-nvim) <…> 16:26:31,364 WARN - /home/quickbuild/buildagent/workspace/root/neovim/pull-requests-automated/src/nvim/eval.c: In function ‘f_msgpackdump’: 16:26:31,364 WARN - /home/quickbuild/buildagent/workspace/root/neovim/pull-requests-automated/src/nvim/eval.c:12371:26: error: ‘cur_tv’ may be used uninitialized in this function [-Werror=uninitialized] 16:26:31,364 WARN - /home/quickbuild/buildagent/workspace/root/neovim/pull-requests-automated/src/nvim/eval.c:12328:21: note: ‘cur_tv’ was declared here 16:26:31,938 WARN - cc1: all warnings being treated as errors [1]: http://neovim-qb.szakmeister.net/wicket/page?4-1.ILinkListener-content-buildTab-panel-errorContainer-steps-5-logLink [2]: http://neovim-qb.szakmeister.net/build/2099/overview
| * | ex_cmds*: Silence -Wstrict-prototypes warningsZyX2015-08-02
| | | | | | | | | | | | | | | Due to a number of places where headers generated from these files are included gcc with -DEXITFREE produces *loads* of warnings for these functions.
| * | eval: Remove most of msgpack* functions limitationsZyX2015-08-02
| | |
| * | eval: Add msgpackparse and msgpackdump functionsZyX2015-08-02
| | |
* | | test: call scandir_next_with_dots() more than onceJustin M. Keyes2015-08-01
| | | | | | | | | | | | Also cosmetic reduction.
* | | Add the . and .. entries to glob()Felipe Morales2015-08-01
| | | | | | | | | | | | | | | | | | | | | os_scandir() and os_scandir_next() skip over those, because of the unverlying libuv funcitons behaviour. Fixes #2954
* | | Remove spurious warning when reading directoriesFelipe Morales2015-08-01
| | |
* | | vim-patch:7.4.600 #3081cztchoice2015-07-31
| | | | | | | | | | | | | | | | | | | | | Problem: Memory wasted in struct because of aligning. Solution: Split pos in lnum and col. (Dominique Pelle) https://github.com/vim/vim/commit/v7-4-600
* | | tui: Use underline cursor in Replace modeOmar Sandoval2015-07-26
| | | | | | | | | | | | | | | | | | | | | This is a port of my original contribution to Vim, added in 7.4.687 (https://github.com/vim/vim/commit/v7-4-687). The TUI code has been heavily refactored (see esp. 25ceadab37edba13f5afa78d8b4723da03ef35f0), so this required some translation, but the logic is the same.
* | | api: Simplify UI API on mode changeOmar Sandoval2015-07-26
| |/ |/| | | | | | | | | | | Currently, there are two functions in the UI API that are called when the mode changes: insert_mode() and normal_mode(). These can be folded into a single mode_change() entrypoint which can do whatever it wants based on the mode it is passed, limited to INSERT and NORMAL for now.
* | Merge pull request #2288 from ZyX-I/autovimsynJustin M. Keyes2015-07-26
|\ \ | | | | | | Move part of syntax/vim.vim to syntax/vim/generated.vim
| * | syntax: List NeoVim-specific autocmd eventsZyX2015-07-26
| | | | | | | | | | | | Note: list was copied from master (7a6bf3f418c5ad94ac2ac71f21275a87d08e87b9). I did not add more events there.