Commit Graph

3208 Commits

Author SHA1 Message Date
Björn Linse
941b02af4c clipboard: adjust v:register when clipboard=unnamed
Helped-By: Nicolas Hillegeer <nicolas@hillegeer.com>
Helped-By: Michael Reed <m.reed@mykolab.com>
2015-04-11 11:11:52 +02:00
Michael Reed
e584fe0057 doc: Remove |shell-window|
fixes #2384
2015-04-10 16:38:11 -04:00
Michael Reed
95b7059d45 Remove unused 'if_[language].txt': Review 2015-04-10 16:38:11 -04:00
Michael Reed
5bc151c2a4 Remove unused 'if_[language].txt': Clean up
Regarding |script-here|: despite being a language agnostic piece of
advice, it was in `if_perl.txt`. Regardless, we now only have one
support for one legacy plugin interface, so put it in `if_pyth.txt`
2015-04-10 16:38:11 -04:00
Michael Reed
b0cc6eadd7 doc: Remove unused 'if_[language].txt' and related
Rubycomplete requires 'if_ruby', which has never been in Neovim. Because
of this, remove some mentions of it from the docs, but keep the actual
plugin untouched (as to avoid unneeded maintainence costs). It has a
call to `has('ruby')`, so it will still fall back to syntax completion.
2015-04-10 16:38:11 -04:00
Michael Reed
ea8325024e Bring E319 (cmd not available) in line with E519 (opt not available) 2015-04-10 16:38:11 -04:00
Michael Reed
baba9f7096 Clarify that nvim has no built-in GUI 2015-04-10 16:38:10 -04:00
Alexey Shmalko
6139c72251 coverity/{108271,108272,108273}: add fallthrough annotation #2362
Signed-off-by: Michael Reed <m.reed@mykolab.com>
2015-04-10 02:05:48 -04:00
Michael Reed
5f743a120b README.md: Link to neovim.org/Community #2167
[ci skip]
2015-04-09 17:39:49 -04:00
David Bürgin
cb7bb70c49 scripts: Fix "test input line" logic in legacy2luatest.pl #2369
Fixes the handling of the initial input lines of a test script by simply
skipping all initial empty lines.

Helped-by: Florian Walch <florian@fwalch.com>
Suggested-by: Florian Walch <florian@fwalch.com>
2015-04-09 11:40:09 -04:00
David Bürgin
42af7daa25 mark.c: Remove JUMPLIST_ROTATE #2376
JUMPLIST_ROTATE is never defined, and the feature is not popular.
2015-04-09 11:21:51 -04:00
Scott Prager
4a7364c807 Merge pull request #2374 from mhinz/hl-group-termcursor
[RDY] Add new highlight groups TermCursor and TermCursorNC
2015-04-09 11:14:22 -04:00
Marco Hinz
cd7b910e81 Add new highlight groups TermCursor/TermCursorNC
These highlight groups replace the old mechanism of setting:

  - {g,b}:terminal_focused_cursor_highlight
  - {g,b}:terminal_unfocused_cursor_highlight
2015-04-09 16:38:32 +02:00
Scott Prager
bae1da3f74 Merge pull request #2307 from splinterofchaos/system-null
[RFC] NULL and empty string bugs
2015-04-08 23:19:41 -04:00
Scott Prager
93a3e331a3 event: Only process if event_init has been run.
Reported by @fourjay, a codepath that causes event_poll() to run before
event_init() will trigger a segfault as the events list will not have
been initialized. Exiting immediately from event_init() causes nvim to
hang, so just exit before running the events.

fixes #2339
2015-04-08 23:18:16 -04:00
Scott Prager
edbc9e6538 eval: do not assume a vval.v_string is nonnull.
In the fallowing functions, use get_tv_string() to safely avoid a NULL
pointer dereference.
  * rpcstart
  * rpcrequest
  * rpcnotify
  * jobstart

fixes #2321
2015-04-08 23:18:16 -04:00
Scott Prager
41ce69811a system(): Return an empty string if no output.
fixes #2286
2015-04-08 23:18:16 -04:00
Michael Reed
0f6e25a9e4 messages: Update common instances of Vim to Nvim #2031 2015-04-08 23:05:39 -04:00
Florian Walch
6df132f4a4 Merge pull request #2378 from fwalch/travis-disable-nightly
Travis: Disable building 'nightly' tag.
2015-04-09 01:22:42 +03:00
Florian Walch
04e09ba742 Merge pull request #1805 from fwalch/vim-7.4.399
vim-patch: Port parts of Vim 7.4.399.
2015-04-09 00:02:09 +03:00
Florian Walch
1882598e71 Travis: Disable building 'nightly' tag. 2015-04-08 20:38:36 +03:00
Scott Prager
e1bac3b840 Merge pull request #2346 from splinterofchaos/fix-terminal
[RFC] terminal: Handle loss of focus in event loop.
2015-04-08 12:27:52 -04:00
Florian Walch
dea2731184 vim-patch: Port parts of Vim 7.4.399.
Resolves #1753.

