Fix format string warnings for width-based integers

The DJGPP compiler emits many warnings for conflicts between print
format specifiers and argument types. To fix the warnings, I added
`SDL_PRIx32` macros for use with `Sint32` and `Uint32` types. The macros
alias those found in <inttypes.h> or fallback to a reasonable default.

As an alternative, print arguments could be cast to plain old integers.
I opted slightly for the current solution as it felt more technically correct,
despite making the format strings more verbose.
This commit is contained in:
Jay Petacat 2021-02-11 02:05:02 -05:00 committed by Sam Lantinga
parent 5427f4861b
commit f443a6fc7a
5 changed files with 89 additions and 62 deletions

View File

@ -223,7 +223,7 @@ typedef uint64_t Uint64;
/* @} *//* Basic data types */ /* @} *//* Basic data types */
/* Make sure we have macros for printing 64 bit values. /* Make sure we have macros for printing width-based integers.
* <stdint.h> should define these but this is not true all platforms. * <stdint.h> should define these but this is not true all platforms.
* (for example win32) */ * (for example win32) */
#ifndef SDL_PRIs64 #ifndef SDL_PRIs64
@ -270,6 +270,34 @@ typedef uint64_t Uint64;
#define SDL_PRIX64 "llX" #define SDL_PRIX64 "llX"
#endif #endif
#endif #endif
#ifndef SDL_PRIs32
#ifdef PRId32
#define SDL_PRIs32 PRId32
#else
#define SDL_PRIs32 "d"
#endif
#endif
#ifndef SDL_PRIu32
#ifdef PRIu32
#define SDL_PRIu32 PRIu32
#else
#define SDL_PRIu32 "u"
#endif
#endif
#ifndef SDL_PRIx32
#ifdef PRIx32
#define SDL_PRIx32 PRIx32
#else
#define SDL_PRIx32 "x"
#endif
#endif
#ifndef SDL_PRIX32
#ifdef PRIX32
#define SDL_PRIX32 PRIX32
#else
#define SDL_PRIX32 "X"
#endif
#endif
/* Annotations to help code analysis tools */ /* Annotations to help code analysis tools */
#ifdef SDL_DISABLE_ANALYZE_MACROS #ifdef SDL_DISABLE_ANALYZE_MACROS

View File

