aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Merge pull request #1521 from three-comrades/valgrindJohn Szakmeister2014-11-22
|\ | | | | Fix Makefile for running valgrind with old tests.
| * Fix Makefile for running valgrind with old tests.Julian Mehne2014-11-22
|/
* Merge pull request #1513 from fwalch/vimpatch-scriptJustin M. Keyes2014-11-21
|\ | | | | Add helper script for porting vim patches.
| * Add helper script for porting vim patches.Florian Walch2014-11-21
| |
* | Merge PR #1518 'Improve functional tests and perform explicit K_EVENT handling'Thiago de Arruda2014-11-21
|\ \
| * | event: No longer process K_EVENT automaticallyThiago de Arruda2014-11-21
| | | | | | | | | | | | | | | | | | | | | Two new functions, `event_enable_deferred()`/`event_disable_deferred()` have to be called by code that is capable of handling asynchronicity. User-dialog states like "press ENTER to continue" or the swap file confirmation no longer will generate K_EVENT.
| * | test: Fix problems in job_spec.luaThiago de Arruda2014-11-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | Nvim wasn't exiting cleanly in some job tests due to errors. This can't be noticed until the next commit, which will perform a refactoring to selectively process K_EVENT, so the `qa!` command executed at the end of each test blocks forever if there are errors which require the user to press ENTER(in that state Nvim no longer will process events).
| * | test: Refactor functional helpers to use vim_inputThiago de Arruda2014-11-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The vim_input function accepts raw terminal input and so is better to emulate real user, especially because it is not deferred as vim_feedkeys. Using this function required a number of changes: - expect() was refactored to use curbuf_contents() - The vim_eval function in request() was moved to curbuf_contents(). For most cases this is enough(we only care for synchronizing api calls with user input when verifying buffer contents). - <C-@>(NUL) is preprocessed before being passed to replace_termcodes. - Legacy test 4 had a bug that only became visible when using vim_input, it is fixed now. - An extra blank line deletion was required for test 101 The last two items show that vim_feedkeys because it is not 100% equivalent to receiving terminal input.
| * | input: Refactor to ensure user input has higher priorityThiago de Arruda2014-11-21
|/ /
* | Merge PR #1515 'Refer to plugins running outside Nvim as "remote plugins"'Thiago de Arruda2014-11-21
|\ \
| * | runtime: Refer to plugins running outside Nvim as "remote plugins"Thiago de Arruda2014-11-21
|/ / | | | | | | | | | | - Rename autoload/rpc to autoload/remote - External plugins are now remote plugins - External plugins directory is "rplugin"
* | Merge pull request #1373 from elmart/fix-outofdate-docJustin M. Keyes2014-11-21
|\ \ | | | | | | Fix outdated doc: Connecting to nvim through python REPL.
| * | Fix warnings: Fix outdated doc: Connecting to nvim through python REPL.Eliseo Martínez2014-11-21
|/ / | | | | | | | | After neovim/python-client@b8b48bbe8fe9ee41ad73c9bd5a45e808504399e2, docs were no longer relevant.
* | Merge PR #1420 'Migrate legacy tests (2nd batch)'Thiago de Arruda2014-11-20
|\ \
| * | legacy tests: migrate test105Rainer Borene2014-11-20
| | |
| * | legacy tests: migrate test26Rainer Borene2014-11-20
| | |
| * | legacy tests: migrate test101Rainer Borene2014-11-20
| | |
| * | legacy tests: migrate test75Rainer Borene2014-11-20
| | |
| * | legacy tests: migrate test51Rainer Borene2014-11-20
| | |
| * | legacy tests: migrate test43Rainer Borene2014-11-20
| | |
| * | legacy tests: migrate test33Rainer Borene2014-11-20
| | |
| * | legacy tests: migrate test67Rainer Borene2014-11-20
| | |
| * | legacy tests: migrate test66Rainer Borene2014-11-20
| | |
| * | legacy tests: migrate test25Rainer Borene2014-11-20
| | |
| * | legacy tests: migrate test104Rainer Borene2014-11-20
| | |
| * | legacy tests: implement :source helper method.Rainer Borene2014-11-20
| | |
| * | legacy tests: remove test21 filesRainer Borene2014-11-20
| | |
| * | legacy tests: migrate test5Rainer Borene2014-11-20
|/ /
* | Merge PR #1504 'Change external plugin dir, manifest and improve docs'Thiago de Arruda2014-11-20
|\ \ | |/ |/|
| * doc: Add nvim_provider/external_plugin to doc MakefileThiago de Arruda2014-11-20
| |
| * doc: Update external plugin documentationThiago de Arruda2014-11-20
| |
| * runtime: Prepend the vimrc filename to the external plugin manifestThiago de Arruda2014-11-20
| | | | | | | | | | This is required to support multiple vimrcs with each having it's own set of installed external plugins.
| * runtime: Change external plugin directory to "external-plugin"Thiago de Arruda2014-11-20
|/
* Merge pull request #1488 from fwalch/invert-wconversionJustin M. Keyes2014-11-19
|\ | | | | Invert -Wconversion handling & fix some warnings.
| * Wconversion: Fix warnings in digraph.c.Florian Walch2014-11-19
| |
| * Wconversion: Fix warnings in cursor_shape.c.Florian Walch2014-11-19
| |
| * CMake: Set -Wconversion by default.Florian Walch2014-11-19
|/
* Merge pull request #1478 from elmart/clang-analysis-fixes-4Justin M. Keyes2014-11-19
|\ | | | | Fix clang analysis warnings. (4)
| * Fix warnings: eval.c: f_rpcrequest(): Garbage value: MI.Eliseo Martínez2014-11-18
| | | | | | | | | | | | | | | | Problem : Assigned value is garbage or undefined @ 12578. Diagnostic : Multithreading issue. Rationale : Error can only occur if global `provider_call_nesting` is changed while function is executing. Resolution : Use local copy of global.
| * Fix warnings: screen.c: screenalloc(): Np arg (2): MI.Eliseo Martínez2014-11-18
| | | | | | | | | | | | | | | | | | | | | | Problems : Null pointer argument in call to memory copy function @ 6465. Null pointer argument in call to memory copy function @ 6475. Diagnostic : Multithreading issues. Rationale : Problem occurs if globals `enc_utf8` and `enc_dbcs` are modified while function is executing. Resolution : Use local copy of globals.
| * Fix warnings: eval.c: do_return(): Np dereference: FP.Eliseo Martínez2014-11-18
| | | | | | | | | | | | | | | | | | | | | | Problem : Dereference of null pointer @ 18841. Diagnostic : False positive. Rationale : Suggested error path takes `reanimate` branch at 18827, assigning `rettv = current_funccal->rettv`. Then, inmediately after, it supposes rettv is null, which cannot happen, since current_funccal->rettv should always be non null. Resolution : Assert current_funccal->rettv non null.
| * Fix warnings: eval.c: add_nr_var(): Out of bounds: FP.Eliseo Martínez2014-11-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem : Out-of-bound array access @ 18737. Diagnostic : False positive. Rationale : Situation is intentional. `dictitem_T` is a prefix all dict items whill share, but actual size of each item will be different depending on its key length. `di_key` array field is declared of size 1 just to have a field name, but real size will vary for each item. Resolution : Make analyzer ignore it. This could be refactored to use C99-allowed variable length arrays, but eval.c is bound to dissappear, so no effort is done in that sense.
| * Fix warnings: eval.c: call_user_func(): Out of bounds: FP.Eliseo Martínez2014-11-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem : Out-of-bound array access @ 18429. Diagnostic : False positive. Rationale : Situation is intentional. `dictitem_T` is a prefix all dict items whill share, but actual size of each item will be different depending on its key length. `di_key` array field is declared of size 1 just to have a field name, but real size will vary for each item. Resolution : Make analyzer ignore it. This could be refactored to use C99-allowed variable length arrays, but eval.c is bound to dissappear, so no effort is done in that sense.
| * Fix warnings: eval.c: get_user_func_name(): Np dereference: FP.Eliseo Martínez2014-11-18
| | | | | | | | | | | | | | | | Problem : Dereference of null pointer @ 18216. Diagnostic : False positive. Rationale : `hi` and `done` are static. Intended usage is for the first call to have idx == 0, so that they are initialized. Resolution : Assert hi after (optional) initialization.
| * Fix warnings: eval.c: clear_tv(): Bad free: RI.Eliseo Martínez2014-11-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem : Bad free @ 16076. Diagnostic : Real issue. Rationale : A non-allocated string is set at 4127, which later on can be tried to be freed if aborting. Resolution : Detect particular case (func with empty name) and don't free in that case. Another solution (use allocated string) was tried before, but it produced a leak difficult to solve. Finally applied solution works, but it produces a new false positive warning (Np dereference at 13763), deactivated by `assert(ptrs[i].item->li_next)`.
| * Fix warnings: eval.c: item_compare(): Garbage value: MI.Eliseo Martínez2014-11-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem : Result of operation is garbage or undefined @ 13565. Diagnostic : Multithreading issue. Rationale : Problem occurs only if global (static) variable `item_compare_keep_zero` changes after being used by `do_sort_uniq` but before being used by `item_compare` or `item_compare2`. Resolution : This is not an intra-function problem, as other MI's before, but rather an inter-function one. Thus, it can't be solved by using local copy of global. Therefore, we are forced to do a bit refactoring. We can't simply add a bool param to item_compare/item_compare2, as they couldn't be passed to qsort() that way. So, item_compare/item_compare2 are added a bool param and curried versions of them are added and used in their place.
| * Fix warnings: eval.c: dictitem_alloc(): Out-of-bounds access: FP.Eliseo Martínez2014-11-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem : Out-of-bound array access @ 5737. Diagnostic : False positive. Rationale : Situation is intentional. `dictitem_T` is a prefix all dict items whill share, but actual size of each item will be different depending on its key length. `di_key` array field is declared of size 1 just to have a field name, but real size will vary for each item. Resolution : Make analyzer ignore it. This could be refactored to use C99-allowed variable length arrays, but eval.c is bound to dissappear, so no effort is done in that sense.
| * Fix warnings: eval.c: set_var_lval(): Np dereference: FP.Eliseo Martínez2014-11-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem : Dereference of null pointer @ 2273. Diagnostic : False positive. Rationale : Suggested error would happen when assigning an rvalue with more items than the lvalue. Then we would enter conditional at: ``` if (lp->ll_li->li_next == NULL) { /* Need to add an empty item. */ list_append_number(lp->ll_list, 0); } lp->ll_li = lp->ll_li->li_next; ``` Analyzer thinks the value assigned to lp->ll_li is still NULL and is hit on the next iteration. Resolution : Assert lp->ll_li->li_next is not null anymore after list_append_number().
| * Fix warnings: window.c: tabline_height(): Np dereference: FP.Eliseo Martínez2014-11-18
| | | | | | | | | | | | | | | | Problem : Dereference of null pointer @ 4978. Diagnostic : False positive. Rationale : tabline_height() shouldn't be called when a tab doesn't exist yet (this is, before initialization). Resolution : Assert function precondition.
| * Fix warnings: window.c: win_drag_vsep_line(): Np dereference: FP.Eliseo Martínez2014-11-18
| | | | | | | | | | | | | | | | | | | | | | | | Problem : Dereference of null pointer @ 4512. Diagnostic : False positive. Rationale : Suggested error path implies `fr == NULL` after 4504. That's not possible, because: - curfr and curfr->next must be both nonnull, as we are dragging the divider between the two. - after conditional, fr is one of those two (the one that grows). Resolution : Assert fr.