| Commit message (Collapse) | Author | Age |
| ... | |
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
- Set 't_Co' to 256 at startup. The value can be changed by the user for
compatibility with terminals that are less capable.
- `has('gui_running')` will return 1 if at least one rgb UI is attached.
Even though these changes are hacky, they are necessary to make the transition
to the new UI architecture smoother.
|
| |
|
|
|
| |
Before sending a resize command to the UIs, flush the current output buffer to
ensure no redraw commands for a screen with invalid size are processed.
|
| |
|
|
|
|
|
| |
Problem: Non-ascii vertical separater characters are always redrawn.
Solution: Compare only the one byte that's stored. (Thiago Padilha)
https://code.google.com/p/vim/source/detail?r=v7-4-567
|
| |
|
|
|
|
|
| |
Problem: Crash when using matchadd() (Yasuhiro Matsumoto)
Solution: Copy the match regprog.
https://code.google.com/p/vim/source/detail?r=v7-4-528
|
| |
|
|
|
|
|
| |
Problem: Highlighting for multi-line matches is not correct.
Solution: Stop highlight at the end of the match. (Hirohito Higashi)
https://code.google.com/p/vim/source/detail?r=v7-4-545
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is how Nvim behaves when the "abstract_ui" termcap is activated:
- No data is written/read to stdout/stdin by default.
- Instead of sending data to stdout, ui_write will parse the termcap codes
and invoke dispatch functions in the ui.c module.
- The dispatch functions will forward the calls to all attached UI
instances(each UI instance is an implementation of the UI layer and is
registered with ui_attach).
- Like with the "builtin_gui" termcap, "abstract_ui" does not contain any key
sequences. Instead, vim key strings(<cr>, <esc>, etc) are parsed directly by
input_enqueue and the translated strings are pushed to the input buffer.
With this new input model, its not possible to send mouse events yet. Thats
because mouse sequence parsing happens in term.c/check_termcodes which must
return early when "abstract_ui" is activated.
|
| | |
|
| |\
| |
| | |
vim-patch:7.4.425,435,467,472,473,478
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
vim-patch:7.4.472
Problem: The "precedes" entry in 'listchar' will be drawn when
'showbreak is set and list is not.
Solution: Only draw this character when 'list' is on. (Christian
Brabandt)
https://code.google.com/p/vim/source/detail?r=af998690a8841d4df95cea0bed4246f2ba98e247
|
| | |
| |
| |
| |
| |
| |
| |
| | |
vim-patch:7.4.467
Avoid a problem with unwanted linebreaks in block mode
https://code.google.com/p/vim/source/detail?r=v7-4-467
|
| | |
| |
| |
| | |
Also move read_error_exit to os/input.c
|
| | |
| |
| |
| |
| | |
These functions only used to call another os_* function, so remove them and
replace all occurences in the project.
|
| |/
|
|
|
|
|
|
|
|
|
| |
Problems : Null pointer argument in call to memory copy function
@ 6465.
Null pointer argument in call to memory copy function
@ 6475.
Diagnostic : Multithreading issues.
Rationale : Problem occurs if globals `enc_utf8` and `enc_dbcs` are
modified while function is executing.
Resolution : Use local copy of globals.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: Dead assignment @ 7711.
http://neovim.org/doc/reports/clang/report-835eb6.html#EndPath
Diagnostic: Harmless issue.
Rationale : `scol` is only used within `FOR_ALL_TABS` body, which
assigns another value to `scol` at the beginning of each
iteration. If `FOR_ALL_TABS` body would not execute (no
tabs) nothing harmful would happen, as code following
`FOR_ALL_TABS` doesn't use `scol`.
Resolution: Remove.
|
| |
|
|
|
|
|
|
|
| |
Problem: Dead assignment @ 7535.
http://neovim.org/doc/reports/clang/report-19a5cd.html#EndPath
Diagnostic: Harmless issue.
Rationale : `length = msg_col;` is unconditionally executed after this.
Resolution: Remove assignment.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Problem: Dead assigment.
http://neovim.org/doc/reports/clang/report-7362ba.html#EndPath
Diagnostic: Harmless issue.
Rationale : `boguscols` is in fact unread by downstream code.
Resolution: Comment out. This is preferred here over just removing the
line because involved logic is complex, and future readers
of this code could find this extra knowledge useful to
understand what the code is doing.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Problem: Dead initialization @ 3477.
http://neovim.org/doc/reports/clang/report-94b736.html#EndPath
Diagnostic: Harmless issue.
Rationale : `len` is assigned a new value just some lines below. So,
this just seems something due to old-style variable
declarations.
Resolution: We could just remove initialization, but prefer moving
declaration down to point of initialization.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problems: Argument with 'nonnull' attribute passed null @ 277.
http://neovim.org/doc/reports/clang/report-9c3614.html#EndPath
Result of operation is garbage or undefined @ 281.
http://neovim.org/doc/reports/clang/report-45efbf.html#EndPath
Argument with 'nonnull' attribute passed null @ 306.
http://neovim.org/doc/reports/clang/report-ffb84f.html#EndPath
Result of operation is garbage or undefined @ 311.
http://neovim.org/doc/reports/clang/report-d04333.html#EndPath
Argument with 'nonnull' attribute passed null @ 315.
http://neovim.org/doc/reports/clang/report-786819.html#EndPath
Uninitialized argument value @ 328.
http://neovim.org/doc/reports/clang/report-2a5506.html#EndPath
Diagnostic: Multithreading issues.
Rationale : All reported problems can only occur if accesed globals
change state while executing function, which could only
happen in a multithreaded environment.
Resolution: Use local variables.
Note that this change alters function semantics, as now
function only depends on global values at entry time.
This shouldn't be a problem, though, as new semantics should
be in fact better.
|
| |
|
|
|
|
|
|
| |
Problem: When using conceal with linebreak some text is not displayed
correctly. (Grüner Gimpel)
Solution: Check for conceal mode when using linebreak. (Christian Brabandt)
https://code.google.com/p/vim/source/detail?r=v7-4-422
|
| |\
| |
| | |
Remove FOR_ALL_WINDOWS and replace with FOR_ALL_WINDOWS_IN_TAB(curtab)
|
| | | |
|
| | | |
|
| |\ \
| | |
| | | |
vim-patch:7.4.391
|
| | |/
| |
| |
| |
| |
| |
| |
| | |
Problem: No 'cursorline' highlighting when the cursor is on a line with
diff highlighting. (Benjamin Fritz)
Solution: Combine the highlight attributes. (Christian Brabandt)
https://code.google.com/p/vim/source/detail?r=v7-4-391
|
| |/ |
|
| |
|
|
|
|
|
| |
Problem: Screen updating is slow when using matches.
Solution: Do not use the ">=" as in patch 7.4.362, check the lnum.
https://code.google.com/p/vim/source/detail?r=v7-4-405
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Problem: When there are matches to highlight the whole window is redrawn,
which is slow.
Solution: Only redraw everything when lines were inserted or deleted.
Reset b_mod_xlines when needed. (Alexey Radkov)
https://code.google.com/p/vim/source/detail?r=v7-4-349
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Problem: When matchaddpos() uses a length smaller than the number of
bytes in the (last) character the highlight continues until the end of
the line.
Solution: Change condition from equal to larger-or-equal.
https://code.google.com/p/vim/source/detail?r=7fa2bed947fde3514a700c96861a537d816d6fd4
|
| |
|
|
|
|
|
| |
Problem: Unitialized variables, causing some problems.
Solution: Initialize the variables. (Dominique Pelle)
https://code.google.com/p/vim/source/detail?r=03d260a8ea0c0c67f424c387dbe2af5754e5e589
|
| |
|
|
|
|
|
|
|
|
| |
Problem: Using a regexp pattern to highlight a specific position can
be slow.
Solution: Add matchaddpos() to highlight specific positions
efficiently.
(Alexey Radkov.)
https://code.google.com/p/vim/source/detail?r=f9fa2e506b9f07549cd91074835c5c553db7b3a7
|
| |
|
|
|
|
| |
Problem: With 'linebreak' set and 'list' unset a Tab is not counted
properly. (Kent Sibilev)
Solution: Check the 'list' option. (Christian Brabandt)
|
| |
|
|
|
|
| |
Problem: When 'linebreak' is set control characters are not correctly
displayed. (Kimmy Lindvall)
Solution: Set n_extra. (Christian Brabandt)
|
| |
|
|
|
|
|
|
|
| |
Make 'breakindent' work with the 'list' option.
Originally patched in vim patch 7.4.353, by chrisbra
(https://code.google.com/p/vim/source/detail?r=d42a1d3b74d40f580359dbd139d2d0dfa7235252)
Updated version.c.
|
| | |
|
| |
|
|
|
|
|
| |
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
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Should be better than gettimeofday() since libuv uses higher resolution
clocks on most UNIX platforms. Libuv also tries to use monotonic clocks,
kernel bugs notwithstanding, which is another win over gettimeofday().
Necessary for Windows, which doesn't have gettimeofday(). In vanilla vim,
Windows uses QueryPerformanceCounter, which is the correct primitive for
this sort of things, but that was removed when slimming up the codebase.
Libuv uses QueryPerformanceCounter to implement uv_hrtime() on Windows so
the behaviour of vim profiling on Windows should now be the same.
The behaviour on Linux should be different (better) though, libuv uses more
accurate primitives than gettimeofday().
Other misc. changes:
- Added function attributes where relevant (const, pure, ...)
- Convert functions to receive scalars: Now that proftime_T is always a
(uint64_t) scalar (and not a struct), it's clearer to convert the
functions to receive it as such instead of a pointer to a scalar.
- Extract profiling funcs to profile.c: make everything clearer and reduces
the size of the "catch-all" ex_cmds2.c
- Add profile.{c,h} to clint and -Wconv:
- Don't use sprintf, use snprintf
- Don't use long, use int16_t/int32_t/...
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`-Wstrict-prototypes` warn if a function is declared or defined without
specifying the argument types.
This warning disallow function prototypes with empty parameter list.
In C, a function declared with an empty parameter list accepts an
arbitrary number of arguments when being called. This is for historic
reasons; originally, C functions didn't have prototypes, as C evolved
from B, a typeless language. When prototypes were added, the original
typeless declarations were left in the language for backwards
compatibility.
Instead we should provide `void` in argument list to state
that function doesn't have arguments.
Also this warning disallow declaring type of the parameters after the
parentheses because Neovim header generator produce no declarations for
old-stlyle prototypes: it expects to find `{` after prototype.
|
| | |
|
| | |
|