Commit Graph

1825 Commits

Author SHA1 Message Date
Eliseo Martínez
e0b23b3d09 coverity/75594: Explicit null dereferenced: RI.
Problem    : Exlicit null dereferenced (FORWARD NULL) @ 2859.
Diagnostic : Real issue.
Rationale  : Code within `if (!p_bk)` seems to assume `backup` not null
             at that point, which may not be true.
Resolution : Don't enter conditional on null `backup`.
2014-12-16 21:02:14 +01:00
Eliseo Martínez
85ee4b83ac Passing-by: Fix FALSE/FAIL confusion.
FALSE was being used instead of FAIL.
They happen to have the same value, so it works the same.
But from function comment it's clear it uses the OK/FAIL convention.
2014-12-16 21:01:53 +01:00
Eliseo Martínez
a97f9e9594 coverity/13696: Unchecked return value: RI.
Problem    : Unchecked return value (CHECKED_RETURN) @ 2644.
Diagnostic : Real issue.
Rationale  : Other `u_save` invocations are checked, and there's no
             reason to think this invocation could not fail.
Resolution : Check and return if failed (other previous checks in the
             same function just return, without reporting error, so
             we just do the same).
2014-12-16 21:01:22 +01:00
Eliseo Martínez
9b1c939370 coverity/13695: Unchecked return value: RI.
Problem    : Unchecked return value (CHECKED_RETURN) @ 8554.
Diagnostic : Real issue.
Rationale  : Other invocations of `do_source` are checked and generate
             an error message if fail. There seems to be no reason why
             this particular instance could not fail the same.
Resolution : Check invocation and generate error message on failure.
2014-12-16 21:00:17 +01:00
Justin M. Keyes
3a61b84543 Merge pull request #1679 from oni-link/fix.clang.warning
Fix for clang analyzer warning in ops.c
2014-12-15 16:03:20 -05:00
oni-link
bf4b85a5d4 Fix warning: ops.c: read_viminfo_register(): Dereference of null pointer: RI.
Problem    : Array access (via field 'y_array') results in a null pointer
             dereference @ 4487.
Diagnostic : Real issue.
Rationale  : If the array was previously freed and the size of the array
             (y_current->y_size) was not updated to zero, the loop @4486
             could be entered and a NULL pointer would be dereferenced.
Resolution : Use free_yank_all() to take care of the NULL check and
             to free the current yank register.
