| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Problem: Channel reading very long lines is slow.
Solution: Collapse multiple buffers until a NL is found.
|
|
|
|
|
|
|
| |
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: Cannot use a function reference for "exit_cb".
Solution: Use get_callback(). (Yegappan Lakshmanan)
|
|
|
|
|
|
| |
Problem: When a channel writes to a buffer it doesn't find a buffer by the
short name but re-uses it anyway.
Solution: Find buffer also by the short name.
|
|
|
|
|
|
|
| |
Problem: When a channel appends to a buffer that is 'nomodifiable' there is
an error but appending is done anyway.
Solution: Add the 'modifiable' option. Refuse to write to a 'nomodifiable'
when the value is 1.
|
|
|
|
|
| |
Problem: Valgrind reports memory leak for job that is not freed.
Solution: Free all jobs on exit. Add test for failing job.
|
|
|
|
|
|
| |
Problem: Crash when job and channel are in the same dict while using
partials. (Luc Hermitte)
Solution: Do not decrement the channel reference count too early.
|
|
|
|
|
| |
Problem: GUI freezes when using a job. (Shougo)
Solution: Unregister the channel when there is an input error.
|
|
|
|
|
|
| |
Problem: Still trying to read from channel that is going to be closed.
(Ramel Eshed)
Solution: Check if ch_to_be_closed is set.
|
|
|
|
|
| |
Problem: Mentioning NetBeans when reading from channel. (Ramel Eshed)
Solution: Make the text more generic.
|
|
|
|
|
| |
Problem: No message on channel log when buffer was freed.
Solution: Log a message.
|
|
|
|
|
| |
Problem: May try to access buffer that's already freed.
Solution: When freeing a buffer remove it from any channel.
|
|
|
|
|
| |
Problem: No error when invoking a callback when it's not safe.
Solution: Add an error message. Avoid the error when freeing a channel.
|
|
|
|
|
|
| |
Problem: Callbacks are invoked when it's not safe. (Andrew Stewart)
Solution: When a channel is to be closed don't invoke callbacks right away,
wait for a safe moment.
|
|
|
|
|
| |
Problem: When job writes to buffer nothing is written. (Nicola)
Solution: Do not discard a channel before writing is done.
|
|
|
|
|
|
|
| |
Problem: When a job is no longer referenced and does not have an exit
callback the process may hang around in defunc state. (Nicola)
Solution: Call job_status() if the job is running and won't get freed
because it might still be useful.
|
|
|
|
|
|
| |
Problem: The screen is not updated if a callback is invoked when closing a
channel.
Solution: Invoke redraw_after_callback().
|
|
|
|
|
|
|
| |
Problem: A channel may be garbage collected while it's still being used by
a job. (James McCoy)
Solution: Mark the channel as used if the job is still used. Do the same
for channels that are still used.
|
|
|
|
|
| |
Problem: Sending DETACH after a channel was closed isn't useful.
Solution: Only add DETACH for a netbeans channel.
|
|
|
|
|
| |
Problem: Test_out_close_cb sometimes fails.
Solution: Always write DETACH to out, not err.
|
|
|
|
|
|
| |
Problem: Channel could be garbage collected too early.
Solution: Don't free a channel or remove it from a job when it is still
useful.
|
|
|
|
|
|
| |
Problem: Cannot use ch_read() in the close callback.
Solution: Do not discard the channel if there is readahead. Do not discard
readahead if there is a close callback.
|
|
|
|
|
|
|
| |
Problem: When a job ends the close callback is invoked before other
callbacks. On Windows the close callback is not called.
Solution: First invoke out/err callbacks before the close callback.
Make the close callback work on Windows.
|
|
|
|
|
|
| |
Problem: When a buffer gets updated while in command line mode, the screen
may be messed up.
Solution: Postpone the redraw when the screen is scrolled.
|
|
|
|
|
|
| |
Problem: Cannot detect a crash in tests when caused by garbagecollect().
Solution: Add garbagecollect_for_testing(). Do not free a job if is still
useful.
|
|
|
|
|
|
|
|
| |
Problem: Leaking memory when there is a cycle involving a job and a
partial.
Solution: Add a copyID to job and channel. Set references in items referred
by them. Go through all jobs and channels to find unreferenced
items. Also, decrement reference counts when garbage collecting.
|
|
|
|
|
| |
Problem: Leaking memory when opening a channel fails.
Solution: Unreference partials in job options.
|
|
|
|
|
| |
Problem: The channel close_cb option does not work.
Solution: Use jo_close_partial instead of jo_err_partial. (Damien)
|
|
|
|
|
| |
Problem: Coverity warns for not checking name length (false positive).
Solution: Only copy the characters we know are there.
|
|
|
|
|
| |
Problem: When writing buffer lines to a pipe Vim may block.
Solution: Avoid blocking, write more lines later.
|
|
|
|
|
| |
Problem: channel_get_all() does multiple allocations.
Solution: Compute the size and allocate once.
|
|
|
|
|
| |
Problem: Win32: waiting on a pipe with fixed sleep time.
Solution: Start with a short delay and increase it when looping.
|
|
|
|
|
| |
Problem: When reading JSON from a channel all readahead is used.
Solution: Use the fill function to reduce overhead.
|
|
|
|
|
| |
Problem: Crash when calling job_start() with a NULL string. (Dominique)
Solution: Check for an invalid argument.
|
|
|
|
|
|
| |
Problem: No test for an invalid Ex command on a channel.
Solution: Test handling an invalid command gracefully. Avoid getting an
error message, do write it to the channel log.
|
|
|
|
|
|
| |
Problem: Compiler doesn't understand switch on all enum values. (Tony
Mechelynck)
Solution: Initialize variable.
|
|
|
|
|
| |
Problem: 64-bit Compiler warning.
Solution: Change type of variable. (Mike Williams)
|
|
|
|
|
| |
Problem: Can't get info about a channel.
Solution: Add ch_info().
|
|
|
|
|
| |
Problem: All Channels share the message ID, it keeps getting bigger.
Solution: Use a message ID per channel.
|
|
|
|
|
|
| |
Problem: Starting job with output to buffer changes options in the current
buffer.
Solution: Set "curbuf" earlier. (Yasuhiro Matsumoto)
|
|
|
|
|
| |
Problem: When a JSON message is split it isn't decoded.
Solution: Wait a short time for the rest of the message to arrive.
|
|
|
|
|
| |
Problem: Malformed channel request causes a hang.
Solution: Drop malformed message. (Damien)
|
|
|
|
|
| |
Problem: Using channel timeout instead of request timeout. (Coverity)
Solution: Remove the extra assignment.
|
|
|
|
|
| |
Problem: Missing changes in channel.c
Solution: Include the changes.
|
|
|
|
|
| |
Problem: Dict options with a dash are more difficult to use.
Solution: Use an underscore, so that dict.err_io can be used.
|
|
|
|
|
| |
Problem: Passing cookie to a callback is clumsy.
Solution: Change function() to take arguments and return a partial.
|
|
|
|
|
| |
Problem: On Win32 escaping the command does not work properly.
Solution: Reset 'ssl' when escaping the command. (Yasuhiro Matsumoto)
|
|
|
|
|
| |
Problem: Missing job_info().
Solution: Implement it.
|
|
|
|
|
| |
Problem: Too much code in eval.c.
Solution: Move job and channel code to channel.c.
|
|
|
|
|
| |
Problem: Too many feature flags for pipes, jobs and channels.
Solution: Only use FEAT_JOB_CHANNEL.
|