Commit Graph

3110 Commits

Author SHA1 Message Date
Lucas Hoffmann
a4c22c95e3 tests: Migrate legacy test 60. #2721
Helped-By: Justin M. Keyes <justinkz@gmail.com>
2015-05-27 12:06:13 -04:00
Scott Prager
2c9dfddab1 tui: don't pass NULL to termkey #2747
Closes #2745
2015-05-27 10:24:50 -04:00
Justin M. Keyes
b2c400b3f2 input: rename input_{start,stop}_stdin()
- "stdin" is misleading because it may read from stdout or stderr
- also remove some unused includes
2015-05-27 09:34:05 -04:00
Justin M. Keyes
4219b69145 input: stream_set_blocking(): libuv impl
- Create a private libuv loop instead of re-using uv_default_loop(), to
  avoid conflict[1] with existing watcher(s) on the fd.
- Expose the global "input" fd as a getter instead of a mutable global.

[1] .deps/build/src/libuv/src/unix/core.c:833:
      uv__io_stop: Assertion `loop->watchers[w->fd] == w' failed.
2015-05-27 09:34:04 -04:00
Justin M. Keyes
8a782f1699 input: set input stream to blocking on exit
If stdin is non-blocking, many tools (e.g. cat(1), read(1)) which assume
that stdin is blocking, will break in odd ways:

  read: read error: 0: Resource temporarily unavailable
  cat: -: Resource temporarily unavailable
  rm: error closing file

libuv puts stdin in nonblocking mode, and leaves it that way at exit
(this is apparently by design). So, before this commit, this always
works (because the shell clobbers O_NONBLOCK):

  $ nvim --cmd q
  $ read

...but these forms do _not_ work:

  $ nvim --cmd q && read
  $ echo foo | nvim --cmd q && read
  $ nvim && read

After this commit, all of the above forms work.

Background:

437b4397b9 (diff-41f4d294430cd8c36538999d62681ae2)
https://github.com/fish-shell/fish-shell/issues/176#issuecomment-15800155

- bash (and other shells: zsh, tcsh, fish), upon returning to the
  foreground, always sets fd 0 back to blocking mode. This practice only
  applies to stdin, _not_ stdout or stderr (in practice these fds may be
  affected anyways).
- bash/zsh/tcsh/fish do _not_ restore the non-blocking status of stdin
  when _resuming a job_.
- We do _not_ save/restore the original flags visible to
  fcntl(F_[SG]ETFL), because (counterintuitively) that isn't expected.

Helped-by: oni-link <knil.ino@gmail.com>

Closes #2086
Closes #2377

---

Note: The following implementation of stream_set_blocking() was
discarded, because it resulted in a failed libuv assertion[1]:

  int stream_set_blocking(int fd, bool blocking)
  {
    uv_pipe_t stream;
    uv_pipe_init(uv_default_loop(), &stream, 0);
    uv_pipe_open(&stream, fd);
    int retval = uv_stream_set_blocking((uv_stream_t *)&stream, blocking);
    uv_close((uv_handle_t *)&stream, NULL);
    return retval;
  }

[1] .deps/build/src/libuv/src/unix/core.c:833: uv__io_stop: Assertion `loop->watchers[w->fd] == w' failed.
2015-05-27 09:32:31 -04:00
David Bürgin
5a9ad68b25 vim-patch:7.4.582 #2653
Problem:    Can't match "%>80v" properly. (Axel Bender)
Solution:   Correctly handle ">". (Christian Brabandt)

https://github.com/vim/vim/commit/v7-4-582

See https://groups.google.com/d/msg/vim_dev/n-02i4FnOcw/P3Yyx1OLeXgJ

Slightly adapted due to the long_u refactoring in
2ceb1c74d5.

Reviewed-by: Florian Walch <florian@fwalch.com>

Fixes #2726
2015-05-26 01:07:37 -04:00
David Bürgin
c6da503336 vim-patch:7.4.579 #2652
Problem:    Wrong cursor positioning when 'linebreak' is set and lines wrap.
Solution:   (Christian Brabandt)

https://github.com/vim/vim/commit/v7-4-579

