| Commit message (Collapse) | Author | Age |
| ... | |
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
All code which was inside #ifdef CURSOR_SHAPE is being used now, except
one in version.c (that occurence is fixed by this commit).
|
| | | | | |
|
| | | |/
| |/|
| | |
| | | |
It is already partially removed from screen.c
|
| | | |
| | |
| | |
| | | |
This is unused after dropped amiga and msdos support.
|
| | | | |
|
| | | | |
|
| | |/
|/|
| |
| | |
Fixes #1039
|
| |/
|
|
|
|
|
| |
Problem: Fixes for computation of topline not tested.
Solution: Add test. (Hirohito Higashi)
https://code.google.com/p/vim/source/detail?r=646616b6ff4defcc7bef0b198b540f6d965a8126
|
| | |
|
| |
|
|
|
|
|
|
| |
Problem: When increasing the size of the lower window, the upper
window jumps back to the top. (Ron Aaron)
Solution: Change setting the topline. (Nobuhiro Takasaki)
https://code.google.com/p/vim/source/detail?r=88a6e9f33822d33b6c32db578750c6c178c63f50
|
| |
|
|
|
| |
They were removed but they can be handy to separate some things to do at
startup in a .vimrc for example.
|
| |
|
|
|
| |
It was already removed in 01ca460 and I erroneously introduced it again in
PR #978.
|
| |\
| |
| | |
Minor buffer.c style cleanups
|
| | | |
|
| | |
| |
| |
| | |
This is never built and references some obscure jsb terminal
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
* With the changes in commit
"events: Refactor how event deferral is handled"
(2e4ea29d2c7b62eb8baf1c41cd43433e085dda0) the function argument
'defer' of 'job_start' and member variable 'defer' of 'struct job'
can be removed.
* Update/Fix the documentation for function 'job_start'.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Not necessary, as discussed in #980.
From the libuv mailing list:
https://groups.google.com/forum/#!topic/libuv/OD38PeGeVgQ
E.g. this could happen (red: on Windows):
> > alloc_cb(handle1);
> > alloc_cb(handle2);
> > read_cb(handle1);
> > read_cb(handle2);
But this couldn't:
> > alloc_cb(handle1);
> > alloc_cb(handle1);
> > read_cb(handle1);
> > read_cb(handle1);
Because each stream has a 1-to-1 correspondance with a libuv handle. The
code removed was never executed.
Closes #980.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
It used to be 1024 bytes, which is very tiny and slows down some operations
(imaging `cat`-ing a large file). Benchmarks show a large speedup for such
cases. ref #978.
For modern systems 0xFFFF bytes (65535 B = 64 KB = 0.0625 MB) per job
shouldn't be a big problem.
|
| | |
| |
| |
| |
| |
| | |
This evades the tempfile problem (unless of course one manually adds
redirects to the shell commandline, which some plugins seem to do, e.g.:
vim-easytags).
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With the goal to support pipe-only system() calls.
Notes on the second (vim) argument to f_system() (i.e.: redirected input)
and its implications:
- When calling system('cat -', ['some', 'list']), vanilla vim (before a
recent patch that added support for passing lists) just passes an empty
file to the process. This is the same as immediately closing the pipe,
which os_system does when no input is given. If we wouldn't close the
pipe, the process will linger forever (as is the case with `cat -`).
As of now, it's not allowed to pass a non-NULL pointer as the `output`
parameter. In other words, it's not possible to signal disinterst in the
process output. That may change in the future.
|
| | |
| |
| |
| |
| |
| | |
- One can now manually close the in-pipe, without having to tear down the
job.
- One can be notified of write success/failure.
|
| | |
| |
| |
| |
| | |
Sometimes a wbuffer is not supposed to be free()'d (such as when it comes
from a constant (possibly static) string, for example.
|
| | |
| |
| |
| | |
Now modules using the wstream can find out what's happening to their writes.
|
| | |
| |
| |
| | |
Used to wait synchronously for a job to end.
|
| | |
| |
| |
| | |
Minor fixes
|
| |\ \
| | |
| | | |
remove gettimeofday() usage
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
gettimeofday() is not portable, replace with os_hrtime() wherever possible.
The new code should behave equivalently to the old implementation.
Because of this, HAVE_GETTIMEOFDAY is no longer necessary To be able to
handle double clicks.
|
| | | |
| | |
| | |
| | |
| | | |
gettimeofday() is not portable. I suspect os_hrtime() is also better as a
seed than gettimeofday() or time() were.
|
| | | |
| | |
| | |
| | | |
Was removed in #699 but actually doesn't have anything to do with security.
|
| | | |
| | |
| | |
| | |
| | |
| | | |
Fixes up gcc 4.1 (not specifically a supported compiler but it's standard
for varargs anyway so it's good to have it included and depend less on
implicit includes).
|
| |\ \ \
| | | |
| | | | |
func_attr: clang/icc support NONNULL_* attr
|
| | | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Both clang and (apparently) icc support the nonnull attribute. So I'm not
sure why it wasn't enabled in the first place.
- clang: http://clang-analyzer.llvm.org/annotations.html#attr_nonnull
- icc: https://software.intel.com/en-us/forums/topic/280290 (not conclusive
evidence, but the best I could find, lacking docs)
|
| | | |
| | |
| | |
| | |
| | | |
Free the data memory of process and pipe handles in the close callback
for a job.
|
| |/ /
| |
| |
| |
| | |
If no channel can be found for a method, free argument arg before
returning.
|
| | | |
|
| |/ |
|
| |
|
|
|
|
| |
- it makes no sense for these functions to take NULL pointers
- if `localtime()` on Windows returns a NULL pointer, the old code would try
to dereference it.
|
| |
|
|
|
|
| |
gettimeofday() doesn't exist on Windows, as reported by @equalsraf. It seems
a call to time() would be sufficient here, as only the seconds since the
UNIX epoch are needed.
|
| |
|
|
| |
Include what you use, also in the positive direction.
|
| | |
|
| |
|
|
| |
Removes the STARTUPTIME define.
|
| |
|
|
|
|
|
|
|
| |
Allow globals.h to be included without including vim.h. Another small piece
of the puzzle of dismantling vim.h.
Moving some extra `#define`'s to globals.h is no better than having them in
vim.h. We should, in a later PR, move them to the file where they belong or
to a separate `constants.h` or something.
|
| |
|
|
| |
The upcoming decoupling of vim.h and globals.h needs this to compile.
|
| |
|
|
|
|
| |
Reuse the profiling functions to implement the startuptime functions.
Decreases our dependency on `gettimeofday()` and thus gets us a little bit
closer to a clean port to Windows.
|
| |
|
|
|
| |
It's a better place to put it. Also slightly documented and reformatted, but
not changed.
|
| | |
|
| |
|
|
| |
As discussed here: https://github.com/neovim/neovim/pull/941/files#r15026398
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Remove all *_set_defer methods and the 'defer' flag from rstream/jobs
- Added {signal,rstream,job}_event_source functions. Each return a pointer that
represent the event source for the object in question(For signals, a static
pointer is returned)
- Added a 'source' field to the Event struct, which is set to the appropriate
value by the code that created the event.
- Added a 'sources' parameter to `event_poll`. It should point to a
NULL-terminated array of event sources that will be used to decide which
events should be processed immediately
- Added a 'source_override' parameter to `rstream_new`. This was required to use
jobs as event sources of RStream instances(When "focusing" on a job, for
example).
- Extracted `process_from` static function from `event_process`.
- Remove 'defer' parameter from `event_process`, which now operates only on
deferred events.
- Refactor `channel_send_call` to use the new lock mechanism
What changed in a single sentence: Code that calls `event_poll` have to specify
which event sources should NOT be deferred. This change was necessary for a
number of reasons:
- To fix a bug where due to race conditions, a client request
could end in the deferred queue in the middle of a `channel_send_call`
invocation, resulting in a deadlock since the client process would never
receive a response, and channel_send_call would never return because
the client would still be waiting for the response.
- To handle "event locking" correctly in recursive `channel_send_call`
invocations when the frames are waiting for responses from different
clients. Not much of an issue now since there's only a python client, but
could break things later.
- To simplify the process of implementing synchronous functions that depend on
asynchronous events.
|
| |
|
|
|
|
| |
Also changed the default log level to INFO so developers won't end up with big
log files without asking explicitly(DLOG statements were placed in really "hot"
code)
|