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 #4943)
diff --git a/src/proto/drawline.pro b/src/proto/drawline.pro
new file mode 100644
index 0000000..99163ac
--- /dev/null
+++ b/src/proto/drawline.pro
@@ -0,0 +1,3 @@
+/* drawline.c */
+int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, int nochange, int number_only);
+/* vim: set ft=c : */
diff --git a/src/proto/drawscreen.pro b/src/proto/drawscreen.pro
new file mode 100644
index 0000000..8ac12d9
--- /dev/null
+++ b/src/proto/drawscreen.pro
@@ -0,0 +1,25 @@
+/* drawscreen.c */
+int update_screen(int type_arg);
+void win_redr_status(win_T *wp, int ignore_pum);
+void showruler(int always);
+void win_redr_ruler(win_T *wp, int always, int ignore_pum);
+void after_updating_screen(int may_resize_shell);
+void update_curbuf(int type);
+void update_debug_sign(buf_T *buf, linenr_T lnum);
+void updateWindow(win_T *wp);
+int redraw_asap(int type);
+void redraw_after_callback(int call_update_screen);
+void redraw_later(int type);
+void redraw_win_later(win_T *wp, int type);
+void redraw_later_clear(void);
+void redraw_all_later(int type);
+void redraw_curbuf_later(int type);
+void redraw_buf_later(buf_T *buf, int type);
+void redraw_buf_line_later(buf_T *buf, linenr_T lnum);
+void redraw_buf_and_status_later(buf_T *buf, int type);
+void status_redraw_all(void);
+void status_redraw_curbuf(void);
+void redraw_statuslines(void);
+void win_redraw_last_status(frame_T *frp);
+void redrawWinline(win_T *wp, linenr_T lnum);
+/* vim: set ft=c : */
diff --git a/src/proto/screen.pro b/src/proto/screen.pro
index cf95f79..919bd41 100644
--- a/src/proto/screen.pro
+++ b/src/proto/screen.pro
@@ -1,40 +1,30 @@
/* screen.c */
-void redraw_later(int type);
-void redraw_win_later(win_T *wp, int type);
-void redraw_later_clear(void);
-void redraw_all_later(int type);
-void redraw_curbuf_later(int type);
-void redraw_buf_later(buf_T *buf, int type);
-void redraw_buf_line_later(buf_T *buf, linenr_T lnum);
-void redraw_buf_and_status_later(buf_T *buf, int type);
-int redraw_asap(int type);
-void redraw_after_callback(int call_update_screen);
-void redrawWinline(win_T *wp, linenr_T lnum);
-void after_updating_screen(int may_resize_shell);
-void update_curbuf(int type);
-int update_screen(int type_arg);
int conceal_cursor_line(win_T *wp);
void conceal_check_cursor_line(void);
-void update_debug_sign(buf_T *buf, linenr_T lnum);
int get_wcr_attr(win_T *wp);
-void updateWindow(win_T *wp);
+void win_draw_end(win_T *wp, int c1, int c2, int draw_margin, int row, int endrow, hlf_T hl);
+int compute_foldcolumn(win_T *wp, int col);
+void fill_foldcolumn(char_u *p, win_T *wp, int closed, linenr_T lnum);
int screen_get_current_line_off(void);
+void reset_screen_attr(void);
void screen_line(int row, int coloff, int endcol, int clear_width, int flags);
void rl_mirror(char_u *str);
-void status_redraw_all(void);
-void status_redraw_curbuf(void);
-void redraw_statuslines(void);
-void win_redraw_last_status(frame_T *frp);
+void draw_vsep_win(win_T *wp, int row);
void win_redr_status_matches(expand_T *xp, int num_matches, char_u **matches, int match, int showtail);
int stl_connected(win_T *wp);
int get_keymap_str(win_T *wp, char_u *fmt, char_u *buf, int len);
+void win_redr_custom(win_T *wp, int draw_ruler);
void screen_putchar(int c, int row, int col, int attr);
void screen_getbytes(int row, int col, char_u *bytes, int *attrp);
void screen_puts(char_u *text, int row, int col, int attr);
void screen_puts_len(char_u *text, int textlen, int row, int col, int attr);
+void start_search_hl(void);
+void end_search_hl(void);
void screen_stop_highlight(void);
void reset_cterm_colors(void);
+void screen_char(unsigned off, int row, int col);
void screen_draw_rectangle(int row, int col, int height, int width, int invert);
+void space_to_screenline(int off, int attr);
void screen_fill(int start_row, int end_row, int start_col, int end_col, int c1, int c2, int attr);
void check_for_delay(int check_msg_scroll);
int screen_valid(int doclear);
@@ -56,9 +46,10 @@
void clearmode(void);
void draw_tabline(void);
void get_trans_bufname(buf_T *buf);
+int fillchar_status(int *attr, win_T *wp);
+int fillchar_vsep(int *attr);
int redrawing(void);
int messaging(void);
-void showruler(int always);
void comp_col(void);
int number_width(win_T *wp);
int screen_screencol(void);