See https://groups.google.com/d/msg/vim_dev/Eh3N9L68Ajw/4dB5x1RTQJQJ
2015-05-26 00:49:05 -04:00
David Bürgin
e4c3ac1f82 tests: Convert legacy test29 2015-05-25 16:29:01 -04:00
David Bürgin
44175224cc 'cpoptions': Remove "j" flag 2015-05-25 16:29:00 -04:00
Daniel Hahler
297973ab00 tui: defer resize event #2738
When maximizing the window, often only lines would be detected properly
with the `try_resize` handler being called immediately.

Fixes https://github.com/neovim/neovim/issues/2322.
2015-05-25 14:42:12 -04:00
Nelson Yeung
8ce22c6323 tests: Migrate legacy test 31 #2736 2015-05-25 15:47:12 +03:00
Shougo Matsushita
d9f97e3026 completion: Add v:completed_item feature #2563
Reviewed-by: Michael Reed <m.reed@mykolab.com>
Reviewed-by: Luke Andrew <luke.github@la.id.au>
Reviewed-by: Justin M. Keyes <justinkz@gmail.com>
Reviewed-by: Florian Walch <florian@fwalch.com>
2015-05-24 17:05:12 -04:00
Rui Abreu Ferreira
466bb84ff0 Rename var eof as input_eof #2728
- In Windows eof is a function, renamed the eof var in input.c
  to input_eof
2015-05-24 02:17:32 -04:00
Rui Abreu Ferreira
ac42fb8ca7 Add guard for sys/wait.h header in job.c #2686
The sys/wait.h include was moved after the vim.h include, since the include
guards are defined in config.h the guards cannot be used earlier.
2015-05-21 02:09:50 -04:00
Rui Abreu Ferreira
e1f83d304d Add header guards for sys/time.h and unistd.h in log.c 2015-05-21 02:09:49 -04:00
David Bürgin
32837cc7df 'cpoptions': Remove "-" flag #2655 2015-05-21 01:31:30 -04:00
Felipe Morales
eca51bbfa0 options: Include "j" in default 'formatoptions' #2669 2015-05-21 01:28:20 -04:00
Steven Oliver
1add7a422f sha256.c: Remove unused headers and comments #2714
Reviewed-by: Justin M. Keyes <justinkz@gmail.com>
2015-05-21 01:24:21 -04:00
Felipe Morales
3c2eae6cc6 options: Search upwards for tags file #2670
Also remove some references to emacs tags from the docs.

References https://github.com/neovim/neovim/issues/1664
2015-05-19 16:58:46 -04:00
Björn Linse
5bbd182a3e msgpack-rpc: handle failure to convert method arguments #2664 2015-05-19 16:21:01 +02:00
Michael Reed
a16eab9e57 Remove -T command-line option
It didn't actually do anything after
3baba1e7bc

Helped-by: Justin M. Keyes <justinkz@gmail.com>
2015-05-18 11:06:54 -04:00
Michael Reed
64cecd917d Cleanup 'ttyscroll' remnants
Removed in 3baba1e7bc, but the docs
weren't updated.
2015-05-18 11:06:54 -04:00
Michael Reed
c50c831b85 Cleanup 'ttym[ouse]', FEAT_MOUSE, mouse_(dec|gpm|etc.)
Because of 3baba1e7bc, it's dead code.

Helped-by: Justin M. Keyes <justinkz@gmail.com>
2015-05-18 11:06:54 -04:00
Michael Reed
00cf632b2b Cleanup misc.
Regarding debugger.txt (which was Spotted by @Hettomei):
The third section was empty, and the second section is very outdated.
Nvim doesn't have things like Balloon Evalutation and Sun Visual
workshop integration, so just remove the section.

Regarding everything else:
- term.[ch] and term_defs.h don't exist anymore, so remove refs to them
- Add ttybuiltin to vim_diff.txt. It should have been done before, but
  vim_diff.txt didn't exist when ttybuiltin was removed (done in
  3baba1e7bc6698e6bc9f1d37fce88b30d6274bc9,)

Helped-by: Justin M. Keyes <justinkz@gmail.com>
2015-05-18 11:06:54 -04:00
Thiago de Arruda
1352725beb build: Limit --coverage flag to files under "src"
Resolves #2632. This is done so C helper modules don't generate unexpected
coverage output.

Reviewed-by: Justin M. Keyes <justinkz@gmail.com>
Reviewed-by: Florian Walch <florian@fwalch.com>
2015-05-18 04:28:01 -03:00
Felipe Morales
b90378dfb0 options: Enable &wildmenu, use "list:longest,full" for &wildmode by default #2677 2015-05-17 15:24:31 -04:00
David Bürgin
b1403e7d44 vim-patch:7.4.597 #2658
Problem:    Cannot change the result of systemlist().
Solution:   Initialize v_lock. (Yukihiro Nakadaira)

