aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/screen.c
Commit message (Collapse)AuthorAge
...
* screen: Fix screen_resize to consider minimum screen sizeThiago de Arruda2015-01-15
|
* screen: Fix highlight reset for abstract_uiThiago de Arruda2015-01-13
|
* main: Fix color schemes for abstract_uiThiago de Arruda2015-01-13
| | | | | | | | | - 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.
* ui: Fix redraw bug caused by race conditions with remote clientsThiago de Arruda2015-01-13
| | | | | 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.
* vim-patch:7.4.567Florian Walch2015-01-08
| | | | | | | 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
* vim-patch:7.4.528Florian Walch2014-12-27
| | | | | | | Problem: Crash when using matchadd() (Yasuhiro Matsumoto) Solution: Copy the match regprog. https://code.google.com/p/vim/source/detail?r=v7-4-528
* vim-patch:7.4.545Florian Walch2014-12-24
| | | | | | | 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
* Simple refatorings that didn't fit the pattern of the last commitFelipe Oliveira Carvalho2014-12-13
|
* strings.c: replace copy_spaces, copy_chars with equivalent memset.Daniel Fairhead2014-12-12
|
* ui: Add abstract_ui termcap and split UI layerThiago de Arruda2014-12-08
| | | | | | | | | | | | | | | | | | 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.
* term: Move "set_shellsize" to screen.c as "screen_resize"Thiago de Arruda2014-12-02
|
* Merge pull request #1516 from fmoralesc/new-patchesJustin M. Keyes2014-11-27
|\ | | | | vim-patch:7.4.425,435,467,472,473,478
| * vim-patch:7.4.472: Only draw "precedes" entry in 'listchar' when 'list' is onFelipe Morales2014-11-27
| | | | | | | | | | | | | | | | | | | | | | 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 modeFelipe Morales2014-11-27
| | | | | | | | | | | | | | | | 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
* | ui: Remove redundant ui.h includesThiago de Arruda2014-11-27
| | | | | | | | Also move read_error_exit to os/input.c
* | ui: Remove ui_delay, ui_breakcheck and ui_set_shellsizeThiago de Arruda2014-11-27
| | | | | | | | | | These functions only used to call another os_* function, so remove them and replace all occurences in the project.
* | Fix warnings: screen.c: screenalloc(): Np arg (2): MI.Eliseo Martínez2014-11-18
|/ | | | | | | | | | | 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.
* Convert some values from buffer_defs.h to boolsWayne Rowcliffe2014-11-12
|
* Fix warnings: screen.c: draw_tabline(): Dead assignment: HI.Eliseo Martínez2014-11-06
| | | | | | | | | | | | | 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.
* Fix warnings: screen.c: showmode(): Dead assignment: HI.Eliseo Martínez2014-11-06
| | | | | | | | | 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.
* Fix warnings: screen.c: win_line(): Dead assigment: HI.Eliseo Martínez2014-11-06
| | | | | | | | | | | | 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.
* Fix warnings: screen.c: win_line(): Dead initialization: HI.Eliseo Martínez2014-11-06
| | | | | | | | | | | | 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.
* Fix warnings: screen.c: redraw_asap(): Various (6): MI.Eliseo Martínez2014-11-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* vim-patch:7.4.422Scott Prager2014-10-23
| | | | | | | | 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
* Merge pull request #1208 from war1025/dev/remove_for_all_windowsJustin M. Keyes2014-10-03
|\ | | | | Remove FOR_ALL_WINDOWS and replace with FOR_ALL_WINDOWS_IN_TAB(curtab)
| * Remove W_NEXT use `->w_next`Wayne Rowcliffe2014-09-24
| |
| * Replace FOR_ALL_WINDOWS with FOR_ALL_WINDOWS_IN_TAB(curtab)Wayne Rowcliffe2014-09-24
| |
* | Merge pull request #1236 from atwupack/vp-7.4.391Justin M. Keyes2014-09-26
|\ \ | | | | | | vim-patch:7.4.391
| * | vim-patch:7.4.391André Twupack2014-09-24
| |/ | | | | | | | | | | | | | | 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
* / clang: Division by zerojoshhartigan2014-09-25
|/
* vim-patch:7.4.405Marco Hinz2014-09-23
| | | | | | | 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
* FOR_ALL_WINDOWS_IN_TAB and local variables in FOR_ALL_TAB_WINDOWSWayne Rowcliffe2014-09-22
|
* FOR_ALL_TABS helperWayne Rowcliffe2014-09-22
|
* 7.4.371Scott Prager2014-09-14
|
* vim-patch:7.4.349André Twupack2014-09-11
| | | | | | | | | 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
* Additional FOR_ALL_WINDOWS usageWayne Rowcliffe2014-09-08
|
* Convert FOR_ALL_WINDOWS to use a locally declared pointerWayne Rowcliffe2014-09-08
|
* vim-patch: 7.4.362Felipe Morales2014-09-04
| | | | | | | | | 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
* vim-patch: 7.4.334Felipe Morales2014-09-04
| | | | | | | Problem: Unitialized variables, causing some problems. Solution: Initialize the variables. (Dominique Pelle) https://code.google.com/p/vim/source/detail?r=03d260a8ea0c0c67f424c387dbe2af5754e5e589
* vim-patch: 7.4.330Felipe Morales2014-09-04
| | | | | | | | | | 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
* vim-patch:7.4.388Felipe Morales2014-08-20
| | | | | | Problem: With 'linebreak' set and 'list' unset a Tab is not counted properly. (Kent Sibilev) Solution: Check the 'list' option. (Christian Brabandt)
* vim-patch:7.4.371Felipe Morales2014-08-20
| | | | | | Problem: When 'linebreak' is set control characters are not correctly displayed. (Kimmy Lindvall) Solution: Set n_extra. (Christian Brabandt)
* vim-patch: 7.4.353Felipe Morales2014-08-20
| | | | | | | | | 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.
* Port vim's patch 7.4.338 ('breakindent')Felipe Morales2014-08-20
|
* vim-patch:7.4.314Damián Silvani2014-08-14
| | | | | | | 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
* clang-analyzer: Reduce scope in screen.c.Florian Walch2014-08-07
|
* profiling: implement on top of os_hrtime()Nicolas Hillegeer2014-07-16
| | | | | | | | | | | | | | | | | | | | | | | | | | 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/...
* Use strict function prototypes #945Pavel Platto2014-07-14
| | | | | | | | | | | | | | | | | | | `-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.
* move errno.h include out of vim.hBrandon Coleman2014-07-09
|
* move <inttypes.h> include out of vim.hBrandon Coleman2014-07-09
|