2014-12-15 20:11:18 +01:00
Justin M. Keyes
360eb53858 Merge pull request #1677 from philix/dpelle-constify
add 'const' where possible: mbyte.c (rebase of #268)
2014-12-15 14:06:07 -05:00
Dominique Pelle
a4e0b7a78f Little by little add 'const' were possible: mbyte.c 2014-12-15 12:04:19 -03:00
Florian Walch
13faa3cc88 vim-patch: Mark patches as NA. 2014-12-15 12:28:11 +01:00
Eliseo Martínez
b8123cb4af vim-patch:7.4.543.
Adapt #1533 and #1596 to conform to upstream patch
(https://groups.google.com/forum/#!topic/vim_dev/vp0Lwo9f56s).

Problem:    Since patch 7.4.232 "1,3s/\n//" joins two lines instead of
            three.
            (Eliseo Martínez)  Issue 287
Solution:   Correct the line count. (Christian Brabandt)
            Also set the last used search pattern.
2014-12-15 01:38:56 +01:00
Justin M. Keyes
90f85eff66 Merge pull request #1668 from three-comrades/patches
vim-patch:7.4.463 + vim-patch:7.4.470
2014-12-14 15:40:33 -05:00
Julian Mehne
435cbf0262 vim-patch: Update patches to 552 2014-12-14 14:56:00 +01:00
Julian Mehne
e69b8ec00a vim-patch: Mark patches as NA 2014-12-14 14:42:12 +01:00
Julian Mehne
c26c387490 vim-patch:7.4.470
Problem:    Test 11 and 100 do not work properly on Windows.
Solution:   Avoid using feedkeys(). (Ken Takata)

https://code.google.com/p/vim/source/detail?r=v7-4-470
2014-12-14 14:38:06 +01:00
Julian Mehne
850b0b8663 vim-patch:7.4.463
Problem:    Test 86 and 87 may hang on MS-Windows.
Solution:   Call inputrestore() after inputsave(). (Ken Takata)

https://code.google.com/p/vim/source/detail?r=v7-4-463
2014-12-14 14:37:42 +01:00
Felipe Oliveira Carvalho
0bc40e660c Simple refatorings that didn't fit the pattern of the last commit 2014-12-13 23:36:11 -03:00
Felipe Oliveira Carvalho
77135447e0 Reduce indentation level by early returning or continuing loop
Replace code like this

```c
func() {
    if (cond) {
	...
	...
	...
    }
    return ret;
}
```

```c
for (...) {
    if (cond) {
	...
	...
	...
    }
}
```

with

```c
func() {
    if (!cond) {
	return ret;
    }
    ...
    ...
    ...
}
```

```c
for (...) {
    if (!cond) {
	continue;
    }
    ...
    ...
    ...
}
```
2014-12-13 23:36:11 -03:00
Florian Walch
64a32d55c5 vim-patch: Mark patches as NA. #1637 2014-12-13 17:04:14 -05:00
Justin M. Keyes
b03d5c3348 main.c: remove NO_VIM_MAIN
It is from legacy Vim, not used by Neovim.
2014-12-13 16:45:21 -05:00
Joel Teichroeb
e10670ac3b vim-patch:? Fix memory leak in readviminfo
Patch provided by Christian Brabandt
Improved by oni-link
2014-12-13 11:43:48 -08:00
Joel Teichroeb
d0dcf56338 Ignore compatible mode 2014-12-13 11:43:48 -08:00
Julian Mehne
a44f39955f Make test29 work with nocompatible. 2014-12-13 11:43:48 -08:00
Justin M. Keyes
0ba6cb2f5c Merge pull request #1586 from oakes/master
libnvim: Allow building as a static library
2014-12-13 13:29:14 -05:00
oakes
dd9e5a3d7a Allow building as a static -fPIC library 2014-12-12 14:48:39 -05:00
Justin M. Keyes
a44eec1789 strcnt: remove unused parameter 2014-12-12 11:20:35 -05:00
Justin M. Keyes
c729286604 Merge pull request #1635 from danthedeckie/master
replace copy_spaces and copy_chars functions with equivalent memset.
2014-12-12 10:21:21 -05:00
John Szakmeister
d5741e5124 Merge pull request #1604 from equalsraf/tb-env-configs
Don't use env vars for configuration time options.
2014-12-12 05:31:45 -05:00
Daniel Fairhead
f8e3cfe220 strings.c: replace copy_spaces, copy_chars with equivalent memset. 2014-12-12 08:11:47 +00:00
Justin M. Keyes
4c7fe20bef Merge pull request #1134 from splinterofchaos/getreg-nl
vim-patch:7.4.242 + vim-patch:7.4.243
2014-12-11 21:35:34 -05:00
Scott Prager
a192865f90 Attribute/constify get_tv_string(_buf(_chk)). 2014-12-11 20:30:01 -05:00
Scott Prager
3d93e47d9a vim-patch:7.4.249
Problem:    Using setreg() with a list of numbers does not work.
Solution:   Use a separate buffer for numbers. (ZyX)

https://code.google.com/p/vim/source/detail?r=v7-4-249
2014-12-11 20:30:00 -05:00
Scott Prager
171445ef34 Refactor str_to_reg().
- Update the doxygen comments.
- Use more descriptive types.
- Localize variables.
- Find the '\n' with memchr instead of a for loop.
- Remove `if (size)` checks before memmove
  since memmove(dst,src,0) is a noop.
- Use memcpy instead since the pointers don't alias.
- Use xmemdupz instead of vim_strnsave.
- xrealloc instead of xmalloc/memcpy.
- Use memcnt/xmemscan/memchrsub.
2014-12-11 20:30:00 -05:00
Scott Prager
5fdca47962 vim-patch:7.4.243
Problem:    Cannot use setreg() to add text that includes a NUL.
Solution:   Make setreg() accept a list.

https://code.google.com/p/vim/source/detail?r=v7-4-243
2014-12-11 20:30:00 -05:00
Scott Prager
2f8cc3b9d5 Return void * from get_reg_contents. 2014-12-11 20:29:59 -05:00
Scott Prager
e18538f3ef vim-patch:7.4.242
Problem:    getreg() does not distinguish between a NL used for a line
            break and a NL used for a NUL character.
Solution:   Add another argument to return a list. (ZyX)

https://code.google.com/p/vim/source/detail?r=v7-4-242
2014-12-11 20:29:59 -05:00
Felipe Oliveira Carvalho
e11a5699be Use GA_DEEP_CLEAR where appropriate 2014-12-11 20:22:37 -03:00
Felipe Oliveira Carvalho
8ee5659d83 GA_DEEP_FREE_PTR: deep free macro for garrays that store simple pointers
By "simple pointer" I mean a pointer that can be freed with a call to `free`
without leaking any member pointer.

This macro does exactly what `ga_clear_strings` does.
2014-12-11 20:22:36 -03:00
Felipe Oliveira Carvalho
b603404487 GA_DEEP_CLEAR macro for garray memory deallocation
Used to free garrays of `salitem_T` and `fromto_T` in spell.c, and
garray `wcmd_T` in ex_docmd.c.

Helped-by: Jiaqi Li
2014-12-11 20:22:25 -03:00
Scott Prager
c6271f5767 memory: memcnt and strcnt. 2014-12-11 14:39:59 -05:00
Thiago de Arruda
40977e78a2 input: Recognize mouse events for abstract_ui 2014-12-10 07:51:06 -03:00
Michael Reed
ed4356e75d docs: Remove Photon remnants
Also get rid of some platform references made irrelevant by the removal
of their respective platform specific GUI code.
2014-12-09 19:43:45 -05:00
Michael Reed
a08e31368f docs: Remove 'osfiletype' remnants
Even when this was finally removed 6 months ago in b2b920f, it had
already been disabled for a while. Due to this, just remove all remnants
of the option as opposed to putting a placeholder like what was done for
'shortname'and 'cryptmethod'.
2014-12-09 19:25:43 -05:00
Michael Reed
365cf90efb docs: Remove EBCDIC remnants 2014-12-09 19:25:07 -05:00
Michael Reed
33b459b672 docs: Remove VAX remnants 2014-12-09 19:25:03 -05:00
Michael Reed
3969823759 docs: Remove BeOS/Haiku remnants 2014-12-09 19:24:58 -05:00
Thiago de Arruda
f8c3a14dc3 msgpack-rpc: Add remote_ui module
The remote_ui module is an implementation of the UI layer, and it attaches UI
instances that redirect redraw notifications to connected clients.
2014-12-08 23:44:24 -03:00
Thiago de Arruda
86542c6fd0 syntax: Use RGB/GUI attribute information for "abstract_ui"
Instead of using classic cterm color numbers and attributes, treat "abstract_ui"
as a GUI: Pass rgb color numbers and gui attributes when the "highlight_set" UI
method is called. The terminal UI will have to translate RGB color information
to an appropriate color number, and the "term"/"cterm" :highlight keys will
eventually be deprecated.
2014-12-08 23:44:24 -03:00
Thiago de Arruda
07e569a25d ui: Add abstract_ui termcap and split UI layer
This is how Nvim behaves when the "abstract_ui" termcap is activated:

- No data is written/read to stdout/stdin by default.
- Instead of sending data to stdout, ui_write will parse the termcap codes
  and invoke dispatch functions in the ui.c module.
- The dispatch functions will forward the calls to all attached UI
  instances(each UI instance is an implementation of the UI layer and is
  registered with ui_attach).
- Like with the "builtin_gui" termcap, "abstract_ui" does not contain any key
  sequences. Instead, vim key strings(<cr>, <esc>, etc) are parsed directly by
  input_enqueue and the translated strings are pushed to the input buffer.

With this new input model, its not possible to send mouse events yet. Thats
because mouse sequence parsing happens in term.c/check_termcodes which must
return early when "abstract_ui" is activated.
2014-12-08 23:44:23 -03:00
Thiago de Arruda
8b6cfff6a1 msgpack-rpc: Allow registration of handlers by other modules 2014-12-08 23:44:23 -03:00
Björn Linse
9a0ec687d9 eval_has_provider: search autoload scripts same order as call_func 2014-12-08 22:05:05 +01:00