@ -1871,7 +1871,7 @@ WaveLoad(SDL_RWops *src, WaveFile *file, SDL_AudioSpec *spec, Uint8 **audio_buf,
while ((Uint64)RIFFend > (Uint64)chunk->position + chunk->length + (chunk->length & 1)) { while ((Uint64)RIFFend > (Uint64)chunk->position + chunk->length + (chunk->length & 1)) {
/* Abort after too many chunks or else corrupt files may waste time. */ /* Abort after too many chunks or else corrupt files may waste time. */
if (chunkcount++ >= chunkcountlimit) { if (chunkcount++ >= chunkcountlimit) {
return SDL_SetError("Chunk count in WAVE file exceeds limit of %u", chunkcountlimit); return SDL_SetError("Chunk count in WAVE file exceeds limit of %" SDL_PRIu32, chunkcountlimit);
} }
result = WaveNextChunk(src, chunk); result = WaveNextChunk(src, chunk);

View File

@ -751,7 +751,7 @@ SDLTest_PrintRenderer(SDL_RendererInfo * info)
SDL_Log(" Renderer %s:\n", info->name); SDL_Log(" Renderer %s:\n", info->name);
SDL_snprintf(text, sizeof(text), " Flags: 0x%8.8X", info->flags); SDL_snprintf(text, sizeof(text), " Flags: 0x%8.8" SDL_PRIX32, info->flags);
SDL_snprintfcat(text, sizeof(text), " ("); SDL_snprintfcat(text, sizeof(text), " (");
count = 0; count = 0;
for (i = 0; i < sizeof(info->flags) * 8; ++i) { for (i = 0; i < sizeof(info->flags) * 8; ++i) {
@ -767,7 +767,7 @@ SDLTest_PrintRenderer(SDL_RendererInfo * info)
SDL_snprintfcat(text, sizeof(text), ")"); SDL_snprintfcat(text, sizeof(text), ")");
SDL_Log("%s\n", text); SDL_Log("%s\n", text);
SDL_snprintf(text, sizeof(text), " Texture formats (%d): ", info->num_texture_formats); SDL_snprintf(text, sizeof(text), " Texture formats (%" SDL_PRIu32 "): ", info->num_texture_formats);
for (i = 0; i < (int) info->num_texture_formats; ++i) { for (i = 0; i < (int) info->num_texture_formats; ++i) {
if (i > 0) { if (i > 0) {
SDL_snprintfcat(text, sizeof(text), ", "); SDL_snprintfcat(text, sizeof(text), ", ");
@ -948,11 +948,11 @@ SDLTest_CommonInit(SDLTest_CommonState * state)
mode.w, mode.h, mode.refresh_rate, bpp, mode.w, mode.h, mode.refresh_rate, bpp,
SDL_GetPixelFormatName(mode.format)); SDL_GetPixelFormatName(mode.format));
if (Rmask || Gmask || Bmask) { if (Rmask || Gmask || Bmask) {
SDL_Log(" Red Mask = 0x%.8x\n", Rmask); SDL_Log(" Red Mask = 0x%.8" SDL_PRIx32 "\n", Rmask);
SDL_Log(" Green Mask = 0x%.8x\n", Gmask); SDL_Log(" Green Mask = 0x%.8" SDL_PRIx32 "\n", Gmask);
SDL_Log(" Blue Mask = 0x%.8x\n", Bmask); SDL_Log(" Blue Mask = 0x%.8" SDL_PRIx32 "\n", Bmask);
if (Amask) if (Amask)
SDL_Log(" Alpha Mask = 0x%.8x\n", Amask); SDL_Log(" Alpha Mask = 0x%.8" SDL_PRIx32 "\n", Amask);
} }
/* Print available fullscreen video modes */ /* Print available fullscreen video modes */
@ -969,14 +969,14 @@ SDLTest_CommonInit(SDLTest_CommonState * state)
j, mode.w, mode.h, mode.refresh_rate, bpp, j, mode.w, mode.h, mode.refresh_rate, bpp,
SDL_GetPixelFormatName(mode.format)); SDL_GetPixelFormatName(mode.format));
if (Rmask || Gmask || Bmask) { if (Rmask || Gmask || Bmask) {
SDL_Log(" Red Mask = 0x%.8x\n", SDL_Log(" Red Mask = 0x%.8" SDL_PRIx32 "\n",
Rmask); Rmask);
SDL_Log(" Green Mask = 0x%.8x\n", SDL_Log(" Green Mask = 0x%.8" SDL_PRIx32 "\n",
Gmask); Gmask);
SDL_Log(" Blue Mask = 0x%.8x\n", SDL_Log(" Blue Mask = 0x%.8" SDL_PRIx32 "\n",
Bmask); Bmask);
if (Amask) if (Amask)
SDL_Log(" Alpha Mask = 0x%.8x\n", SDL_Log(" Alpha Mask = 0x%.8" SDL_PRIx32 "\n",
Amask); Amask);
} }
} }
@ -1256,10 +1256,11 @@ SDLTest_PrintEvent(SDL_Event * event)
case SDL_DISPLAYEVENT: case SDL_DISPLAYEVENT:
switch (event->display.event) { switch (event->display.event) {
case SDL_DISPLAYEVENT_ORIENTATION: case SDL_DISPLAYEVENT_ORIENTATION:
SDL_Log("SDL EVENT: Display %d changed orientation to %s", event->display.display, DisplayOrientationName(event->display.data1)); SDL_Log("SDL EVENT: Display %" SDL_PRIu32 " changed orientation to %s",
event->display.display, DisplayOrientationName(event->display.data1));
break; break;
default: default:
SDL_Log("SDL EVENT: Display %d got unknown event 0x%4.4x", SDL_Log("SDL EVENT: Display %" SDL_PRIu32 " got unknown event 0x%4.4x",
event->display.display, event->display.event); event->display.display, event->display.event);
break; break;
} }
@ -1267,123 +1268,120 @@ SDLTest_PrintEvent(SDL_Event * event)
case SDL_WINDOWEVENT: case SDL_WINDOWEVENT:
switch (event->window.event) { switch (event->window.event) {
case SDL_WINDOWEVENT_SHOWN: case SDL_WINDOWEVENT_SHOWN:
SDL_Log("SDL EVENT: Window %d shown", event->window.windowID); SDL_Log("SDL EVENT: Window %" SDL_PRIu32 " shown", event->window.windowID);
break; break;
case SDL_WINDOWEVENT_HIDDEN: case SDL_WINDOWEVENT_HIDDEN:
SDL_Log("SDL EVENT: Window %d hidden", event->window.windowID); SDL_Log("SDL EVENT: Window %" SDL_PRIu32 " hidden", event->window.windowID);
break; break;
case SDL_WINDOWEVENT_EXPOSED: case SDL_WINDOWEVENT_EXPOSED:
SDL_Log("SDL EVENT: Window %d exposed", event->window.windowID); SDL_Log("SDL EVENT: Window %" SDL_PRIu32 " exposed", event->window.windowID);
break; break;
case SDL_WINDOWEVENT_MOVED: case SDL_WINDOWEVENT_MOVED:
SDL_Log("SDL EVENT: Window %d moved to %d,%d", SDL_Log("SDL EVENT: Window %" SDL_PRIu32 " moved to %" SDL_PRIs32 ",%" SDL_PRIs32,
event->window.windowID, event->window.data1, event->window.windowID, event->window.data1, event->window.data2);
event->window.data2);
break; break;
case SDL_WINDOWEVENT_RESIZED: case SDL_WINDOWEVENT_RESIZED:
SDL_Log("SDL EVENT: Window %d resized to %dx%d", SDL_Log("SDL EVENT: Window %" SDL_PRIu32 " resized to %" SDL_PRIs32 "x%" SDL_PRIs32,
event->window.windowID, event->window.data1, event->window.windowID, event->window.data1, event->window.data2);
event->window.data2);
break; break;
case SDL_WINDOWEVENT_SIZE_CHANGED: case SDL_WINDOWEVENT_SIZE_CHANGED:
SDL_Log("SDL EVENT: Window %d changed size to %dx%d", SDL_Log("SDL EVENT: Window %" SDL_PRIu32 " changed size to %" SDL_PRIs32 "x%" SDL_PRIs32,
event->window.windowID, event->window.data1, event->window.windowID, event->window.data1, event->window.data2);
event->window.data2);
break; break;
case SDL_WINDOWEVENT_MINIMIZED: case SDL_WINDOWEVENT_MINIMIZED:
SDL_Log("SDL EVENT: Window %d minimized", event->window.windowID); SDL_Log("SDL EVENT: Window %" SDL_PRIu32 " minimized", event->window.windowID);
break; break;
case SDL_WINDOWEVENT_MAXIMIZED: case SDL_WINDOWEVENT_MAXIMIZED:
SDL_Log("SDL EVENT: Window %d maximized", event->window.windowID); SDL_Log("SDL EVENT: Window %" SDL_PRIu32 " maximized", event->window.windowID);
break; break;
case SDL_WINDOWEVENT_RESTORED: case SDL_WINDOWEVENT_RESTORED:
SDL_Log("SDL EVENT: Window %d restored", event->window.windowID); SDL_Log("SDL EVENT: Window %" SDL_PRIu32 " restored", event->window.windowID);
break; break;
case SDL_WINDOWEVENT_ENTER: case SDL_WINDOWEVENT_ENTER:
SDL_Log("SDL EVENT: Mouse entered window %d", SDL_Log("SDL EVENT: Mouse entered window %" SDL_PRIu32 "",
event->window.windowID); event->window.windowID);
break; break;
case SDL_WINDOWEVENT_LEAVE: case SDL_WINDOWEVENT_LEAVE:
SDL_Log("SDL EVENT: Mouse left window %d", event->window.windowID); SDL_Log("SDL EVENT: Mouse left window %" SDL_PRIu32 "", event->window.windowID);
break; break;
case SDL_WINDOWEVENT_FOCUS_GAINED: case SDL_WINDOWEVENT_FOCUS_GAINED:
SDL_Log("SDL EVENT: Window %d gained keyboard focus", SDL_Log("SDL EVENT: Window %" SDL_PRIu32 " gained keyboard focus",
event->window.windowID); event->window.windowID);
break; break;
case SDL_WINDOWEVENT_FOCUS_LOST: case SDL_WINDOWEVENT_FOCUS_LOST:
SDL_Log("SDL EVENT: Window %d lost keyboard focus", SDL_Log("SDL EVENT: Window %" SDL_PRIu32 " lost keyboard focus",
event->window.windowID); event->window.windowID);
break; break;
case SDL_WINDOWEVENT_CLOSE: case SDL_WINDOWEVENT_CLOSE:
SDL_Log("SDL EVENT: Window %d closed", event->window.windowID); SDL_Log("SDL EVENT: Window %" SDL_PRIu32 " closed", event->window.windowID);
break; break;
case SDL_WINDOWEVENT_TAKE_FOCUS: case SDL_WINDOWEVENT_TAKE_FOCUS:
SDL_Log("SDL EVENT: Window %d take focus", event->window.windowID); SDL_Log("SDL EVENT: Window %" SDL_PRIu32 " take focus", event->window.windowID);
break; break;
case SDL_WINDOWEVENT_HIT_TEST: case SDL_WINDOWEVENT_HIT_TEST:
SDL_Log("SDL EVENT: Window %d hit test", event->window.windowID); SDL_Log("SDL EVENT: Window %" SDL_PRIu32 " hit test", event->window.windowID);
break; break;
default: default:
SDL_Log("SDL EVENT: Window %d got unknown event 0x%4.4x", SDL_Log("SDL EVENT: Window %" SDL_PRIu32 " got unknown event 0x%4.4x",
event->window.windowID, event->window.event); event->window.windowID, event->window.event);
break; break;
} }
break; break;
case SDL_KEYDOWN: case SDL_KEYDOWN:
SDL_Log("SDL EVENT: Keyboard: key pressed in window %d: scancode 0x%08X = %s, keycode 0x%08X = %s", SDL_Log("SDL EVENT: Keyboard: key pressed in window %" SDL_PRIu32 ": scancode 0x%08X = %s, keycode 0x%08" SDL_PRIX32 " = %s",
event->key.windowID, event->key.windowID,
event->key.keysym.scancode, event->key.keysym.scancode,
SDL_GetScancodeName(event->key.keysym.scancode), SDL_GetScancodeName(event->key.keysym.scancode),
event->key.keysym.sym, SDL_GetKeyName(event->key.keysym.sym)); event->key.keysym.sym, SDL_GetKeyName(event->key.keysym.sym));
break; break;
case SDL_KEYUP: case SDL_KEYUP:
SDL_Log("SDL EVENT: Keyboard: key released in window %d: scancode 0x%08X = %s, keycode 0x%08X = %s", SDL_Log("SDL EVENT: Keyboard: key released in window %" SDL_PRIu32 ": scancode 0x%08X = %s, keycode 0x%08" SDL_PRIX32 " = %s",
event->key.windowID, event->key.windowID,
event->key.keysym.scancode, event->key.keysym.scancode,
SDL_GetScancodeName(event->key.keysym.scancode), SDL_GetScancodeName(event->key.keysym.scancode),
event->key.keysym.sym, SDL_GetKeyName(event->key.keysym.sym)); event->key.keysym.sym, SDL_GetKeyName(event->key.keysym.sym));
break; break;
case SDL_TEXTEDITING: case SDL_TEXTEDITING:
SDL_Log("SDL EVENT: Keyboard: text editing \"%s\" in window %d", SDL_Log("SDL EVENT: Keyboard: text editing \"%s\" in window %" SDL_PRIu32,
event->edit.text, event->edit.windowID); event->edit.text, event->edit.windowID);
break; break;
case SDL_TEXTINPUT: case SDL_TEXTINPUT:
SDL_Log("SDL EVENT: Keyboard: text input \"%s\" in window %d", SDL_Log("SDL EVENT: Keyboard: text input \"%s\" in window %" SDL_PRIu32,
event->text.text, event->text.windowID); event->text.text, event->text.windowID);
break; break;
case SDL_KEYMAPCHANGED: case SDL_KEYMAPCHANGED:
SDL_Log("SDL EVENT: Keymap changed"); SDL_Log("SDL EVENT: Keymap changed");
break; break;
case SDL_MOUSEMOTION: case SDL_MOUSEMOTION:
SDL_Log("SDL EVENT: Mouse: moved to %d,%d (%d,%d) in window %d", SDL_Log("SDL EVENT: Mouse: moved to %" SDL_PRIs32 ",%" SDL_PRIs32 " (%" SDL_PRIs32 ",%" SDL_PRIs32 ") in window %" SDL_PRIu32,
event->motion.x, event->motion.y, event->motion.x, event->motion.y,
event->motion.xrel, event->motion.yrel, event->motion.xrel, event->motion.yrel,
event->motion.windowID); event->motion.windowID);
break; break;
case SDL_MOUSEBUTTONDOWN: case SDL_MOUSEBUTTONDOWN:
SDL_Log("SDL EVENT: Mouse: button %d pressed at %d,%d with click count %d in window %d", SDL_Log("SDL EVENT: Mouse: button %d pressed at %" SDL_PRIs32 ",%" SDL_PRIs32 " with click count %d in window %" SDL_PRIu32,
event->button.button, event->button.x, event->button.y, event->button.clicks, event->button.button, event->button.x, event->button.y, event->button.clicks,
event->button.windowID); event->button.windowID);
break; break;
case SDL_MOUSEBUTTONUP: case SDL_MOUSEBUTTONUP:
SDL_Log("SDL EVENT: Mouse: button %d released at %d,%d with click count %d in window %d", SDL_Log("SDL EVENT: Mouse: button %d released at %" SDL_PRIs32 ",%" SDL_PRIs32 " with click count %d in window %" SDL_PRIu32,
event->button.button, event->button.x, event->button.y, event->button.clicks, event->button.button, event->button.x, event->button.y, event->button.clicks,
event->button.windowID); event->button.windowID);
break; break;
case SDL_MOUSEWHEEL: case SDL_MOUSEWHEEL:
SDL_Log("SDL EVENT: Mouse: wheel scrolled %d in x and %d in y (reversed: %d) in window %d", SDL_Log("SDL EVENT: Mouse: wheel scrolled %" SDL_PRIs32 " in x and %" SDL_PRIs32 " in y (reversed: %" SDL_PRIu32 ") in window %" SDL_PRIu32,
event->wheel.x, event->wheel.y, event->wheel.direction, event->wheel.windowID); event->wheel.x, event->wheel.y, event->wheel.direction, event->wheel.windowID);
break; break;
case SDL_JOYDEVICEADDED: case SDL_JOYDEVICEADDED:
SDL_Log("SDL EVENT: Joystick index %d attached", SDL_Log("SDL EVENT: Joystick index %" SDL_PRIs32 " attached",
event->jdevice.which); event->jdevice.which);
break; break;
case SDL_JOYDEVICEREMOVED: case SDL_JOYDEVICEREMOVED:
SDL_Log("SDL EVENT: Joystick %d removed", SDL_Log("SDL EVENT: Joystick %" SDL_PRIs32 " removed",
event->jdevice.which); event->jdevice.which);
break; break;
case SDL_JOYBALLMOTION: case SDL_JOYBALLMOTION:
SDL_Log("SDL EVENT: Joystick %d: ball %d moved by %d,%d", SDL_Log("SDL EVENT: Joystick %" SDL_PRIs32 ": ball %d moved by %d,%d",
event->jball.which, event->jball.ball, event->jball.xrel, event->jball.which, event->jball.ball, event->jball.xrel,
event->jball.yrel); event->jball.yrel);
break; break;
@ -1419,40 +1417,40 @@ SDLTest_PrintEvent(SDL_Event * event)
position = "LEFTUP"; position = "LEFTUP";
break; break;
} }
SDL_Log("SDL EVENT: Joystick %d: hat %d moved to %s", event->jhat.which, SDL_Log("SDL EVENT: Joystick %" SDL_PRIs32 ": hat %d moved to %s",
event->jhat.hat, position); event->jhat.which, event->jhat.hat, position);
} }
break; break;
case SDL_JOYBUTTONDOWN: case SDL_JOYBUTTONDOWN:
SDL_Log("SDL EVENT: Joystick %d: button %d pressed", SDL_Log("SDL EVENT: Joystick %" SDL_PRIs32 ": button %d pressed",
event->jbutton.which, event->jbutton.button); event->jbutton.which, event->jbutton.button);
break; break;
case SDL_JOYBUTTONUP: case SDL_JOYBUTTONUP:
SDL_Log("SDL EVENT: Joystick %d: button %d released", SDL_Log("SDL EVENT: Joystick %" SDL_PRIs32 ": button %d released",
event->jbutton.which, event->jbutton.button); event->jbutton.which, event->jbutton.button);
break; break;
case SDL_CONTROLLERDEVICEADDED: case SDL_CONTROLLERDEVICEADDED:
SDL_Log("SDL EVENT: Controller index %d attached", SDL_Log("SDL EVENT: Controller index %" SDL_PRIs32 " attached",
event->cdevice.which); event->cdevice.which);
break; break;
case SDL_CONTROLLERDEVICEREMOVED: case SDL_CONTROLLERDEVICEREMOVED:
SDL_Log("SDL EVENT: Controller %d removed", SDL_Log("SDL EVENT: Controller %" SDL_PRIs32 " removed",
event->cdevice.which); event->cdevice.which);
break; break;
case SDL_CONTROLLERAXISMOTION: case SDL_CONTROLLERAXISMOTION:
SDL_Log("SDL EVENT: Controller %d axis %d ('%s') value: %d", SDL_Log("SDL EVENT: Controller %" SDL_PRIs32 " axis %d ('%s') value: %d",
event->caxis.which, event->caxis.which,
event->caxis.axis, event->caxis.axis,
ControllerAxisName((SDL_GameControllerAxis)event->caxis.axis), ControllerAxisName((SDL_GameControllerAxis)event->caxis.axis),
event->caxis.value); event->caxis.value);
break; break;
case SDL_CONTROLLERBUTTONDOWN: case SDL_CONTROLLERBUTTONDOWN:
SDL_Log("SDL EVENT: Controller %d button %d ('%s') down", SDL_Log("SDL EVENT: Controller %" SDL_PRIs32 "button %d ('%s') down",
event->cbutton.which, event->cbutton.button, event->cbutton.which, event->cbutton.button,
ControllerButtonName((SDL_GameControllerButton)event->cbutton.button)); ControllerButtonName((SDL_GameControllerButton)event->cbutton.button));
break; break;
case SDL_CONTROLLERBUTTONUP: case SDL_CONTROLLERBUTTONUP:
SDL_Log("SDL EVENT: Controller %d button %d ('%s') up", SDL_Log("SDL EVENT: Controller %" SDL_PRIs32 " button %d ('%s') up",
event->cbutton.which, event->cbutton.button, event->cbutton.which, event->cbutton.button,
ControllerButtonName((SDL_GameControllerButton)event->cbutton.button)); ControllerButtonName((SDL_GameControllerButton)event->cbutton.button));
break; break;
@ -1527,10 +1525,10 @@ SDLTest_PrintEvent(SDL_Event * event)
SDL_Log("SDL EVENT: Quit requested"); SDL_Log("SDL EVENT: Quit requested");
break; break;
case SDL_USEREVENT: case SDL_USEREVENT:
SDL_Log("SDL EVENT: User event %d", event->user.code); SDL_Log("SDL EVENT: User event %" SDL_PRIs32, event->user.code);
break; break;
default: default:
SDL_Log("Unknown event 0x%4.4x", event->type); SDL_Log("Unknown event 0x%4.4" SDL_PRIu32, event->type);
break; break;
} }
} }
@ -1911,7 +1909,8 @@ SDLTest_CommonEvent(SDLTest_CommonState * state, SDL_Event * event, int *done)
char message[256]; char message[256];
SDL_Window *window = SDL_GetWindowFromID(event->key.windowID); SDL_Window *window = SDL_GetWindowFromID(event->key.windowID);
SDL_snprintf(message, sizeof(message), "(%i, %i), rel (%i, %i)\n", lastEvent.x, lastEvent.y, lastEvent.xrel, lastEvent.yrel); SDL_snprintf(message, sizeof(message), "(%" SDL_PRIs32 ", %" SDL_PRIs32 "), rel (%" SDL_PRIs32 ", %" SDL_PRIs32 ")\n",
lastEvent.x, lastEvent.y, lastEvent.xrel, lastEvent.yrel);
SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_INFORMATION, "Last mouse position", message, window); SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_INFORMATION, "Last mouse position", message, window);
break; break;
} }

