Problem: Channel test sometimes fails, especially on OS/X. (Kazunobu
Kuriyama)
Solution: Change the && into ||, call getsockopt() in more situations.
(Ozaki Kiichi)
Problem: Coverity reported possible use of NULL pointer when using buffer
output with JSON mode.
Solution: Make it actually possible to use JSON mode with a buffer.
Re-encode the JSON to append it to the buffer.
Problem: When a callback adds a syntax item either the redraw doesn't
happen right away or in the GUI the cursor is in the wrong
position for a moment. (Jakson Alves de Aquino)
Solution: Redraw after the callback was invoked.
Problem: Vim hangs when a channel has a callback but isn't referenced.
Solution: Have channel_unref() only return TRUE when the channel was
actually freed.
Problem: Memory leak when using ch_read(). (Dominique Pelle)
No log message when stopping a job and a few other situations.
Too many "Nothing to read" messages. Channels are not freed.
Solution: Free the listtv. Add more log messages. Remove "Nothing to read"
message. Remove the channel from the job when its refcount
becomes zero.
Problem: Error when reading fails uses wrong errno. Keeping channel open
after job stops results in test failing.
Solution: Move the error up. Add ch_job_killed.
Problem: When calling ch_close() the close callback is invoked, even though
the docs say it isn't. (Christian J. Robinson)
Solution: Don't call the close callback.
Problem: Using DETACH in quotes is not compatible with the Netbeans
interface. (Xavier de Gaye)
Solution: Remove the quotes, only use them for JSON and JS mode.
Problem: Channel test fails on Win32 console.
Solution: Don't sleep when timeout is zero. Call channel_wait() before
channel_read(). Channels are not polled during ":sleep". (Yukihiro
Nakadaira)
Problem: Calling a Vim function over a channel requires turning the
arguments into a string.
Solution: Add the "call" command. (Damien) Also merge "expr" and "eval"
into one.
Problem: When the port isn't opened yet when ch_open() is called it may
fail instead of waiting for the specified time.
Solution: Loop when select() succeeds but when connect() failed. Also use
channel logging for jobs. Add ch_log().
Problem: On Mac OS/X the waittime must be > 0 for connect to work.
Solution: Use select() in a different way. (partly by Kazunobu Kuriyama)
Always use a waittime of 1 or more.
Problem: Crash when unletting the variable that holds the channel in a
callback function. (Christian Robinson)
Solution: Increase the reference count while invoking the callback.