# HG changeset patch # User Bram Moolenaar # Date 1666015204 -7200 # Node ID bf4f25d50fddbc9cea3cdf627280bddbde32e5c1 # Parent 5795425ca42f66a8c1262c5de488a474d3790d93 patch 9.0.0781: workaround to rename "small" to "smallfont" is clumsy Commit: https://github.com/vim/vim/commit/e6a16e9950111adfcfdb85261b3d5a8c13f1d533 Author: Bram Moolenaar Date: Mon Oct 17 14:51:36 2022 +0100 patch 9.0.0781: workaround to rename "small" to "smallfont" is clumsy Problem: Workaround to rename "small" to "smallfont" is clumsy. Solution: Undefine "small" after including windows.h. (Ken Takata) diff --git a/src/libvterm/include/vterm.h b/src/libvterm/include/vterm.h --- a/src/libvterm/include/vterm.h +++ b/src/libvterm/include/vterm.h @@ -528,7 +528,7 @@ typedef struct { unsigned int font : 4; /* 0 to 9 */ unsigned int dwl : 1; /* On a DECDWL or DECDHL line */ unsigned int dhl : 2; /* On a DECDHL line (1=top 2=bottom) */ - unsigned int smallfont : 1; + unsigned int small : 1; unsigned int baseline : 2; } VTermScreenCellAttrs; diff --git a/src/libvterm/src/pen.c b/src/libvterm/src/pen.c --- a/src/libvterm/src/pen.c +++ b/src/libvterm/src/pen.c @@ -181,7 +181,7 @@ INTERNAL void vterm_state_resetpen(VTerm state->pen.conceal = 0; setpenattr_bool(state, VTERM_ATTR_CONCEAL, 0); state->pen.strike = 0; setpenattr_bool(state, VTERM_ATTR_STRIKE, 0); state->pen.font = 0; setpenattr_int (state, VTERM_ATTR_FONT, 0); - state->pen.smallfont = 0; setpenattr_bool(state, VTERM_ATTR_SMALL, 0); + state->pen.small = 0; setpenattr_bool(state, VTERM_ATTR_SMALL, 0); state->pen.baseline = 0; setpenattr_int (state, VTERM_ATTR_BASELINE, 0); state->pen.fg = state->default_fg; setpenattr_col(state, VTERM_ATTR_FOREGROUND, state->default_fg); @@ -204,7 +204,7 @@ INTERNAL void vterm_state_savepen(VTermS setpenattr_bool(state, VTERM_ATTR_CONCEAL, state->pen.conceal); setpenattr_bool(state, VTERM_ATTR_STRIKE, state->pen.strike); setpenattr_int (state, VTERM_ATTR_FONT, state->pen.font); - setpenattr_bool(state, VTERM_ATTR_SMALL, state->pen.smallfont); + setpenattr_bool(state, VTERM_ATTR_SMALL, state->pen.small); setpenattr_int (state, VTERM_ATTR_BASELINE, state->pen.baseline); setpenattr_col( state, VTERM_ATTR_FOREGROUND, state->pen.fg); @@ -454,12 +454,12 @@ INTERNAL void vterm_state_setpen(VTermSt case 73: // Superscript case 74: // Subscript case 75: // Superscript/subscript off - state->pen.smallfont = (arg != 75); + state->pen.small = (arg != 75); state->pen.baseline = (arg == 73) ? VTERM_BASELINE_RAISE : (arg == 74) ? VTERM_BASELINE_LOWER : VTERM_BASELINE_NORMAL; - setpenattr_bool(state, VTERM_ATTR_SMALL, state->pen.smallfont); + setpenattr_bool(state, VTERM_ATTR_SMALL, state->pen.small); setpenattr_int (state, VTERM_ATTR_BASELINE, state->pen.baseline); break; @@ -560,7 +560,7 @@ INTERNAL int vterm_state_getpen(VTermSta argi = vterm_state_getpen_color(&state->pen.bg, argi, args, FALSE); - if(state->pen.smallfont) { + if(state->pen.small) { if(state->pen.baseline == VTERM_BASELINE_RAISE) args[argi++] = 73; else if(state->pen.baseline == VTERM_BASELINE_LOWER) @@ -614,7 +614,7 @@ int vterm_state_get_penattr(const VTermS return 1; case VTERM_ATTR_SMALL: - val->boolean = state->pen.smallfont; + val->boolean = state->pen.small; return 1; case VTERM_ATTR_BASELINE: diff --git a/src/libvterm/src/rect.h b/src/libvterm/src/rect.h --- a/src/libvterm/src/rect.h +++ b/src/libvterm/src/rect.h @@ -35,13 +35,13 @@ static int rect_equal(VTermRect *a, VTer (a->end_col == b->end_col); } -/* True if smallrect is contained entirely within big */ -static int rect_contains(VTermRect *big, VTermRect *smallrect) +/* True if small is contained entirely within big */ +static int rect_contains(VTermRect *big, VTermRect *small) { - if(smallrect->start_row < big->start_row) return 0; - if(smallrect->start_col < big->start_col) return 0; - if(smallrect->end_row > big->end_row) return 0; - if(smallrect->end_col > big->end_col) return 0; + if(small->start_row < big->start_row) return 0; + if(small->start_col < big->start_col) return 0; + if(small->end_row > big->end_row) return 0; + if(small->end_col > big->end_col) return 0; return 1; } diff --git a/src/libvterm/src/screen.c b/src/libvterm/src/screen.c --- a/src/libvterm/src/screen.c +++ b/src/libvterm/src/screen.c @@ -26,7 +26,7 @@ typedef struct unsigned int conceal : 1; unsigned int strike : 1; unsigned int font : 4; /* 0 to 9 */ - unsigned int smallfont : 1; + unsigned int small : 1; unsigned int baseline : 2; /* Extra state storage that isn't strictly pen-related */ @@ -446,7 +446,7 @@ static int setpenattr(VTermAttr attr, VT screen->pen.bg = val->color; return 1; case VTERM_ATTR_SMALL: - screen->pen.smallfont = val->boolean; + screen->pen.small = val->boolean; return 1; case VTERM_ATTR_BASELINE: screen->pen.baseline = val->number; @@ -700,7 +700,7 @@ static void resize_buffer(VTermScreen *s dst->pen.conceal = src->attrs.conceal; dst->pen.strike = src->attrs.strike; dst->pen.font = src->attrs.font; - dst->pen.smallfont = src->attrs.smallfont; + dst->pen.small = src->attrs.small; dst->pen.baseline = src->attrs.baseline; dst->pen.fg = src->fg; @@ -1014,7 +1014,7 @@ int vterm_screen_get_cell(const VTermScr cell->attrs.conceal = intcell->pen.conceal; cell->attrs.strike = intcell->pen.strike; cell->attrs.font = intcell->pen.font; - cell->attrs.smallfont = intcell->pen.smallfont; + cell->attrs.small = intcell->pen.small; cell->attrs.baseline = intcell->pen.baseline; cell->attrs.dwl = intcell->pen.dwl; @@ -1158,7 +1158,7 @@ static int attrs_differ(VTermAttrMask at return 1; if((attrs & VTERM_ATTR_BACKGROUND_MASK) && !vterm_color_is_equal(&a->pen.bg, &b->pen.bg)) return 1; - if((attrs & VTERM_ATTR_SMALL_MASK) && (a->pen.smallfont != b->pen.smallfont)) + if((attrs & VTERM_ATTR_SMALL_MASK) && (a->pen.small != b->pen.small)) return 1; if((attrs & VTERM_ATTR_BASELINE_MASK) && (a->pen.baseline != b->pen.baseline)) return 1; diff --git a/src/libvterm/src/vterm_internal.h b/src/libvterm/src/vterm_internal.h --- a/src/libvterm/src/vterm_internal.h +++ b/src/libvterm/src/vterm_internal.h @@ -60,7 +60,7 @@ struct VTermPen unsigned int conceal:1; unsigned int strike:1; unsigned int font:4; /* To store 0-9 */ - unsigned int smallfont:1; + unsigned int small:1; unsigned int baseline:2; }; diff --git a/src/libvterm/t/harness.c b/src/libvterm/t/harness.c --- a/src/libvterm/t/harness.c +++ b/src/libvterm/t/harness.c @@ -410,7 +410,7 @@ static struct { int conceal; int strike; int font; - int smallfont; + int small; int baseline; VTermColor foreground; VTermColor background; @@ -443,7 +443,7 @@ static int state_setpenattr(VTermAttr at state_pen.font = val->number; break; case VTERM_ATTR_SMALL: - state_pen.smallfont = val->boolean; + state_pen.small = val->boolean; break; case VTERM_ATTR_BASELINE: state_pen.baseline = val->number; @@ -1015,11 +1015,11 @@ int main(int argc UNUSED, char **argv UN } else if(streq(linep, "small")) { vterm_state_get_penattr(state, VTERM_ATTR_SMALL, &val); - if(val.boolean != state_pen.smallfont) + if(val.boolean != state_pen.small) printf("! pen small mismatch; state=%s, event=%s\n", - BOOLSTR(val.boolean), BOOLSTR(state_pen.smallfont)); + BOOLSTR(val.boolean), BOOLSTR(state_pen.small)); else - printf("%s\n", BOOLSTR(state_pen.smallfont)); + printf("%s\n", BOOLSTR(state_pen.small)); } else if(streq(linep, "baseline")) { vterm_state_get_penattr(state, VTERM_ATTR_BASELINE, &val); @@ -1160,7 +1160,7 @@ int main(int argc UNUSED, char **argv UN if(cell.attrs.blink) printf("K"); if(cell.attrs.reverse) printf("R"); if(cell.attrs.font) printf("F%d", cell.attrs.font); - if(cell.attrs.smallfont) printf("S"); + if(cell.attrs.small) printf("S"); if(cell.attrs.baseline) printf( cell.attrs.baseline == VTERM_BASELINE_RAISE ? "^" : "_"); diff --git a/src/os_win32.h b/src/os_win32.h --- a/src/os_win32.h +++ b/src/os_win32.h @@ -86,6 +86,10 @@ #endif #ifndef PROTO # include + +// Weird: rpcndr.h defines "small" to "char", which causes trouble +#undef small + # ifndef SM_CXPADDEDBORDER # define SM_CXPADDEDBORDER 92 # endif diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -696,6 +696,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 781, +/**/ 780, /**/ 779,