Commit Graph

19394 Commits

Author SHA1 Message Date
Michael Reed
6f50fd6c35 Remove VMS remnants 2014-12-19 15:28:49 -05:00
Florian Walch
67f896562d vim-patch: Mark patches as NA. 2014-12-19 10:22:31 +01:00
Justin M. Keyes
943b063290 Merge pull request #1663 from philix/array_size
Define and use the ARRAY_SIZE macro
2014-12-19 02:23:26 -05:00
Justin M. Keyes
5df8bf077b Merge pull request #1704 from fwalch/vim-7.4.434
vim-patch:7.4.434, vim-patch:7.4.442
2014-12-19 01:35:42 -05:00
Justin M. Keyes
e47105c47d Merge pull request #1638 from Grimy/ex-drop
Reimplement :drop
2014-12-19 01:06:40 -05:00
Justin M. Keyes
b1cd16ab8d Merge pull request #1699 from three-comrades/fix-viminfo
Use a local viminfo file when running the old tests.
2014-12-19 00:32:28 -05:00
Florian Walch
3f7b8199df vim-patch:7.4.442
Problem:    Using unitinialized variable.
Solution:   Pass the first window of the tabpage.

https://code.google.com/p/vim/source/detail?r=v7-4-442
2014-12-18 21:22:46 +01:00
Florian Walch
815fe28450 vim-patch:7.4.434
Problem:    gettabvar() is not consistent with getwinvar() and getbufvar().
Solution:   Return a dict with all variables when the varname is empty.
	    (Yasuhiro Matsumoto)

https://code.google.com/p/vim/source/detail?r=v7-4-434
2014-12-18 21:22:40 +01:00
Felipe Oliveira Carvalho
478c99c128 Change the signature of utf_convert() (mbyte.c) to use ARRAY_SIZE 2014-12-18 15:41:37 -03:00
Felipe Oliveira Carvalho
2140f8f1f0 Change the signature of intable() (mbyte.c) to use ARRAY_SIZE 2014-12-18 15:41:37 -03:00
Felipe Oliveira Carvalho
8aeb2e37ee Use ARRAY_SIZE where Coccinelle wasn't able to do it 2014-12-18 15:41:37 -03:00
Felipe Oliveira Carvalho
3c857900fe Define and use the ARRAY_SIZE macro
A similar macro is defined in the Linux kernel [1].

To refactor the code I used a slightly modified Coccinelle script I found in
[2].

```diff
// Use the macro ARRAY_SIZE when possible
//
// Confidence: High
// Copyright: (C) Gilles Muller, Julia Lawall, EMN, DIKU.  GPLv2.
// URL: http://www.emn.fr/x-info/coccinelle/rules/array.html
// Options: -I ... -all_includes can give more complete results

@@
type T;
T[] E;
@@

- (sizeof(E)/sizeof(*E))
+ ARRAY_SIZE(E)

@@
type T;
T[] E;
@@

- (sizeof(E)/sizeof(E[...]))
+ ARRAY_SIZE(E)

@@
type T;
T[] E;
@@

- (sizeof(E)/sizeof(T))
+ ARRAY_SIZE(E)

@n@
identifier AS,E;
@@

- #define AS(E) ARRAY_SIZE(E)

@@
expression E;
identifier n.AS;
@@

- AS(E)
+ ARRAY_SIZE(E)
```

`spatch --in-place --sp-file array_size.cocci -I src/ -I build/include/ -I build/src/nvim/auto/ src/nvim/*.c`

[1] http://lxr.free-electrons.com/source/include/linux/kernel.h#L54
[2] http://www.emn.fr/z-info/coccinelle/rules/#macros
2014-12-18 15:41:37 -03:00
Florian Walch
c780075afa vim-patch:7.4.423
Problem:    expand("$shell") does not work as documented.
Solution:   Do not escape the $ when expanding environment variables.

https://code.google.com/p/vim/source/detail?r=v7-4-423
2014-12-18 15:41:27 +01:00
Victor Adam
4a3b3d2913 Reimplement :drop (vim-patch:0)
The :drop ex command was inadvertently removed when removing FEAT_GUI.
This patch reintroduces it.
2014-12-18 01:58:36 +01:00
Julian Mehne
84dda11ec3 Remove superfluous settings from legacy tests. 2014-12-18 00:50:17 +01:00
Julian Mehne
a8c926fc91 Use a local viminfo file when running the old tests.
This is required after defaulting to `nocp`, so that ~/.nviminfo
files don't interfere with the old legacy tests.
2014-12-17 23:32:56 +01:00
Eliseo Martínez
5394796fd3 Fix warnings: window.c: win_close_othertab(): Np dereference: FP.
Problem    : Dereference of null pointer @ 1980.
Diagnostic : False positive.
Rationale  : I haven't been able to find the real reason why this is
             signaled. Nonetheless, I've been able to track down the
             introduction of this warning to commit
             77135447e0.
             The change there affecting this function is just a
             transformation maintaining semantics. So, this must be a
             FP, though I can't explain why.
             Analyzer thinks `win->w_buffer` can be null in line 1980,
             following an error path assuming win->w_buffer null at line
             1819. Given that `win_close` function was not modified by
             mentioned commit, I don't understand why this path is
             analyzed after the changes, but not before them. Or if it's
             analyzed, why it's discarded before changes but not after
             them. I don't see anything in changes to
             `close_last_window_tabpage` that should affect to
             being able to deduce `win->w_buffer` is not null.
Resolution : Assert buffer not null in `win_close_othertab`.
             Function comments state that passed window should have a
             buffer that can be hidden, which implies there should be a
             buffer.
             Reverting changes to `close_last_window_tabpage` in
             mentioned commit would be another way to fix this (tried
             and worked).
             But assert is preferred in this case because flat style
             reads better and we have some other way to fix it.
2014-12-17 22:10:53 +01:00
Eliseo Martínez
885661d25b Fix warnings: syntax.c: get_id_list(): Double free: FP.
Problem    : Double free @ 5213.
Diagnostic : False positive.
Rationale  : I haven't been able to find the real reason why this is
             signaled. Nonetheless, I've been able to track down the
             introduction of this warning to commit
             77135447e0.
             The change there affecting this function is just a
             transformation maintaining semantics. So, this must be a
             FP, though I can't explain why.
Resolution : Revert changes in mentioned commmit touching this function.
2014-12-17 22:10:14 +01:00
Eliseo Martínez
693da00920 Fix warnings: option.c: makeset()/put_setnum(): Various (3): FP.
Problems   : Dereference of null pointer @ 6251.
             Dereference of null pointer @ 6267.
             Dereference of null pointer @ 6351.
Diagnostic : False positive.
Rationale  : Problems occur if varp is null after
             `varp = get_varp_scope(p, opt_flags);`.
             That can only happen if option is hidden. Those are options
             that can be set (for backwards compatibility reasons) but
             that do nothing (see `:h hidden-options`,
             `:h missing-options`). In particular, even if setting them
             is allowed, value is not stored, so these options have no
             real value.
             So, suggested error paths should not occur, as checks
             comparing option value and default value should discard
             them.
Resolution : We could just `assert(varp)` before line 6235
             `varp_local = varp;`. That was tried and worked.
             But we prefer modifying the code to explicitly skip hidden
             options.
             A redundant `!istermoption(p)` is removed too (it's already
             checked by for loop condition).
2014-12-17 21:45:01 +01:00
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