| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
| |
Follow-up of vim-patch:8.0.1215
|
|
|
|
|
|
| |
Problem: Newer gcc warns for implicit fallthrough.
Solution: Consistently use a FALLTHROUGH comment. (Christian Brabandt)
https://github.com/vim/vim/commit/2f40d129bf45cd35976e4120336ae6d504f5a5dd
|
|
|
|
|
|
| |
Give embeders a chance to set up nvim, by processing a request before
startup. This allows an external UI to show messages and prompts from
--cmd and buffer loading (e.g. swap files)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
loop_schedule_deferred may leak its allocated Event if the Event does
not get processed (when Nvim exits).
It only happens on exit, so we tried to ignore it in .asan-blacklist,
but for that isn't working for unknown reasons.
= ==22007==ERROR: LeakSanitizer: detected memory leaks
= Direct leak of 88 byte(s) in 1 object(s) allocated from:
= 0 0x4ef7a3 in malloc /local/mnt/workspace/tmp/ubuntu_rel/llvm/utils/release/final/llvm.src/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:67:3
= 1 0xfcafc1 in try_malloc /home/travis/build/neovim/neovim/build/../src/nvim/memory.c:88:15
= 2 0xfcb1e9 in xmalloc /home/travis/build/neovim/neovim/build/../src/nvim/memory.c:122:15
= 3 0xa6e75f in loop_schedule_deferred /home/travis/build/neovim/neovim/build/../src/nvim/event/loop.c:91:19
= 4 0x18ab048 in tui_main /home/travis/build/neovim/neovim/build/../src/nvim/tui/tui.c:377:5
= 5 0x18fe120 in ui_thread_run /home/travis/build/neovim/neovim/build/../src/nvim/ui_bridge.c:102:3
= 6 0x7f09e5e58183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312
= SUMMARY: AddressSanitizer: 88 byte(s) leaked in 1 allocation(s).
|
| |
|
| |
|
|
|
|
| |
free_buf (param) and help_window (variable) are bool.
|
|
|
|
|
|
|
|
| |
Problem: MS-Windows users expect -? to work like --help.
Solution: Add -?. (Christian Brabandt, closes vim/vim#2867)
https://github.com/vim/vim/commit/c3e81694fca484ebabd99f3637bd83b9ee2dd50a
Include runtime/ changes from https://github.com/vim/vim/commit/85eee130f44a2201d88ca2aeff0af3b11dd75fa9 to pass 8.1.0231 tests.
|
|
|
|
|
|
|
| |
Problem: Invalid memory access on exit when autocommands wipe out a buffer.
(gy741, Dominique Pelle)
Solution: Check if the buffer is still valid. (closes vim/vim#2449)
https://github.com/vim/vim/commit/606d45ccd8a2ad2956e2729f6135fd79fd2f6d72
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add ext_newgrid and ext_hlstate extensions. These use predefined
highlights and line-segment based updates, for efficiency and
simplicity.. The ext_hlstate extension in addition allows semantic
identification of builtin and syntax highlights.
Reimplement the old char-based updates in the remote UI layer, for
compatibility. For the moment, this is still the default. The bulitin
TUI uses the new line-based protocol.
cmdline uses curwin cursor position when ext_cmdline is active.
|
|
|
|
|
| |
This allows us to keep track of the source higlight groups,
and not only the final combined highlights.
|
| |
|
|
|
|
| |
GCC (Clang also?) does not recognize FALLTHROUGH comments when the
case is wrapped in braces.
|
|
|
| |
Ref #8474
|
|
|
|
|
|
|
|
|
| |
DWIM: avoid empty buffer 1 when stdin was empty. If other files were
specified at startup, we assume that stdin is only accidentally
not-a-TTY: user did not intend to send text from it.
ref #8560
ref #8561
|
|
|
|
|
|
|
|
|
|
|
|
| |
If stdin is not a TTY we read it into buffer 1, as text. But if the
stdin pipe is empty, Nvim was most likely invoked for some other reason.
DWIM: select buffer 2 (if it exists). Example:
echo file1 | xargs nvim
closes #8560
closes #8561
ref https://github.com/equalsraf/neovim-qt/issues/417
|
|
|
|
|
|
|
|
|
|
| |
Before this change, -E/-Es without `-u NONE` reads stdin as Ex commands.
It should always read stdin as text (into buffer 1), like this:
echo foo | nvim -Es +'%p'
foo
echo foo | nvim -Es -u NORC +'%p'
foo
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This changes Ex mode (Q, -e) to work like Vim's "improved Ex mode"
(gQ, -E). That brings some small behavior differences, but should not
impact most Ex scripts (unless, for example, they depend on mappings
being disabled--but that can be solved for -e by skipping user config).
Before this change:
* the screen test hangs.
After this change:
* Q acts like gQ.
* -e/-es differs from -E/-Es only in its treatment of stdin.
This moves towards potentially removing getexmodeline().
(HINT: That does NOT mean "removing Ex mode", it means removing the
Vi-compatible Ex mode, which differs from Vim's "improved Ex mode" only
in some minor details (e.g. mappings are disabled).)
ref #1089 :-)~
|
|
|
|
|
|
|
|
|
|
|
| |
doc: termios defaults. ref #6992
doc: :help shell-powershell
doc: provider: Python minimum version is 2.7, 3.4
doc: remove :!start special-case. #5844
doc: mention #7917 change which accepts empty Array for Dictionary parameter
doc: <Cmd> pseudokey
doc: lmap change #5658
doc: -s, -es
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes 2 failing tests in startup_spec.lua.
The Windows-only `--literal` option complicates support of "stdin-as-text
+ file-args" (#7679). Could work around it, but it's not worth
the trouble:
- users have a reasonable (and englightening) alternative: nvim +"n *"
- "always literal" is more consistent/predictable
- avoids platform-specific special-case
Unrelated changes:
- Replace fileno(stdxx) with STDXX_FILENO for consistency (not motivated
by any observed technical reason).
|
| |
|
|
|
|
|
|
| |
silent-mode (-es/-Es) has been broken for years. The workaround up to
now was to include --headless. But --headless is not equivalent because
it prints all messages, not the limited subset defined by silent-mode.
|
|
|
|
|
|
|
|
|
| |
silent-mode (AKA batch-mode, -es/-Es) by definition should not behave
like a UI.
There are still some places that check `full_screen` to decide behavior,
e.g. msg_start(). Future: maybe eliminate `full_screen`, check
`ui_active()` instead?
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Special-case for -E/-Es (as opposed to -e/-es).
-es/-Es is the only mode that really allows N/Vim to work as a batch
script engine. Adding a new flag (say `-x`) would involve a lot of
churn: -es/-Es is implemented by checking `exmode_active` in numerous
places.
This commit does not change -es because some scripts use it. But scripts
are unlikely to use -Es because it is not functionally different from
-es.
Also, both -es and -Es were broken in Nvim for years and no one
mentioned it...
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Treat stdin as text by default (so the "-" file is not needed):
echo foo | nvim
It works with file args (implemented in next commit), too:
echo foo | nvim file1.txt file2.txt
Why? Because:
- Execution of input is (1) almost always unintentional/confusing,
and (2) potentially destructive.
- Avoids the need for time-delayed warning. #7659
- The _common_ case is to open text in a buffer, not send commands.
Note:
- Not for Ex-mode (-es) because it is used by scripts. But maybe `-Es`?
- Not for --headless, because stdio may be a protocol stream and may be
used for any purpose by stdioopen().
To treat stdin as Normal-mode commands, use `-s -` instead:
echo ifoo | nvim -s -
Other alternatives:
- Replay a register. E.g. the following mostly works, except @q aborts
on any "beep" (e.g. if the cursor can't move).
nvim -c '%d q|norm @q' -
- Future: Let `:%source` work with unsaved buffer contents?
closes #2087
closes #7659
|
|
|
|
|
|
|
|
| |
This code was essentially dead because this condition:
(!parmp->err_isatty && (!parmp->output_isatty || !parmp->input_isatty))
is almost never true.
ref #7659
|
| |
|
|
|
|
|
| |
Vim's vimrc_found() also handles setting 'nocompatible', that's why it
does vimrc_found(NULL, NULL).
|
|
|
|
| |
closes #8393
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
* Reading from stdin on Windows is fixed in the same way as it was in
#8267.
* The file_read function was returning without filling the
destination buffer when it was called with a non-blocking file
descriptor.
|
| |\ |
|
| |\ \ |
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: as fileio is cached and reads blocks this is going to wait
until either EOF or reading enough characters to fill rbuffer. This is
not good when reading user input from stdin as script.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
This variant uses `fdopen()` which is not standard, but it fixes problem on my
system. In next commit `scriptin` will use `FileDescriptor*` from os/fileio in
place of `FILE*`.
|
| | | | |
|
| |_|/
|/| |
| | |
| | | |
closes #8285
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
MSVC predefines `_WIN32`, but not `WIN32`. Also, some unnecessary includes have been removed.
|
| | |
| | |
| | |
| | | |
With MSVC, STDOUT_FILENO and STDERR_FILENO are defined as function calls instead of constants, meaning they can't be assigned to enum values. The enum was only used in one file, so it has been removed. A definition for STDIN_FILENO has been added that is consistent with the other two definitions.
|
| | |
| | |
| | |
| | | |
This should fix a particular false positive from clang 5.0.0 scan-build,
which thinks that nlua_init() can continue after preserve_exit().
|
| | | |
|