https://code.google.com/p/vim/source/detail?r=v7-4-399

Reviewed-by: Felipe Oliveira Carvalho <felipekde@gmail.com>

Helped-by: David Bürgin <676c7473@gmail.com>
Helped-by: Scott Prager <splinterofchaos@gmail.com>
Helped-by: Michael Reed <m.reed@mykolab.com>
Helped-by: Felipe Oliveira Carvalho <felipekde@gmail.com>
2015-04-08 18:33:54 +03:00
oni-link
5f98c32725 event.c: Simplify timer use in event_poll()
event_poll() always leaves the libuv I/O loop after one iteration. The
duration for how long the loop polls for I/O is given by the shortest
timeout of all active timers. Is no timer active, I/O is/could be polled
indefinitely.

To make sure our timer is still active when I/O polling begins,
a prepare handle is used to start the timer right before the polling.

But by only using a timer that restarts after its timeout was reached,
we also can assure that polling is done with (nearly) the same finite
timeout.

For a short explanation how the I/O loop is working, see
http://docs.libuv.org/en/latest/design.html#the-i-o-loop.
2015-04-08 09:46:14 -03:00
Justin M. Keyes
95db8df682 Merge #2303 'Fix clang analysis warnings. (9)' 2015-04-07 20:04:35 -04:00
Eliseo Martínez
3c57f5a0e1 Fix warnings: window.c: close_last_window_tabpage(): Np deref: RI.
Problem    : Dereference of null pointer @ 1769.
Diagnostic : Real issue.
Rationale  : It seems buffer could be null. Not sure, though.
Resolution : Check for buffer null.
             This resolution was chosen as it will always work.
             But it could be that buffer can't really be null at that
             point. autocmd_win is ruled out by close_window, so that
             can't be the case. I'm not sure if other windows without
             buffers are possible, so leaving it this way.
             If it's confirmed buffer can't be null, resolution through
             an assert would be possible and this would be FP, not RI.
2015-04-07 20:04:34 -04:00
Eliseo Martínez
af8adc2d8c Fix warnings: terminal.c: get_config_int(): Dead init: RI.
Problem    : Dead initialization @ 1119.
Diagnostic : Real issue.
Rationale  : `obj` is immediately assigned another value through
             GET_CONFIG_VALUE macro.
Resolution : Don't initialize.

Helped-by: oni-link <knil.ino@gmail.com>
2015-04-07 20:04:34 -04:00
Eliseo Martínez
1b4dbdf45b Fix warnings: terminal.c: get_config_string(): Dead init: RI.
Problem    : Dead initialization @ 1109.
Diagnostic : Real issue.
Rationale  : `obj` is immediately assigned another value through
             GET_CONFIG_VALUE macro.
Resolution : Don't initialize.

Helped-by: oni-link <knil.ino@gmail.com>
2015-04-07 20:04:33 -04:00
Eliseo Martínez
3465a945e1 Fix warnings: terminal.c: redraw(): Np dereference: RI.
Problem    : Dereference of null pointer @ 1053.
Diagnostic : Real issue.
Rationale  : Branch "Exiting focused terminal" can actually be executed
             when term is NULL.
Resolution : Guard branch with term check.
2015-04-07 20:04:33 -04:00
Eliseo Martínez
bddba93949 Fix warnings: eval.c: f_termopen(): Use-after-free: MI.
Problem    : Use-after-free @ 15081.
Diagnostic : Multithreading issue.
Rationale  : `get_dict_callback` can return NULL on two different
             cases: 1) when the dict doesn't contain the given key;
             this case is not considered an error. 2) when the key
             exists but there's some problem with its value; this is
             considered an error.
             Then, code calling `get_dict_callback` in
             `common_job_callbacks`, as well as code calling
             `common_job_callbacks`, uses `did_emsg` to distinguish
             between error/non-error cases.
             Suggested error path presumes an error condition within
             `common_job_callbacks`, with `did_emsg` being true, but
             then being false just after returning to calling code in
             `f_termopen`.
             That, clearly, could only happen if another thread run in
             between those points.
Resolution : Refactor `get_dict_callback` and `common_job_callbacks`, so
             that they clearly distinguish between error/non-error
             situations, without recurring to globals.
2015-04-07 20:04:33 -04:00
Eliseo Martínez
31581bd750 Fix warnings: eval.c: f_jobstart(): Np dereference: FP.
Problem    : Dereference of null pointer @ 10812.
Diagnostic : False positive.
Rationale  : `args->lv_first` can't be NULL, as we have just stated
             above that that there's at least one item.
Resolution : Assert.
2015-04-07 20:04:33 -04:00
Murali Suresh
ee3af18640 legacy tests: migrate test38 #2367 2015-04-07 19:21:55 -04:00
David Bürgin
9a6a311f35 tests: Migrate legacy tests 44 and 99 #2366
Consolidates the old test44 and test99 tests into one busted spec.
2015-04-07 18:54:27 -04:00
Scott Prager
8cac2eea75 term: ensure term->buf is valid
The fallowing test (reduced), submitted by @mhinz may free term->buf,
leaving the pointer dangling.

