Commit Graph

2513 Commits

Author SHA1 Message Date
Thiago de Arruda
9e37c1d3b6 Merge PR #1454 'Refactor plugin system' 2014-11-18 15:57:42 -03:00
Thiago de Arruda
d971cb1691 docs: Update to the latest changes in the plugin infrastructure 2014-11-18 14:58:31 -03:00
Thiago de Arruda
f291f41525 test: Add tests for the python provider
These tests were adapted from the python-client repository
2014-11-18 14:58:31 -03:00
Thiago de Arruda
ca1d8673be test: Add tests for the rpc#define#* functions 2014-11-18 14:58:31 -03:00
Thiago de Arruda
f3b4033572 runtime: Remove 'python_setup.vim' 2014-11-18 14:58:31 -03:00
Thiago de Arruda
9b8ca92a01 runtime: Reimplement python/clipboard providers in vimscript
Clipboard is implemented with platform-specific shell commands, and python is
implemented with the external plugin facility (rpc#* functions). The
script_host.py file(legacy python-vim emulation plugin) was moved/adapted from
the python client repository.
2014-11-18 14:58:25 -03:00
Thiago de Arruda
4af5cfb517 runtime: Add vimscript support for external plugins
External plugins(a.k.a msgpack-rpc plugins) are now supported through a
library of vimscript functions that deals with:

- Associating plugin host names(eg: python, ruby, go) with channel ids
- Registration of external plugins
- Definition of commands, autocmds and functions lazily implemented over
  msgpack-rpc
2014-11-18 12:43:30 -03:00
Thiago de Arruda
1133e444bc channel: Improve error reporting for invalid responses 2014-11-18 07:56:58 -03:00
Thiago de Arruda
2853500361 channel: Remove invalid free_channel call
When a job fails to start, it will already call the exit_cb which takes care of
freeing the channel.
2014-11-18 07:56:58 -03:00
Thiago de Arruda
17a4bfe007 Remove os/provider.{c,h} and all of its references 2014-11-18 07:56:58 -03:00
Thiago de Arruda
375db3b19a eval/ex_cmds2/ops: Implement providers with eval_call_provider
Replace references to provider_call/provider_has with the new functions
eval_call_provider/eval_has_provider.
2014-11-18 07:56:58 -03:00
Thiago de Arruda
268b2eff4a eval: Add eval_call_provider/eval_has_provider functions
These use autoloaded vimscript to replace the provider_call/provider_has
functions, moving the implementation of providers to pure vimscript(we lose
nothing since vimscript can also call msgpack-rpc functions).

When calling the rpcrequest function from a provider, temporarily switch to the
caller scope. This is required for compatibility with legacy plugins, because
they may depend on scope information that changes when "leaving" the C stack to
enter the vimscript stack.
2014-11-18 07:56:58 -03:00
John Szakmeister
a67fd6f213 Merge pull request #1487 from jszakmeister/search-gettext-subdir
Fix #1484: search gettext subdir for header
2014-11-18 03:53:21 -05:00
John Szakmeister
369045cf05 Fix #1484: search gettext subdir for header
On some systems, such as NetBSD, the gettext header is tucked under the
gettext directory in the system include area.  Let's add a path suffix
to ensure we correctly discover the header on such systems.
2014-11-17 19:31:48 -05:00
Fredrik Fornwall
b2b9333179 doc: Remove MS-DOS specific options bioskey and conskey #1353 2014-11-17 17:55:47 -05:00
James Baumgarten
06e5c2c063 doc: update msgpack_rpc documentation to use nvim as variable name #1470 2014-11-17 17:41:14 -05:00
John Szakmeister
3b8661745b Merge pull request #1485 from equalsraf/tb-no-make-prg
Use cmake --build inside CMake scripts instead of calling Make directly
2014-11-17 06:53:07 -05:00
Justin M. Keyes
cdf85dcc12 Merge pull request #1157 from fwalch/remove-coverity
Travis: Remove Coverity build.
2014-11-16 20:48:07 -05:00
Justin M. Keyes
75f4451d57 Merge pull request #1483 from oni-link/fix.mch_print_begin.memory.leak.stackversion
coverity/13765,13766,13767,13768: Fix memory leaks in hardcopy.c
2014-11-16 20:33:11 -05:00
Justin M. Keyes
0fcb867981 Merge pull request #1479 from Pyrohh/fix_comments_and_use_stdbool
{farsi.c,arabic.c}: Fix comments and use stdbool
2014-11-16 20:24:31 -05:00
Florian Walch
75335f01a0 Travis: Remove Coverity build.
Coverity is now handled by neovim/bot-ci.
2014-11-16 20:39:24 +01:00
oni-link
e175751364 coverity/13765,13766,13767,13768: Fix memory leaks in hardcopy.c
The function mch_print_begin() returns early in case of an
error, but without freeing allocated memory.
To fix this, use stack allocation instead of heap allocation
for the variables res_prolog, res_encoding, res_cidfont and
res_cmap.
2014-11-16 11:22:58 +01:00
Michael Reed
e5a08e7837 arabic.c: Comment fixes
- Use C99 style comments everywhere
- Fix incorrect references to return values
2014-11-15 17:17:21 -05:00
Michael Reed
e1e3edf9d4 farsi.c: Misc. fixes
- Converted some functions to return bools, and changed their respective
  comments to reflect that.
- Minor fixes to a few comments
2014-11-15 17:17:21 -05:00
Justin M. Keyes
7465fc6ee9 Merge pull request #1471 from splinterofchaos/fix-jobstart
jobstart: Check prg arguments for NULL.
2014-11-15 17:10:47 -05:00
Justin M. Keyes
bc812a82f8 Merge pull request #1460 from elmart/clang-analysis-fixes-3
Fix clang analysis warnings. (3)
2014-11-15 11:44:37 -05:00
Eliseo Martínez
150b0d66e1 Fix warnings: charset.c: win_lbr_chartabsize(): Dead assignment: HI.
Problem    : Dead assignment @ 1037.
Diagnostic : Harmless issue.
Rationale  : `tab_corr` is in effect unused after signaled point.
             Previous code using it after that point was removed at
             24ebb018e2.
Resolution : Remove dead assignment. As only one usage remains, remove
             variable and inline the only usage.
2014-11-15 13:57:11 +01:00
Eliseo Martínez
4a8af9cc99 Fix warnings: undo.c: u_blockfree(): Use after free: FP.
Problem    : Use-after-free @ 2686.
Diagnostic : False positive.
Rationale  : Suggested error path is taking false branch
             `uhp->uh_next.ptr != NULL` @ 2506, which cannot happen when
             `uhp == buf->b_u_oldhead`.
Resolution : Assert `buf->b_u_oldhead` is changed after freeing old one.
2014-11-15 12:50:35 +01:00
Eliseo Martínez
fcd5a8643c Fix warnings: syntax.c: get_id_list(): Double free: FP.
Problem    : Double free @ 5213.
Diagnostic : False positive.
Rationale  : Suggested error path contains two consecutive invocations
             of `ends_excmd(*p)` having different results, which is not
             possible. First invocation is before the while loop. Second
             invocation is the while loop condition itsef.
Resolution : Refactor while loop into do-while loop. That removes the
             impossible path from analysis, and, in addition, is a bit
             more efficient.
2014-11-15 12:49:18 +01:00
Eliseo Martínez
ce9c4e9a6f Fix warnings: syntax.c: syn_regexec(): Uninitialized arg: MI.
Problem    : Uninitialized argument value @ 2863.
Diagnostic : Multithreading issue.
Rationale  : Error can only occur if global `syn_time_on` is changed
             while the function is executing.
Resolution : Use local copy of gloval var.
2014-11-15 12:49:18 +01:00
Eliseo Martínez
2aa8c7c41f Fix warnings: spell.c: spell_edit_score(): Garbage value: MI.
Problem    : Assigned value is garbage or undefined @ 12526.
Diagnostic : Multithreading issue.
Rationale  : Error only occurs if global has_mbyte is modified while
             function is executing.
Resolution : Use local copy of global.
2014-11-15 12:49:18 +01:00
Eliseo Martínez
1adfb558f5 Fix warnings: spell.c: getroom(): Np dereference: FP/RI.
Problem    : Dereference of null pointer @ 6089.
Diagnostic : False positive / Real issue.
Rationale  : From the code, it seems the intent is that len parameter
             should never exceed SBLOCKSIZE. But the code checking for
             that does in fact cause a null pointer dereference just
             immediately after.
Resolution : State precondition in doc and assert it at entry.
2014-11-15 12:49:18 +01:00
Eliseo Martínez
5f9cacbf32 Fix warnings: spell.c: store_aff_word(): Garbage value: RI.
Problem    : Result of operation is garbage or undefined @ 5809.
Diagnostic : Real issue.
Rationale  : When copying flags, first access to
             `use_pfxlist[use_pfxlen]` was garbage if
             `spin->si_compflags` was null.
Resolution : Make sure `use_pfxlist[use_pfxlen]` always has a value (NUL
             if `spin->si_compflags` is NULL).
2014-11-15 12:48:30 +01:00
Eliseo Martínez
a09b7f2e2e Fix warnings: spell.c: spell_read_aff(): Uninitialized arg: RI.
Problem    : Uninitialized argument value @ 4469.
Diagnostic : Real issue.
Rationale  : Happens when a line contains a spell info item (NAME, HOME,
             VERSION, AUTHOR, EMAIL, COPYRIGHT), which expect a second
             item, but then the second item is not present.
Resolution : Add guard (item count > 1) to failing branch.
2014-11-15 12:48:29 +01:00
Eliseo Martínez
40cf1a1e74 Fix warnings: spell.c: spell_move_to(): Garbage value: RI.
Problem    : Result of operation is garbage or undefined @ 2238.
Diagnostic : Real issue.
Rationale  : Problem occurs when searching forward starting on an empty
             line. This is, at 2127:
             ```
             p = buf + skip;
             endp = buf + len;
             while (p < endp) {
             ```
             when skip == 0, len == 0, implying p == endp and therefore
             not entering the loop.
             Under those conditions, comparison
             ```
             if (attr == HLF_COUNT)
             ```
             at line 2242 is really using a garbage value for `attr`.
             Most of the time the error doesn't produce visible problems
             as it only affects when dealing with wrapped words.
Resolution : Initialize `attr` at declaration to `HLF_COUNT`, which is
             used in the code when no bad word found yet.
2014-11-15 12:48:29 +01:00
Eliseo Martínez
faa000edcb Fix warnings: spell.c: spell_move_to(): Null arg: FP.
Problem    : Argument with 'nonnull' attribute passed null @ 2118.
Diagnostic : False positive.
Rationale  : Error happens when `if (buflen < len + MAXWLEN + 2) {` is
             not entered on the first iteration, which cannot happen
             because buflen is 0 on the first iteration, so the
             condition should always hold.
Resolution : Assert existence of buffer with appropiate length after
             conditional (which prevents previous error path).
2014-11-15 12:48:29 +01:00
Eliseo Martínez
7d3aac2d71 Fix warnings: spell.c: find_word(): Dead assignment: HI.
Problem    : Dead assignment @ 1602.
Diagnostic : Harmless issue.
Rationale  : Code using this assignment (line 1666) was disabled. Vim's
             tip at Wed Nov 12 13:07:54 2014 +0100 (changeset
             6352:2f7bf5f90f57) hasn't changed this yet.
Resolution : Disable assignment. Directive processors are used for that
             in order to match the way the other code was disabled.
2014-11-15 12:48:29 +01:00
Eliseo Martínez
b02905bdd7 Fix warnings: search.c: find_pattern_in_path(): Np dereference: MI.
Problem    : Dereference of null pointer @ 4395.
Diagnostic : Multithreading issue.
Rationale  : Problem occurs only if global g_do_tagpreview changed while
             funcion is executing.
Resolution : Use local copy of global var.
2014-11-15 12:48:29 +01:00
Eliseo Martínez
78b49ce950 Fix warnings: regexp_nfa.c: nfa_regatom(): Dead assignment: HI.
Problem    : Dead assignment @ 1554.
Diagnostic : Harmless issue.
Rationale  : `result` is used when analyzing if a bracketed expresion
             `[<whatever>]` can be condensed into a character class. Not
             used for anything else anywhere. So, it's safe to remove.
Resolution : Remove dead assingment and move declaration of `result` to
             the scope where it's used.
2014-11-15 12:48:28 +01:00
Eliseo Martínez
83a32aad82 Fix warnings: quickfix.c: qf_add_entry(): Np dereference: FP.
Problem    : Dereference of null pointer @ 921.
Diagnostic : False positive.
Rationale  : If `qi->qf_lists[qi->qf_curlist].qf_count == 0` doesn't
             hold, we should be calling function with nonnull `*prevp`.
Resolution : Assert nonnull.
2014-11-15 12:48:28 +01:00
Eliseo Martínez
3d57bcee7d Fix warnings: option.c: do_set(): Dead assignment: HI.
Problem    : Dead assignment @ 2566.
Diagnostic : Harmless issue.
Rationale  : `nextchar` is used as a lookahead buffer for the character
             next to the currently examined token. Sometimes it also
             saves that char while original string is modified (original
             position of nextchar is nullified for the string to
             terminate there). In summary, it's an auxiliary variable
             with no particular complex meaning. Safe to remove if not
             used.
Resolution : Remove dead assignment.
2014-11-15 12:40:28 +01:00
Justin M. Keyes
b299c011a0 Update README.md 2014-11-14 12:32:03 -05:00
Justin M. Keyes
acce475e80 Update README.md 2014-11-14 12:27:54 -05:00
André Twupack
e199470bd3 vim-patch:7.4.378 #1217
Problem:    Title of quickfist list is not kept for setqflist(list, 'r').
Solution:   Keep the title.  Add a test. (Lcd)

https://code.google.com/p/vim/source/detail?r=v7-4-378
2014-11-14 11:56:25 -05:00
Justin M. Keyes
c347d9226a Merge pull request #1473 from alexgenco/patch-1
Fix api metadata function name in docs
2014-11-14 10:59:18 -05:00
Rui Abreu Ferreira
2b887ec66b Use cmake --build instead of Make
- If possble try to abstract away from Make, and use cmake --build
- third-party still needs to find Make to build some components
- Removed search for Make from CMakeLists.txt
* for CMake < 3.0 --build has no color output
2014-11-14 14:35:16 +00:00
Alex Genco
92aba9e942 Fix api metadata function name in docs
The documentation mentions `vim_get_api_metadata`, but the actual function is `vim_get_api_info`
2014-11-13 21:47:08 -08:00
Scott Prager
fa74c1ea71 jobstart: Check prg arguments for NULL. 2014-11-13 19:21:49 -05:00
Justin M. Keyes
c7a3109dd3 Merge #1322 'vim-patch:7.4.421 + vim-patch:7.4.437' 2014-11-13 11:41:50 -05:00
Scott Prager
ca7c509ae0 vim-patch:7.4.437
Problem:    New and old regexp engine are not consistent.
Solution:   Also give an error for "\ze*" for the old regexp engine.

https://code.google.com/p/vim/source/detail?r=v7-4-437
2014-11-13 11:38:19 -05:00