Commit Graph

4381 Commits

Author SHA1 Message Date
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
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