Problems:
- Disables cross-compiling (alternative: keeps two hash implementations which
need to be synchronized with each other).
- Puts code-specific name literals into CMakeLists.txt.
- Workaround for lua’s absence of bidirectional pipe communication is rather
ugly.
Removes all kinds of problems with sorting, provides a ready-to-use function
list representation for genvimvim.lua, does not require specifying function name
twice (VimL function name (string) + f_ function name).
In Windows Lua's os.tmpname() returns relative paths starting with \s,
prepend them with $TEMP to generate a valid path.
In OS X os.tmpname() returns paths in '/tmp' but they should be in
'/private/tmp'. We cannot use os_name() for platform detection because
some tests use tempname() before nvim is spawned, instead use one of the
following:
1. Set SYSTEM_NAME environment variable before calling the tests, it
is set from CMAKE_SYSTEM_NAME(i.e. uname -s or 'Windows')
2. Call uname -s
3. Assume windows
Problem: Invoking mark_adjust() when adding a new line below the last line
is pointless.
Solution: Skip calling mark_adjust() when appending below the last line.
82faa259cc
Inherited signal mask may block SIGCHLD, which causes libuv to hang at
epoll_wait.
Closes#5230
Helped-by: Nicolas Hillegeer <nicolas@hillegeer.com>
Helped-by: John Szakmeister <john@szakmeister.net>
Note: the #pragma gymnastics are a workaround for broken system headers on
macOS.
signal.h:
int sigaddset(sigset_t *, int);
#define sigaddset(set, signo) (*(set) |= __sigbits(signo), 0)
sys/_types/_sigset.h:
typedef __darwin_sigset_t sigset_t;
sys/_types.h:
typedef __uint32_t __darwin_sigset_t; /* [???] signal set */
sigset_t is defined as unsigned int, but the sigaddset() ORs it with an int,
mixing the types. So GCC generates a sign-conversion warning:
sig.c:9:13: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
(*(&s) |= __sigbits((sigset_t) 20), 0);
~~ ^~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
System headers are normally ignored when the compiler generates warnings:
https://gcc.gnu.org/onlinedocs/cpp/System-Headers.html
> GCC gives code found in system headers special treatment. All warnings,
> other than those generated by ‘#warning’ (see Diagnostics), are suppressed
> while GCC is processing a system header. Macros defined in a system header
> are immune to a few warnings wherever they are expanded. This immunity is
> granted on an ad-hoc basis, when we find that a warning generates lots of
> false positives because of code in macros defined in system headers.
Instead of the #pragma workaround, we could cast the sigset_t pointer:
# if defined(__APPLE__)
sigaddset((int *)&mask, SIGCHLD);
# else
sigaddset(&mask, SIGCHLD);
# endif
but that could break if the headers are later fixed.
Problem: 'cscopequickfix' option does not accept new value "a".
Solution: Adjust list of command characters. (Ken Takata)
6d20e17544
All changes applied manually. Definition of `CSQF_CMDS` was moved to
`option_defs.h` in nvim.
Problem: Cscope interface does not support finding assignments.
Solution: Add the "a" command. (ppettina, closesvim/vim#882)
b12e7ef956
All changes applied manually.
When USE_ICONV is defined, iconv.h references various errno constants,
but errno.h is only being included when HAVE_ICONV_H is not defined.
This causes build failures on at least GNU/Hurd.
For any script--not just `:global` commands--there is no reason to
update the system clipboard until the script is finished, so disable it
during do_cmdline().
Before this change, 'clipboard=unnamedplus' causes scripted editing to
be extremely slow (e.g. `:normal` in a while-loop).
Closes#3534
This is necessary incase the buffer was previously opened in a different
tab, in which the window options there do not carry over. It is not
explicitly documented in ':help local-options' but that is how it works.
Features:
c7d84c5550 PR #4980 Full `:ruby` support!
c74ce334f2 PR #4624 timers: timer_start(), timer_stop()
b8e6f04e69 PR #5205 `:CheckHealth` command
47a15d0256 PR #4865 file: Add buffered reading and writing
*Much* faster shada file reading (important for startup time).
71b3e20d0f PR #4723 jobstart() learned 'rpc'
jobs and RPC channel IDs share the same "namespace".
jobstart() can starts RPC channels, which allows scripts to handle
'stderr' on a RPC channel, like a typical non-RPC job.
jobpid()/jobstop() work on RPC "jobs".
Deprecates rpcstart().
4dc4efc36f PR #4449 man.vim rewrite
`:Man` command is enabled by default.
New features: completion, window handling, better parsing, and more.
8a4e5b4bc2 PR #4697 capture() function (renamed to execute())
Supports nesting, including nested :redir.
ae6db26b09 PR #5050 'rplugin manifest: default to XDG dir'
a1682281f4 PR #5214 Restore ":browse oldfiles".
1f7304b846 Better handling of mouse-clicks on concealed chars.
5ea4d58a1b PR #5026 terminal: Ensure b:term_title always has a value
c002310787 tui: Assume 256 colors in most cases.
a2ecbc2cc0 PR #4929 Always resize the :terminal
a59330d6fc PR #4925 api_info()
a160590e40 PR #4813 allow setting cwd in jobstart(), termopen()
74f6460181 PR #4633: support "special" highlight (undercurl)
5a5ef1c222 PR #3450 mouse: Implement horizontal scroll.
Windows support:
All PRs now build on Appveyor targeting win32 and win64!
Numerous fixes!
Fixes:
e9061117a5 PR #4646 Prevent data loss for process output streams
7fa1baf44e PR #4798 'process.c: Fix block in teardown'
c10fe010f1 Prevent endless loop in printdigraph(). (#5215)
add41dca98 PR #5192 timers: Avoid crash after processing events
006f9c0c9c PR #5195 Set the default value for 'packpath'
6da7d6890c PR #5025 Restore double click
d622e9c416 readfile(): Less-disruptive readonly check.
Fixes an issue where nvim unnecessarily "touched" open files.
fe6ec75725 PR #4964 Handle very long $XDG_DATA_DIRS.
895f712df8 option: Do not expand options in XDG vars.
1d8a076157 server_init: Handle server_address_new() failure.
be531aba77 PR #5042 Fix v:register for clipboard=unnamed,unnamedplus
204f557a11 PR #4984 'Trigger TabNewEntered with <CTRL-W>T'
1e93e24f5e PR #4851 synIDattr(): Return RRGGBB value for `fg#`.
Changes:
acc5d08b37 PR #4690 'termguicolors' option enables "true color".
NVIM_TUI_ENABLE_TRUE_COLOR is now ignored.