Commit Graph

802 Commits

Author SHA1 Message Date
oni-link
971fd3e18e vim-patch:7.4.236
Problem:    It's not that easy to check the Vim patch version.
Solution:   Make has("patch-7.4.123") work. (partly by Marc Weber)

https://code.google.com/p/vim/source/detail?r=a44087db72386d080e9da870d751daf498004be8
2014-04-19 09:40:18 -03:00
John Schmidt
63cc8b6934 Remove lalloc_clear
Use `xcalloc` instead. Change some local variables
to avoid casting.
2014-04-19 09:36:17 -03:00
Thiago de Arruda
204d3dfafc Add missing names to BACKERS.md 2014-04-18 16:28:47 -03:00
Thiago de Arruda
587f5f0aab Fix bug of job_stop not emitting JobExit
The `job_stop` function was calling `uv_read_stop` on the std{out,err} streams.
This is now responsibility of `RStream` and because of those calls `job_stop`
wasn't emitting the `JobExit` event.
2014-04-18 16:12:26 -03:00
Thiago de Arruda
7fb36ebb1d Remove unnecessary cleanup label from job_start
The argument vector is now freed in the `close_cb` function in job.c
2014-04-18 16:12:00 -03:00
Thiago de Arruda
246d92edb5 Free job data on close_cb 2014-04-18 16:12:00 -03:00
Thiago de Arruda
9979e9eac9 Stop job prepare watcher when there are no jobs
No need to check for job status when no jobs are running
2014-04-18 16:12:00 -03:00
Thiago de Arruda
d59034ea93 Refactor job.c module to use WStream
After a job has accumulated 1mb of stdin data we assume that it's stuck and kill
it.
2014-04-18 16:12:00 -03:00
Thiago de Arruda
913e92324a Extract writing boilerplate into wstream.c module 2014-04-18 16:12:00 -03:00
Thiago de Arruda
d31d3dda3d Correctly free libuv handles
This ensures memory chunks for libuv handles are only freed after the event loop
no longer has references to it.
2014-04-18 16:11:59 -03:00
Thiago de Arruda
9acb960713 Refactor job control to use RStream events
Instead of a single 'job read' callback, job control consumers need to provide
callbacks for "stdout read", "stderr read" and "exit". For vimscript, the
JobActivity autocommand is still used to handle every job event, for example:

```vim
:let srv1_id = jobstart('netcat-server-1', 'nc', ['-l', '9991'])
:let srv2_id = jobstart('netcat-server-2', 'nc', ['-l', '9991'])

function JobEvent()
  " v:job_data[0] = the job id
  " v:job_data[1] = the event type, one of "stdout", "stderr" or "exit"
  " v:job_data[2] = data read from stdout or stderr
  if v:job_data[1] == 'stdout'
    let str = 'Message from job '.v:job_data[0].': '.v:job_data[2]
  elseif v:job_data[1] == 'stderr'
    let str = 'Error message from job '.v:job_data[0].': '.v:job_data[2]
  else
    " Exit
    let str = 'Job '.v:job_data[0].' exited'
  endif

  call append(line('$'), str)
endfunction

au JobActivity netcat-server-* call JobEvent()
```

And to see messages from 'job 1', run in another terminal:

```sh
bash -c "while true; do echo 123; sleep 1; done" | nc localhost 9991
```
2014-04-18 16:11:59 -03:00
Thiago de Arruda
350144f511 Create EventType for RStream reading
RStream will be the main way Neovim receives asynchronous messages, so it is
best to have a specialized EventType for it. A new flag parameter was added to
`rstream_new` which tells the RStream instance to defer event handling for later
with KE_EVENT instead of handling it directly from libuv callback.
2014-04-18 16:11:59 -03:00
Thiago de Arruda
c40428c934 Deal with backpressure on RStream instances
Each RStream instance will now stop its libuv watcher when the buffer is full,
and automatically restart when some data is read with `rstream_read`.
2014-04-18 16:11:59 -03:00
ccvergara
9d16a6b370 update backers.md with bountysource survey responses 2014-04-18 15:49:49 -03:00
Richard Hartmann
d422b994aa Correct 'RichiH' name in BACKERS.md 2014-04-18 10:55:15 -03:00
oni-link
c142abf7e8 vim-patch:7.4.226
Problem:    Cursurline highlighting not redrawn when scrolling. (John
            Marriott)