```vim
let s:buf  = -1

function! s:exit_handler()
  execute 'bdelete!' s:buf
endfunction

vnew
let s:buf = bufnr('%')
let id = termopen('sleep 1', { 'on_exit': function('s:exit_handler') })

call s:test()
```

When the buffer is known to be closing, set term->buf to NULL, and check
buf_valid() in on_refresh().

Helped-by: Marco Hinz (@mhinz)
2015-04-07 16:05:00 -04:00
Eliseo Martínez
6881d9705b Merge #2228: Enable -Wconversion. (2)
Reviewed-by: oni-link <knil.ino@gmail.com>
2015-04-07 19:21:50 +02:00
Eliseo Martínez
402c6fd939 Enable -Wconversion: move.c. 2015-04-07 12:56:28 +02:00
Eliseo Martínez
fa2fcf13aa Enable -Wconversion: fold.c.
Refactor summary:
- foldinfo_T.fi_lnum: int --> linenr_T
                      Reorder field for optimal packing.
- foldAddMarker(..., markerlen): int --> size_t
    * foldstartmarkerlen: int --> size_t
        - foldDelMarker(..., markerlen): int --> size_t
            * foldendmarkerlen: int --> size_t

Helped-by: oni-link <knil.ino@gmail.com>
2015-04-07 12:56:28 +02:00
Eliseo Martínez
c5d7fa615d Enable -Wconversion: popupmnu.c.
Helped-by: oni-link <knil.ino@gmail.com>
2015-04-07 12:56:27 +02:00
Eliseo Martínez
2cd78638d4 Enable -Wconversion: farsi.c: Cleanup.
No semantic changes. Just some reformatting to save lines.
2015-04-07 12:56:27 +02:00
Eliseo Martínez
0601da3ef1 Enable -Wconversion: farsi.c: Solve issues.
Refactor summary:
- toF_TyB: int fn(int) --> char_u fn(int)
- put_and_redo: void fn(int) --> void fn(char_u)
    * put_curr_and_l_to_X: void fn(int) --> void fn(char_u)
        - toF_TyA: int fn(int) --> char_u fn(char_u)
    * toF_Xor_X_: int fn(int) --> char_u fn(int)
- toF_leading: int fn(int) --> char_u fn(char_u)
- toF_Rjoin: int fn(int) --> char_u fn(char_u)
- toF_ending: int fn(int) --> char_u fn(char_u)
- canF_Ljoin: bool fn(int) --> bool fn(char_u)
- canF_Rjoin: bool fn(int) --> bool fn(char_u)
- F_isterm: bool fn(int) --> bool fn(char_u)

Helped-by: oni-link <knil.ino@gmail.com>
2015-04-07 12:56:27 +02:00
Scott Prager
5f3eeadd03 Merge pull request #2348 from mhinz/job-control-mouse
[RFC] Job control: enable mouse after foregrounding
2015-04-06 22:37:52 -04:00
rhysd
6322a48173 Remove duplicates in BACKERS.md #2363 2015-04-06 15:43:31 -04:00
Marco Hinz
9a7b071e64 Job control: reset mouse support after foregrounding
Reset mouse support to whatever was used before the process was suspended.

References #2335.
2015-04-06 20:26:21 +02:00
Anton Ovchinnikov
98908853b9 Remove redundant NULL checks
menu_text() never returns NULL, because vim_strsave() and vim_strnsave()
never return NULL.
2015-04-06 13:05:40 +02:00
David Bürgin
0af7c8f624 legacy tests: Remove legacy tests for Lua (test85) #2357 2015-04-06 01:49:36 -04:00
David Bürgin
4657cd53d3 legacy tests: Remove legacy tests for MzScheme (test70) 2015-04-06 01:48:31 -04:00
David Bürgin
d41322fafb tests: Migrate legacy tests 92 and 93 #2261 2015-04-05 22:14:10 -04:00
David Bürgin
7a5a85d2c4 vim-patch:7.4.636 #2267
Problem:    A search with end offset gets stuck at end of file. (Gary Johnson)
Solution:   When a search doesn't move the cursor repeat it with a higher
            count. (Christian Brabandt)

https://github.com/vim/vim/releases/tag/v7-4-636
2015-04-05 21:35:17 -04:00
Justin M. Keyes
23425a3a6e Merge #2240 'Fix problem with coverity/105568 fix'
Closes #2230
2015-04-05 20:27:46 -04:00
oni-link
8ee6f90bf8 Fix problem with coverity/105568 fix.
The original fix 3db0a40d69
does not work for more than one loop iteration, because memory allocated
in the previous iteration could be reused in the current iteration.

Because expand_wildcards() never reads the variables *num_file
and *file before the first assignment to them, the initial
values for these variables can be anything. So instead of
calling expand_shellcmd() with *file = "" we set *file = NULL.
That should help coverity see, that not a array-typed value
is freed.

Helped-by: Eliseo Martínez <eliseomarmol@gmail.com>
2015-04-05 20:27:46 -04:00