Commit Graph

2207 Commits

Author SHA1 Message Date
Eliseo Martínez
a69b2e3c40 Review: Remove long_u: memfile: Cleanup: Others.
memfile_defs.h:
- Inline struct definitions in typedefs.
- Move memfile_T definition to this file (weirdly, was in buffer_defs.h).

memfile.c:
- Use C99 style variable declarations. This is, move variable declarations as
  near to first-usage point as possible).
- Modernize old-style function declarations.
- Fix indent at some places (some multiline expressions and the like).
2014-11-06 22:53:41 +01:00
Eliseo Martínez
8fb4097fc6 Review: Remove long_u: memfile: Cleanup: Comments.
- Restyle comments (/// when appropiate, // otherwise).
- Improve comments (add new comments, augment/clarify existing ones).
2014-11-06 22:53:40 +01:00
Eliseo Martínez
e7a863e12c Remove long_u: eval: Replace with size_t.
Note: No effort is done on refactoring anything in eval module, as it
      will be eventually dropped.
2014-11-06 22:19:33 +01:00
Jon Kinney
b384252d52 Fix the nvim-clipboard help instructions
Fixes #1407
2014-11-06 11:26:38 -06:00
Justin M. Keyes
7c7874d11b Merge pull request #1412 from fwalch/startup-help
version: Refer to nvim help on startup screen.
2014-11-06 09:45:30 -05:00
Florian Walch
724a53306f version: Refer to nvim help on startup screen. 2014-11-06 13:37:15 +01:00
Justin M. Keyes
37d608b8c1 Merge pull request #1370 from aktau/enable-iconv
re-enable iconv
2014-11-06 07:14:36 -05:00
Eliseo Martínez
74817b546e Fix warnings: edit.c: ins_bs(): Garbage result: MI.
Problem    : Result of operation is garbage or undefined @ 7460.
Diagnostic : Multithreading issue.
Rationale  : Problem occurs if any of globals `enc_utf8`, `p_deco is
             modified while function is executing.
Resolution : Use local copy of globals.
2014-11-06 09:51:59 +01:00
Eliseo Martínez
d0a0efaf32 Fix warnings: edit.c: replace_do_bs(): Garbage value: MI.
Problem    : Assigned value is garbage or undefined @ 6359.
Diagnostic : Multithreading issue.
Rationale  : Problem only occurs if global `State` changes while
             function is executing.
Resolution : Use local copy of global in function.
2014-11-06 09:51:58 +01:00
Eliseo Martínez
cefc26ab63 Fix warnings: edit.c: mb_replace_pop_ins(): Unitilialized arg: FP.
Problem    : Uninitialized argument value @ 6296.
Diagnostic : False positive.
Rationale  : Error occurs if n <= 1. That's not possible because
             n >= 1 due to `MB_BYTE2LEN` postcondition and n != 1
             because we are in the else branch.
Resolution : Assert n > 1.
2014-11-06 09:51:58 +01:00
Eliseo Martínez
da4c9447a4 Fix warnings: edit.c: ins_compl_get_exp(): Np dereference (2): FP.
Problems   : Dereference of null pointer @ 3615.
             Dereference of null pointer @ 3764.
Diagnostic : False positives.
Rationale  : `ins_buf` is local static, so maintains value between calls.
             This function will be called first when `compl_started` is
             false, and in that case it initializes `ins_buf`. After
             that, it can be called multiple times with `compl_started`
             true, where `ins_buf` will be updated but not to null.
             So, when arriving to both points, `ins_buf` should never be
             null.
Resolution : Assert `ins_buf` at both points.
2014-11-06 09:51:58 +01:00
Eliseo Martínez
0bda79a847 Fix warnings: edit.c: ins_compl_next_buf(): Np dereference: FP.
Problem    : Dereference of null pointer @ 3234.
Diagnostic : False positive.
Rationale  : `wp` is local static, so maintains value between calls.
             First time function is called for a given flag will have
             `buf == curbuf`, implying `wp` initialization.
Resolution : Assert variable always having been initialized.
2014-11-06 09:51:58 +01:00
Eliseo Martínez
997c0b3939 Fix warnings: regexp.c: match_with_backref(): Nonnull violation: FP.
Problem: Argument with 'nonnull' attribute passed null @ 5632.
         http://neovim.org/doc/reports/clang/report-041a0e.html#EndPath.

Diagnostic: False positive.
Rationale : `p = reg_getline(clnum)` above should not be null, because
            `clnum` starts at `start_lnum` and only increments after
            that.
Resolution: Assert p not null.
2014-11-06 09:51:45 +01:00
Eliseo Martínez
22475b5ae8 Fix warnings: regexp.c: br_regcomp(): Np dereference: MI.
Problem: Dereference of null pointer @ 1312.
         http://neovim.org/doc/reports/clang/report-b1d09a.html#EndPath

Diagnostic: Multithreading issue.
Rationale : Suggested error path contains two succesive calls to
            `regnext(scan)`, first of which returning nonnull, the
            second one returning null. This can only occur if global
            `reg_toolong` accesed in `regnext()` changes between the
            calls.
Resolution: Use local variable to cache first `regnext(scan)` result.
            Note that this change alters function semantics, as now
            function only issues one call instead of two, reusing the
            result for the second time.
            This shouldn't be a problem, though, as new semantics should
            be in fact be better.
2014-11-06 09:51:44 +01:00
Eliseo Martínez
336aab5eef Fix warnings: regexp.c: skip_regexp: Np dereference: FP.
Problem: Derefence of null pointer @ 1208.
         http://neovim.org/doc/reports/clang/report-24b5ca.html#Path10

Diagnostic: False positive.
Rationale : Error is reported to happen  if after `if (*newp == NULL) {`
            body, `*newp` continues being NULL, and false branch of
            following `if (*newp != NULL)` is taken. Now, `vim_strsave`
            cannot return NULL, so error cannot happen.
Resolution: Remove dead code (leftover since OOM refactors).
2014-11-06 09:51:44 +01:00
Eliseo Martínez
9de544c785 Fix warnings: ops.c: cursor_pos_info(): Various (2): MI.
Problems: Result of operation is garbage or undefined @ 5087.
          http://neovim.org/doc/reports/clang/report-2e3118.html#EndPath

          Result of operation is garbage or undefined @ 5149.

Diagnostic: Multithreading issues.
Rationale : All reported problems can only occur if accesed globals
            change state while executing function, which could only
            happen in a multithreaded environment.
Resolution: Use local variables (copy globals on entry).
            Note that this change alters function semantics, as now
            function only depends on global values at entry time.
            This shouldn't be a problem, though, as new semantics should
            be in fact better.
2014-11-06 09:51:44 +01:00
Eliseo Martínez
0c135a2ff4 Fix warnings: ops.c: do_join(): Nonnull violation: FP.
Problem: Argument with 'nonnull' attribute passed null @ 3540.
         http://neovim.org/doc/reports/clang/report-fc14e0.html#EndPath.

Diagnostic: False potitive.
Rationale : `count` should be >= 2 by function precondition.
Resolution: Assert precondition.
2014-11-06 09:51:44 +01:00
Eliseo Martínez
bd7ee7d6a9 Fix warnings: screen.c: draw_tabline(): Dead assignment: HI.
Problem: Dead assignment @ 7711.
         http://neovim.org/doc/reports/clang/report-835eb6.html#EndPath

Diagnostic: Harmless issue.
Rationale : `scol` is only used within `FOR_ALL_TABS` body, which
            assigns another value to `scol` at the beginning of each
            iteration. If `FOR_ALL_TABS` body would not execute (no
            tabs) nothing harmful would happen, as code following
            `FOR_ALL_TABS` doesn't use `scol`.
Resolution: Remove.
2014-11-06 09:51:44 +01:00
Eliseo Martínez
cc996e748d Fix warnings: screen.c: showmode(): Dead assignment: HI.
Problem: Dead assignment @ 7535.
         http://neovim.org/doc/reports/clang/report-19a5cd.html#EndPath

Diagnostic: Harmless issue.
Rationale : `length = msg_col;` is unconditionally executed after this.
Resolution: Remove assignment.
2014-11-06 09:51:43 +01:00
Eliseo Martínez
04b4658978 Fix warnings: screen.c: win_line(): Dead assigment: HI.
Problem: Dead assigment.
         http://neovim.org/doc/reports/clang/report-7362ba.html#EndPath

Diagnostic: Harmless issue.
Rationale : `boguscols` is in fact unread by downstream code.
Resolution: Comment out. This is preferred here over just removing the
            line because involved logic is complex, and future readers
            of this code could find this extra knowledge useful to
            understand what the code is doing.
2014-11-06 09:51:43 +01:00
Eliseo Martínez
1eb46675b7 Fix warnings: screen.c: win_line(): Dead initialization: HI.
Problem: Dead initialization @ 3477.
         http://neovim.org/doc/reports/clang/report-94b736.html#EndPath

Diagnostic: Harmless issue.
Rationale : `len` is assigned a new value just some lines below. So,
            this just seems something due to old-style variable
            declarations.
Resolution: We could just remove initialization, but prefer moving
            declaration down to point of initialization.
2014-11-06 09:51:43 +01:00
Eliseo Martínez
a32442db85 Fix warnings: screen.c: redraw_asap(): Various (6): MI.
Problems: Argument with 'nonnull' attribute passed null @ 277.
          http://neovim.org/doc/reports/clang/report-9c3614.html#EndPath

          Result of operation is garbage or undefined @ 281.
          http://neovim.org/doc/reports/clang/report-45efbf.html#EndPath

          Argument with 'nonnull' attribute passed null @ 306.
          http://neovim.org/doc/reports/clang/report-ffb84f.html#EndPath

          Result of operation is garbage or undefined @ 311.
          http://neovim.org/doc/reports/clang/report-d04333.html#EndPath

          Argument with 'nonnull' attribute passed null @ 315.
          http://neovim.org/doc/reports/clang/report-786819.html#EndPath

          Uninitialized argument value @ 328.
          http://neovim.org/doc/reports/clang/report-2a5506.html#EndPath

Diagnostic: Multithreading issues.
Rationale : All reported problems can only occur if accesed globals
            change state while executing function, which could only
            happen in a multithreaded environment.
Resolution: Use local variables.
            Note that this change alters function semantics, as now
            function only depends on global values at entry time.
            This shouldn't be a problem, though, as new semantics should
            be in fact better.
2014-11-06 09:51:42 +01:00
Eliseo Martínez
b6c1fae6a9 Fix warnings: cursor_shape.c: parse_shape_opt(): Garbage value: FP.
Problem: Assigned value is garbage or undefined @ 187.
         http://neovim.org/doc/reports/clang/report-7b7d61.html#EndPath.

Diagnostic: False positive.
Rationale : `colonp`, must be `>= modep, or null` by `vim_strchr`
            postcondition. At this point we also it's not null and it's
            not equal to `modep`, by previous code. So, it must be
            `> modep`.
Resolution: Assert `colonp > modep`.
2014-11-06 09:51:42 +01:00
Thiago de Arruda
4cc26fba24 Merge PR #1398 'Tests and msgpack rpc improvements' 2014-11-06 04:36:46 -03:00
Thiago de Arruda
d83868fe90 channel: Delay notifications to avoid client race conditions
It is currently possible for a client to send a response that doesn't match the
current server->client request(at the top of the stack). This commit fixes that
by delaying notifications to until the first `channel_send_call` invocation
returns.

Also remove the "call stack" size check, vim will already break if the call
stack goes too deep.
2014-11-06 04:22:06 -03:00
Thiago de Arruda
8979ede45d test: Add more valgrind "possibly lost" suppressions
These valgrind entries are false positives because vim uses interior pointers.
2014-11-06 04:22:06 -03:00
Thiago de Arruda
117d3db6d7 test: Simplify/fix options_spec.lua
The options_spec.lua suite has one purpose: Check if the :options commands will
throw any exception(:options is implemented by $VIMRUNTIME/optwin.vim). For this
it is best to use the `vim_command` API function since it will automatically
catch exceptions and forward them via msgpack-rpc.

Also, the option window seems to affect other tests, so call `restart` in the
teardown hook.
2014-11-06 04:21:57 -03:00
Nicolas Hillegeer
8c5efd62ac iconv: re-enable
This seems to have been disabled in the transition from vim to neovim,
re-enable it.
2014-11-06 00:18:26 +01:00
Thiago de Arruda
5e5525a78b test: Set VIMRUNTIME before running tests
This is required for testing scripts under the 'runtime' directory
2014-11-05 14:02:04 -03:00
John Szakmeister
3972715ce7 Merge pull request #1397 from fwalch/fix-test_file
Restore TEST_FILE functionality for running individual tests.
2014-11-05 09:33:03 -05:00
Florian Walch
afa5831d73 CMake: Fix running individual (functional/unit) test. 2014-11-05 13:57:29 +01:00
John Szakmeister
e0628dab49 Merge pull request #1395 from jszakmeister/fix-run-functional-tests
build: fix running of functional tests directly with CMake
2014-11-05 07:53:53 -05:00
John Szakmeister
5ba1d980fb build: fix running of functional tests directly with CMake
If you aren't just building everything into build/, then the functional
tests fail because they can't find the nvim executable.  Let's pass in
the location of the nvim executable, and set NVIM_PRG environment
variable accordingly.
2014-11-05 07:26:35 -05:00
John Szakmeister
d1675de0a9 Merge pull request #1392 from fwalch/fix-build-warnings
Fix build warnings.
2014-11-05 06:46:49 -05:00
Florian Walch
b904c33e41 CMake: Rename target "test" to "functionaltest".
Remove build warning:

    The target name "test" is reserved or not valid for certain CMake
    features, such as generator expressions, and may result in undefined
    behavior.
2014-11-05 11:54:20 +01:00
Florian Walch
5714afc11e CMake: Modify _FORTIFY_SOURCE only for release builds.
Remove build warning for Debug builds:

    # warning _FORTIFY_SOURCE requires compiling with optimization (-O)
2014-11-05 11:54:15 +01:00
Florian Walch
58b87579cf CMake: Pass build type CFLAGS to header generator. 2014-11-05 11:54:05 +01:00
John Szakmeister
83d9b36214 Merge pull request #1390 from jszakmeister/turn-down-fortify-source
build: turn down the _FORTIFY_SOURCE level on gcc >= 4.0
2014-11-05 04:06:40 -05:00
John Szakmeister
64ea00299d build: turn down the _FORTIFY_SOURCE level on gcc >= 4.0 2014-11-05 03:53:31 -05:00
Thiago de Arruda
04633e3e6b Merge PR #1328 'Migrate legacy tests' 2014-11-04 12:59:09 -03:00
Rainer Borene
a695c87863 legacy tests: migrate test21 2014-11-04 12:57:33 -03:00
Rainer Borene
2d8d4285e4 legacy tests: migrate test7 2014-11-04 12:57:33 -03:00
Rainer Borene
ef08a2c0df legacy tests: migrate test6 2014-11-04 12:57:33 -03:00
Rainer Borene
38bef424a2 legacy tests: migrate test28 2014-11-04 12:57:33 -03:00
Rainer Borene
ca0a55c2a9 legacy tests: migrate test20 2014-11-04 12:57:33 -03:00
Rainer Borene
afe9aa758e legacy tests: migrate test97 2014-11-04 12:57:33 -03:00
Rainer Borene
5ea94e14f0 legacy tests: migrate test46 2014-11-04 12:57:33 -03:00
Rainer Borene
ac52d84f16 legacy tests: migrate test27 2014-11-04 12:57:33 -03:00
Rainer Borene
34cc2b1e33 legacy tests: migrate test54 2014-11-04 12:57:33 -03:00
Rainer Borene
fd503f1432 legacy tests: migrate test41 2014-11-04 12:57:33 -03:00