]> granicus.if.org Git - nethack/commitdiff
do vs2017 warnings.h a little differently than vs2019
authornhmall <nhmall@nethack.org>
Wed, 7 Jul 2021 13:05:22 +0000 (09:05 -0400)
committernhmall <nhmall@nethack.org>
Wed, 7 Jul 2021 13:05:22 +0000 (09:05 -0400)
fixes #545

include/warnings.h
sys/windows/consoletty.c
win/win32/mhmap.c

index a97a22c0cda416ac59cf8c1aede57897349f5b16..28da4d10805358bdf6796da902e1e75540a2b410 100644 (file)
@@ -68,6 +68,7 @@
 #define STDC_Pragma_AVAILABLE
 
 #elif defined(_MSC_VER)
+#if _MSC_VER > 1916
 #define DISABLE_WARNING_UNREACHABLE_CODE \
                            _Pragma("warning( push )") \
                            _Pragma("warning( disable : 4702 )")
 #define RESTORE_WARNING_FORMAT_NONLITERAL _Pragma("warning( pop )")
 #define RESTORE_WARNINGS _Pragma("warning( pop )")
 #define STDC_Pragma_AVAILABLE
+#else  /* Visual Studio prior to 2019 below */
+#define DISABLE_WARNING_UNREACHABLE_CODE \
+                           __pragma(warning(push)) \
+                           __pragma(warning(disable:4702))
+#define DISABLE_WARNING_FORMAT_NONLITERAL \
+                           __pragma(warning(push)) \
+                           __pragma(warning(disable:4774))
+#define DISABLE_WARNING_CONDEXPR_IS_CONSTANT \
+                           __pragma(warning(push)) \
+                           __pragma(warning(disable:4127))
+#define RESTORE_WARNING_CONDEXPR_IS_CONSTANT __pragma(warning(pop))
+#define RESTORE_WARNING_FORMAT_NONLITERAL __pragma(warning(pop))
+#define RESTORE_WARNINGS  __pragma(warning(pop))
+#define STDC_Pragma_AVAILABLE
+#endif /* vs2019 or vs2017 */
 
 #endif /* various compiler detections */
 #endif /* ACTIVATE_WARNING_PRAGMAS */
index c27409e6eb2dd4e299bbd1e37d6a0dbdee72910c..5471e501f983f2a34a67334f93d81a8ae11ad8ab 100644 (file)
@@ -1899,11 +1899,10 @@ void nethack_enter_consoletty()
 
     /* grow the size of the console buffer if it is not wide enough */
     if (console.origcsbi.dwSize.X < console.width) {
-        COORD screen_size = {
-            screen_size.Y = console.origcsbi.dwSize.Y,
-            screen_size.X = console.width
-        };
+        COORD screen_size = {0};
 
+        screen_size.Y = console.origcsbi.dwSize.Y,
+        screen_size.X = console.width;
         SetConsoleScreenBufferSize(console.hConOut, screen_size);
     }
 
index 0af2b05dc32cd7acab9085bd2252078e33971429..85ba2da0ac416e9e8960820d97a3bf3a21507bf1 100644 (file)
@@ -965,8 +965,11 @@ paintGlyph(PNHMapWindow data, int i, int j, RECT * rect)
                 DeleteObject(brush);
                 intensity = (wch == 0x2591 ? 100 : 200);
                 brush = CreateSolidBrush(RGB(intensity, intensity, intensity));
-                RECT smallRect = { rect->left + 1, rect->top + 1,
-                                    rect->right - 1, rect->bottom - 1 };
+                RECT smallRect = {0};
+                smallRect.left = rect->left + 1;
+                smallRect.top = rect->top + 1;
+                smallRect.right = rect->right - 1;
+                smallRect.bottom = rect->bottom - 1;
                 FillRect(data->backBufferDC, &smallRect, brush);
                 DeleteObject(brush);
             } else {