| Commit message (Collapse) | Author | Age | 
| |  | 
 | 
| | 
| 
| 
| 
|  | 
Helped-by: Robin Allen <r@foon.uk>
Helped-by: Scott Prager <splinterofchaos@gmail.com>
 | 
| | 
| 
| 
| 
| 
| 
|  | 
channel_write() uses a ref-counted buffer for writing. This buffer
should be released if it was used in "refcount" channel_write() calls.
But calling channel_write() on a closed channel would return early and
not decrease the refcount of the used buffer.
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Notifications for a channel will be sent directly if there are no
pending requests (for this channel). Otherwise notifications are queued
for later sending.
But in two cases a notification could be sent with pending requests:
* Broadcasting a notification
* A channel that has just finished its last pending request
  would call send_delayed_notifications() for all channels.
To prevent this, every channel can now only send its own delayed
notifications and broadcasting checks for pending requests.
 | 
| |\  
| | 
| |  | 
CMakeLists: fix build when there're multiple arguments in C_FLAGS
 | 
| | | 
| | 
| | 
| | 
| | 
| |  | 
Because the COMMAND arguments of custom_command takes a list, and
CMAKE_C_FLAGS is a string, it will be treated as a single long
argument, which will cause the build to fail.
 | 
| | | 
| | 
| | 
| | 
| |  | 
A call to `event_poll` is required to ensure the exit callback from the last job
is invoked.
 | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| |  | 
Due to the way vimscript garbage collection handles cyclic references, its not
possible to rely on incrementing `dv_refcount` to prevent dicts still used
internally from being collected: If a object with dv_refcount > 0 isn't
reachable by vimscript code, it will be freed when `garbage_collect()` is
called. Add the `internal_refcount` field to prevent this.
 | 
| | | 
| | 
| | 
| | 
| | 
| | 
| |  | 
Problem:    Setting 'history' to a big value causes out-of-memory errors.
Solution:   Limit the value to 10000. (Hirohito Higashi)
https://github.com/vim/vim/tree/v7-4-336
 | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| |  | 
Problem:    In a help buffer the global 'foldmethod' is used.  (Paul Marshall)
Solution:   Reset 'foldmethod' when starting to edit a help file.  Move the
            code to a separate function.
https://github.com/vim/vim/releases/tag/v7-4-515
 | 
| | | 
| | 
| | 
| | 
| |  | 
If users want folds to be automatically collapsed, then they should just
set foldmethod=marker in their vimrc.
 | 
| | | 
| | 
| | 
| | 
| | 
| |  | 
This also removes the `#elseif defined(MSWIN)` clause. Due to the
enclosing `if` block, we will never get to this point when src starts with
a '%', making the whole #elseif block dead code.
 | 
| |\ \  
| |/  
|/|    | 
[RDY] vim-patch:7.4.324
 | 
| | | 
| | 
| | 
| | 
| | 
| | 
| |  | 
Problem:    In Ex mode, cyrillic characters are not handled. (Stas Malavin)
Solution:   Support multi-byte characters in Ex mode. (Yukihiro Nakadaira)
https://github.com/vim/vim/releases/tag/v7-4-324
 | 
| | |  | 
 | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| |  | 
Use os_scandir().
fname_case() only gets used when `defined(USE_FNAME_CASE)` (on operating
systems with case-insensitive file systems), but may be useful in other
contexts, so move it to path.c. (See the TODO.)
Remove the unused parameter, len.
 | 
| | | 
| | 
| | 
| | 
| |  | 
Merge unix_expandpath with dos_expandpath from upstream vim and use
os_scandir() over POSIX readdir().
 | 
| | | 
| | 
| | 
| | 
| |  | 
Merge mch_has_wildcard() and mch_has_exp_wildcar() with their upstream
equivalents for Windows and replace the "mch_" suffix with "path_".
 | 
| | |  | 
 | 
| |/   | 
 | 
| | 
| 
| 
| 
|  | 
Use the `is_user_job` to ensure that the job was started by `jobstart` or
`termopen`.
 | 
| |  | 
 | 
| |  | 
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
- Remove JobActivity autocmd and v:job_data variable
- Simplify `jobstart` to receive:
  - An argument vector
  - An optional dictionary which may contain any of the current `jobstart`
    options plus `on_stdout`, `on_stderr` and `on_exit` callbacks.
- Refactor and add more job tests
- Update documentation
 | 
| | 
| 
| 
| 
| 
|  | 
- Make it possible to call or unref ufunc_T pointers directly.
- Keep refcount of named functions, and stop them from being deleted if the
  refcount is greater than 1.
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
Problem:    Language mapping also applies to mapped characters.
Solution:   Add the 'langnoremap' option, when on 'langmap' does not apply to
            mapped characters. (Christian Brabandt)
