In Windows we can't assume errno will be set by calls to os_* functions,
instead the return value from os_* functions can be used. This commit fixes two
occurences for os_open().
1. EFBIG is replaced with UV_EFBIG and checked against the return from os_open().
2. EOVERFLOW does not have a corresponding libuv constant, and is not defined
by open() in Windows - disabled this case with a UNIX guard, and check the return
value against -EOVERFLOW (libuv errors are negative errno values in Unix).
From #3473, shada.c used errno constants (e.g. ENOENT) to check the return
of os_open(), but in Windows the return from libuv functions is not -errno.
Instead use libuv error constants (e.g UV_ENOENT) for error checks.
Replaced old unit tests for errno with libuv error codes UV_ENOENT
and UV_EEXIST (for os_open and os_getperms).
Added libuv include path to test/includes compiler calls - needed
to get hold of libuv headers.
Previously os_getperms() returned -1 for any error condition, it
now returns the libuv error code (as returned by os_stat()). This
allows checking for error conditions without relying on errno
(which not available in Windows).
The only case where the errno value from os_getperms() was being used
was in readfile() to set the new-file flag - replaced the errno check
with UV_ENOENT.
Instead of returning bool from os_stat return the actual libuv return code.
This function is static and used internally in nvim/os/fs.c it should not
impact the rest of the API. This is a first step to change other fs functions.
In windows libuv does not return -errno, instead it uses negative
error codes e.g. UV_ENOENT. This commit changes the comments in os_*
functions to reflect this.
It's not documentation in the same sense as the majority of files in
runtime/doc, so is of little use to most users and should probably not
be installed alongside the "real" documentation.
It may be full of good ideas, but it's also full of things which are no
longer applicable to Nvim, such as references to platforms we no longer
support (e.g., MS-DOS), Vi compatibility, Autoconf, the Perl interface,
etc.
If someone is looking for things to fix or improve, the GitHub issue
tracker should prove useful, and, unlike todo.txt, the issues are
generally much more relevant to Nvim. Besides all that, removing
todo.txt makes porting runtime patches a bit easier.
refs #2911, discussed briefly in #2608 and #2553
All `{not in Vi}' tags have been removed, so the first sentence is no
longer true. As for the second sentence, the header ("Differences
between Vim and Vi") is already self-explanatory, so it can be removed
as well.
[RFC] doc/develop.txt pruning
Reviewed-by: Felipe Morales < hel DOT sheep AT gmail DOT com >
Reviewed-by: Marco Hinz < mh DOT codebro AT gmail DOT com >
These are more like notes than proper documentation, so remove it as
they're not of much use unless you don't know what you're looking for.
Many of these are somewhat useful, but many also duplicate what's
already documented elsewhere. In any case, vi_diff.txt is the last
place that assorted tips'n'tricks should be located (we already have
tips.txt!!!).
In regards to Nvim, it's very outdated; for an updated list of such
arguments refer to the manual page or `nvim --help`. In all other
regards, it's of little to no use to end-users.
Note: it looks like viminfo files do not store search direction intentionally.
After reading viminfo file search direction was considered to be “forward”.
Note 2: all files created on earlier Neovim version will automatically receive
“forward” direction.
Fixes#3580
This change adds switch cases for K_FOCUSGAINED and K_FOCUSLOST to the
input handling functions in ex_getln.c and terminal.c. The handling is
identical to what's found in edit.c (just calling apply_autocmds).
If one enters cmdline-mode by feeding `:` and sends a focuslost event (by
leaving the window for example) the text `<FocusLost>` will be inserted
into the command line. There is similar behaviour in terminal mode. This
patch corrects this behavior to fire the apropriate autocmd instead.
Fixes#3714
NA patches list:
652: xxd changes xxd is not included in neovim
744: if_ruby and if_perl legacy tests
750: if_perl build problem
751: compile options
756: if_perl support
757: term.c changes
759: if_lua support
761: term.c changes
762: term.c changes
763: if_lua support
766: term.c changes
770: term.c changes
772: if_mzsch support
802: duplicated test
809: revert of 802
829: GUI
837: Windows with if_sniff
840: GUI
846: CONTRIBUTING.md
850: CONTRIBUTING.md
851: Win32 console
852: Win32 console
855: GTK GUI
861: GTK GUI
862: GTK GUI
867: Windows Fix
869: Windows GUI
872: CI service
874: Windows GUI
875: README.md
876: Windows GUI
880: CI service
884: CI service
886: Windows GUI
890: if_python3
894: vimrun.exe
899: README.md
900: README.md
902: Win32 console
906: Windows problem
907: Dynamic loading
908: Windows build error
910: if_python
911: terminal
913: hangul input GUI only
917: hangulin.c changes
918: if_python
919: if_lua, if_python, if_python3
920: ruby stuff
921: Windows
Reviewed-by: Michael Reed <Pyrohh@users.noreply.github.com>
Two new keys have been added to key_name_entry in keymap.c:
`FocusGained` and `FocusLost`.
Two cases have been added to the key handing switch in edit.c each
applying their respective autocmds.
In normal.c two functions have been added alongside nv_cursorhold doing
a similar job of applying the autocmd for the appropriate key.
tui/input.c has a new function `handle_focus_event` which eats either of
the control sequences for focus gained or lost. This function is checked
before handle_bracketed_paste and handle_forced_escape.
tui.c registers neovim as able to receive these control sequences in
terminfo_start and undoes that in terminfo_stop.
Closes#2302