Problem: Pty allocation wrong if using file for out channel and using null
for in channel and null for error channel.
Solution: Correct using use_file_for_out in condition. (Ozaki Kiichi, closes
#3917)
Problem: Test for sending large data over channel sometimes fails.
Solution: Handle that the job may have finished early. Also fix that file
changed test doesn't work in the GUI and reduce flakyness. (Ozaki
Kiichi, closes#3861)
Problem: Calling deleted function; test doesn't work on Mac.
Solution: Wait for the function to be called before deleting it. Use a job
to write to the pty, unless in the GUI. (Ozaki Kiichi,
closes#3854)
Problem: When using timers may wait for job exit quite long.
Solution: Return from ui_wait_for_chars_or_timer() when a job or channel
needs to be handled. (Ozaki Kiichi, closes#3783)
Problem: Some tests are flaky or fail on some systems.
Solution: Increase waiting time for port number. Use "cmd /c" to execute
"echo" on win32. (Ken Takata, closes#3534)
Problem: Vim may block on ch_sendraw() when the job is sending data back to
Vim, which isn't read yet. (Nate Bosch)
Solution: Add the "noblock" option to job_start(). (closes#2548)
Problem: Cannot get a list of all the jobs. Cannot get the command of
the job.
Solution: When job_info() is called without an argument return a list of
jobs. Otherwise, include the command that the job is running.
(Yegappan Lakshmanan)
Problem: When one channel test fails others fail as well.
Solution: Stop the job after a failure. Also add a couple of tests to the
list of flaky tests.
Problem: When WaitFor() has a wrong expression it just waits a second,
which goes unnoticed. (James McCoy)
Solution: When WaitFor() times out throw an exception. Fix places where the
expression was wrong.
Problem: Cannot specify directory or environment for a job.
Solution: Add the "cwd" and "env" arguments to job options. (Yasuhiro
Matsumoto, closes#1160)
Problem: Not easy to start Vim cleanly without changing the viminfo file.
Not possible to know whether the -i command line flag was used.
Solution: Add the --clean command line argument. Add the 'viminfofile'
option. Add "-u DEFAULTS".
Problem: When a json message arrives in pieces, the start is dropped and
the decoding fails.
Solution: Do not drop the start when it is still needed. (Kay Zheng) Add a
test. Reset the timeout when something is received.
Problem: When using ch_read() with zero timeout, can't tell the difference
between reading an empty line and nothing available.
Solution: Add ch_canread().
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: 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: A channel is closed when reading on stderr or stdout fails, but
there may still be something to read on another part.
Solution: Turn ch_to_be_closed into a bitfield. (Ozaki Kiichi)
Problem: If a channel in NL mode is missing the NL at the end the remaining
characters are dropped.
Solution: When the channel is closed use the remaining text. (Ozaki Kiichi)
Problem: Can't tell which part of a channel has "buffered" status.
Solution: Add an optional argument to ch_status(). Let ch_info() also
return "buffered" for out_status and err_status.
Problem: The "Reading from channel output..." message can be unwanted.
Appending to a buffer leaves an empty first line behind.
Solution: Add the "out_msg" and "err_msg" options. Writing the first line
overwrites the first, empty line.
Problem: MS-Windows: some files remain after testing.
Solution: Close the channel output file. Wait for the file handle to be
closed before deleting the file.
Problem: When starting a job that reads from a buffer and reaching the end,
the job hangs.
Solution: Close the pipe or socket when all lines were read.