View File

@ -306,7 +306,7 @@ SDL_LoadBMP_RW(SDL_RWops * src, int freesrc)
} }
} }
if (biWidth <= 0 || biHeight == 0) { if (biWidth <= 0 || biHeight == 0) {
SDL_SetError("BMP file with bad dimensions (%dx%d)", biWidth, biHeight); SDL_SetError("BMP file with bad dimensions (%" SDL_PRIs32 "x%" SDL_PRIs32 ")", biWidth, biHeight);
was_error = SDL_TRUE; was_error = SDL_TRUE;
goto done; goto done;
} }

View File

@ -69,7 +69,7 @@ int SDL_DUMMY_UpdateWindowFramebuffer(_THIS, SDL_Window * window, const SDL_Rect
/* Send the data to the display */ /* Send the data to the display */
if (SDL_getenv("SDL_VIDEO_DUMMY_SAVE_FRAMES")) { if (SDL_getenv("SDL_VIDEO_DUMMY_SAVE_FRAMES")) {
char file[128]; char file[128];
SDL_snprintf(file, sizeof(file), "SDL_window%d-%8.8d.bmp", SDL_snprintf(file, sizeof(file), "SDL_window%" SDL_PRIu32 "-%8.8d.bmp",
SDL_GetWindowID(window), ++frame_number); SDL_GetWindowID(window), ++frame_number);
SDL_SaveBMP(surface, file); SDL_SaveBMP(surface, file);
} }