aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* | | Merge pull request #1566 from splinterofchaos/fix-save-tv-as-stringJustin M. Keyes2014-11-27
|\ \ \ | | | | | | | | eval: Fix coverity false positive.
| * | | eval: Fix coverity false positive.Scott Prager2014-11-27
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | ** CID 74786: Resource leak (RESOURCE_LEAK) /src/nvim/eval.c: 10614 in f_jobsend() /src/nvim/eval.c: 10616 in f_jobsend() save_tv_as_string() should return NULL and input_len <= 0 for an empty string or error. Callers should check that input != NULL instead of input_len > 0 and assert(input == NULL) when the length must be checked.
* | | Merge pull request #1516 from fmoralesc/new-patchesJustin M. Keyes2014-11-27
|\ \ \ | | | | | | | | vim-patch:7.4.425,435,467,472,473,478
| * | | vim-patch:7.4.478: Use character lenght for 'showbreak'Felipe Morales2014-11-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | vim-patch:7.4.478 Problem: Using byte length instead of character length for 'showbreak'. Solution: Compute the character length. (Marco Hinz) https://code.google.com/p/vim/source/detail?r=v7-4-478
| * | | vim-patch:7.4.473Felipe Morales2014-11-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | vim-patch:7.4.473 Problem: Cursor movement is incorrect when there is a number column/sign/fold column and 'sbr' is displayed. Solution: Adjust the column for 'sbr'. (Christian Brabandt) https://code.google.com/p/vim/source/detail?r=v7-4-473
| * | | vim-patch:7.4.472: Only draw "precedes" entry in 'listchar' when 'list' is onFelipe Morales2014-11-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | vim-patch:7.4.472 Problem: The "precedes" entry in 'listchar' will be drawn when 'showbreak is set and list is not. Solution: Only draw this character when 'list' is on. (Christian Brabandt) https://code.google.com/p/vim/source/detail?r=af998690a8841d4df95cea0bed4246f2ba98e247
| * | | vim-patch:7.4.467: Avoid a problem with unwanted linebreaks in block modeFelipe Morales2014-11-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | vim-patch:7.4.467 Avoid a problem with unwanted linebreaks in block mode https://code.google.com/p/vim/source/detail?r=v7-4-467
| * | | vim-patch:7.4.435: Disable linebreak temporarily when formatting lines.Felipe Morales2014-11-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | vim-patch:7.4.435 Problem: Line formatting behaves differently when 'linebreak' is set. (mvxxc) Solution: Disable 'linebreak' temporarily. (Christian Brabandt) https://code.google.com/p/vim/source/detail?r=v7-4-435
| * | | vim-patch:7.4.425: Adjust virtcol when showbreak is setFelipe Morales2014-11-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | vim-patch:7.4.425 Problem: When 'showbreak' is used "gj" may move to the wrong position. (Nazri Ramliy) Solution: Adjust virtcol when 'showbreak' is set. (Christian Brabandt) https://code.google.com/p/vim/source/detail?r=v7-4-425
* | | | ui: Move check_col/check_row functions to mbyte.cThiago de Arruda2014-11-27
| | | | | | | | | | | | | | | | | | | | These functions were only being used by mbyte.c, so move them and add the "static" modifier.
* | | | Remove code defined under USE_IM_CONTROL #ifdefsThiago de Arruda2014-11-27
| |/ / |/| | | | | | | | This is not being used and should not be part of the core anyway.
* | | ui: Remove redundant ui.h includesThiago de Arruda2014-11-27
| | | | | | | | | | | | Also move read_error_exit to os/input.c
* | | ui: Extract mouse.c/mouse.hThiago de Arruda2014-11-27
| | |
* | | ui: Remove ui_delay, ui_breakcheck and ui_set_shellsizeThiago de Arruda2014-11-27
| | | | | | | | | | | | | | | These functions only used to call another os_* function, so remove them and replace all occurences in the project.
* | | ui: Remove ui_inchar/ui_char_availThiago de Arruda2014-11-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | Also: - Remove NO_CONSOLE_INPUT/NO_CONSULE preprocessor conditionals - Remove ctrl_c_interrupts variable, check for mapped_ctrl_c directly in process_interrupts() - Move ui_inchar profiling to input_poll which is where Nvim blocks for input.
* | | Add Boolean argument escape_csi to vim_feedkeysRui Abreu Ferreira2014-11-27
| |/ |/| | | | | | | | | | | | | | | - By default vim_feedkeys escaped all input for CSI/K_SPECIAL bytes before using it. However since vim_replace_termcodes() also escapes the input string chaining these functions together escapes input twice - vim_feedkeys() now takes a third Boolean argument to enable/disable escaping - Breaks API compatibility
* | Merge pull request #1552 from equalsraf/tb-fix-1530Justin M. Keyes2014-11-25
|\ \ | | | | | | add missing refcount increment for systemlist()
| * | Add missing refcount increment for systemlist()Rui Abreu Ferreira2014-11-25
| | | | | | | | | | | | | | | | | | | | | - get_system_output_as_rettv() was missing a refcount increment when returning an empty list, i.e. when there was no output - we now use rettv_list_aloc() instead of list_alloc() - issue #1530
* | | Fix substitute newline: Memory functions: Improve style.Eliseo Martínez2014-11-24
|/ / | | | | | | | | | | | | | | `try_malloc` was changed in 8bb2c2c0742c57150655e18cf8418a758cebdce8 to avoid a warning when size is 0. Then, this improves some things on that: - Use local vars instead of changing parameters. - Homogenize style for other related functions.
* | Fix Makefile for running valgrind with old tests.Julian Mehne2014-11-22
| |
* | 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.
* | input: Refactor to ensure user input has higher priorityThiago de Arruda2014-11-21
| |
* | 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: remove test21 filesRainer Borene2014-11-20
| |
* | legacy tests: migrate test5Rainer Borene2014-11-20
| |
* | 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
| |
* | 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.