https://github.com/vim/vim/commit/v7-4-597

See https://groups.google.com/d/msg/vim_dev/WXCfHMeqjfk/n2PjNwZ2bzIJ
2015-05-17 15:11:10 -04:00
cztchoice
7341b285d0 vim-patch: Mark some patches as NA #2672
These changes cannot apply because they
a) fix compiler warning
b) modify removed GUI related code
c) modify removed build files

mark the following patch as NA:
* 7.4.728, https://github.com/vim/vim/commit/v7-4-728
* 7.4.727, https://github.com/vim/vim/commit/v7-4-727
* 7.4.726, https://github.com/vim/vim/commit/v7-4-726
* 7.4.724, https://github.com/vim/vim/commit/v7-4-724
* 7.4.720, https://github.com/vim/vim/commit/v7-4-720
* 7.4.705, https://github.com/vim/vim/commit/v7-4-705
* 7.4.681, https://github.com/vim/vim/commit/v7-4-681
* 7.4.679, https://github.com/vim/vim/commit/v7-4-679
* 7.4.677, https://github.com/vim/vim/commit/v7-4-677
* 7.4.676, https://github.com/vim/vim/commit/v7-4-676
* 7.4.674, https://github.com/vim/vim/commit/v7-4-674
* 7.4.669, https://github.com/vim/vim/commit/v7-4-669
* 7.4.663, https://github.com/vim/vim/commit/v7-4-663
* 7.4.657, https://github.com/vim/vim/commit/v7-4-657

Reviewed-by: David Bürgin <676c7473@gmail.com>
Reviewed-by: Michael Reed <m.reed@mykolab.com>
Reviewed-by: oni-link <knil.ino@gmail.com>
2015-05-17 15:03:49 -04:00
Michael Reed
aa1d9a1807 Build: Use GNUInstallDirs, install man pages #2649
For now, only install man pages matching "nvim*.1": we don't want to
install xxd.1 as it might conflict with that of a user's Vim
installation.

closes #1826

Reviewed-by: Florian Walch <florian@fwalch.com>
Helped-by: John Szakmeister <john@szakmeister.net>
2015-05-17 14:57:43 -04:00
Björn Linse
d9acfbd471 options: mark nonfunctional &termencoding option as hidden. #2631
Remove related dead code and references in the docs.

Helped-By: Michael Reed <m.reed@mykolab.com>
Helped-By: Shougo Matsushita <Shougo.Matsu@gmail.com>
2015-05-17 18:39:25 +02:00
Justin M. Keyes
85c51baf06 passing-by: get_vim_var_str: mark non-null return 2015-05-17 02:17:34 -04:00
Justin M. Keyes
84443f176e doc: v:servername, serverstart() 2015-05-17 02:17:34 -04:00
Justin M. Keyes
3e4534f40f server: repurpose legacy v:servername
- On startup, v:servername is equivalent to $NVIM_LISTEN_ADDRESS
- v:servername may be considered the "default" server address
- v:servername does not change unless the associated server is stopped
  by serverstop()
2015-05-17 02:17:34 -04:00
David Bürgin
7a7d082e12 vim-patch:7.4.562 #2593
Problem:    Segfault with wide screen and error in 'rulerformat'. (Ingo Karkat)
Solution:   Check there is enough space. (Christian Brabandt)

https://github.com/vim/vim/commit/v7-4-562
2015-05-16 23:46:29 -04:00
David Bürgin
f525284778 vim-patch:7.4.594 #2654
Problem:    Using a block delete while 'breakindent' is set does not work
            properly.
Solution:   Use "line" instead of "prev_pend" as the first argument to
            lbr_chartabsize_adv().  (Hirohito Higashi)

https://github.com/vim/vim/commit/v7-4-594

See https://groups.google.com/d/msg/vim_dev/B8k0AVlqMUU/qKXeY8srpGcJ
2015-05-16 18:39:39 -04:00
Justin Gassner
9b87955b34 vim-patch:7.4.{629,695,696,701} Mark as included #2666
https://github.com/vim/vim/commit/v7-4-629
https://github.com/vim/vim/commit/v7-4-695
https://github.com/vim/vim/commit/v7-4-696
deal with coverity issues which were fixed by #1947

