Commit Graph

2067 Commits

Author SHA1 Message Date
Felipe Morales
c82eb31a5d vim-patch:7.4.473
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
2014-11-27 19:40:51 -03:00
Felipe Morales
42dc00b767 vim-patch:7.4.472: Only draw "precedes" entry in 'listchar' when 'list' is on
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
2014-11-27 19:40:51 -03:00
Felipe Morales
35e2398441 vim-patch:7.4.467: Avoid a problem with unwanted linebreaks in block mode
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
2014-11-27 19:40:51 -03:00
Felipe Morales
cfa8b4a186 vim-patch:7.4.435: Disable linebreak temporarily when formatting lines.
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
2014-11-27 19:40:51 -03:00
Felipe Morales
ef7eab1ec6 vim-patch:7.4.425: Adjust virtcol when showbreak is set
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
2014-11-27 19:40:51 -03:00
Scott Prager
927c6a148d eval: Fix coverity false positive.
** 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.
2014-11-27 15:12:35 -05:00
Florian Walch
ce5d6506ba Wconversion: Change long to int64_t in cursor_shape.c, digraph.c.
Warnings were fixed in #1488.
2014-11-27 21:08:07 +01:00
Florian Walch
dc75324997 Wconversion: Remove regexp_nfa.c from list. 2014-11-27 21:08:07 +01:00
Florian Walch
10b938bdb5 Wconversion: Fix warnings in indent_c.c. 2014-11-27 21:08:07 +01:00
Florian Walch
e3fca96e18 Wconversion: Fix warnings in file_search.c. 2014-11-27 21:08:07 +01:00
Florian Walch
cfe4cada30 Wconversion: Fix warnings in ex_eval.c. 2014-11-27 21:06:27 +01:00
Scott Prager
f75de5e671 strings: Enable -Wconvert. 2014-11-27 14:38:26 -05:00
Scott Prager
ecf81c3f20 strings/memory: constify and func_attr.
Fix MB_COPY_cHAR() to accept const pointers.
2014-11-27 14:38:26 -05:00
Thiago de Arruda
bf6bb27e79 ui: Remove redundant ui.h includes
Also move read_error_exit to os/input.c
2014-11-27 15:00:30 -03:00
Thiago de Arruda
a3534138a8 ui: Extract mouse.c/mouse.h 2014-11-27 14:48:30 -03:00
Thiago de Arruda
1865b8c1c1 ui: Remove ui_delay, ui_breakcheck and ui_set_shellsize
These functions only used to call another os_* function, so remove them and
replace all occurences in the project.
2014-11-27 14:27:18 -03:00
Thiago de Arruda
541eaf598c ui: Remove ui_inchar/ui_char_avail
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.
2014-11-27 14:12:59 -03:00
Rui Abreu Ferreira
e644369f6e Add Boolean argument escape_csi to vim_feedkeys
- 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
2014-11-27 08:33:53 -03:00
Justin M. Keyes
3bbbeaf2c9 Merge pull request #1552 from equalsraf/tb-fix-1530
add missing refcount increment for systemlist()
2014-11-25 16:16:08 -05:00
Rui Abreu Ferreira
ea8cc88e6a Add missing refcount increment for systemlist()
- 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
2014-11-25 20:00:27 +00:00
Eliseo Martínez
389470bd14 Fix substitute newline: Memory functions: Improve style.
`try_malloc` was changed in 8bb2c2c074 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.
2014-11-24 17:20:09 +01:00
Julian Mehne
6b5785b149 Fix Makefile for running valgrind with old tests. 2014-11-22 13:07:04 +01:00
Thiago de Arruda
f09a33bbc1 event: No longer process K_EVENT automatically
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.
2014-11-21 15:41:02 -03:00
Thiago de Arruda
e15485c5d6 input: Refactor to ensure user input has higher priority 2014-11-21 15:39:04 -03:00
Rainer Borene
df5a17fb51 legacy tests: migrate test105 2014-11-20 21:06:37 -03:00
Rainer Borene
da3ade6a59 legacy tests: migrate test26 2014-11-20 21:06:37 -03:00
Rainer Borene
021d9bdcc0 legacy tests: migrate test101 2014-11-20 21:06:37 -03:00
Rainer Borene
50876c2f70 legacy tests: migrate test75 2014-11-20 21:06:37 -03:00
Rainer Borene
a93d370c75 legacy tests: migrate test51 2014-11-20 21:06:37 -03:00
Rainer Borene
c9159586b8 legacy tests: migrate test43 2014-11-20 21:06:37 -03:00
Rainer Borene
bbd95c0514 legacy tests: migrate test33 2014-11-20 21:06:37 -03:00
Rainer Borene
8c872a945e legacy tests: migrate test67 2014-11-20 21:06:37 -03:00
Rainer Borene
7fc5d6fc8e legacy tests: migrate test66 2014-11-20 21:06:37 -03:00
Rainer Borene
963a146e8b legacy tests: migrate test25 2014-11-20 21:06:37 -03:00
Rainer Borene
8ca8a0da08 legacy tests: migrate test104 2014-11-20 21:06:37 -03:00
Rainer Borene
1732615290 legacy tests: remove test21 files 2014-11-20 21:06:37 -03:00
Rainer Borene
c152cdd0f3 legacy tests: migrate test5 2014-11-20 21:06:37 -03:00
Florian Walch
2b0d9bdeac Wconversion: Fix warnings in digraph.c. 2014-11-19 17:21:21 +01:00
Florian Walch
d2338ce397 Wconversion: Fix warnings in cursor_shape.c. 2014-11-19 17:21:21 +01:00
Florian Walch
96b31ca048 CMake: Set -Wconversion by default. 2014-11-19 17:21:21 +01:00
Eliseo Martínez
7aa7ce253d Fix warnings: eval.c: f_rpcrequest(): Garbage value: MI.
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.
2014-11-18 22:20:39 +01:00
Eliseo Martínez
ee134fc698 Fix warnings: screen.c: screenalloc(): Np arg (2): MI.
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.
2014-11-18 22:00:03 +01:00
Eliseo Martínez
5c00f8c132 Fix warnings: eval.c: do_return(): Np dereference: FP.
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.
2014-11-18 22:00:03 +01:00
Eliseo Martínez
97be8d45f4 Fix warnings: eval.c: add_nr_var(): Out of bounds: FP.
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.
2014-11-18 22:00:02 +01:00
Eliseo Martínez
3bf32fe43f Fix warnings: eval.c: call_user_func(): Out of bounds: FP.
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.
2014-11-18 22:00:02 +01:00
Eliseo Martínez
34a4a01e4e Fix warnings: eval.c: get_user_func_name(): Np dereference: FP.
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.
2014-11-18 22:00:02 +01:00
Eliseo Martínez
eb15d8777b Fix warnings: eval.c: clear_tv(): Bad free: RI.
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)`.
2014-11-18 22:00:01 +01:00
Eliseo Martínez
ece19651c6 Fix warnings: eval.c: item_compare(): Garbage value: MI.
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.
2014-11-18 21:57:49 +01:00
Eliseo Martínez
be90cdf4f9 Fix warnings: eval.c: dictitem_alloc(): Out-of-bounds access: FP.
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.
2014-11-18 21:57:48 +01:00
Eliseo Martínez
d3f413ba6a Fix warnings: eval.c: set_var_lval(): Np dereference: FP.
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().
2014-11-18 21:57:48 +01:00