| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
| |
t_colors should not be checked when abstract_ui is active, because nvim UI is
not limited to a terminal.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Replace code like this
```c
func() {
if (cond) {
...
...
...
}
return ret;
}
```
```c
for (...) {
if (cond) {
...
...
...
}
}
```
with
```c
func() {
if (!cond) {
return ret;
}
...
...
...
}
```
```c
for (...) {
if (!cond) {
continue;
}
...
...
...
}
```
|
|
|
|
|
|
|
|
| |
Problem : Dereference of null pointer @ 3247.
Diagnostic : Multithreading issue.
Rationale : Problem only occurs if global `ctrl_x_mode` is modified
while calling function is executing.
Solution : Use local copy instead of global.
|
|\
| |
| | |
vim-patch:7.4.425,435,467,472,473,478
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
vim-patch:7.4.435
Problem: Line formatting behaves differently when 'linebreak' is set.
(mvxxc)
Solution: Disable 'linebreak' temporarily. (Christian Brabandt)
https://code.google.com/p/vim/source/detail?r=v7-4-435
|
| |
| |
| |
| | |
This is not being used and should not be part of the core anyway.
|
| | |
|
| |
| |
| |
| |
| | |
These functions only used to call another os_* function, so remove them and
replace all occurences in the project.
|
|/
|
|
|
|
|
| |
Two new functions, `event_enable_deferred()`/`event_disable_deferred()` have to
be called by code that is capable of handling asynchronicity. User-dialog states
like "press ENTER to continue" or the swap file confirmation no longer will
generate K_EVENT.
|
| |
|
|
|
|
|
|
|
|
| |
Problem : Result of operation is garbage or undefined @ 7460.
Diagnostic : Multithreading issue.
Rationale : Problem occurs if any of globals `enc_utf8`, `p_deco is
modified while function is executing.
Resolution : Use local copy of globals.
|
|
|
|
|
|
|
|
| |
Problem : Assigned value is garbage or undefined @ 6359.
Diagnostic : Multithreading issue.
Rationale : Problem only occurs if global `State` changes while
function is executing.
Resolution : Use local copy of global in function.
|
|
|
|
|
|
|
|
|
| |
Problem : Uninitialized argument value @ 6296.
Diagnostic : False positive.
Rationale : Error occurs if n <= 1. That's not possible because
n >= 1 due to `MB_BYTE2LEN` postcondition and n != 1
because we are in the else branch.
Resolution : Assert n > 1.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problems : Dereference of null pointer @ 3615.
Dereference of null pointer @ 3764.
Diagnostic : False positives.
Rationale : `ins_buf` is local static, so maintains value between calls.
This function will be called first when `compl_started` is
false, and in that case it initializes `ins_buf`. After
that, it can be called multiple times with `compl_started`
true, where `ins_buf` will be updated but not to null.
So, when arriving to both points, `ins_buf` should never be
null.
Resolution : Assert `ins_buf` at both points.
|
|
|
|
|
|
|
|
|
| |
Problem : Dereference of null pointer @ 3234.
Diagnostic : False positive.
Rationale : `wp` is local static, so maintains value between calls.
First time function is called for a given flag will have
`buf == curbuf`, implying `wp` initialization.
Resolution : Assert variable always having been initialized.
|
|
|
|
|
|
|
|
| |
Problem: Omni complete popup drawn incorrectly.
Solution: Call validate_cursor() instead of check_cursor(). (Hirohito
Higashi)
https://code.google.com/p/vim/source/detail?r=v7-4-440
|
|
|
|
|
|
|
|
| |
Problem: Inserting text for Visual block mode, with cursor movement,
repeats the wrong text. (Aleksandar Ivanov)
Solution: Reset the update_Insstart_orig flag. (Christian Brabandt)
https://code.google.com/p/vim/source/detail?r=v7-4-407
|
|
|
|
|
|
|
|
| |
Problem: Get u_undo error when backspacing in Insert mode deletes more than
one line break. (Ayberk Ozgur)
Solution: Also decrement Insstart.lnum.
https://code.google.com/p/vim/source/detail?r=v7-4-381
|
|
|
|
|
|
|
|
| |
Problem: "4gro" replaces one character then executes "ooo". (Urtica
Dioica)
Solution: Write the ESC in the second stuff buffer.
https://code.google.com/p/vim/source/detail?r=v7-4-387
|
|
|
|
|
|
|
|
|
| |
Problem: Popup menu flickers too much.
Solution: Remove the forced redraw. (Hirohito Higashi)
https://code.google.com/p/vim/source/detail?r=v7-4-376
Includes: vim-patch:7.4.357 vim-patch:7.4.367 vim-patch:7.4.376
|
| |
|
|\
| |
| | |
Add FOR_ALL_BUFFERS helper
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Problem: Completion messages can get in the way of a plugin.
Solution: Add 'c' flag to 'shortmess' option. (Shougo Matsu)
https://code.google.com/p/vim/source/detail?r=4d7af1962d6ce61df65fdc5c86544a61951f9517
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To make it possible reuse `event_poll` recursively and in other blocking
function calls, this changes how deferred/immediate events are processed:
- There are two queues in event.c, one for immediate events and another for
deferred events. The queue used when pushing/processing events is determined
with boolean arguments passed to `event_push`/`event_process` respectively.
- Events pushed to the immediate queue are processed inside `event_poll` but
after the `uv_run` call. This is required because libuv event loop does not
support recursion, and processing events may result in other `event_poll`
calls.
- Events pushed to the deferred queue are processed later by calling
`event_process(true)`. This is required to "trick" vim into treating all
asynchronous events as special keypresses, which is the least obtrusive
way of introducing asynchronicity into the editor.
- RStream instances will now forward the `defer` flag to the `event_push` call.
|
| |
|
| |
|
|
|
|
|
| |
move W_ENDCOL to screen.c
remove the rest of the W_* macros
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- The 'stripdecls.py' script replaces declarations in all headers by includes to
generated headers.
`ag '#\s*if(?!ndef NEOVIM_).*((?!#\s*endif).*\n)*#ifdef INCLUDE_GENERATED'`
was used for this.
- Add and integrate gendeclarations.lua into the build system to generate the
required includes.
- Add -Wno-unused-function
- Made a bunch of old-style definitions ANSI
This adds a requirement: all type and structure definitions must be present
before INCLUDE_GENERATED_DECLARATIONS-protected include.
Warning: mch_expandpath (path.h.generated.h) was moved manually. So far it is
the only exception.
|
|
|
|
| |
Special comments formatting, see 'comments' option.
|
|
|
|
|
| |
s/ml_get_curline/get_cursor_line_ptr
s/ml_get_cursor/get_cursor_pos_ptr
|
| |
|
|
|
|
|
|
|
| |
Problem: The '[ mark is in the wrong position after "gq". (Ingo Karkat)
Solution: Add the setmark argument to do_join(). (Christian Brabandt)
https://code.google.com/p/vim/source/detail?r=75f222d67cea335efbe0274de6340dba174c1e7e
|
|
|
|
|
|
| |
* Replace xmalloc (+memmove) with xrealloc
* Code style adjustments.
* Remove obsolete TODO comment
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: Now that nvim/strings.h is correctly namespaced, an issue
that had been masked until now arises:
When compiling, we get a lot of errors because of everywhere
the functions in nvim/strings.h are used, there's no include
to import them.
But, how could this compile and work previously, then? It
turns out that:
- In every such case, we are also including vim.h, which in
turn includes os_unix_defs.h.
- os_unix_defs.h includes <string.h> and also <strings.h> in
some systems (e.g. OSX).
- Build had been modified previously to (even when importing
system headers), prefer equally-named local ones. That was
in fact done as a previous attempt to solve the same issue
we are trying to solve another way now.
So, we were including our "strings.h" as a side-effect of
including <strings.h> through "vim.h" --> "os_unix_defs.h".
Solution: Correctly include "nvim/strings.h" in every file needing it.
|
|
|
|
| |
Prepend 'nvim/' in all project-local (non-system) includes.
|
|
Move files from src/ to src/nvim/.
- src/nvim/ becomes the new root dir for nvim executable sources.
- src/libnvim/ is planned to become root dir of the neovim library.
|