Commit Graph

2458 Commits

Author SHA1 Message Date
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
Justin M. Keyes
bd19cc4f8f Merge pull request #1701 from fwalch/vim-7.4.423
vim-patch:7.4.423
2014-12-18 12:57:39 -05:00
Justin M. Keyes
cef6ec9dfc Merge pull request #1702 from fwalch/update-busted
Update busted to 2.0.rc4.
2014-12-18 12:56:37 -05:00
Florian Walch
745c462ed3 Update busted to 2.0.rc4. 2014-12-18 18:22:08 +01: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
John Szakmeister
1eef530351 Merge pull request #1588 from equalsraf/tb-no-central-deps
Dont force ../.deps in third-party/CMakeLists.txt use the Makefile instead
2014-12-18 08:11:00 -05:00
John Szakmeister
379dcd7d7f Merge pull request #1686 from jszakmeister/include-opts-in-fortify-check
build: include the flags for the build type in the _FORTIFY_SOURCE check
2014-12-18 04:14:14 -05:00
John Szakmeister
9ebc960cb9 Merge pull request #1654 from gaurdro/rpm-fortify_source
[RFC] Fix issue 1569: Build fails in rpmbuild environment
2014-12-18 04:01:32 -05:00
Ross Smith
1c3d093c85 Detect and propagate _FORTIFY_SOURCE prefix
Get prefix to a -D_FORTIFY_SOURCE string if it is present in
CFLAGS and apply the prefix to flags added to redefine
_FORTIFY_SOURCE in CFLAGS and CPPFLAGS

* fixes 1569
2014-12-17 23:05:46 -05:00
Justin M. Keyes
742ada0869 Merge pull request #1698 from elmart/clang-analysis-fixes-6
Fix clang analysis warnings. (6)
2014-12-17 17:43:45 -05: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
Justin M. Keyes
10a45846dc Merge pull request #1688 from elmart/coverity-issues-1
coverity issues
2014-12-16 15:39:26 -05: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
John Szakmeister
0a5dad8a10 build: include the flags for the build type in the _FORTIFY_SOURCE check
It turns out the check was being performed without optimizations enabled
even when the CMAKE_BUILD_TYPE was set to a release build.  This led to
_FORTIFY_SOURCE's level not being correctly determined, and us failing
to apply the correct workaround.

To counter this, we'll take the default flags for the build type and
apply them.  Also, if options are passed via CFLAGS, they are
automatically passed on to the underlying build.  So this should cover
all the necessary ground.

This fixes #1647.
2014-12-16 06:02:42 -05:00
Rui Abreu Ferreira
8d54a7203e Allow cmake caller to override DEPS_PREFIX
- Caller can override bundled dependency location using
  DEPS_PREFIX
- Cache variable DEPS_PREFIX, using .deps/usr by default
- Removed unused variables DEPS_BIN_DIR, DEPS_BUILD_DIR, DEPS_DIR
  DEPS_INSTALL_DIR
- Corner case: if the caller tries to override DEPS_PREFIX after a
  successful cmake configuration, the caller needs to clear the cache
  because dependency checks are based on the old value
2014-12-16 10:28:43 +00:00
Rui Abreu Ferreira
64d78c0b7d Dont force ../.deps in third-party/CMakeLists.txt
- third-party is built under .deps by default instead of using its own
  ${CMAKE_BINARY_DIR}, move this default setting out of the cmake
  settings and into the Makefile.
- As a consequence the workflow of building third-party using CMake
  should feel more natural, avoid the additional folder or setting
  DEPS_DIR from the command line.
- This commit does not change the default behaviour when calling the
  Makefile wrapper.
2014-12-16 10:28:43 +00: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
Justin M. Keyes
c63b736921 Merge pull request #1676 from fwalch/na-patches
vim-patch: Mark patches as NA.
2014-12-15 09:51:58 -05:00
Florian Walch
13faa3cc88 vim-patch: Mark patches as NA. 2014-12-15 12:28:11 +01:00
Justin M. Keyes
6a193a0e2e Merge pull request #1666 from elmart/vim-patch-7.4.543
vim-patch:7.4.543.
2014-12-14 20:35:28 -05: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
a5edc5f257 Merge pull request #1570 from fwalch/travis-improvements
Travis-related improvements
2014-12-14 16:14:56 -05:00
Florian Walch
e11a94e5b6 Travis: Remove setting core file size.
Doesn't work on Travis:

> bash: line 0: ulimit: core file size: cannot modify limit: Operation not permitted
2014-12-14 21:42:36 +01:00
Florian Walch
4982a2d257 Travis: Simplify clint script. 2014-12-14 21:42:36 +01:00
Florian Walch
463c20ebb0 Travis: Change search pattern for core dumps.
Would otherwise find files in .deps if dependencies are built.
2014-12-14 21:42:36 +01:00
Florian Walch
ddaa481236 Travis: Add flag to force building of dependencies. 2014-12-14 21:42:30 +01:00
Florian Walch
2036fd8166 Travis: Perform installation test on 32-bit build. 2014-12-14 21:41:02 +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
Justin M. Keyes
ec6afbf4e6 Merge pull request #1661 from philix/early_exit
Reduce indentation level by early returning or continuing loop
2014-12-14 13:42:10 -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
Justin M. Keyes
9af6485e8b Merge pull request #1622 from klusark/test29
default to 'nocompatible'
2014-12-13 15:38:42 -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