patch 8.0.1135: W_WINCOL() is always the same
Problem: W_WINCOL() is always the same.
Solution: Expand the macro.
diff --git a/src/edit.c b/src/edit.c
index 447e2ee..8486e34 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -1776,7 +1776,7 @@
else
attr = 0;
pc_row = W_WINROW(curwin) + curwin->w_wrow;
- pc_col = W_WINCOL(curwin);
+ pc_col = curwin->w_wincol;
#if defined(FEAT_RIGHTLEFT) || defined(FEAT_MBYTE)
pc_status = PC_STATUS_UNSET;
#endif
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index dbdd403..adf4279 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -9111,7 +9111,7 @@
{
n = W_WINROW(curwin) + 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;
diff --git a/src/gui_gtk.c b/src/gui_gtk.c
index af8fcae..b321da0 100644
--- a/src/gui_gtk.c
+++ b/src/gui_gtk.c
@@ -1954,7 +1954,7 @@
# endif
{
/* Find the cursor position in the current window */
- *x += FILL_X(W_WINCOL(curwin) + curwin->w_wcol + 1) + 1;
+ *x += FILL_X(curwin->w_wincol + curwin->w_wcol + 1) + 1;
*y += FILL_Y(W_WINROW(curwin) + curwin->w_wrow + 1) + 1;
}
}
diff --git a/src/gui_w32.c b/src/gui_w32.c
index d9ac846..aa09488 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -6608,7 +6608,7 @@
}
else if (curwin != NULL)
{
- p.x += TEXT_X(W_WINCOL(curwin) + curwin->w_wcol + 1);
+ p.x += TEXT_X(curwin->w_wincol + curwin->w_wcol + 1);
p.y += TEXT_Y(W_WINROW(curwin) + curwin->w_wrow + 1);
}
msg_scroll = FALSE;
diff --git a/src/if_py_both.h b/src/if_py_both.h
index aa6f06b..ea8752d 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -3877,7 +3877,7 @@
else if (strcmp(name, "width") == 0)
return PyLong_FromLong((long)(W_WIDTH(self->win)));
else if (strcmp(name, "col") == 0)
- return PyLong_FromLong((long)(W_WINCOL(self->win)));
+ return PyLong_FromLong((long)(self->win->w_wincol));
else if (strcmp(name, "vars") == 0)
return NEW_DICTIONARY(self->win->w_vars);
else if (strcmp(name, "options") == 0)
diff --git a/src/netbeans.c b/src/netbeans.c
index 3685e15..1a86727 100644
--- a/src/netbeans.c
+++ b/src/netbeans.c
@@ -2872,7 +2872,7 @@
if (bufno >= 0 && curwin != NULL && curwin->w_buffer == curbuf)
{
- int col = mouse_col - W_WINCOL(curwin)
+ int col = mouse_col - curwin->w_wincol
- ((curwin->w_p_nu || curwin->w_p_rnu) ? 9 : 1);
long off = pos2off(curbuf, &curwin->w_cursor);
diff --git a/src/popupmnu.c b/src/popupmnu.c
index 23e8711..0467c39 100644
--- a/src/popupmnu.c
+++ b/src/popupmnu.c
@@ -190,10 +190,10 @@
/* Calculate column */
#ifdef FEAT_RIGHTLEFT
if (curwin->w_p_rl)
- col = W_WINCOL(curwin) + W_WIDTH(curwin) - curwin->w_wcol - 1;
+ col = curwin->w_wincol + W_WIDTH(curwin) - curwin->w_wcol - 1;
else
#endif
- 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 */
if (pum_height < size)
@@ -312,7 +312,7 @@
#ifdef FEAT_RIGHTLEFT
if (curwin->w_p_rl)
{
- if (pum_col < W_WINCOL(curwin) + W_WIDTH(curwin) - 1)
+ if (pum_col < curwin->w_wincol + W_WIDTH(curwin) - 1)
screen_putchar(' ', row, pum_col + 1, attr);
}
else
diff --git a/src/screen.c b/src/screen.c
index fb92416..260471a 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -2211,10 +2211,10 @@
/*
* Last line isn't finished: Display "@@@" in the last screen line.
*/
- screen_puts_len((char_u *)"@@", 2, scr_row, W_WINCOL(wp),
+ screen_puts_len((char_u *)"@@", 2, scr_row, wp->w_wincol,
HL_ATTR(HLF_AT));
screen_fill(scr_row, scr_row + 1,
- (int)W_WINCOL(wp) + 2, (int)W_ENDCOL(wp),
+ (int)wp->w_wincol + 2, (int)W_ENDCOL(wp),
'@', ' ', HL_ATTR(HLF_AT));
set_empty_rows(wp, srow);
wp->w_botline = lnum;
@@ -2375,7 +2375,7 @@
}
# endif
screen_fill(W_WINROW(wp) + row, W_WINROW(wp) + endrow,
- W_WINCOL(wp), W_ENDCOL(wp) - 1 - FDC_OFF,
+ wp->w_wincol, 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,
@@ -2392,7 +2392,7 @@
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,
+ wp->w_wincol, (int)wp->w_wincol + n,
cmdwin_type, ' ', HL_ATTR(HLF_AT));
}
#endif
@@ -2405,7 +2405,7 @@
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,
+ wp->w_wincol + n, (int)wp->w_wincol + nn,
' ', ' ', HL_ATTR(HLF_FC));
n = nn;
}
@@ -2419,13 +2419,13 @@
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,
+ wp->w_wincol + n, (int)wp->w_wincol + nn,
' ', ' ', HL_ATTR(HLF_SC));
n = nn;
}
#endif
screen_fill(W_WINROW(wp) + row, W_WINROW(wp) + endrow,
- W_WINCOL(wp) + FDC_OFF, (int)W_ENDCOL(wp),
+ wp->w_wincol + FDC_OFF, (int)W_ENDCOL(wp),
c1, c2, HL_ATTR(hl));
}
set_empty_rows(wp, row);
@@ -2894,7 +2894,7 @@
}
#endif
- screen_line(row + W_WINROW(wp), W_WINCOL(wp), (int)W_WIDTH(wp),
+ screen_line(row + W_WINROW(wp), wp->w_wincol, (int)W_WIDTH(wp),
(int)W_WIDTH(wp), FALSE);
/*
@@ -4016,7 +4016,7 @@
#endif
)
{
- screen_line(screen_row, W_WINCOL(wp), col, -(int)W_WIDTH(wp),
+ screen_line(screen_row, wp->w_wincol, col, -(int)W_WIDTH(wp),
HAS_RIGHTLEFT(wp->w_p_rl));
/* Pretend we have finished updating the window. Except when
* 'cursorcolumn' is set. */
@@ -5488,7 +5488,7 @@
}
#endif
- screen_line(screen_row, W_WINCOL(wp), col,
+ screen_line(screen_row, wp->w_wincol, col,
(int)W_WIDTH(wp), HAS_RIGHTLEFT(wp->w_p_rl));
row++;
@@ -5794,11 +5794,11 @@
)
{
#ifdef FEAT_CONCEAL
- screen_line(screen_row, W_WINCOL(wp), col - boguscols,
+ screen_line(screen_row, wp->w_wincol, col - boguscols,
(int)W_WIDTH(wp), HAS_RIGHTLEFT(wp->w_p_rl));
boguscols = 0;
#else
- screen_line(screen_row, W_WINCOL(wp), col,
+ screen_line(screen_row, wp->w_wincol, col,
(int)W_WIDTH(wp), HAS_RIGHTLEFT(wp->w_p_rl));
#endif
++row;
@@ -6931,14 +6931,14 @@
}
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);
+ 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, (char_u *)"<%s>", 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);
#ifdef FEAT_CMDL_INFO
win_redr_ruler(wp, TRUE);
@@ -7167,7 +7167,7 @@
# endif
}
- col += W_WINCOL(wp);
+ col += wp->w_wincol;
}
if (maxwidth <= 0)
@@ -9418,7 +9418,7 @@
{
validate_cursor();
windgoto(W_WINROW(curwin) + curwin->w_wrow,
- W_WINCOL(curwin) + (
+ curwin->w_wincol + (
#ifdef FEAT_RIGHTLEFT
/* With 'rightleft' set and the cursor on a double-wide
* character, position it on the leftmost column. */
@@ -9495,7 +9495,7 @@
if (lastrow > Rows)
lastrow = Rows;
screen_fill(nextrow - line_count, lastrow - line_count,
- W_WINCOL(wp), (int)W_ENDCOL(wp),
+ wp->w_wincol, (int)W_ENDCOL(wp),
' ', ' ', 0);
}
@@ -9606,7 +9606,7 @@
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),
+ wp->w_wincol, (int)W_ENDCOL(wp),
' ', ' ', 0);
return OK;
}
@@ -10768,7 +10768,7 @@
}
wp->w_winbar_items[item_idx].wb_menu = NULL; /* end marker */
- screen_line(wp->w_winrow, W_WINCOL(wp), (int)W_WIDTH(wp),
+ screen_line(wp->w_winrow, wp->w_wincol, (int)W_WIDTH(wp),
(int)W_WIDTH(wp), FALSE);
}
#endif
@@ -10900,7 +10900,7 @@
{
row = W_WINROW(wp) + wp->w_height;
fillchar = fillchar_status(&attr, wp);
- off = W_WINCOL(wp);
+ off = wp->w_wincol;
width = W_WIDTH(wp);
}
else
diff --git a/src/structs.h b/src/structs.h
index 94d7391..768ff58 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -2700,8 +2700,7 @@
int w_height; /* number of rows in window, excluding
status/command/winbar 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_wincol; /* Leftmost column of window in screen. */
int w_width; /* Width of window, excluding separation.
use W_WIDTH() */
int w_vsep_width; /* Number of separator columns (0 or 1).
diff --git a/src/term.c b/src/term.c
index 25aaa91..5714c89 100644
--- a/src/term.c
+++ b/src/term.c
@@ -3816,8 +3816,8 @@
OUT_STR(tgoto((char *)T_CS, W_WINROW(wp) + wp->w_height - 1,
W_WINROW(wp) + 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 */
}
diff --git a/src/terminal.c b/src/terminal.c
index 9b5e4ce..18a0e61 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -730,7 +730,7 @@
VTermModifier mod = VTERM_MOD_NONE;
vterm_mouse_move(vterm, mouse_row - W_WINROW(curwin),
- mouse_col - W_WINCOL(curwin), mod);
+ mouse_col - curwin->w_wincol, mod);
vterm_mouse_button(vterm, button, pressed, mod);
return TRUE;
}
@@ -1308,7 +1308,7 @@
case K_MOUSERIGHT:
if (mouse_row < W_WINROW(curwin)
|| mouse_row >= (W_WINROW(curwin) + curwin->w_height)
- || mouse_col < W_WINCOL(curwin)
+ || mouse_col < curwin->w_wincol
|| mouse_col >= W_ENDCOL(curwin)
|| dragging_outside)
{
diff --git a/src/ui.c b/src/ui.c
index c26cb37..64553b1 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -2845,7 +2845,7 @@
#endif
row -= W_WINROW(curwin);
- col -= W_WINCOL(curwin);
+ col -= curwin->w_wincol;
/*
* When clicking beyond the end of the window, scroll the screen.
diff --git a/src/version.c b/src/version.c
index 044b98c..6facb34 100644
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1135,
+/**/
1134,
/**/
1133,
diff --git a/src/vim.h b/src/vim.h
index cb771ff..8153ef8 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -859,7 +859,6 @@
#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)
diff --git a/src/window.c b/src/window.c
index 370f749..ca56d9c 100644
--- a/src/window.c
+++ b/src/window.c
@@ -2724,7 +2724,7 @@
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);
}