changeset 30894:bf4f25d50fdd v9.0.0781

patch 9.0.0781: workaround to rename "small" to "smallfont" is clumsy Commit: https://github.com/vim/vim/commit/e6a16e9950111adfcfdb85261b3d5a8c13f1d533 Author: Bram Moolenaar <Bram@vim.org> 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)
author Bram Moolenaar <Bram@vim.org>
date Mon, 17 Oct 2022 16:00:04 +0200
parents 5795425ca42f
children 187ae05de6f3
files src/libvterm/include/vterm.h src/libvterm/src/pen.c src/libvterm/src/rect.h src/libvterm/src/screen.c src/libvterm/src/vterm_internal.h src/libvterm/t/harness.c src/os_win32.h src/version.c
diffstat 8 files changed, 31 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- 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;
 
--- 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:
--- 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;
 }
 
--- 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;
--- 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;
 };
 
--- 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 ? "^" :
                                                           "_");
--- a/src/os_win32.h
+++ b/src/os_win32.h
@@ -86,6 +86,10 @@
 #endif
 #ifndef PROTO
 # include <windows.h>
+
+// Weird: rpcndr.h defines "small" to "char", which causes trouble
+#undef small
+
 # ifndef SM_CXPADDEDBORDER
 #  define SM_CXPADDEDBORDER     92
 # endif
--- 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,