Commit Graph

8225 Commits

Author SHA1 Message Date
Eliseo Martínez
09d4133a64 Review: Remove long_u: memfile: Refactor: blocknr_T: long -> int64_t.
Replace long with int64_t.
Apart from being convenient, not using long is required by clint.
2014-11-06 22:53:43 +01:00
Eliseo Martínez
7d4ec612b1 Review: Remove long_u: memfile: Refactor: int -> bool.
Replace int with bool where appropriate.
2014-11-06 22:53:43 +01:00
Eliseo Martínez
96e7f229a5 Review: Remove long_u: memfile: Refactor: bhdr_T.bh_data: char_u* -> void*.
This, in addition to being more correct, allows removing a lot of
explicit casts.
2014-11-06 22:53:42 +01:00
Eliseo Martínez
844d64e9ff Review: Remove long_u: memfile: Refactor: mf_hashtab_T.mht_fixed: Remove.
Unused since 457bb26151.
2014-11-06 22:53:42 +01:00
Eliseo Martínez
200f8ee0e5 Review: Remove long_u: memfile: Refactor: long_u -> size_t.
- memfile_defs.h:
    * hashtab_T: mht_mask: long_u -> size_t.
        Masks are used to truncate keys to a value adequate for an index
        in the array of entries. Value of the mask plus one is the
        current size of the array. Both of those reasons imply the
        soundness of size_t for this type.
    * hashtab_T: mht_count: long_u -> size_t.

- memfile.c:
    * total_mem_used: long_u -> size_t.
    * mf_hash_free_all: idx: long_u -> size_t.
    * mf_hash_add_item: idx: long_u -> size_t.
    * mf_hash_find: idx: long_u -> size_t.
    * mf_hash_grow: i: long_u -> size_t.
    * mf_hash_grow: j: long_u -> size_t.
2014-11-06 22:53:42 +01:00
Eliseo Martínez
7ffed667d4 Review: Remove long_u: memfile: Enable -Wconversion.
- Add memfile.c to converted files list.
- Fix conversion issues:
    * bhdr_T          : bh_page_count : int  -> unsigned.
    * bhdr_T          : bh_flags      : char -> unsigned.
    * mf_new()        : page_count    : int  -> unsigned.
    * mf_get()        : page_count    : int  -> unsigned.
    * mf_release()    : page_count    : int  -> unsigned.
    * mf_alloc_bhdr() : page_count    : int  -> unsigned.
    * mf_trans_add()  : page_count    : int  -> unsigned.
    * mf_put()        : flags         : int  -> unsigned.
2014-11-06 22:53:42 +01:00
Eliseo Martínez
fce201e656 Review: Remove long_u: memfile: Cleanup: Fix naming inconsistencies.
- Drop '_S' suffix for struct names.
- Make struct names match corresponding type's name (just removing '_S' suffix).
- Rename NR_TRANS type/struct (just ugly).
2014-11-06 22:53:41 +01:00
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
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
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
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
Florian Walch
58b87579cf CMake: Pass build type CFLAGS to header generator. 2014-11-05 11:54:05 +01: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
Rainer Borene
f85051b67e legacy tests: migrate test23 2014-11-04 12:57:33 -03:00
Rainer Borene
ffd5c43e84 legacy tests: migrate test56 2014-11-04 12:57:33 -03:00
Rainer Borene
4873171fc6 legacy tests: migrate test_autoformat_join 2014-11-04 12:57:33 -03:00
Rainer Borene
b67ad4f67f legacy tests: migrate test_changelist 2014-11-04 12:57:33 -03:00
Rainer Borene
4ca353d3bd legacy tests: migrate test81 2014-11-04 12:57:33 -03:00
Rainer Borene
79cd4a98ec legacy tests: migrate test_utf8 2014-11-04 12:57:33 -03:00
Rainer Borene
683b75d052 legacy tests: migrate test_insertcount 2014-11-04 12:57:33 -03:00
Rainer Borene
5b7d9bbd08 legacy tests: migrate test_options 2014-11-04 12:57:32 -03:00
Rainer Borene
b33c92439b legacy tests: migrate test18 2014-11-04 12:57:32 -03:00