Solution:   Check for required redraw in two places.

https://code.google.com/p/vim/source/detail?r=b650f2db8f9604124c0ddfb14af0c04bd4ae0580
2014-04-18 10:03:07 -03:00
oni-link
ca4005d759 vim-patch:7.4.245
Problem:    Crash for "vim -u NONE -N  -c '&&'".
Solution:   Check for the pattern to be NULL. (Dominique Pelle)

https://code.google.com/p/vim/source/detail?r=80421d934ebde183ce545ab8d9eb3a4c2065c169
2014-04-17 17:49:12 -03:00
Marco Hinz
85b5a75a69 Remove 'textmode' option
'textmode' is an option obsoleted for at least 10 years in favor of
'fileformat'.
2014-04-16 20:18:37 -03:00
Thiago de Arruda
a53f784738 Handle special KE_EVENT case where maxlen < 3
Possible bug reported by @oni-link [here](https://github.com/neovim/neovim/pull/485/files#r11664573).

It was handled by doing a circular walk through a key buffer and saving the
index between calls with a static variable.

Also replaced some `char_u` occurrences by `uint8_t` and removed unused
headers in input.c module.
2014-04-16 19:54:57 -03:00
Thiago de Arruda
937922271a Configure travis to use prebuilt dependencies
Dependencies are now hosted in a github repository and this brings two advantages:

- Improved build time with travis since we no longer have to build each
  dependency
- Less chance of build errors due to external servers being down since Github is
  now the single point of failure
2014-04-16 19:43:45 -03:00
Marco Hinz
43c6ec6803 Remove modelines
Removed modelines are better than modelines that differ from file to
file.
2014-04-16 14:03:19 -03:00
Thiago de Arruda
f276e97de9 Refactor input module to use RStream class 2014-04-16 09:56:45 -03:00
Thiago de Arruda
6e4e40a0f7 Refactor job control module to use RStream class 2014-04-16 09:56:45 -03:00
Thiago de Arruda
001d05541b Extract reading boilerplate into rstream.c module
The `RStream` class hides the differences between files and other types of
streams with a simpler, general-purpose API for performing non-blocking reads
with libuv. Most of the code was adapted from input.c.
2014-04-16 09:56:45 -03:00
Klemen Košir
b405a64133 Initialize a variable. 2014-04-16 09:50:27 -03:00
Marco Hinz
b94239e03c vim-patch:7.4.253
Problem:  Crash when using cpp syntax file with pattern using external
          match. (Havard Garnes)

Solution: Discard match when end column is before start column.

https://code.google.com/p/vim/source/detail?r=4901a36479f200b2e6700ad91c26911d92deb886
2014-04-16 09:48:50 -03:00
Marco Hinz
cb0adf60de vim-patch:7.4.251
Problem:  Crash when BufAdd autocommand wipes out the buffer.

Solution: Check for buffer to still be valid. Postpone freeing the
          buffer structure. (Hirohito Higashi)

https://code.google.com/p/vim/source/detail?r=29eb4c2a33ac701bfcd4d2e2bed7864eba876e0e
2014-04-16 09:46:01 -03:00
Marco Hinz
40970917dc vim-patch:7.4.240
Problem:  ":tjump" shows "\n" as "\\n".
Solution: Skip over "\" that escapes a backslash. (Gary Johnson)

https://code.google.com/p/vim/source/detail?r=8d1ba0a23588932d22ad37cbd87ae3bbd4bfeff8
2014-04-16 09:45:08 -03:00
Marco Hinz
fca5a5e744 vim-patch:7.4.239
Problem:  ":e +" does not position cursor at end of the file.

Solution: Check for "+" being the last character (ZyX)

https://code.google.com/p/vim/source/detail?r=98bfec9ea7608f312129475d4ca0ae6d1c6c232e
2014-04-16 09:43:23 -03:00
Marco Hinz
62d6564b09 vim-patch:7.4.234
Problem:  Can't get the command that was used to start Vim.

Solution: Add v:progpath. (Viktor Kojouharov)

https://code.google.com/p/vim/source/detail?r=d2286df8719d6e99c743e3bf6ac14d1f9debc84d
2014-04-16 09:41:47 -03:00
Marco Hinz
54f425adc5 vim-patch:7.4.233
Problem:  Escaping special characters for using "%" with a shell command
          is inconsistant: parentheses are escaped but spaces are not.

Solution: Only escape "!". (Gary Johnson)

https://code.google.com/p/vim/source/detail?r=22a1d5762ba3a75984e89dcc47a65498f63a6c2c
2014-04-16 09:38:01 -03:00
Marco Hinz
0e1e9148a3 vim-patch:7.4.232
Problem:  ":%s/\n//" uses a lot of memory. (Aidan Marlin)
Solution: Turn this into a join command. (Christian Brabandt)

https://code.google.com/p/vim/source/detail?r=845608965bd9d0b2755997a7be812746885ff105
2014-04-16 09:35:18 -03:00
Marco Hinz
d322be894e vim-patch:7.4.229
Problem:  Using ":let" for listing variables and the second one is a
          curly braces expression may fail.
Solution: Check for an "=" in a better way. (ZyX)

https://code.google.com/p/vim/source/detail?r=839cca5ec18d560e3714065e54ed38b6e812aaf7
2014-04-16 09:32:50 -03:00
Marco Hinz
a129ab20e7 vim-patch:7.4.221
Problem:  Quickfix doesn't resize on ":copen 20".

Solution: Resize the window when requested. (Christian Brabandt)

https://code.google.com/p/vim/source/detail?r=a548aae15b3a27a56d814900049785c29c01a37a
2014-04-16 09:31:25 -03:00
Marco Hinz
f54c050cf3 vim-patch:7.4.218
Problem:  It's not easy to remove duplicates from a list.

Solution: Add the uniq() function. (LCD)

https://code.google.com/p/vim/source/detail?r=ddc3f32a4b2191f829206322d46f0e9c7e365e22
2014-04-16 09:29:33 -03:00
Marco Hinz
98b0a6ffb4 vim-patch:7.4.215
Problem:  Inconsistency: ":sp foo" does not reload "foo", unless "foo"
          is the current buffer. (Liang Li)

Solution: Do not reload the current buffer on a split command.

https://code.google.com/p/vim/source/detail?r=f069a3a0f84451aa498c6c22d8f922d1e695e96d
2014-04-16 09:18:08 -03:00
oni-link
1b55b127cb vim-patch:7.4.219
Problem:    When 'relativenumber' or 'cursorline' are set the window is
            redrawn much to often. (Patrick Hemmer, Dominique Pelle)
Solution:   Check the VALID_CROW flag instead of VALID_WROW.

https://code.google.com/p/vim/source/detail?r=37af1e6e91bb1e8ceb89d3ba1c49a04ffd889880
2014-04-14 18:26:24 -03:00
oni-link
824d64cb18 vim-patch:7.4.213
Problem:    It's not possible to open a new buffer without creating a swap
            file.
Solution:   Add the ":noswapfile" modifier. (Christian Brabandt)

https://code.google.com/p/vim/source/detail?r=e25a04c1c515e6eb32197291472f89bcadfabf89
2014-04-14 18:23:57 -03:00
oni-link
965f587061 vim-patch:7.4.210
Problem:    Visual block mode plus virtual edit doesn't work well with tabs.
            (Liang Li)
Solution:   Take coladd into account. (Christian Brabandt)

https://code.google.com/p/vim/source/detail?r=420fd9cb86d51a92c4307a746557e81914c6d6c4
2014-04-14 18:21:50 -03:00
oni-link
421c388bb7 vim-patch:7.4.209
Problem:    When repeating a filter command "%" and "#" are expanded.
Solution:   Escape the command when storing for redo. (Christian Brabandt)

https://code.google.com/p/vim/source/detail?r=bb402c49379de97fcd475fbbbbdc5ed41e5dff07
2014-04-14 18:19:10 -03:00
Thiago de Arruda
4a13143263 Bump LuaJIT to version 2.0.3
This update should fix some build problems as shown in the changelog:
http://luajit.org/changes.html
2014-04-14 17:41:14 -03:00
Thiago de Arruda
5eae88d0fa Add more commented patch numbers to version.c
This should help reduce conflicts when merging patches from upstream
2014-04-14 17:19:40 -03:00
oni-link
71e1cccc7a vim-patch:7.4.207
Problem:    The cursor report sequence is sometimes not recognized and results
            in entering replace mode.
Solution:   Also check for the cursor report when not asked for.

https://code.google.com/p/vim/source/detail?r=2aa909427e44cd3aac7def024b66e41d0c9d0e0d
2014-04-14 16:57:44 -03:00
Thiago de Arruda
78fd9386b6 Fix unit tests
Apparently busted 1.11.0 is broken(https://github.com/Olivine-Labs/busted/issues/236)
in a way that is causing the unit tests to fail. This pins the version to 1.10.0
and also fixes a wrong variable set when msgpack was added as a dependency
2014-04-14 16:46:16 -03:00
Will Tange
ed73da9f0e Bring neovim up to date with recent libuv changes
As of v0.11.23 libuv's uv_timer_cb, uv_async_cb, uv_prepare_cb, uv_check_cb and
uv_idle_cb no longer require a status parameter (this went unused in the first
place).

Bump third-party dependency `libuv` up to 0.11.23 and remove the extra
parameters from the callbacks.
2014-04-14 12:59:55 -03:00
oni-link
a881273dad vim-patch:7.4.191
Problem:    Escaping a file name for shell commands can't be done without a
            function.
Solution:   Add the :S file name modifier.

https://code.google.com/p/vim/source/detail?r=40f18a1c1592c8b4047f6f2a413557f48a99c55f
2014-04-14 09:54:40 -03:00
oni-link
644ccdafe0 vim-patch:7.4.205
Problem:    ":mksession" writes command to move to second argument while it
            does not exist.  When it does exist the order might be wrong.
Solution:   Use ":argadd" for each argument instead of using ":args" with a
            list of names. (Nobuhiro Takasaki)

https://code.google.com/p/vim/source/detail?r=0ace3a24c2a0153f0aaf9b619d3958e7f486705f
2014-04-14 09:53:02 -03:00
oni-link
30cd02301e vim-patch:7.4.204
Problem:    A mapping where the second byte is 0x80 doesn't work.
Solution:   Unescape before checking for incomplete multi-byte char. (Nobuhiro
            Takasaki)

https://code.google.com/p/vim/source/detail?r=f5120cbf16b9a9c6e0fbb599a6524e05ecf11393
2014-04-14 09:47:59 -03:00
Thiago de Arruda
4fb45579b5 Add lpeg as explicit third-party dependency
It was being installed because of moonscript, but now it's listed as a
dependency explicitly.
2014-04-13 07:32:52 -03:00
Thiago de Arruda
15f3bae801 Add checks for lpeg/cmsgpack lua packages
These checks will stop the build process with meaningful error messages if
any of those packages are not installed.
2014-04-13 07:32:52 -03:00