mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	Merge #774 'Move defines from vim.h to other header files'
This commit is contained in:
		| @@ -16,6 +16,53 @@ | ||||
| // for dict_T | ||||
| #include "nvim/eval_defs.h" | ||||
|  | ||||
| /* | ||||
|  * Flags for w_valid. | ||||
|  * These are set when something in a window structure becomes invalid, except | ||||
|  * when the cursor is moved.  Call check_cursor_moved() before testing one of | ||||
|  * the flags. | ||||
|  * These are reset when that thing has been updated and is valid again. | ||||
|  * | ||||
|  * Every function that invalidates one of these must call one of the | ||||
|  * invalidate_* functions. | ||||
|  * | ||||
|  * w_valid is supposed to be used only in screen.c.  From other files, use the | ||||
|  * functions that set or reset the flags. | ||||
|  * | ||||
|  * VALID_BOTLINE    VALID_BOTLINE_AP | ||||
|  *     on		on		w_botline valid | ||||
|  *     off		on		w_botline approximated | ||||
|  *     off		off		w_botline not valid | ||||
|  *     on		off		not possible | ||||
|  */ | ||||
| #define VALID_WROW      0x01    /* w_wrow (window row) is valid */ | ||||
| #define VALID_WCOL      0x02    /* w_wcol (window col) is valid */ | ||||
| #define VALID_VIRTCOL   0x04    /* w_virtcol (file col) is valid */ | ||||
| #define VALID_CHEIGHT   0x08    /* w_cline_height and w_cline_folded valid */ | ||||
| #define VALID_CROW      0x10    /* w_cline_row is valid */ | ||||
| #define VALID_BOTLINE   0x20    /* w_botine and w_empty_rows are valid */ | ||||
| #define VALID_BOTLINE_AP 0x40   /* w_botine is approximated */ | ||||
| #define VALID_TOPLINE   0x80    /* w_topline is valid (for cursor position) */ | ||||
|  | ||||
| /* flags for b_flags */ | ||||
| #define BF_RECOVERED    0x01    /* buffer has been recovered */ | ||||
| #define BF_CHECK_RO     0x02    /* need to check readonly when loading file | ||||
|                                    into buffer (set by ":e", may be reset by | ||||
|                                    ":buf" */ | ||||
| #define BF_NEVERLOADED  0x04    /* file has never been loaded into buffer, | ||||
|                                    many variables still need to be set */ | ||||
| #define BF_NOTEDITED    0x08    /* Set when file name is changed after | ||||
|                                    starting to edit, reset when file is | ||||
|                                    written out. */ | ||||
| #define BF_NEW          0x10    /* file didn't exist when editing started */ | ||||
| #define BF_NEW_W        0x20    /* Warned for BF_NEW and file created */ | ||||
| #define BF_READERR      0x40    /* got errors while reading the file */ | ||||
| #define BF_DUMMY        0x80    /* dummy buffer, only used internally */ | ||||
| #define BF_PRESERVED    0x100   /* ":preserve" was used */ | ||||
|  | ||||
| /* Mask to check for flags that prevent normal writing */ | ||||
| #define BF_WRITE_MASK   (BF_NOTEDITED + BF_NEW + BF_READERR) | ||||
|  | ||||
| typedef struct window_S win_T; | ||||
| typedef struct wininfo_S wininfo_T; | ||||
| typedef struct frame_S frame_T; | ||||
| @@ -902,12 +949,9 @@ struct window_S { | ||||
|   int w_height;                     /* number of rows in window, excluding | ||||
|                                        status/command line(s) */ | ||||
|   int w_status_height;              /* number of status lines (0 or 1) */ | ||||
|   int w_wincol;                     /* Leftmost column of window in screen. | ||||
|                                        use W_WINCOL() */ | ||||
|   int w_width;                      /* Width of window, excluding separation. | ||||
|                                        use W_WIDTH() */ | ||||
|   int w_vsep_width;                 /* Number of separator columns (0 or 1). | ||||
|                                        use W_VSEP_WIDTH() */ | ||||
|   int w_wincol;                     /* Leftmost column of window in screen. */ | ||||
|   int w_width;                      /* Width of window, excluding separation. */ | ||||
|   int w_vsep_width;                 /* Number of separator columns (0 or 1). */ | ||||
|  | ||||
|   /* | ||||
|    * === start of cached values ==== | ||||
| @@ -916,7 +960,7 @@ struct window_S { | ||||
|    * Recomputing is minimized by storing the result of computations. | ||||
|    * Use functions in screen.c to check if they are valid and to update. | ||||
|    * w_valid is a bitfield of flags, which indicate if specific values are | ||||
|    * valid or need to be recomputed.	See screen.c for values. | ||||
|    * valid or need to be recomputed.	 | ||||
|    */ | ||||
|   int w_valid; | ||||
|   pos_T w_valid_cursor;             /* last known position of w_cursor, used | ||||
|   | ||||
| @@ -1001,7 +1001,7 @@ int win_lbr_chartabsize(win_T *wp, char_u *s, colnr_T col, int *headp) | ||||
|     // non-blank after a blank. | ||||
|     numberextra = win_col_off(wp); | ||||
|     col2 = col; | ||||
|     colmax = (colnr_T)(W_WIDTH(wp) - numberextra); | ||||
|     colmax = (colnr_T)(wp->w_width - numberextra); | ||||
|  | ||||
|     if (col >= colmax) { | ||||
|       n = colmax + win_col_off2(wp); | ||||
| @@ -1049,15 +1049,15 @@ int win_lbr_chartabsize(win_T *wp, char_u *s, colnr_T col, int *headp) | ||||
|     numberextra = win_col_off(wp); | ||||
|     col += numberextra + mb_added; | ||||
|  | ||||
|     if (col >= (colnr_T)W_WIDTH(wp)) { | ||||
|       col -= W_WIDTH(wp); | ||||
|       numberextra = W_WIDTH(wp) - (numberextra - win_col_off2(wp)); | ||||
|     if (col >= (colnr_T)wp->w_width) { | ||||
|       col -= wp->w_width; | ||||
|       numberextra = wp->w_width - (numberextra - win_col_off2(wp)); | ||||
|       if (numberextra > 0) { | ||||
|         col = col % numberextra; | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     if ((col == 0) || (col + size > (colnr_T)W_WIDTH(wp))) { | ||||
|     if ((col == 0) || (col + size > (colnr_T)wp->w_width)) { | ||||
|       added = vim_strsize(p_sbr); | ||||
|       if (tab_corr) { | ||||
|         size += (added / wp->w_buffer->b_p_ts) * wp->w_buffer->b_p_ts; | ||||
| @@ -1124,7 +1124,7 @@ int in_win_border(win_T *wp, colnr_T vcol) | ||||
|     // there is no border | ||||
|     return FALSE; | ||||
|   } | ||||
|   width1 = W_WIDTH(wp) - win_col_off(wp); | ||||
|   width1 = wp->w_width - win_col_off(wp); | ||||
|  | ||||
|   if ((int)vcol < width1 - 1) { | ||||
|     return FALSE; | ||||
|   | ||||
| @@ -113,7 +113,7 @@ static int coladvance2( | ||||
|         --curwin->w_curswant; | ||||
|     } | ||||
|   } else { | ||||
|     int width = W_WIDTH(curwin) - win_col_off(curwin); | ||||
|     int width = curwin->w_width - win_col_off(curwin); | ||||
|  | ||||
|     if (finetune | ||||
|         && curwin->w_p_wrap | ||||
| @@ -217,7 +217,7 @@ static int coladvance2( | ||||
|       int b = (int)wcol - (int)col; | ||||
|  | ||||
|       /* The difference between wcol and col is used to set coladd. */ | ||||
|       if (b > 0 && b < (MAXCOL - 2 * W_WIDTH(curwin))) | ||||
|       if (b > 0 && b < (MAXCOL - 2 * curwin->w_width)) | ||||
|         pos->coladd = b; | ||||
|  | ||||
|       col += b; | ||||
| @@ -395,7 +395,7 @@ bool leftcol_changed(void) | ||||
|   bool retval = false; | ||||
|  | ||||
|   changed_cline_bef_curs(); | ||||
|   lastcol = curwin->w_leftcol + W_WIDTH(curwin) - curwin_col_off() - 1; | ||||
|   lastcol = curwin->w_leftcol + curwin->w_width - curwin_col_off() - 1; | ||||
|   validate_virtcol(); | ||||
|  | ||||
|   /* | ||||
|   | ||||
| @@ -544,7 +544,7 @@ edit ( | ||||
|       validate_cursor_col(); | ||||
|  | ||||
|       if ((int)curwin->w_wcol < mincol - curbuf->b_p_ts | ||||
|           && curwin->w_wrow == W_WINROW(curwin) | ||||
|           && curwin->w_wrow == curwin->w_winrow | ||||
|           + curwin->w_height - 1 - p_so | ||||
|           && (curwin->w_cursor.lnum != curwin->w_topline | ||||
|               || curwin->w_topfill > 0 | ||||
| @@ -1342,11 +1342,11 @@ void edit_putchar(int c, int highlight) | ||||
|       attr = hl_attr(HLF_8); | ||||
|     else | ||||
|       attr = 0; | ||||
|     pc_row = W_WINROW(curwin) + curwin->w_wrow; | ||||
|     pc_col = W_WINCOL(curwin); | ||||
|     pc_row = curwin->w_winrow + curwin->w_wrow; | ||||
|     pc_col = curwin->w_wincol; | ||||
|     pc_status = PC_STATUS_UNSET; | ||||
|     if (curwin->w_p_rl) { | ||||
|       pc_col += W_WIDTH(curwin) - 1 - curwin->w_wcol; | ||||
|       pc_col += curwin->w_width - 1 - curwin->w_wcol; | ||||
|       if (has_mbyte) { | ||||
|         int fix_col = mb_fix_col(pc_col, pc_row); | ||||
|  | ||||
| @@ -1408,7 +1408,7 @@ void display_dollar(colnr_T col) | ||||
|     curwin->w_cursor.col -= (*mb_head_off)(p, p + col); | ||||
|   } | ||||
|   curs_columns(FALSE);              /* recompute w_wrow and w_wcol */ | ||||
|   if (curwin->w_wcol < W_WIDTH(curwin)) { | ||||
|   if (curwin->w_wcol < curwin->w_width) { | ||||
|     edit_putchar('$', FALSE); | ||||
|     dollar_vcol = curwin->w_virtcol; | ||||
|   } | ||||
| @@ -5493,7 +5493,7 @@ check_auto_format ( | ||||
| /* | ||||
|  * Find out textwidth to be used for formatting: | ||||
|  *	if 'textwidth' option is set, use it | ||||
|  *	else if 'wrapmargin' option is set, use W_WIDTH(curwin) - 'wrapmargin' | ||||
|  *	else if 'wrapmargin' option is set, use curwin->w_width - 'wrapmargin' | ||||
|  *	if invalid value, use 0. | ||||
|  *	Set default to window width (maximum 79) for "gq" operator. | ||||
|  */ | ||||
| @@ -5508,7 +5508,7 @@ comp_textwidth ( | ||||
|   if (textwidth == 0 && curbuf->b_p_wm) { | ||||
|     /* The width is the window width minus 'wrapmargin' minus all the | ||||
|      * things that add to the margin. */ | ||||
|     textwidth = W_WIDTH(curwin) - curbuf->b_p_wm; | ||||
|     textwidth = curwin->w_width - curbuf->b_p_wm; | ||||
|     if (cmdwin_type != 0) | ||||
|       textwidth -= 1; | ||||
|     textwidth -= curwin->w_p_fdc; | ||||
| @@ -5523,7 +5523,7 @@ comp_textwidth ( | ||||
|   if (textwidth < 0) | ||||
|     textwidth = 0; | ||||
|   if (ff && textwidth == 0) { | ||||
|     textwidth = W_WIDTH(curwin) - 1; | ||||
|     textwidth = curwin->w_width - 1; | ||||
|     if (textwidth > 79) | ||||
|       textwidth = 79; | ||||
|   } | ||||
|   | ||||
| @@ -14682,7 +14682,7 @@ static void f_winrestview(typval_T *argvars, typval_T *rettv) | ||||
|  | ||||
|     check_cursor(); | ||||
|     win_new_height(curwin, curwin->w_height); | ||||
|     win_new_width(curwin, W_WIDTH(curwin)); | ||||
|     win_new_width(curwin, curwin->w_width); | ||||
|     changed_window_setting(); | ||||
|  | ||||
|     if (curwin->w_topline == 0) | ||||
|   | ||||
| @@ -186,7 +186,7 @@ void ex_align(exarg_T *eap) | ||||
|     if (width <= 0) | ||||
|       width = curbuf->b_p_tw; | ||||
|     if (width == 0 && curbuf->b_p_wm > 0) | ||||
|       width = W_WIDTH(curwin) - curbuf->b_p_wm; | ||||
|       width = curwin->w_width - curbuf->b_p_wm; | ||||
|     if (width <= 0) | ||||
|       width = 80; | ||||
|   } | ||||
|   | ||||
| @@ -5908,7 +5908,7 @@ static void ex_resize(exarg_T *eap) | ||||
|   n = atol((char *)eap->arg); | ||||
|   if (cmdmod.split & WSP_VERT) { | ||||
|     if (*eap->arg == '-' || *eap->arg == '+') | ||||
|       n += W_WIDTH(curwin); | ||||
|       n += curwin->w_width; | ||||
|     else if (n == 0 && eap->arg[0] == NUL)      /* default is very wide */ | ||||
|       n = 9999; | ||||
|     win_setwidth_win((int)n, wp); | ||||
| @@ -6393,9 +6393,9 @@ static void ex_sleep(exarg_T *eap) | ||||
|   long len; | ||||
|  | ||||
|   if (cursor_valid()) { | ||||
|     n = W_WINROW(curwin) + curwin->w_wrow - msg_scrolled; | ||||
|     n = curwin->w_winrow + curwin->w_wrow - msg_scrolled; | ||||
|     if (n >= 0) | ||||
|       windgoto((int)n, W_WINCOL(curwin) + curwin->w_wcol); | ||||
|       windgoto((int)n, curwin->w_wincol + curwin->w_wcol); | ||||
|   } | ||||
|  | ||||
|   len = eap->line2; | ||||
|   | ||||
| @@ -2513,8 +2513,8 @@ void compute_cmdrow(void) | ||||
|   if (exmode_active || msg_scrolled != 0) | ||||
|     cmdline_row = Rows - 1; | ||||
|   else | ||||
|     cmdline_row = W_WINROW(lastwin) + lastwin->w_height | ||||
|                   + W_STATUS_HEIGHT(lastwin); | ||||
|     cmdline_row = lastwin->w_winrow + lastwin->w_height | ||||
|                   + lastwin->w_status_height; | ||||
| } | ||||
|  | ||||
| static void cursorcmd(void) | ||||
|   | ||||
| @@ -3,6 +3,26 @@ | ||||
|  | ||||
| #include "nvim/ex_cmds.h" | ||||
|  | ||||
| /* Values for nextwild() and ExpandOne().  See ExpandOne() for meaning. */ | ||||
| #define WILD_FREE               1 | ||||
| #define WILD_EXPAND_FREE        2 | ||||
| #define WILD_EXPAND_KEEP        3 | ||||
| #define WILD_NEXT               4 | ||||
| #define WILD_PREV               5 | ||||
| #define WILD_ALL                6 | ||||
| #define WILD_LONGEST            7 | ||||
| #define WILD_ALL_KEEP           8 | ||||
|  | ||||
| #define WILD_LIST_NOTFOUND      1 | ||||
| #define WILD_HOME_REPLACE       2 | ||||
| #define WILD_USE_NL             4 | ||||
| #define WILD_NO_BEEP            8 | ||||
| #define WILD_ADD_SLASH          16 | ||||
| #define WILD_KEEP_ALL           32 | ||||
| #define WILD_SILENT             64 | ||||
| #define WILD_ESCAPE             128 | ||||
| #define WILD_ICASE              256 | ||||
|  | ||||
| typedef char_u *(*CompleteListItemGetter)(expand_T *, int); | ||||
|  | ||||
| #ifdef INCLUDE_GENERATED_DECLARATIONS | ||||
|   | ||||
| @@ -1,6 +1,11 @@ | ||||
| #ifndef NVIM_FILE_SEARCH_H | ||||
| #define NVIM_FILE_SEARCH_H | ||||
|  | ||||
| /* Flags for find_file_*() functions. */ | ||||
| #define FINDFILE_FILE   0       /* only files */ | ||||
| #define FINDFILE_DIR    1       /* only directories */ | ||||
| #define FINDFILE_BOTH   2       /* files and directories */ | ||||
|  | ||||
| #ifdef INCLUDE_GENERATED_DECLARATIONS | ||||
| # include "file_search.h.generated.h" | ||||
| #endif | ||||
|   | ||||
| @@ -2168,8 +2168,8 @@ static int vgetorpeek(int advance) | ||||
|                     ++col; | ||||
|                 } | ||||
|                 curwin->w_wrow = curwin->w_cline_row | ||||
|                                  + curwin->w_wcol / W_WIDTH(curwin); | ||||
|                 curwin->w_wcol %= W_WIDTH(curwin); | ||||
|                                  + curwin->w_wcol / curwin->w_width; | ||||
|                 curwin->w_wcol %= curwin->w_width; | ||||
|                 curwin->w_wcol += curwin_col_off(); | ||||
|                 col = 0;                        /* no correction needed */ | ||||
|               } else { | ||||
| @@ -2178,7 +2178,7 @@ static int vgetorpeek(int advance) | ||||
|               } | ||||
|             } else if (curwin->w_p_wrap && curwin->w_wrow) { | ||||
|               --curwin->w_wrow; | ||||
|               curwin->w_wcol = W_WIDTH(curwin) - 1; | ||||
|               curwin->w_wcol = curwin->w_width - 1; | ||||
|               col = curwin->w_cursor.col - 1; | ||||
|             } | ||||
|             if (has_mbyte && col > 0 && curwin->w_wcol > 0) { | ||||
|   | ||||
| @@ -1280,7 +1280,7 @@ int plines_win_nofold(win_T *wp, linenr_T lnum) | ||||
|   /* | ||||
|    * Add column offset for 'number', 'relativenumber' and 'foldcolumn'. | ||||
|    */ | ||||
|   width = W_WIDTH(wp) - win_col_off(wp); | ||||
|   width = wp->w_width - win_col_off(wp); | ||||
|   if (width <= 0) | ||||
|     return 32000; | ||||
|   if (col <= width) | ||||
| @@ -1332,7 +1332,7 @@ int plines_win_col(win_T *wp, linenr_T lnum, long column) | ||||
|   /* | ||||
|    * Add column offset for 'number', 'relativenumber', 'foldcolumn', etc. | ||||
|    */ | ||||
|   width = W_WIDTH(wp) - win_col_off(wp); | ||||
|   width = wp->w_width - win_col_off(wp); | ||||
|   if (width <= 0) | ||||
|     return 9999; | ||||
|  | ||||
|   | ||||
| @@ -660,14 +660,14 @@ void validate_cursor_col(void) | ||||
|     col = curwin->w_virtcol; | ||||
|     off = curwin_col_off(); | ||||
|     col += off; | ||||
|     width = W_WIDTH(curwin) - off + curwin_col_off2(); | ||||
|     width = curwin->w_width - off + curwin_col_off2(); | ||||
|  | ||||
|     /* long line wrapping, adjust curwin->w_wrow */ | ||||
|     if (curwin->w_p_wrap | ||||
|         && col >= (colnr_T)W_WIDTH(curwin) | ||||
|         && col >= (colnr_T)curwin->w_width | ||||
|         && width > 0) | ||||
|       /* use same formula as what is used in curs_columns() */ | ||||
|       col -= ((col - W_WIDTH(curwin)) / width + 1) * width; | ||||
|       col -= ((col - curwin->w_width) / width + 1) * width; | ||||
|     if (col > (int)curwin->w_leftcol) | ||||
|       col -= curwin->w_leftcol; | ||||
|     else | ||||
| @@ -769,10 +769,10 @@ curs_columns ( | ||||
|    */ | ||||
|   curwin->w_wrow = curwin->w_cline_row; | ||||
|  | ||||
|   textwidth = W_WIDTH(curwin) - extra; | ||||
|   textwidth = curwin->w_width - extra; | ||||
|   if (textwidth <= 0) { | ||||
|     /* No room for text, put cursor in last char of window. */ | ||||
|     curwin->w_wcol = W_WIDTH(curwin) - 1; | ||||
|     curwin->w_wcol = curwin->w_width - 1; | ||||
|     curwin->w_wrow = curwin->w_height - 1; | ||||
|   } else if (curwin->w_p_wrap | ||||
|              && curwin->w_width != 0 | ||||
| @@ -780,9 +780,9 @@ curs_columns ( | ||||
|     width = textwidth + curwin_col_off2(); | ||||
|  | ||||
|     /* long line wrapping, adjust curwin->w_wrow */ | ||||
|     if (curwin->w_wcol >= W_WIDTH(curwin)) { | ||||
|     if (curwin->w_wcol >= curwin->w_width) { | ||||
|       /* this same formula is used in validate_cursor_col() */ | ||||
|       n = (curwin->w_wcol - W_WIDTH(curwin)) / width + 1; | ||||
|       n = (curwin->w_wcol - curwin->w_width) / width + 1; | ||||
|       curwin->w_wcol -= n * width; | ||||
|       curwin->w_wrow += n; | ||||
|  | ||||
| @@ -807,7 +807,7 @@ curs_columns ( | ||||
|      * extra | ||||
|      */ | ||||
|     off_left = (int)startcol - (int)curwin->w_leftcol - p_siso; | ||||
|     off_right = (int)endcol - (int)(curwin->w_leftcol + W_WIDTH(curwin) | ||||
|     off_right = (int)endcol - (int)(curwin->w_leftcol + curwin->w_width | ||||
|                                     - p_siso) + 1; | ||||
|     if (off_left < 0 || off_right > 0) { | ||||
|       if (off_left < 0) | ||||
| @@ -999,7 +999,7 @@ scrolldown ( | ||||
|     validate_virtcol(); | ||||
|     validate_cheight(); | ||||
|     wrow += curwin->w_cline_height - 1 - | ||||
|             curwin->w_virtcol / W_WIDTH(curwin); | ||||
|             curwin->w_virtcol / curwin->w_width; | ||||
|   } | ||||
|   while (wrow >= curwin->w_height && curwin->w_cursor.lnum > 1) { | ||||
|     if (hasFolding(curwin->w_cursor.lnum, &first, NULL)) { | ||||
| @@ -1156,7 +1156,7 @@ void scrolldown_clamp(void) | ||||
|     validate_cheight(); | ||||
|     validate_virtcol(); | ||||
|     end_row += curwin->w_cline_height - 1 - | ||||
|                curwin->w_virtcol / W_WIDTH(curwin); | ||||
|                curwin->w_virtcol / curwin->w_width; | ||||
|   } | ||||
|   if (end_row < curwin->w_height - p_so) { | ||||
|     if (can_fill) { | ||||
| @@ -1198,7 +1198,7 @@ void scrollup_clamp(void) | ||||
|       && curwin->w_width != 0 | ||||
|       ) { | ||||
|     validate_virtcol(); | ||||
|     start_row -= curwin->w_virtcol / W_WIDTH(curwin); | ||||
|     start_row -= curwin->w_virtcol / curwin->w_width; | ||||
|   } | ||||
|   if (start_row >= p_so) { | ||||
|     if (curwin->w_topfill > 0) | ||||
|   | ||||
| @@ -3394,8 +3394,8 @@ static int nv_screengo(oparg_T *oap, int dir, long dist) | ||||
|  | ||||
|   col_off1 = curwin_col_off(); | ||||
|   col_off2 = col_off1 - curwin_col_off2(); | ||||
|   width1 = W_WIDTH(curwin) - col_off1; | ||||
|   width2 = W_WIDTH(curwin) - col_off2; | ||||
|   width1 = curwin->w_width - col_off1; | ||||
|   width2 = curwin->w_width - col_off2; | ||||
|  | ||||
|   if (curwin->w_width != 0) { | ||||
|     /* | ||||
| @@ -3730,7 +3730,7 @@ dozet: | ||||
|  | ||||
|   /* "zH" - scroll screen right half-page */ | ||||
|   case 'H': | ||||
|     cap->count1 *= W_WIDTH(curwin) / 2; | ||||
|     cap->count1 *= curwin->w_width / 2; | ||||
|   /* FALLTHROUGH */ | ||||
|  | ||||
|   /* "zh" - scroll screen to the right */ | ||||
| @@ -3746,7 +3746,7 @@ dozet: | ||||
|     break; | ||||
|  | ||||
|   /* "zL" - scroll screen left half-page */ | ||||
|   case 'L':   cap->count1 *= W_WIDTH(curwin) / 2; | ||||
|   case 'L':   cap->count1 *= curwin->w_width / 2; | ||||
|   /* FALLTHROUGH */ | ||||
|  | ||||
|   /* "zl" - scroll screen to the left */ | ||||
| @@ -3782,7 +3782,7 @@ dozet: | ||||
|         col = 0;                        /* like the cursor is in col 0 */ | ||||
|       else | ||||
|         getvcol(curwin, &curwin->w_cursor, NULL, NULL, &col); | ||||
|       n = W_WIDTH(curwin) - curwin_col_off(); | ||||
|       n = curwin->w_width - curwin_col_off(); | ||||
|       if ((long)col + p_siso < n) | ||||
|         col = 0; | ||||
|       else | ||||
| @@ -6170,7 +6170,7 @@ static void nv_g_cmd(cmdarg_T *cap) | ||||
|     if (curwin->w_p_wrap | ||||
|         && curwin->w_width != 0 | ||||
|         ) { | ||||
|       int width1 = W_WIDTH(curwin) - curwin_col_off(); | ||||
|       int width1 = curwin->w_width - curwin_col_off(); | ||||
|       int width2 = width1 + curwin_col_off2(); | ||||
|  | ||||
|       validate_virtcol(); | ||||
| @@ -6183,7 +6183,7 @@ static void nv_g_cmd(cmdarg_T *cap) | ||||
|      * 'relativenumber' is on and lines are wrapping the middle can be more | ||||
|      * to the left. */ | ||||
|     if (cap->nchar == 'm') | ||||
|       i += (W_WIDTH(curwin) - curwin_col_off() | ||||
|       i += (curwin->w_width - curwin_col_off() | ||||
|             + ((curwin->w_p_wrap && i > 0) | ||||
|                ? curwin_col_off2() : 0)) / 2; | ||||
|     coladvance((colnr_T)i); | ||||
| @@ -6233,7 +6233,7 @@ static void nv_g_cmd(cmdarg_T *cap) | ||||
|         ) { | ||||
|       curwin->w_curswant = MAXCOL;              /* so we stay at the end */ | ||||
|       if (cap->count1 == 1) { | ||||
|         int width1 = W_WIDTH(curwin) - col_off; | ||||
|         int width1 = curwin->w_width - col_off; | ||||
|         int width2 = width1 + curwin_col_off2(); | ||||
|  | ||||
|         validate_virtcol(); | ||||
| @@ -6259,7 +6259,7 @@ static void nv_g_cmd(cmdarg_T *cap) | ||||
|       } else if (nv_screengo(oap, FORWARD, cap->count1 - 1) == FAIL) | ||||
|         clearopbeep(oap); | ||||
|     } else { | ||||
|       i = curwin->w_leftcol + W_WIDTH(curwin) - col_off - 1; | ||||
|       i = curwin->w_leftcol + curwin->w_width - col_off - 1; | ||||
|       coladvance((colnr_T)i); | ||||
|  | ||||
|       /* Make sure we stick in this column. */ | ||||
|   | ||||
| @@ -5,6 +5,21 @@ | ||||
| #include "nvim/types.h" | ||||
| #include "nvim/garray.h" | ||||
|  | ||||
| /* Flags for expand_wildcards() */ | ||||
| #define EW_DIR          0x01    /* include directory names */ | ||||
| #define EW_FILE         0x02    /* include file names */ | ||||
| #define EW_NOTFOUND     0x04    /* include not found names */ | ||||
| #define EW_ADDSLASH     0x08    /* append slash to directory name */ | ||||
| #define EW_KEEPALL      0x10    /* keep all matches */ | ||||
| #define EW_SILENT       0x20    /* don't print "1 returned" from shell */ | ||||
| #define EW_EXEC         0x40    /* executable files */ | ||||
| #define EW_PATH         0x80    /* search in 'path' too */ | ||||
| #define EW_ICASE        0x100   /* ignore case */ | ||||
| #define EW_NOERROR      0x200   /* no error for bad regexp */ | ||||
| #define EW_NOTWILD      0x400   /* add match with literal name if exists */ | ||||
| /* Note: mostly EW_NOTFOUND and EW_SILENT are mutually exclusive: EW_NOTFOUND | ||||
| * is used when executing commands and EW_SILENT for interactive expanding. */ | ||||
|  | ||||
| /// Return value for the comparison of two files. Also @see path_full_compare. | ||||
| typedef enum file_comparison { | ||||
|   kEqualFiles = 1,        ///< Both exist and are the same file. | ||||
|   | ||||
| @@ -73,7 +73,7 @@ redo: | ||||
|   validate_cursor_col(); | ||||
|   pum_array = NULL; | ||||
|  | ||||
|   row = curwin->w_wrow + W_WINROW(curwin); | ||||
|   row = curwin->w_wrow + curwin->w_winrow; | ||||
|  | ||||
|   if (firstwin->w_p_pvw) { | ||||
|     top_clear = firstwin->w_height; | ||||
| @@ -189,9 +189,9 @@ redo: | ||||
|  | ||||
|   // Calculate column | ||||
|   if (curwin->w_p_rl) { | ||||
|     col = W_WINCOL(curwin) + W_WIDTH(curwin) - curwin->w_wcol - 1; | ||||
|     col = curwin->w_wincol + curwin->w_width - curwin->w_wcol - 1; | ||||
|   } else { | ||||
|     col = W_WINCOL(curwin) + curwin->w_wcol; | ||||
|     col = curwin->w_wincol + curwin->w_wcol; | ||||
|   } | ||||
|  | ||||
|   // if there are more items than room we need a scrollbar | ||||
| @@ -299,7 +299,7 @@ void pum_redraw(void) | ||||
|  | ||||
|     // prepend a space if there is room | ||||
|     if (curwin->w_p_rl) { | ||||
|       if (pum_col < W_WINCOL(curwin) + W_WIDTH(curwin) - 1) { | ||||
|       if (pum_col < curwin->w_wincol + curwin->w_width - 1) { | ||||
|         screen_putchar(' ', row, pum_col + 1, attr); | ||||
|       } | ||||
|     } else if (pum_col > 0) { | ||||
|   | ||||
| @@ -2045,7 +2045,7 @@ void ex_copen(exarg_T *eap) | ||||
|     win_goto(win); | ||||
|     if (eap->addr_count != 0) { | ||||
|       if (cmdmod.split & WSP_VERT) { | ||||
|         if (height != W_WIDTH(win)) { | ||||
|         if (height != win->w_width) { | ||||
|           win_setwidth(height); | ||||
|         } | ||||
|       } else { | ||||
|   | ||||
| @@ -131,6 +131,7 @@ | ||||
|  | ||||
| #define MB_FILLER_CHAR '<'  /* character used when a double-width character | ||||
|                              * doesn't fit. */ | ||||
| #define W_ENDCOL(wp)   (wp->w_wincol + wp->w_width) | ||||
|  | ||||
| /* | ||||
|  * The attributes that are actually active for writing to the screen. | ||||
| @@ -434,16 +435,16 @@ void update_screen(int type) | ||||
|         type = CLEAR; | ||||
|       FOR_ALL_WINDOWS(wp) | ||||
|       { | ||||
|         if (W_WINROW(wp) < msg_scrolled) { | ||||
|           if (W_WINROW(wp) + wp->w_height > msg_scrolled | ||||
|         if (wp->w_winrow < msg_scrolled) { | ||||
|           if (wp->w_winrow + wp->w_height > msg_scrolled | ||||
|               && wp->w_redr_type < REDRAW_TOP | ||||
|               && wp->w_lines_valid > 0 | ||||
|               && wp->w_topline == wp->w_lines[0].wl_lnum) { | ||||
|             wp->w_upd_rows = msg_scrolled - W_WINROW(wp); | ||||
|             wp->w_upd_rows = msg_scrolled - wp->w_winrow; | ||||
|             wp->w_redr_type = REDRAW_TOP; | ||||
|           } else { | ||||
|             wp->w_redr_type = NOT_VALID; | ||||
|             if (W_WINROW(wp) + wp->w_height + W_STATUS_HEIGHT(wp) | ||||
|             if (wp->w_winrow + wp->w_height + wp->w_status_height | ||||
|                 <= msg_scrolled) | ||||
|               wp->w_redr_status = TRUE; | ||||
|           } | ||||
| @@ -1610,10 +1611,10 @@ static void win_update(win_T *wp) | ||||
|       /* | ||||
|        * Last line isn't finished: Display "@@@" at the end. | ||||
|        */ | ||||
|       screen_fill(W_WINROW(wp) + wp->w_height - 1, | ||||
|           W_WINROW(wp) + wp->w_height, | ||||
|           (int)W_ENDCOL(wp) - 3, (int)W_ENDCOL(wp), | ||||
|           '@', '@', hl_attr(HLF_AT)); | ||||
|       screen_fill(wp->w_winrow + wp->w_height - 1, | ||||
|                   wp->w_winrow + wp->w_height, | ||||
|                   (int)W_ENDCOL(wp) - 3, (int)W_ENDCOL(wp), | ||||
|                   '@', '@', hl_attr(HLF_AT)); | ||||
|       set_empty_rows(wp, srow); | ||||
|       wp->w_botline = lnum; | ||||
|     } else { | ||||
| @@ -1702,51 +1703,51 @@ static void win_draw_end(win_T *wp, int c1, int c2, int row, int endrow, hlf_T h | ||||
|  | ||||
|     if (n > 0) { | ||||
|       /* draw the fold column at the right */ | ||||
|       if (n > W_WIDTH(wp)) | ||||
|         n = W_WIDTH(wp); | ||||
|       screen_fill(W_WINROW(wp) + row, W_WINROW(wp) + endrow, | ||||
|           W_ENDCOL(wp) - n, (int)W_ENDCOL(wp), | ||||
|           ' ', ' ', hl_attr(HLF_FC)); | ||||
|       if (n > wp->w_width) | ||||
|         n = wp->w_width; | ||||
|       screen_fill(wp->w_winrow + row, wp->w_winrow + endrow, | ||||
|                   W_ENDCOL(wp) - n, (int)W_ENDCOL(wp), | ||||
|                   ' ', ' ', hl_attr(HLF_FC)); | ||||
|     } | ||||
|  | ||||
|     if (draw_signcolumn(wp)) { | ||||
|         int nn = n + 2; | ||||
|  | ||||
|         /* draw the sign column left of the fold column */ | ||||
|         if (nn > W_WIDTH(wp)) { | ||||
|             nn = W_WIDTH(wp); | ||||
|         if (nn > wp->w_width) { | ||||
|             nn = wp->w_width; | ||||
|         } | ||||
|         screen_fill(W_WINROW(wp) + row, W_WINROW(wp) + endrow, | ||||
|                 W_ENDCOL(wp) - nn, (int)W_ENDCOL(wp) - n, | ||||
|                 ' ', ' ', hl_attr(HLF_SC)); | ||||
|         screen_fill(wp->w_winrow + row, wp->w_winrow + endrow, | ||||
|                     W_ENDCOL(wp) - nn, (int)W_ENDCOL(wp) - n, | ||||
|                     ' ', ' ', hl_attr(HLF_SC)); | ||||
|         n = nn; | ||||
|     } | ||||
|  | ||||
|     screen_fill(W_WINROW(wp) + row, W_WINROW(wp) + endrow, | ||||
|         W_WINCOL(wp), W_ENDCOL(wp) - 1 - FDC_OFF, | ||||
|         c2, c2, hl_attr(hl)); | ||||
|     screen_fill(W_WINROW(wp) + row, W_WINROW(wp) + endrow, | ||||
|         W_ENDCOL(wp) - 1 - FDC_OFF, W_ENDCOL(wp) - FDC_OFF, | ||||
|         c1, c2, hl_attr(hl)); | ||||
|     screen_fill(wp->w_winrow + row, wp->w_winrow + endrow, | ||||
|                 wp->w_wincol, W_ENDCOL(wp) - 1 - FDC_OFF, | ||||
|                 c2, c2, hl_attr(hl)); | ||||
|     screen_fill(wp->w_winrow + row, wp->w_winrow + endrow, | ||||
|                 W_ENDCOL(wp) - 1 - FDC_OFF, W_ENDCOL(wp) - FDC_OFF, | ||||
|                 c1, c2, hl_attr(hl)); | ||||
|   } else { | ||||
|     if (cmdwin_type != 0 && wp == curwin) { | ||||
|       /* draw the cmdline character in the leftmost column */ | ||||
|       n = 1; | ||||
|       if (n > wp->w_width) | ||||
|         n = wp->w_width; | ||||
|       screen_fill(W_WINROW(wp) + row, W_WINROW(wp) + endrow, | ||||
|           W_WINCOL(wp), (int)W_WINCOL(wp) + n, | ||||
|           cmdwin_type, ' ', hl_attr(HLF_AT)); | ||||
|       screen_fill(wp->w_winrow + row, wp->w_winrow + endrow, | ||||
|                   wp->w_wincol, wp->w_wincol + n, | ||||
|                   cmdwin_type, ' ', hl_attr(HLF_AT)); | ||||
|     } | ||||
|     if (wp->w_p_fdc > 0) { | ||||
|       int nn = n + wp->w_p_fdc; | ||||
|  | ||||
|       /* draw the fold column at the left */ | ||||
|       if (nn > W_WIDTH(wp)) | ||||
|         nn = W_WIDTH(wp); | ||||
|       screen_fill(W_WINROW(wp) + row, W_WINROW(wp) + endrow, | ||||
|           W_WINCOL(wp) + n, (int)W_WINCOL(wp) + nn, | ||||
|           ' ', ' ', hl_attr(HLF_FC)); | ||||
|       if (nn > wp->w_width) | ||||
|         nn = wp->w_width; | ||||
|       screen_fill(wp->w_winrow + row, wp->w_winrow + endrow, | ||||
|                   wp->w_wincol + n, wp->w_wincol + nn, | ||||
|                   ' ', ' ', hl_attr(HLF_FC)); | ||||
|       n = nn; | ||||
|     } | ||||
|  | ||||
| @@ -1755,18 +1756,18 @@ static void win_draw_end(win_T *wp, int c1, int c2, int row, int endrow, hlf_T h | ||||
|         int nn = n + 2; | ||||
|  | ||||
|         /* draw the sign column after the fold column */ | ||||
|         if (nn > W_WIDTH(wp)) { | ||||
|             nn = W_WIDTH(wp); | ||||
|         if (nn > wp->w_width) { | ||||
|             nn = wp->w_width; | ||||
|         } | ||||
|         screen_fill(W_WINROW(wp) + row, W_WINROW(wp) + endrow, | ||||
|                 W_WINCOL(wp) + n, (int)W_WINCOL(wp) + nn, | ||||
|                 ' ', ' ', hl_attr(HLF_SC)); | ||||
|         screen_fill(wp->w_winrow + row, wp->w_winrow + endrow, | ||||
|                     wp->w_wincol + n, wp->w_wincol + nn, | ||||
|                     ' ', ' ', hl_attr(HLF_SC)); | ||||
|         n = nn; | ||||
|     } | ||||
|  | ||||
|     screen_fill(W_WINROW(wp) + row, W_WINROW(wp) + endrow, | ||||
|         W_WINCOL(wp) + FDC_OFF, (int)W_ENDCOL(wp), | ||||
|         c1, c2, hl_attr(hl)); | ||||
|     screen_fill(wp->w_winrow + row, wp->w_winrow + endrow, | ||||
|                 wp->w_wincol + FDC_OFF, (int)W_ENDCOL(wp), | ||||
|                 c1, c2, hl_attr(hl)); | ||||
|   } | ||||
|   set_empty_rows(wp, row); | ||||
| } | ||||
| @@ -1824,18 +1825,18 @@ static void fold_line(win_T *wp, long fold_count, foldinfo_T *foldinfo, linenr_T | ||||
|    * 2. Add the 'foldcolumn' | ||||
|    */ | ||||
|   fdc = wp->w_p_fdc; | ||||
|   if (fdc > W_WIDTH(wp) - col) | ||||
|     fdc = W_WIDTH(wp) - col; | ||||
|   if (fdc > wp->w_width - col) | ||||
|     fdc = wp->w_width - col; | ||||
|   if (fdc > 0) { | ||||
|     fill_foldcolumn(buf, wp, TRUE, lnum); | ||||
|     if (wp->w_p_rl) { | ||||
|       int i; | ||||
|  | ||||
|       copy_text_attr(off + W_WIDTH(wp) - fdc - col, buf, fdc, | ||||
|       copy_text_attr(off + wp->w_width - fdc - col, buf, fdc, | ||||
|           hl_attr(HLF_FC)); | ||||
|       /* reverse the fold column */ | ||||
|       for (i = 0; i < fdc; ++i) | ||||
|         ScreenLines[off + W_WIDTH(wp) - i - 1 - col] = buf[i]; | ||||
|         ScreenLines[off + wp->w_width - i - 1 - col] = buf[i]; | ||||
|     } else | ||||
|       copy_text_attr(off + col, buf, fdc, hl_attr(HLF_FC)); | ||||
|     col += fdc; | ||||
| @@ -1843,18 +1844,18 @@ static void fold_line(win_T *wp, long fold_count, foldinfo_T *foldinfo, linenr_T | ||||
|  | ||||
| # define RL_MEMSET(p, v, l)  if (wp->w_p_rl) \ | ||||
|     for (ri = 0; ri < l; ++ri) \ | ||||
|       ScreenAttrs[off + (W_WIDTH(wp) - (p) - (l)) + ri] = v; \ | ||||
|       ScreenAttrs[off + (wp->w_width - (p) - (l)) + ri] = v; \ | ||||
|   else \ | ||||
|     for (ri = 0; ri < l; ++ri) \ | ||||
|       ScreenAttrs[off + (p) + ri] = v | ||||
|  | ||||
|   /* Set all attributes of the 'number' or 'relativenumber' column and the | ||||
|    * text */ | ||||
|   RL_MEMSET(col, hl_attr(HLF_FL), W_WIDTH(wp) - col); | ||||
|   RL_MEMSET(col, hl_attr(HLF_FL), wp->w_width - col); | ||||
|  | ||||
|   /* If signs are being displayed, add two spaces. */ | ||||
|   if (draw_signcolumn(wp)) { | ||||
|       len = W_WIDTH(wp) - col; | ||||
|       len = wp->w_width - col; | ||||
|       if (len > 0) { | ||||
|           if (len > 2) { | ||||
|               len = 2; | ||||
| @@ -1868,7 +1869,7 @@ static void fold_line(win_T *wp, long fold_count, foldinfo_T *foldinfo, linenr_T | ||||
|    * 3. Add the 'number' or 'relativenumber' column | ||||
|    */ | ||||
|   if (wp->w_p_nu || wp->w_p_rnu) { | ||||
|     len = W_WIDTH(wp) - col; | ||||
|     len = wp->w_width - col; | ||||
|     if (len > 0) { | ||||
|       int w = number_width(wp); | ||||
|       long num; | ||||
| @@ -1894,7 +1895,7 @@ static void fold_line(win_T *wp, long fold_count, foldinfo_T *foldinfo, linenr_T | ||||
|       sprintf((char *)buf, fmt, w, num); | ||||
|       if (wp->w_p_rl) | ||||
|         /* the line number isn't reversed */ | ||||
|         copy_text_attr(off + W_WIDTH(wp) - len - col, buf, len, | ||||
|         copy_text_attr(off + wp->w_width - len - col, buf, len, | ||||
|             hl_attr(HLF_FL)); | ||||
|       else | ||||
|         copy_text_attr(off + col, buf, len, hl_attr(HLF_FL)); | ||||
| @@ -1933,7 +1934,7 @@ static void fold_line(win_T *wp, long fold_count, foldinfo_T *foldinfo, linenr_T | ||||
|     for (p = text; *p != NUL; ) { | ||||
|       cells = (*mb_ptr2cells)(p); | ||||
|       c_len = (*mb_ptr2len)(p); | ||||
|       if (col + cells > W_WIDTH(wp) | ||||
|       if (col + cells > wp->w_width | ||||
|           - (wp->w_p_rl ? col : 0) | ||||
|           ) | ||||
|         break; | ||||
| @@ -1996,8 +1997,8 @@ static void fold_line(win_T *wp, long fold_count, foldinfo_T *foldinfo, linenr_T | ||||
|     } | ||||
|   } else { | ||||
|     len = (int)STRLEN(text); | ||||
|     if (len > W_WIDTH(wp) - col) | ||||
|       len = W_WIDTH(wp) - col; | ||||
|     if (len > wp->w_width - col) | ||||
|       len = wp->w_width - col; | ||||
|     if (len > 0) { | ||||
|       if (wp->w_p_rl) | ||||
|         STRNCPY(current_ScreenLine, text, len); | ||||
| @@ -2010,7 +2011,7 @@ static void fold_line(win_T *wp, long fold_count, foldinfo_T *foldinfo, linenr_T | ||||
|   /* Fill the rest of the line with the fold filler */ | ||||
|   if (wp->w_p_rl) | ||||
|     col -= txtcol; | ||||
|   while (col < W_WIDTH(wp) | ||||
|   while (col < wp->w_width | ||||
|          - (wp->w_p_rl ? txtcol : 0) | ||||
|          ) { | ||||
|     if (enc_utf8) { | ||||
| @@ -2053,19 +2054,19 @@ static void fold_line(win_T *wp, long fold_count, foldinfo_T *foldinfo, linenr_T | ||||
|                                 FALSE))))))) { | ||||
|       if (VIsual_mode == Ctrl_V) { | ||||
|         /* Visual block mode: highlight the chars part of the block */ | ||||
|         if (wp->w_old_cursor_fcol + txtcol < (colnr_T)W_WIDTH(wp)) { | ||||
|         if (wp->w_old_cursor_fcol + txtcol < (colnr_T)wp->w_width) { | ||||
|           if (wp->w_old_cursor_lcol != MAXCOL | ||||
|               && wp->w_old_cursor_lcol + txtcol | ||||
|               < (colnr_T)W_WIDTH(wp)) | ||||
|               < (colnr_T)wp->w_width) | ||||
|             len = wp->w_old_cursor_lcol; | ||||
|           else | ||||
|             len = W_WIDTH(wp) - txtcol; | ||||
|             len = wp->w_width - txtcol; | ||||
|           RL_MEMSET(wp->w_old_cursor_fcol + txtcol, hl_attr(HLF_V), | ||||
|               len - (int)wp->w_old_cursor_fcol); | ||||
|         } | ||||
|       } else { | ||||
|         /* Set all attributes of the text */ | ||||
|         RL_MEMSET(txtcol, hl_attr(HLF_V), W_WIDTH(wp) - txtcol); | ||||
|         RL_MEMSET(txtcol, hl_attr(HLF_V), wp->w_width - txtcol); | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| @@ -2077,13 +2078,13 @@ static void fold_line(win_T *wp, long fold_count, foldinfo_T *foldinfo, linenr_T | ||||
|       txtcol -= wp->w_skipcol; | ||||
|     else | ||||
|       txtcol -= wp->w_leftcol; | ||||
|     if (txtcol >= 0 && txtcol < W_WIDTH(wp)) | ||||
|     if (txtcol >= 0 && txtcol < wp->w_width) | ||||
|       ScreenAttrs[off + txtcol] = hl_combine_attr( | ||||
|           ScreenAttrs[off + txtcol], hl_attr(HLF_CUC)); | ||||
|   } | ||||
|  | ||||
|   SCREEN_LINE(row + W_WINROW(wp), W_WINCOL(wp), (int)W_WIDTH(wp), | ||||
|       (int)W_WIDTH(wp), FALSE); | ||||
|   SCREEN_LINE(row + wp->w_winrow, wp->w_wincol, wp->w_width, | ||||
|               wp->w_width, FALSE); | ||||
|  | ||||
|   /* | ||||
|    * Update w_cline_height and w_cline_folded if the cursor line was | ||||
| @@ -2305,7 +2306,7 @@ win_line ( | ||||
|     return startrow; | ||||
|  | ||||
|   row = startrow; | ||||
|   screen_row = row + W_WINROW(wp); | ||||
|   screen_row = row + wp->w_winrow; | ||||
|  | ||||
|   /* | ||||
|    * To speed up the loop below, set extra_check when there is linebreak, | ||||
| @@ -2702,7 +2703,7 @@ win_line ( | ||||
|     /* Rightleft window: process the text in the normal direction, but put | ||||
|      * it in current_ScreenLine[] from right to left.  Start at the | ||||
|      * rightmost column of the window. */ | ||||
|     col = W_WIDTH(wp) - 1; | ||||
|     col = wp->w_width - 1; | ||||
|     off += col; | ||||
|   } | ||||
|  | ||||
| @@ -2823,7 +2824,7 @@ win_line ( | ||||
|           if (wp->w_p_rl) | ||||
|             n_extra = col + 1; | ||||
|           else | ||||
|             n_extra = W_WIDTH(wp) - col; | ||||
|             n_extra = wp->w_width - col; | ||||
|           char_attr = hl_attr(HLF_DED); | ||||
|         } | ||||
|         if (*p_sbr != NUL && need_showbreak) { | ||||
| @@ -2861,8 +2862,7 @@ win_line ( | ||||
|         && lnum == wp->w_cursor.lnum && vcol >= (long)wp->w_virtcol | ||||
|         && filler_todo <= 0 | ||||
|         ) { | ||||
|       SCREEN_LINE(screen_row, W_WINCOL(wp), col, -(int)W_WIDTH(wp), | ||||
|           wp->w_p_rl); | ||||
|       SCREEN_LINE(screen_row, wp->w_wincol, col, -wp->w_width, wp->w_p_rl); | ||||
|       /* Pretend we have finished updating the window.  Except when | ||||
|        * 'cursorcolumn' is set. */ | ||||
|       if (wp->w_p_cuc) | ||||
| @@ -3054,7 +3054,7 @@ win_line ( | ||||
|            * last column. */ | ||||
|           if (( | ||||
|                 wp->w_p_rl ? (col <= 0) : | ||||
|                 (col >= W_WIDTH(wp) - 1)) | ||||
|                 (col >= wp->w_width - 1)) | ||||
|               && (*mb_char2cells)(mb_c) == 2) { | ||||
|             c = '>'; | ||||
|             mb_c = c; | ||||
| @@ -3205,7 +3205,7 @@ win_line ( | ||||
|          * next line. */ | ||||
|         if (( | ||||
|               wp->w_p_rl ? (col <= 0) : | ||||
|               (col >= W_WIDTH(wp) - 1)) | ||||
|               (col >= wp->w_width - 1)) | ||||
|             && (*mb_char2cells)(mb_c) == 2) { | ||||
|           c = '>'; | ||||
|           mb_c = c; | ||||
| @@ -3449,7 +3449,7 @@ win_line ( | ||||
|                            && VIsual_mode != Ctrl_V | ||||
|                            && ( | ||||
|                              wp->w_p_rl ? (col >= 0) : | ||||
|                              (col < W_WIDTH(wp))) | ||||
|                              (col < wp->w_width)) | ||||
|                            && !(noinvcur | ||||
|                                 && lnum == wp->w_cursor.lnum | ||||
|                                 && (colnr_T)vcol == wp->w_virtcol))) | ||||
| @@ -3508,7 +3508,7 @@ win_line ( | ||||
|                    && vcol < tocol | ||||
|                    && ( | ||||
|                      wp->w_p_rl ? (col >= 0) : | ||||
|                      (col < W_WIDTH(wp)))) { | ||||
|                      (col < wp->w_width))) { | ||||
|           c = ' '; | ||||
|           --ptr;                    /* put it back at the NUL */ | ||||
|         } else if (( | ||||
| @@ -3518,7 +3518,7 @@ win_line ( | ||||
|                    wp->w_p_rl ? (col >= 0) : | ||||
|                    (col | ||||
|                     - boguscols | ||||
|                     < W_WIDTH(wp)))) { | ||||
|                     < wp->w_width))) { | ||||
|           /* Highlight until the right side of the window */ | ||||
|           c = ' '; | ||||
|           --ptr;                    /* put it back at the NUL */ | ||||
| @@ -3682,7 +3682,7 @@ win_line ( | ||||
|           if (col < 0) | ||||
|             n = 1; | ||||
|         } else { | ||||
|           if (col >= W_WIDTH(wp)) | ||||
|           if (col >= wp->w_width) | ||||
|             n = -1; | ||||
|         } | ||||
|         if (n != 0) { | ||||
| @@ -3762,7 +3762,7 @@ win_line ( | ||||
|       if (((wp->w_p_cuc | ||||
|             && (int)wp->w_virtcol >= VCOL_HLC - eol_hl_off | ||||
|             && (int)wp->w_virtcol < | ||||
|             W_WIDTH(wp) * (row - startrow + 1) + v | ||||
|             wp->w_width * (row - startrow + 1) + v | ||||
|             && lnum != wp->w_cursor.lnum) | ||||
|            || draw_color_col) | ||||
|           && !wp->w_p_rl | ||||
| @@ -3778,7 +3778,7 @@ win_line ( | ||||
|             if (rightmost_vcol < color_cols[i]) | ||||
|               rightmost_vcol = color_cols[i]; | ||||
|  | ||||
|         while (col < W_WIDTH(wp)) { | ||||
|         while (col < wp->w_width) { | ||||
|           ScreenLines[off] = ' '; | ||||
|           if (enc_utf8) | ||||
|             ScreenLinesUC[off] = 0; | ||||
| @@ -3801,8 +3801,7 @@ win_line ( | ||||
|         } | ||||
|       } | ||||
|  | ||||
|       SCREEN_LINE(screen_row, W_WINCOL(wp), col, | ||||
|           (int)W_WIDTH(wp), wp->w_p_rl); | ||||
|       SCREEN_LINE(screen_row, wp->w_wincol, col, wp->w_width, wp->w_p_rl); | ||||
|       row++; | ||||
|  | ||||
|       /* | ||||
| @@ -3825,7 +3824,7 @@ win_line ( | ||||
|         && filler_todo <= 0 | ||||
|         && ( | ||||
|           wp->w_p_rl ? col == 0 : | ||||
|           col == W_WIDTH(wp) - 1) | ||||
|           col == wp->w_width - 1) | ||||
|         && (*ptr != NUL | ||||
|             || (wp->w_p_list && lcs_eol_one > 0) | ||||
|             || (n_extra && (c_extra != NUL || *p_extra != NUL)))) { | ||||
| @@ -4014,14 +4013,14 @@ win_line ( | ||||
|      */ | ||||
|     if (( | ||||
|           wp->w_p_rl ? (col < 0) : | ||||
|           (col >= W_WIDTH(wp))) | ||||
|           (col >= wp->w_width)) | ||||
|         && (*ptr != NUL | ||||
|             || filler_todo > 0 | ||||
|             || (wp->w_p_list && lcs_eol != NUL && p_extra != at_end_str) | ||||
|             || (n_extra != 0 && (c_extra != NUL || *p_extra != NUL))) | ||||
|         ) { | ||||
|       SCREEN_LINE(screen_row, W_WINCOL(wp), col - boguscols, | ||||
|           (int)W_WIDTH(wp), wp->w_p_rl); | ||||
|       SCREEN_LINE(screen_row, wp->w_wincol, col - boguscols, | ||||
|                   wp->w_width, wp->w_p_rl); | ||||
|       boguscols = 0; | ||||
|       ++row; | ||||
|       ++screen_row; | ||||
| @@ -4050,7 +4049,7 @@ win_line ( | ||||
|  | ||||
|       if (screen_cur_row == screen_row - 1 | ||||
|           && filler_todo <= 0 | ||||
|           && W_WIDTH(wp) == Columns) { | ||||
|           && wp->w_width == Columns) { | ||||
|         /* Remember that the line wraps, used for modeless copy. */ | ||||
|         LineWraps[screen_row - 1] = TRUE; | ||||
|  | ||||
| @@ -4080,7 +4079,7 @@ win_line ( | ||||
|            * then output the same character again to let the | ||||
|            * terminal know about the wrap.  If the terminal doesn't | ||||
|            * auto-wrap, we overwrite the character. */ | ||||
|           if (screen_cur_col != W_WIDTH(wp)) | ||||
|           if (screen_cur_col != wp->w_width) | ||||
|             screen_char(LineOffset[screen_row - 1] | ||||
|                 + (unsigned)Columns - 1, | ||||
|                 screen_row - 1, (int)(Columns - 1)); | ||||
| @@ -4103,7 +4102,7 @@ win_line ( | ||||
|       col = 0; | ||||
|       off = (unsigned)(current_ScreenLine - ScreenLines); | ||||
|       if (wp->w_p_rl) { | ||||
|         col = W_WIDTH(wp) - 1;          /* col is not used if breaking! */ | ||||
|         col = wp->w_width - 1;          /* col is not used if breaking! */ | ||||
|         off += col; | ||||
|       } | ||||
|  | ||||
| @@ -4532,7 +4531,7 @@ static void draw_vsep_win(win_T *wp, int row) | ||||
|   if (wp->w_vsep_width) { | ||||
|     /* draw the vertical separator right of this window */ | ||||
|     c = fillchar_vsep(&hl); | ||||
|     screen_fill(W_WINROW(wp) + row, W_WINROW(wp) + wp->w_height, | ||||
|     screen_fill(wp->w_winrow + row, wp->w_winrow + wp->w_height, | ||||
|         W_ENDCOL(wp), W_ENDCOL(wp) + 1, | ||||
|         c, ' ', hl); | ||||
|   } | ||||
| @@ -4824,9 +4823,9 @@ void win_redr_status(win_T *wp) | ||||
|       len += 4; | ||||
|     } | ||||
|  | ||||
|     this_ru_col = ru_col - (Columns - W_WIDTH(wp)); | ||||
|     if (this_ru_col < (W_WIDTH(wp) + 1) / 2) | ||||
|       this_ru_col = (W_WIDTH(wp) + 1) / 2; | ||||
|     this_ru_col = ru_col - (Columns - wp->w_width); | ||||
|     if (this_ru_col < (wp->w_width + 1) / 2) | ||||
|       this_ru_col = (wp->w_width + 1) / 2; | ||||
|     if (this_ru_col <= 1) { | ||||
|       p = (char_u *)"<";                /* No room for file name! */ | ||||
|       len = 1; | ||||
| @@ -4854,15 +4853,15 @@ void win_redr_status(win_T *wp) | ||||
|       len = this_ru_col - 1; | ||||
|     } | ||||
|  | ||||
|     row = W_WINROW(wp) + wp->w_height; | ||||
|     screen_puts(p, row, W_WINCOL(wp), attr); | ||||
|     screen_fill(row, row + 1, len + W_WINCOL(wp), | ||||
|         this_ru_col + W_WINCOL(wp), fillchar, fillchar, attr); | ||||
|     row = wp->w_winrow + wp->w_height; | ||||
|     screen_puts(p, row, wp->w_wincol, attr); | ||||
|     screen_fill(row, row + 1, len + wp->w_wincol, | ||||
|         this_ru_col + wp->w_wincol, fillchar, fillchar, attr); | ||||
|  | ||||
|     if (get_keymap_str(wp, NameBuff, MAXPATHL) | ||||
|         && (int)(this_ru_col - len) > (int)(STRLEN(NameBuff) + 1)) | ||||
|       screen_puts(NameBuff, row, (int)(this_ru_col - STRLEN(NameBuff) | ||||
|                                        - 1 + W_WINCOL(wp)), attr); | ||||
|                                        - 1 + wp->w_wincol), attr); | ||||
|  | ||||
|     win_redr_ruler(wp, TRUE); | ||||
|   } | ||||
| @@ -4875,8 +4874,8 @@ void win_redr_status(win_T *wp) | ||||
|       fillchar = fillchar_status(&attr, wp == curwin); | ||||
|     else | ||||
|       fillchar = fillchar_vsep(&attr); | ||||
|     screen_putchar(fillchar, W_WINROW(wp) + wp->w_height, W_ENDCOL(wp), | ||||
|         attr); | ||||
|     screen_putchar(fillchar, wp->w_winrow + wp->w_height,  | ||||
|                    W_ENDCOL(wp), attr); | ||||
|   } | ||||
|   busy = FALSE; | ||||
| } | ||||
| @@ -5023,9 +5022,9 @@ win_redr_custom ( | ||||
|     maxwidth = Columns; | ||||
|     use_sandbox = was_set_insecurely((char_u *)"tabline", 0); | ||||
|   } else { | ||||
|     row = W_WINROW(wp) + wp->w_height; | ||||
|     row = wp->w_winrow + wp->w_height; | ||||
|     fillchar = fillchar_status(&attr, wp == curwin); | ||||
|     maxwidth = W_WIDTH(wp); | ||||
|     maxwidth = wp->w_width; | ||||
|  | ||||
|     if (draw_ruler) { | ||||
|       stl = p_ruf; | ||||
| @@ -5039,10 +5038,10 @@ win_redr_custom ( | ||||
|         if (*stl++ != '(') | ||||
|           stl = p_ruf; | ||||
|       } | ||||
|       col = ru_col - (Columns - W_WIDTH(wp)); | ||||
|       if (col < (W_WIDTH(wp) + 1) / 2) | ||||
|         col = (W_WIDTH(wp) + 1) / 2; | ||||
|       maxwidth = W_WIDTH(wp) - col; | ||||
|       col = ru_col - (Columns - wp->w_width); | ||||
|       if (col < (wp->w_width + 1) / 2) | ||||
|         col = (wp->w_width + 1) / 2; | ||||
|       maxwidth = wp->w_width - col; | ||||
|       if (!wp->w_status_height) { | ||||
|         row = Rows - 1; | ||||
|         --maxwidth;             /* writing in last column may cause scrolling */ | ||||
| @@ -5060,7 +5059,7 @@ win_redr_custom ( | ||||
|           *wp->w_p_stl == NUL ? 0 : OPT_LOCAL); | ||||
|     } | ||||
|  | ||||
|     col += W_WINCOL(wp); | ||||
|     col += wp->w_wincol; | ||||
|   } | ||||
|  | ||||
|   if (maxwidth <= 0) | ||||
| @@ -6700,11 +6699,11 @@ void setcursor(void) | ||||
| { | ||||
|   if (redrawing()) { | ||||
|     validate_cursor(); | ||||
|     windgoto(W_WINROW(curwin) + curwin->w_wrow, | ||||
|         W_WINCOL(curwin) + ( | ||||
|     windgoto(curwin->w_winrow + curwin->w_wrow, | ||||
|         curwin->w_wincol + ( | ||||
|           /* With 'rightleft' set and the cursor on a double-wide | ||||
|            * character, position it on the leftmost column. */ | ||||
|           curwin->w_p_rl ? ((int)W_WIDTH(curwin) - curwin->w_wcol - ( | ||||
|           curwin->w_p_rl ? ((int)curwin->w_width - curwin->w_wcol - ( | ||||
|                               (has_mbyte | ||||
|                                && (*mb_ptr2cells)(get_cursor_pos_ptr()) == 2 | ||||
|                                && vim_isprintc(gchar_cursor())) ? 2 : | ||||
| @@ -6748,7 +6747,7 @@ int win_ins_lines(win_T *wp, int row, int line_count, int invalid, int mayclear) | ||||
|    */ | ||||
|   did_delete = FALSE; | ||||
|   if (wp->w_next != NULL || wp->w_status_height) { | ||||
|     if (screen_del_lines(0, W_WINROW(wp) + wp->w_height - line_count, | ||||
|     if (screen_del_lines(0, wp->w_winrow + wp->w_height - line_count, | ||||
|             line_count, (int)Rows, FALSE, NULL) == OK) | ||||
|       did_delete = TRUE; | ||||
|     else if (wp->w_next) | ||||
| @@ -6760,16 +6759,16 @@ int win_ins_lines(win_T *wp, int row, int line_count, int invalid, int mayclear) | ||||
|   if (!did_delete) { | ||||
|     wp->w_redr_status = TRUE; | ||||
|     redraw_cmdline = TRUE; | ||||
|     nextrow = W_WINROW(wp) + wp->w_height + W_STATUS_HEIGHT(wp); | ||||
|     nextrow = wp->w_winrow + wp->w_height + wp->w_status_height; | ||||
|     lastrow = nextrow + line_count; | ||||
|     if (lastrow > Rows) | ||||
|       lastrow = Rows; | ||||
|     screen_fill(nextrow - line_count, lastrow - line_count, | ||||
|         W_WINCOL(wp), (int)W_ENDCOL(wp), | ||||
|         ' ', ' ', 0); | ||||
|                 wp->w_wincol, (int)W_ENDCOL(wp), | ||||
|                 ' ', ' ', 0); | ||||
|   } | ||||
|  | ||||
|   if (screen_ins_lines(0, W_WINROW(wp) + row, line_count, (int)Rows, NULL) | ||||
|   if (screen_ins_lines(0, wp->w_winrow + row, line_count, (int)Rows, NULL) | ||||
|       == FAIL) { | ||||
|     /* deletion will have messed up other windows */ | ||||
|     if (did_delete) { | ||||
| @@ -6803,7 +6802,7 @@ int win_del_lines(win_T *wp, int row, int line_count, int invalid, int mayclear) | ||||
|   if (retval != MAYBE) | ||||
|     return retval; | ||||
|  | ||||
|   if (screen_del_lines(0, W_WINROW(wp) + row, line_count, | ||||
|   if (screen_del_lines(0, wp->w_winrow + row, line_count, | ||||
|           (int)Rows, FALSE, NULL) == FAIL) | ||||
|     return FAIL; | ||||
|  | ||||
| @@ -6812,7 +6811,7 @@ int win_del_lines(win_T *wp, int row, int line_count, int invalid, int mayclear) | ||||
|    * correct place. If we can't do that, they have to be redrawn. | ||||
|    */ | ||||
|   if (wp->w_next || wp->w_status_height || cmdline_row < Rows - 1) { | ||||
|     if (screen_ins_lines(0, W_WINROW(wp) + wp->w_height - line_count, | ||||
|     if (screen_ins_lines(0, wp->w_winrow + wp->w_height - line_count, | ||||
|             line_count, (int)Rows, NULL) == FAIL) { | ||||
|       wp->w_redr_status = TRUE; | ||||
|       win_rest_invalid(wp->w_next); | ||||
| @@ -6851,9 +6850,9 @@ static int win_do_lines(win_T *wp, int row, int line_count, int mayclear, int de | ||||
|    * Delete all remaining lines | ||||
|    */ | ||||
|   if (row + line_count >= wp->w_height) { | ||||
|     screen_fill(W_WINROW(wp) + row, W_WINROW(wp) + wp->w_height, | ||||
|         W_WINCOL(wp), (int)W_ENDCOL(wp), | ||||
|         ' ', ' ', 0); | ||||
|     screen_fill(wp->w_winrow + row, wp->w_winrow + wp->w_height, | ||||
|                 wp->w_wincol, (int)W_ENDCOL(wp), | ||||
|                 ' ', ' ', 0); | ||||
|     return OK; | ||||
|   } | ||||
|  | ||||
| @@ -6873,15 +6872,15 @@ static int win_do_lines(win_T *wp, int row, int line_count, int mayclear, int de | ||||
|    * scroll-up in the DJGPP version. | ||||
|    */ | ||||
|   if (scroll_region | ||||
|       || W_WIDTH(wp) != Columns | ||||
|       || wp->w_width != Columns | ||||
|       ) { | ||||
|     if (scroll_region && (wp->w_width == Columns || *T_CSV != NUL)) | ||||
|       scroll_region_set(wp, row); | ||||
|     if (del) | ||||
|       retval = screen_del_lines(W_WINROW(wp) + row, 0, line_count, | ||||
|       retval = screen_del_lines(wp->w_winrow + row, 0, line_count, | ||||
|           wp->w_height - row, FALSE, wp); | ||||
|     else | ||||
|       retval = screen_ins_lines(W_WINROW(wp) + row, 0, line_count, | ||||
|       retval = screen_ins_lines(wp->w_winrow + row, 0, line_count, | ||||
|           wp->w_height - row, wp); | ||||
|     if (scroll_region && (wp->w_width == Columns || *T_CSV != NUL)) | ||||
|       scroll_region_reset(); | ||||
| @@ -7789,10 +7788,10 @@ static void win_redr_ruler(win_T *wp, int always) | ||||
|              || empty_line != wp->w_ru_empty) { | ||||
|     cursor_off(); | ||||
|     if (wp->w_status_height) { | ||||
|       row = W_WINROW(wp) + wp->w_height; | ||||
|       row = wp->w_winrow + wp->w_height; | ||||
|       fillchar = fillchar_status(&attr, wp == curwin); | ||||
|       off = W_WINCOL(wp); | ||||
|       width = W_WIDTH(wp); | ||||
|       off = wp->w_wincol; | ||||
|       width = wp->w_width; | ||||
|     } else { | ||||
|       row = Rows - 1; | ||||
|       fillchar = ' '; | ||||
|   | ||||
| @@ -1,6 +1,20 @@ | ||||
| #ifndef NVIM_SCREEN_H | ||||
| #define NVIM_SCREEN_H | ||||
|  | ||||
| /* | ||||
|  * flags for update_screen() | ||||
|  * The higher the value, the higher the priority | ||||
|  */ | ||||
| #define VALID                   10  /* buffer not changed, or changes marked | ||||
|                                        with b_mod_* */ | ||||
| #define INVERTED                20  /* redisplay inverted part that changed */ | ||||
| #define INVERTED_ALL            25  /* redisplay whole inverted part */ | ||||
| #define REDRAW_TOP              30  /* display first w_upd_rows screen lines */ | ||||
| #define SOME_VALID              35  /* like NOT_VALID but may scroll */ | ||||
| #define NOT_VALID               40  /* buffer needs complete redraw */ | ||||
| #define CLEAR                   50  /* screen messed up, clear it */ | ||||
|  | ||||
|  | ||||
| #ifdef INCLUDE_GENERATED_DECLARATIONS | ||||
| # include "screen.h.generated.h" | ||||
| #endif | ||||
|   | ||||
| @@ -2022,7 +2022,7 @@ showmatch ( | ||||
|     if (!curwin->w_p_wrap) | ||||
|       getvcol(curwin, lpos, NULL, &vcol, NULL); | ||||
|     if (curwin->w_p_wrap || (vcol >= curwin->w_leftcol | ||||
|                              && vcol < curwin->w_leftcol + W_WIDTH(curwin))) { | ||||
|                              && vcol < curwin->w_leftcol + curwin->w_width)) { | ||||
|       mpos = *lpos;          /* save the pos, update_screen() may change it */ | ||||
|       save_cursor = curwin->w_cursor; | ||||
|       save_so = p_so; | ||||
|   | ||||
| @@ -1,6 +1,17 @@ | ||||
| #ifndef NVIM_SEARCH_H | ||||
| #define NVIM_SEARCH_H | ||||
|  | ||||
| /* Values for the find_pattern_in_path() function args 'type' and 'action': */ | ||||
| #define FIND_ANY        1 | ||||
| #define FIND_DEFINE     2 | ||||
| #define CHECK_PATH      3 | ||||
|  | ||||
| #define ACTION_SHOW     1 | ||||
| #define ACTION_GOTO     2 | ||||
| #define ACTION_SPLIT    3 | ||||
| #define ACTION_SHOW_ALL 4 | ||||
| #define ACTION_EXPAND   5 | ||||
|  | ||||
| #ifdef INCLUDE_GENERATED_DECLARATIONS | ||||
| # include "search.h.generated.h" | ||||
| #endif | ||||
|   | ||||
| @@ -5,6 +5,19 @@ | ||||
|  | ||||
| typedef int guicolor_T; | ||||
|  | ||||
| /* | ||||
|  * Terminal highlighting attribute bits. | ||||
|  * Attributes above HL_ALL are used for syntax highlighting. | ||||
|  */ | ||||
| #define HL_NORMAL               0x00 | ||||
| #define HL_INVERSE              0x01 | ||||
| #define HL_BOLD                 0x02 | ||||
| #define HL_ITALIC               0x04 | ||||
| #define HL_UNDERLINE            0x08 | ||||
| #define HL_UNDERCURL            0x10 | ||||
| #define HL_STANDOUT             0x20 | ||||
| #define HL_ALL                  0x3f | ||||
|  | ||||
| #ifdef INCLUDE_GENERATED_DECLARATIONS | ||||
| # include "syntax.h.generated.h" | ||||
| #endif | ||||
|   | ||||
| @@ -3,6 +3,12 @@ | ||||
|  | ||||
| #include "nvim/regexp_defs.h" | ||||
|  | ||||
| # define SST_MIN_ENTRIES 150    /* minimal size for state stack array */ | ||||
| # define SST_MAX_ENTRIES 1000   /* maximal size for state stack array */ | ||||
| # define SST_FIX_STATES  7      /* size of sst_stack[]. */ | ||||
| # define SST_DIST        16     /* normal distance between entries */ | ||||
| # define SST_INVALID    (synstate_T *)-1        /* invalid syn_state pointer */ | ||||
|  | ||||
| /* struct passed to in_id_list() */ | ||||
| struct sp_syn { | ||||
|   int inc_tag;                  /* ":syn include" unique tag */ | ||||
|   | ||||
| @@ -2874,11 +2874,11 @@ void term_cursor_shape(void) | ||||
|  */ | ||||
| void scroll_region_set(win_T *wp, int off) | ||||
| { | ||||
|   OUT_STR(tgoto((char *)T_CS, W_WINROW(wp) + wp->w_height - 1, | ||||
|           W_WINROW(wp) + off)); | ||||
|   OUT_STR(tgoto((char *)T_CS, wp->w_winrow + wp->w_height - 1, | ||||
|           wp->w_winrow + off)); | ||||
|   if (*T_CSV != NUL && wp->w_width != Columns) | ||||
|     OUT_STR(tgoto((char *)T_CSV, W_WINCOL(wp) + wp->w_width - 1, | ||||
|             W_WINCOL(wp))); | ||||
|     OUT_STR(tgoto((char *)T_CSV, wp->w_wincol + wp->w_width - 1, | ||||
|             wp->w_wincol)); | ||||
|   screen_start();                   /* don't know where cursor is now */ | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -648,7 +648,7 @@ retnomove: | ||||
|             || (!on_status_line | ||||
|                 && !on_sep_line | ||||
|                 && ( | ||||
|                   wp->w_p_rl ? col < W_WIDTH(wp) - wp->w_p_fdc : | ||||
|                   wp->w_p_rl ? col < wp->w_width - wp->w_p_fdc : | ||||
|                                      col >= wp->w_p_fdc | ||||
|                                              + (cmdwin_type == 0 && wp == | ||||
|                                                 curwin ? 0 : 1) | ||||
| @@ -717,8 +717,8 @@ retnomove: | ||||
|     } | ||||
|  | ||||
|  | ||||
|     row -= W_WINROW(curwin); | ||||
|     col -= W_WINCOL(curwin); | ||||
|     row -= curwin->w_winrow; | ||||
|     col -= curwin->w_wincol; | ||||
|  | ||||
|     /* | ||||
|      * When clicking beyond the end of the window, scroll the screen. | ||||
| @@ -787,7 +787,7 @@ retnomove: | ||||
|  | ||||
|   /* Check for position outside of the fold column. */ | ||||
|   if ( | ||||
|     curwin->w_p_rl ? col < W_WIDTH(curwin) - curwin->w_p_fdc : | ||||
|     curwin->w_p_rl ? col < curwin->w_width - curwin->w_p_fdc : | ||||
|                            col >= curwin->w_p_fdc | ||||
|                                    + (cmdwin_type == 0 ? 0 : 1) | ||||
|     ) | ||||
| @@ -847,7 +847,7 @@ int mouse_comp_pos(win_T *win, int *rowp, int *colp, linenr_T *lnump) | ||||
|   int count; | ||||
|  | ||||
|   if (win->w_p_rl) | ||||
|     col = W_WIDTH(win) - 1 - col; | ||||
|     col = win->w_width - 1 - col; | ||||
|  | ||||
|   lnum = win->w_topline; | ||||
|  | ||||
| @@ -879,7 +879,7 @@ int mouse_comp_pos(win_T *win, int *rowp, int *colp, linenr_T *lnump) | ||||
|     off = win_col_off(win) - win_col_off2(win); | ||||
|     if (col < off) | ||||
|       col = off; | ||||
|     col += row * (W_WIDTH(win) - off); | ||||
|     col += row * (win->w_width - off); | ||||
|     /* add skip column (for long wrapping line) */ | ||||
|     col += win->w_skipcol; | ||||
|   } | ||||
|   | ||||
							
								
								
									
										138
									
								
								src/nvim/vim.h
									
									
									
									
									
								
							
							
						
						
									
										138
									
								
								src/nvim/vim.h
									
									
									
									
									
								
							| @@ -37,7 +37,7 @@ Error: configure did not run properly.Check auto/config.log. | ||||
| #endif | ||||
|  | ||||
| /* user ID of root is usually zero, but not for everybody */ | ||||
| # define ROOT_UID 0 | ||||
| #define ROOT_UID 0 | ||||
|  | ||||
|  | ||||
| /* Can't use "PACKAGE" here, conflicts with a Perl include file. */ | ||||
| @@ -132,60 +132,6 @@ typedef uint32_t u8char_T; | ||||
| #  define textdomain(x) /* empty */ | ||||
| #endif | ||||
|  | ||||
| /* | ||||
|  * flags for update_screen() | ||||
|  * The higher the value, the higher the priority | ||||
|  */ | ||||
| #define VALID                   10  /* buffer not changed, or changes marked | ||||
|                                        with b_mod_* */ | ||||
| #define INVERTED                20  /* redisplay inverted part that changed */ | ||||
| #define INVERTED_ALL            25  /* redisplay whole inverted part */ | ||||
| #define REDRAW_TOP              30  /* display first w_upd_rows screen lines */ | ||||
| #define SOME_VALID              35  /* like NOT_VALID but may scroll */ | ||||
| #define NOT_VALID               40  /* buffer needs complete redraw */ | ||||
| #define CLEAR                   50  /* screen messed up, clear it */ | ||||
|  | ||||
| /* | ||||
|  * Flags for w_valid. | ||||
|  * These are set when something in a window structure becomes invalid, except | ||||
|  * when the cursor is moved.  Call check_cursor_moved() before testing one of | ||||
|  * the flags. | ||||
|  * These are reset when that thing has been updated and is valid again. | ||||
|  * | ||||
|  * Every function that invalidates one of these must call one of the | ||||
|  * invalidate_* functions. | ||||
|  * | ||||
|  * w_valid is supposed to be used only in screen.c.  From other files, use the | ||||
|  * functions that set or reset the flags. | ||||
|  * | ||||
|  * VALID_BOTLINE    VALID_BOTLINE_AP | ||||
|  *     on		on		w_botline valid | ||||
|  *     off		on		w_botline approximated | ||||
|  *     off		off		w_botline not valid | ||||
|  *     on		off		not possible | ||||
|  */ | ||||
| #define VALID_WROW      0x01    /* w_wrow (window row) is valid */ | ||||
| #define VALID_WCOL      0x02    /* w_wcol (window col) is valid */ | ||||
| #define VALID_VIRTCOL   0x04    /* w_virtcol (file col) is valid */ | ||||
| #define VALID_CHEIGHT   0x08    /* w_cline_height and w_cline_folded valid */ | ||||
| #define VALID_CROW      0x10    /* w_cline_row is valid */ | ||||
| #define VALID_BOTLINE   0x20    /* w_botine and w_empty_rows are valid */ | ||||
| #define VALID_BOTLINE_AP 0x40   /* w_botine is approximated */ | ||||
| #define VALID_TOPLINE   0x80    /* w_topline is valid (for cursor position) */ | ||||
|  | ||||
| /* | ||||
|  * Terminal highlighting attribute bits. | ||||
|  * Attributes above HL_ALL are used for syntax highlighting. | ||||
|  */ | ||||
| #define HL_NORMAL               0x00 | ||||
| #define HL_INVERSE              0x01 | ||||
| #define HL_BOLD                 0x02 | ||||
| #define HL_ITALIC               0x04 | ||||
| #define HL_UNDERLINE            0x08 | ||||
| #define HL_UNDERCURL            0x10 | ||||
| #define HL_STANDOUT             0x20 | ||||
| #define HL_ALL                  0x3f | ||||
|  | ||||
| /* special attribute addition: Put message in history */ | ||||
| #define MSG_HIST                0x1000 | ||||
|  | ||||
| @@ -239,24 +185,6 @@ typedef uint32_t u8char_T; | ||||
| #define FAIL                    0 | ||||
| #define NOTDONE                 2   /* not OK or FAIL but skipped */ | ||||
|  | ||||
| /* flags for b_flags */ | ||||
| #define BF_RECOVERED    0x01    /* buffer has been recovered */ | ||||
| #define BF_CHECK_RO     0x02    /* need to check readonly when loading file | ||||
|                                    into buffer (set by ":e", may be reset by | ||||
|                                    ":buf" */ | ||||
| #define BF_NEVERLOADED  0x04    /* file has never been loaded into buffer, | ||||
|                                    many variables still need to be set */ | ||||
| #define BF_NOTEDITED    0x08    /* Set when file name is changed after | ||||
|                                    starting to edit, reset when file is | ||||
|                                    written out. */ | ||||
| #define BF_NEW          0x10    /* file didn't exist when editing started */ | ||||
| #define BF_NEW_W        0x20    /* Warned for BF_NEW and file created */ | ||||
| #define BF_READERR      0x40    /* got errors while reading the file */ | ||||
| #define BF_DUMMY        0x80    /* dummy buffer, only used internally */ | ||||
| #define BF_PRESERVED    0x100   /* ":preserve" was used */ | ||||
|  | ||||
| /* Mask to check for flags that prevent normal writing */ | ||||
| #define BF_WRITE_MASK   (BF_NOTEDITED + BF_NEW + BF_READERR) | ||||
|  | ||||
| /* | ||||
|  * values for xp_context when doing command line completion | ||||
| @@ -314,74 +242,10 @@ enum { | ||||
| #define EXMODE_NORMAL           1 | ||||
| #define EXMODE_VIM              2 | ||||
|  | ||||
| /* Values for nextwild() and ExpandOne().  See ExpandOne() for meaning. */ | ||||
| #define WILD_FREE               1 | ||||
| #define WILD_EXPAND_FREE        2 | ||||
| #define WILD_EXPAND_KEEP        3 | ||||
| #define WILD_NEXT               4 | ||||
| #define WILD_PREV               5 | ||||
| #define WILD_ALL                6 | ||||
| #define WILD_LONGEST            7 | ||||
| #define WILD_ALL_KEEP           8 | ||||
|  | ||||
| #define WILD_LIST_NOTFOUND      1 | ||||
| #define WILD_HOME_REPLACE       2 | ||||
| #define WILD_USE_NL             4 | ||||
| #define WILD_NO_BEEP            8 | ||||
| #define WILD_ADD_SLASH          16 | ||||
| #define WILD_KEEP_ALL           32 | ||||
| #define WILD_SILENT             64 | ||||
| #define WILD_ESCAPE             128 | ||||
| #define WILD_ICASE              256 | ||||
|  | ||||
| /* Flags for expand_wildcards() */ | ||||
| #define EW_DIR          0x01    /* include directory names */ | ||||
| #define EW_FILE         0x02    /* include file names */ | ||||
| #define EW_NOTFOUND     0x04    /* include not found names */ | ||||
| #define EW_ADDSLASH     0x08    /* append slash to directory name */ | ||||
| #define EW_KEEPALL      0x10    /* keep all matches */ | ||||
| #define EW_SILENT       0x20    /* don't print "1 returned" from shell */ | ||||
| #define EW_EXEC         0x40    /* executable files */ | ||||
| #define EW_PATH         0x80    /* search in 'path' too */ | ||||
| #define EW_ICASE        0x100   /* ignore case */ | ||||
| #define EW_NOERROR      0x200   /* no error for bad regexp */ | ||||
| #define EW_NOTWILD      0x400   /* add match with literal name if exists */ | ||||
| /* Note: mostly EW_NOTFOUND and EW_SILENT are mutually exclusive: EW_NOTFOUND | ||||
| * is used when executing commands and EW_SILENT for interactive expanding. */ | ||||
|  | ||||
| /* Flags for find_file_*() functions. */ | ||||
| #define FINDFILE_FILE   0       /* only files */ | ||||
| #define FINDFILE_DIR    1       /* only directories */ | ||||
| #define FINDFILE_BOTH   2       /* files and directories */ | ||||
|  | ||||
| # define W_WINCOL(wp)   (wp->w_wincol) | ||||
| # define W_WIDTH(wp)    (wp->w_width) | ||||
| # define W_ENDCOL(wp)   (wp->w_wincol + wp->w_width) | ||||
| # define W_VSEP_WIDTH(wp) (wp->w_vsep_width) | ||||
| # define W_STATUS_HEIGHT(wp) (wp->w_status_height) | ||||
| # define W_WINROW(wp)   (wp->w_winrow) | ||||
|  | ||||
| #ifdef NO_EXPANDPATH | ||||
| # define gen_expand_wildcards mch_expand_wildcards | ||||
| #endif | ||||
|  | ||||
| /* Values for the find_pattern_in_path() function args 'type' and 'action': */ | ||||
| #define FIND_ANY        1 | ||||
| #define FIND_DEFINE     2 | ||||
| #define CHECK_PATH      3 | ||||
|  | ||||
| #define ACTION_SHOW     1 | ||||
| #define ACTION_GOTO     2 | ||||
| #define ACTION_SPLIT    3 | ||||
| #define ACTION_SHOW_ALL 4 | ||||
| # define ACTION_EXPAND  5 | ||||
|  | ||||
| # define SST_MIN_ENTRIES 150    /* minimal size for state stack array */ | ||||
| #  define SST_MAX_ENTRIES 1000  /* maximal size for state stack array */ | ||||
| # define SST_FIX_STATES  7      /* size of sst_stack[]. */ | ||||
| # define SST_DIST        16     /* normal distance between entries */ | ||||
| # define SST_INVALID    (synstate_T *)-1        /* invalid syn_state pointer */ | ||||
|  | ||||
| # define HL_CONTAINED   0x01    /* not used on toplevel */ | ||||
| # define HL_TRANSP      0x02    /* has no highlighting	*/ | ||||
| # define HL_ONELINE     0x04    /* match within one line only */ | ||||
|   | ||||
| @@ -2096,7 +2096,7 @@ winframe_remove ( | ||||
|    * updated.  Can only be done after the sizes have been updated. */ | ||||
|   if (frp2 == frp_close->fr_next) { | ||||
|     int row = win->w_winrow; | ||||
|     int col = W_WINCOL(win); | ||||
|     int col = win->w_wincol; | ||||
|  | ||||
|     frame_comp_pos(frp2, &row, &col); | ||||
|   } | ||||
| @@ -4525,11 +4525,11 @@ void win_new_height(win_T *wp, int height) | ||||
|        */ | ||||
|       wp->w_wrow = line_size; | ||||
|       if (wp->w_wrow >= wp->w_height | ||||
|           && (W_WIDTH(wp) - win_col_off(wp)) > 0) { | ||||
|         wp->w_skipcol += W_WIDTH(wp) - win_col_off(wp); | ||||
|           && (wp->w_width - win_col_off(wp)) > 0) { | ||||
|         wp->w_skipcol += wp->w_width - win_col_off(wp); | ||||
|         --wp->w_wrow; | ||||
|         while (wp->w_wrow >= wp->w_height) { | ||||
|           wp->w_skipcol += W_WIDTH(wp) - win_col_off(wp) | ||||
|           wp->w_skipcol += wp->w_width - win_col_off(wp) | ||||
|                            + win_col_off2(wp); | ||||
|           --wp->w_wrow; | ||||
|         } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Justin M. Keyes
					Justin M. Keyes