Problem: A job running in a terminal does not get notified of changes in
the terminal size.
Solution: Use ioctl() and SIGWINCH to report the terminal size.
Problem: When running Vim in a terminal window it does not detect the right
number of colors available.
Solution: Detect the version string that libvterm returns. Pass the number
of colors in $COLORS.
Problem: Terminal resizing doesn't work well.
Solution: Resize the terminal to the Vim window and the other way around.
Avoid mapping typed keys. Set the environment properly.
Problem: Setting v:progpath is not quite right.
Solution: On MS-Windows add the extension. On Unix use the full path for a
relative directory. (partly by James McCoy, closes#1531)
Problem: Warning for an unused parameter when the libcall feature is
disabled. Warning for a function type cast when compiling with
-pedantic.
Solution: Add UNUSED. Use a different type cast. (Damien Molinier)
Problem: When a channel callback consumes a lot of time Vim becomes
unresponsive. (skywind)
Solution: Bail out of checking channel readahead after 100 msec.
Problem: When the channel callback gets job info the job may already have
been deleted. (lifepillar)
Solution: Do not delete the job when the channel is still useful. (ichizok,
closes#1242, closes#1245)
Problem: Exit value from a shell command is wrong. (Hexchain Tong)
Solution: Do not check for ended jobs while waiting for a shell command.
(ichizok, closes#1196)
Problem: An exiting job is detected with a large latency.
Solution: Check for pending job more often. (Ozaki Kiichi) Change the
double loop in mch_inchar() into one.
Problem: When using ":sleep" channel input is not handled.
Solution: When there is a channel check for input also when not in raw mode.
Check every 100 msec.
Problem: When a child process is very fast waiting 10 msec for it is
noticeable. (Ramel Eshed)
Solution: Start waiting for 1 msec and gradually increase.
Problem: Executing autocommands while using the signal stack has a high
chance of crashing Vim.
Solution: Don't invoke autocommands when on the signal stack.
Problem: When waiting for a character is interrupted by receiving channel
data and the first character of a mapping was typed, the mapping
times out. (Ramel Eshed)
Solution: When dealing with channel data don't return from mch_inchar().
Problem: Whether a job has exited isn't detected until a character is
typed. After calling exit_cb the cursor is in the wrong place.
Solution: Don't wait forever for a character to be typed when there is a
pending job. Update the screen if neede after calling exit_cb.
Problem: When using feedkeys() in a timer the inserted characters are not
used right away.
Solution: Break the wait loop when characters have been added to typebuf.
use this for testing CursorHoldI.
Problem: On Unix in a terminal: channel messages are not handled right away.
(Jackson Alves de Aquino)
Solution: Break the loop for timers when something was received.