https://github.com/vim/vim/releases/tag/v7-4-502
 | 
| | 
| 
| 
| 
| 
| 
|  | 
Problem:    No test for what 7.4.517 fixes.
Solution:   Adjust the tests for breakindent. (Christian Brabandt)
https://github.com/vim/vim/releases/tag/v7-4-529
 | 
| | 
| 
| 
|  | 
Completes #1332.
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Instead of selecting stderr on startup if stdin is not a tty, first try reading
from it and only switch to stderr when reading fails. With this behavior we
support commands like:
```
echo q | nvim -es
```
and
```
ls *.md | xargs nvim
```
Fixed small bugs in rstream.c to make this happen.
 | 
| | 
| 
| 
| 
| 
|  | 
Since all reads are queued by the event loop, we must also queue the exit event,
or else the process_close function can close the job streams before received
data is processed.
 | 
| | 
| 
| 
|  | 
- Free memory allocated for job data when the job table is full.
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
This commit integrates libvterm with Neovim and implements a terminal emulator
with nvim buffers as the display mechanism. Terminal buffers can be created
using any of the following methods:
- Opening a file with name following the "term://[${cwd}//[${pid}:]]${cmd}"
  URI pattern where:
  - cwd is the working directory of the process
  - pid is the process id. This is just for use in session files where a pid
    would have been assigned to the saved buffer title.
  - cmd is the command to run
- Invoking the `:terminal` ex command
- Invoking the `termopen` function which returns a job id for automating the
  terminal window.
Some extra changes were also implemented to adapt with terminal buffers. Here's
an overview:
- The `main` function now sets a BufReadCmd autocmd to intercept the term:// URI
  and spawn the terminal buffer instead of reading the file.
- terminal buffers behave as if the following local buffer options were set:
  - `nomodifiable`
  - `swapfile`
  - `undolevels=-1`
  - `bufhidden=hide`
- All commands that delete buffers(`:bun`, `:bd` and `:bw`) behave the same for
  terminal buffers, but only work when bang is passed(eg: `:bwipeout!`)
- A new "terminal" mode was added. A consequence is that a new set of mapping
  commands were implemented with the "t" prefix(tmap, tunmap, tnoremap...)
- The `edit` function(which enters insert mode) will actually enter terminal
  mode if the current buffer is a terminal
- The `put` operator was adapted to send data to the terminal instead of
  modifying the buffer directly.
- A window being resized will also trigger a terminal resize if the window
  displays the terminal.
 | 
| |  | 
 | 
| |  | 
 | 
| | 
| 
| 
| 
| 
|  | 
Most internal functions to modify buffers operate on the current buffer and
require temporary switchs. This macro is a temporary workaround until a cleaner
refactoring of the internal API is performed.
 | 
| | 
| 
| 
|  | 
This ifndef causes problems when including fileio headers.
 | 
| |  | 
 | 
| | 
| 
| 
| 
|  | 
This is required to avoid event loop recursion due to indirect calls to
os_breakcheck by screenalloc
 | 
| |  | 
 | 
| |  | 
 | 
| |  | 
 | 
| |  | 
 | 
| | 
| 
| 
| 
| 
| 
|  | 
Also remove some MS-DOS references on lines already being touched.
Based on this commit:
https://github.com/justinmk/neovim/commit/e4db01ca8707c34dc808d7f6378aa3aba9002a2d
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Add missing parentheses and whatnot, move dangling comment, etc. Some
specific items worth mentioning:
Fixed some references to non-existent tags, found via `make html`
msgpack_rpc/channel.c:
  ELOG already prefixes each line with "error @ ..."
 | 
| |  | 
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
This commit pulls the some environment-variable handling functions out of
misc1.c and in to os/env.c. Previously submited as #1231, this is the start of
a patch series that does that work based on a more up-to-date master branch.
Major tasks accomplished:
  - move functions and fix includes
  - fix clint/clang analysis warnings
  - correct documentation comments
 | 
| | 
| 
| 
| 
|  | 
Fix pointer passed to the handles in the uv_close() calls when process_spawn()
fails.
 | 
| | 
| 
| 
| 
|  | 
Add a SIGCHLD handler for cleaning up pty processes passing the WNOHANG flag. It
may also be used to cleanup processes spawned with uv_spawn.
 | 
| |\  
| | 
| |  | 
Version output cleanup
 | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| |  | 
Despite the +/- prefix, the majority of these features have been made
non-optional at compile time, so their presence here is misleading.
Also mention `:h vim-differences` to make it clear our that many
features are non-optional.
 |