https://github.com/vim/vim/commit/v7-4-701
fixes a compiler warning for an uninitialized variable introduced in 695
2015-05-16 16:05:28 -04:00
Michael Reed
6f72f56492 Change 'backspace' default to "indent,eol,start" #2639
While here, alphabetically sort section 2 of vim_diff.txt

Helped-by: Jakob Schnitzer <mail@jakobschnitzer.de>
Helped-by: Felipe Morales <hel.sheep@gmail.com>
2015-05-15 16:28:57 -04:00
Michael Reed
8814e275cf Merge pull request #2643 from glts/mark-na-patches
[RFC] vim-patch: Mark patches as NA
2015-05-14 15:12:25 -04:00
David Bürgin
eaf937ff2c vim-patch:7.4.{592,596,632}: Mark as NA
Original commit message for patch 7.4.592:

Problem:    When doing ":e foobar" when already editing "foobar" and 'buftype'
            is "nofile" the buffer is cleared. (Xavier de Gaye)
Solution:   Do no clear the buffer.

https://github.com/vim/vim/commit/v7-4-592

The change in this patch was amended in patch 7.4.596 to fix an #ifdef
problem, but soon after, in patch 7.4.632, it was reverted wholesale.

See https://groups.google.com/d/msg/vim_dev/SWw5znc3W-8/TDjkUVYfABIJ
2015-05-14 09:55:19 +02:00
David Bürgin
a0a60e6e97 vim-patch: Mark patches as NA
These changes do not apply because a) they apply to removed code,
or b) they address problems to do with #ifdef'ed code.

Marks the following patches as NA:
- 7.4.610, https://github.com/vim/vim/commit/v7-4-610
- 7.4.618, https://github.com/vim/vim/commit/v7-4-618
- 7.4.619, https://github.com/vim/vim/commit/v7-4-619
- 7.4.621, https://github.com/vim/vim/commit/v7-4-621
- 7.4.622, https://github.com/vim/vim/commit/v7-4-622
- 7.4.625, https://github.com/vim/vim/commit/v7-4-625
- 7.4.626, https://github.com/vim/vim/commit/v7-4-626
- 7.4.638, https://github.com/vim/vim/commit/v7-4-638
- 7.4.647, https://github.com/vim/vim/commit/v7-4-647
- 7.4.648, https://github.com/vim/vim/commit/v7-4-648
- 7.4.650, https://github.com/vim/vim/commit/v7-4-650

One trivial change had already been included, so the patch number was
uncommented:

- 7.4.599, https://github.com/vim/vim/commit/v7-4-599
2015-05-14 09:55:19 +02:00
Michael Reed
94d784358f Merge pull request #2605 from Pyrohh/manpages
[RDY] Rewrite English man pages in mdoc, update for Nvim
2015-05-13 19:55:45 -04:00
Mark Bainter
7747bf64d8 minor cleanup. #2610
Update vim_isAbsName() to use bool type
cleanup casts in vim_findfile() and recover_names()

References #2470
2015-05-13 19:42:31 -04:00
Michael Reed
3a3a6bee0d nvim --help text: Unify with manpages 2015-05-13 18:16:51 -04:00
Michael Reed
b0b3076995 main.c: Make '-v' synonymous with '--version'
This is done for consistency with '-h' and '--help'.
While here, also move the mch_exit() call out of usage
to make it clear what is being done.

Helped-by: Justin M. Keyes <justinkz@gmail.com>
2015-05-13 18:16:51 -04:00
Michael Reed
af3381b319 Remove char_u: Review
Helped-by: Scott Prager <splinterofchaos@gmail.com>
2015-05-13 15:29:50 -04:00
Michael Reed
62bcd98ae3 Remove char_u: message:smsg_attr() 2015-05-13 15:29:50 -04:00
Michael Reed
3c5864772f Remove char_u: message:smsg() 2015-05-13 15:29:50 -04:00
Michael Reed
d666b0e48f Remove char_u: ex_docmd:get_view_file() 2015-05-13 15:29:49 -04:00
Michael Reed
743a0aa7f1 Remove char_u: main:use_vimrc 2015-05-13 15:29:49 -04:00
Michael Reed
b4534ba578 Remove char_u: main:process_env()
In addition, make static and modernize function comment
2015-05-13 15:29:49 -04:00