vim-patch:8.1.2057: the screen.c file is much too big

Problem:    The screen.c file is much too big.
Solution:   Split it in three parts. (Yegappan Lakshmanan, closes vim/vim#4943)
7528d1f6b5

This is an approximation vim-patch 8.1.2057. Applying the patch directly
isn't feasible since our version of screen.c has diverged too much,
however we still introduce drawscreen.c and drawline.c:
- screen.c is now a much smaller file used for low level screen functions
- drawline.c contains everything needed for win_line()
- drawscreen.c contains everything needed for update_screen()

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
This commit is contained in:
Lewis Russell
2022-08-16 12:27:07 +01:00
parent a5ed89c972
commit 51063a90df
57 changed files with 5308 additions and 5258 deletions

25
src/nvim/drawscreen.h Normal file
View File

@@ -0,0 +1,25 @@
#ifndef NVIM_DRAWSCREEN_H
#define NVIM_DRAWSCREEN_H
#include "nvim/drawline.h"
/// flags for update_screen()
/// The higher the value, the higher the priority
enum {
VALID = 10, ///< buffer not changed, or changes marked with b_mod_*
INVERTED = 20, ///< redisplay inverted part that changed
INVERTED_ALL = 25, ///< redisplay whole inverted part
REDRAW_TOP = 30, ///< display first w_upd_rows screen lines
SOME_VALID = 35, ///< like NOT_VALID but may scroll
NOT_VALID = 40, ///< buffer needs complete redraw
CLEAR = 50, ///< screen messed up, clear it
};
/// While redrawing the screen this flag is set. It means the screen size
/// ('lines' and 'rows') must not be changed.
EXTERN bool updating_screen INIT(= 0);
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "drawscreen.h.generated.h"
#endif
#endif // NVIM_DRAWSCREEN_H