mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-09-30 06:58:30 +00:00
Use SDL_bool instead an int return code in the SDL API
Most SDL functions used to indicate success or failure using an int return code. These functions have been changed to return SDL_bool. Here is a coccinelle patch to change code that previously compared the return value to 0 and changes it to a boolean test: @ bool_return_type @ identifier func =~ "^(SDL_AddEventWatch|SDL_AddHintCallback|SDL_AddSurfaceAlternateImage|SDL_AddVulkanRenderSemaphores|SDL_BindAudioStream|SDL_BindAudioStreams|SDL_BlitSurface|SDL_BlitSurface9Grid|SDL_BlitSurfaceScaled|SDL_BlitSurfaceTiled|SDL_BlitSurfaceTiledWithScale|SDL_BlitSurfaceUnchecked|SDL_BlitSurfaceUncheckedScaled|SDL_CaptureMouse|SDL_ClearAudioStream|SDL_ClearClipboardData|SDL_ClearComposition|SDL_ClearError|SDL_ClearProperty|SDL_ClearSurface|SDL_CloseIO|SDL_CloseStorage|SDL_ConvertAudioSamples|SDL_ConvertEventToRenderCoordinates|SDL_ConvertPixels|SDL_ConvertPixelsAndColorspace|SDL_CopyFile|SDL_CopyProperties|SDL_CopyStorageFile|SDL_CreateDirectory|SDL_CreateStorageDirectory|SDL_CreateWindowAndRenderer|SDL_DateTimeToTime|SDL_DestroyWindowSurface|SDL_DetachVirtualJoystick|SDL_DisableScreenSaver|SDL_EnableScreenSaver|SDL_EnumerateDirectory|SDL_EnumerateProperties|SDL_EnumerateStorageDirectory|SDL_FillSurfaceRect|SDL_FillSurfaceRects|SDL_FlashWindow|SDL_FlipSurface|SDL_FlushAudioStream|SDL_FlushRenderer|SDL_GL_DestroyContext|SDL_GL_GetAttribute|SDL_GL_GetSwapInterval|SDL_GL_LoadLibrary|SDL_GL_MakeCurrent|SDL_GL_SetAttribute|SDL_GL_SetSwapInterval|SDL_GL_SwapWindow|SDL_GetAudioDeviceFormat|SDL_GetAudioStreamFormat|SDL_GetCameraFormat|SDL_GetClosestFullscreenDisplayMode|SDL_GetCurrentRenderOutputSize|SDL_GetCurrentTime|SDL_GetDXGIOutputInfo|SDL_GetDateTimeLocalePreferences|SDL_GetDisplayBounds|SDL_GetDisplayUsableBounds|SDL_GetGDKDefaultUser|SDL_GetGDKTaskQueue|SDL_GetGamepadSensorData|SDL_GetGamepadTouchpadFinger|SDL_GetHapticEffectStatus|SDL_GetJoystickBall|SDL_GetMasksForPixelFormat|SDL_GetPathInfo|SDL_GetRectUnion|SDL_GetRectUnionFloat|SDL_GetRenderClipRect|SDL_GetRenderColorScale|SDL_GetRenderDrawBlendMode|SDL_GetRenderDrawColor|SDL_GetRenderDrawColorFloat|SDL_GetRenderLogicalPresentation|SDL_GetRenderLogicalPresentationRect|SDL_GetRenderOutputSize|SDL_GetRenderSafeArea|SDL_GetRenderScale|SDL_GetRenderVSync|SDL_GetRenderViewport|SDL_GetSensorData|SDL_GetStorageFileSize|SDL_GetStoragePathInfo|SDL_GetSurfaceAlphaMod|SDL_GetSurfaceBlendMode|SDL_GetSurfaceClipRect|SDL_GetSurfaceColorKey|SDL_GetSurfaceColorMod|SDL_GetTextInputArea|SDL_GetTextureAlphaMod|SDL_GetTextureAlphaModFloat|SDL_GetTextureBlendMode|SDL_GetTextureColorMod|SDL_GetTextureColorModFloat|SDL_GetTextureScaleMode|SDL_GetTextureSize|SDL_GetWindowAspectRatio|SDL_GetWindowBordersSize|SDL_GetWindowMaximumSize|SDL_GetWindowMinimumSize|SDL_GetWindowPosition|SDL_GetWindowRelativeMouseMode|SDL_GetWindowSafeArea|SDL_GetWindowSize|SDL_GetWindowSizeInPixels|SDL_GetWindowSurfaceVSync|SDL_HideCursor|SDL_HideWindow|SDL_Init|SDL_InitHapticRumble|SDL_InitSubSystem|SDL_LoadWAV|SDL_LoadWAV_IO|SDL_LockAudioStream|SDL_LockProperties|SDL_LockSurface|SDL_LockTexture|SDL_LockTextureToSurface|SDL_MaximizeWindow|SDL_MinimizeWindow|SDL_MixAudio|SDL_OpenURL|SDL_OutOfMemory|SDL_PauseAudioDevice|SDL_PauseAudioStreamDevice|SDL_PauseHaptic|SDL_PlayHapticRumble|SDL_PremultiplyAlpha|SDL_PremultiplySurfaceAlpha|SDL_PushEvent|SDL_PutAudioStreamData|SDL_RaiseWindow|SDL_ReadStorageFile|SDL_ReadSurfacePixel|SDL_ReadSurfacePixelFloat|SDL_RegisterApp|SDL_ReloadGamepadMappings|SDL_RemovePath|SDL_RemoveStoragePath|SDL_RemoveTimer|SDL_RenamePath|SDL_RenameStoragePath|SDL_RenderClear|SDL_RenderCoordinatesFromWindow|SDL_RenderCoordinatesToWindow|SDL_RenderFillRect|SDL_RenderFillRects|SDL_RenderGeometry|SDL_RenderGeometryRaw|SDL_RenderLine|SDL_RenderLines|SDL_RenderPoint|SDL_RenderPoints|SDL_RenderPresent|SDL_RenderRect|SDL_RenderRects|SDL_RenderTexture|SDL_RenderTexture9Grid|SDL_RenderTextureRotated|SDL_RenderTextureTiled|SDL_RequestAndroidPermission|SDL_RestoreWindow|SDL_ResumeAudioDevice|SDL_ResumeAudioStreamDevice|SDL_ResumeHaptic|SDL_RumbleGamepad|SDL_RumbleGamepadTriggers|SDL_RumbleJoystick|SDL_RumbleJoystickTriggers|SDL_RunHapticEffect|SDL_SaveBMP|SDL_SaveBMP_IO|SDL_SendAndroidMessage|SDL_SendGamepadEffect|SDL_SendJoystickEffect|SDL_SendJoystickVirtualSensorData|SDL_SetAppMetadata|SDL_SetAppMetadataProperty|SDL_SetAudioDeviceGain|SDL_SetAudioPostmixCallback|SDL_SetAudioStreamFormat|SDL_SetAudioStreamFrequencyRatio|SDL_SetAudioStreamGain|SDL_SetAudioStreamGetCallback|SDL_SetAudioStreamInputChannelMap|SDL_SetAudioStreamOutputChannelMap|SDL_SetAudioStreamPutCallback|SDL_SetBooleanProperty|SDL_SetClipboardData|SDL_SetClipboardText|SDL_SetCursor|SDL_SetFloatProperty|SDL_SetGamepadLED|SDL_SetGamepadMapping|SDL_SetGamepadPlayerIndex|SDL_SetGamepadSensorEnabled|SDL_SetHapticAutocenter|SDL_SetHapticGain|SDL_SetJoystickLED|SDL_SetJoystickPlayerIndex|SDL_SetJoystickVirtualAxis|SDL_SetJoystickVirtualBall|SDL_SetJoystickVirtualButton|SDL_SetJoystickVirtualHat|SDL_SetJoystickVirtualTouchpad|SDL_SetLinuxThreadPriority|SDL_SetLinuxThreadPriorityAndPolicy|SDL_SetLogPriorityPrefix|SDL_SetMemoryFunctions|SDL_SetNumberProperty|SDL_SetPaletteColors|SDL_SetPointerProperty|SDL_SetPointerPropertyWithCleanup|SDL_SetPrimarySelectionText|SDL_SetRenderClipRect|SDL_SetRenderColorScale|SDL_SetRenderDrawBlendMode|SDL_SetRenderDrawColor|SDL_SetRenderDrawColorFloat|SDL_SetRenderLogicalPresentation|SDL_SetRenderScale|SDL_SetRenderTarget|SDL_SetRenderVSync|SDL_SetRenderViewport|SDL_SetScancodeName|SDL_SetStringProperty|SDL_SetSurfaceAlphaMod|SDL_SetSurfaceBlendMode|SDL_SetSurfaceColorKey|SDL_SetSurfaceColorMod|SDL_SetSurfaceColorspace|SDL_SetSurfacePalette|SDL_SetSurfaceRLE|SDL_SetTLS|SDL_SetTextInputArea|SDL_SetTextureAlphaMod|SDL_SetTextureAlphaModFloat|SDL_SetTextureBlendMode|SDL_SetTextureColorMod|SDL_SetTextureColorModFloat|SDL_SetTextureScaleMode|SDL_SetThreadPriority|SDL_SetWindowAlwaysOnTop|SDL_SetWindowAspectRatio|SDL_SetWindowBordered|SDL_SetWindowFocusable|SDL_SetWindowFullscreen|SDL_SetWindowFullscreenMode|SDL_SetWindowHitTest|SDL_SetWindowIcon|SDL_SetWindowKeyboardGrab|SDL_SetWindowMaximumSize|SDL_SetWindowMinimumSize|SDL_SetWindowModalFor|SDL_SetWindowMouseGrab|SDL_SetWindowMouseRect|SDL_SetWindowOpacity|SDL_SetWindowPosition|SDL_SetWindowRelativeMouseMode|SDL_SetWindowResizable|SDL_SetWindowShape|SDL_SetWindowSize|SDL_SetWindowSurfaceVSync|SDL_SetWindowTitle|SDL_SetiOSAnimationCallback|SDL_ShowAndroidToast|SDL_ShowCursor|SDL_ShowMessageBox|SDL_ShowSimpleMessageBox|SDL_ShowWindow|SDL_ShowWindowSystemMenu|SDL_StartTextInput|SDL_StartTextInputWithProperties|SDL_StopHapticEffect|SDL_StopHapticEffects|SDL_StopHapticRumble|SDL_StopTextInput|SDL_SyncWindow|SDL_TimeToDateTime|SDL_TryLockMutex|SDL_TryLockRWLockForReading|SDL_TryLockRWLockForWriting|SDL_TryWaitSemaphore|SDL_UnlockAudioStream|SDL_UpdateHapticEffect|SDL_UpdateNVTexture|SDL_UpdateTexture|SDL_UpdateWindowSurface|SDL_UpdateWindowSurfaceRects|SDL_UpdateYUVTexture|SDL_Vulkan_CreateSurface|SDL_Vulkan_LoadLibrary|SDL_WaitConditionTimeout|SDL_WaitSemaphoreTimeout|SDL_WarpMouseGlobal|SDL_WriteStorageFile|SDL_WriteSurfacePixel|SDL_WriteSurfacePixelFloat)$"; @@ ( func( ... ) - == 0 | - func( + !func( ... ) - < 0 | - func( + !func( ... ) - != 0 | - func( + !func( ... ) - == -1 )
This commit is contained in:
@@ -44,30 +44,30 @@
|
||||
|
||||
static char *readSymLink(const char *path)
|
||||
{
|
||||
char *retval = NULL;
|
||||
char *result = NULL;
|
||||
ssize_t len = 64;
|
||||
ssize_t rc = -1;
|
||||
|
||||
while (1) {
|
||||
char *ptr = (char *)SDL_realloc(retval, (size_t)len);
|
||||
char *ptr = (char *)SDL_realloc(result, (size_t)len);
|
||||
if (!ptr) {
|
||||
break;
|
||||
}
|
||||
|
||||
retval = ptr;
|
||||
result = ptr;
|
||||
|
||||
rc = readlink(path, retval, len);
|
||||
rc = readlink(path, result, len);
|
||||
if (rc == -1) {
|
||||
break; // not a symlink, i/o error, etc.
|
||||
} else if (rc < len) {
|
||||
retval[rc] = '\0'; // readlink doesn't null-terminate.
|
||||
return retval; // we're good to go.
|
||||
result[rc] = '\0'; // readlink doesn't null-terminate.
|
||||
return result; // we're good to go.
|
||||
}
|
||||
|
||||
len *= 2; // grow buffer, try again.
|
||||
}
|
||||
|
||||
SDL_free(retval);
|
||||
SDL_free(result);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -124,15 +124,15 @@ static char *search_path_for_binary(const char *bin)
|
||||
|
||||
char *SDL_SYS_GetBasePath(void)
|
||||
{
|
||||
char *retval = NULL;
|
||||
char *result = NULL;
|
||||
|
||||
#ifdef SDL_PLATFORM_FREEBSD
|
||||
char fullpath[PATH_MAX];
|
||||
size_t buflen = sizeof(fullpath);
|
||||
const int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1 };
|
||||
if (sysctl(mib, SDL_arraysize(mib), fullpath, &buflen, NULL, 0) != -1) {
|
||||
retval = SDL_strdup(fullpath);
|
||||
if (!retval) {
|
||||
result = SDL_strdup(fullpath);
|
||||
if (!result) {
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
@@ -173,11 +173,11 @@ char *SDL_SYS_GetBasePath(void)
|
||||
if (exe) {
|
||||
if (!pwddst) {
|
||||
if (realpath(exe, realpathbuf) != NULL) {
|
||||
retval = realpathbuf;
|
||||
result = realpathbuf;
|
||||
}
|
||||
} else {
|
||||
if (realpath(pwddst, realpathbuf) != NULL) {
|
||||
retval = realpathbuf;
|
||||
result = realpathbuf;
|
||||
}
|
||||
SDL_free(pwddst);
|
||||
}
|
||||
@@ -187,7 +187,7 @@ char *SDL_SYS_GetBasePath(void)
|
||||
}
|
||||
}
|
||||
|
||||
if (!retval) {
|
||||
if (!result) {
|
||||
SDL_free(realpathbuf);
|
||||
}
|
||||
|
||||
@@ -196,37 +196,37 @@ char *SDL_SYS_GetBasePath(void)
|
||||
#endif
|
||||
|
||||
// is a Linux-style /proc filesystem available?
|
||||
if (!retval && (access("/proc", F_OK) == 0)) {
|
||||
if (!result && (access("/proc", F_OK) == 0)) {
|
||||
/* !!! FIXME: after 2.0.6 ships, let's delete this code and just
|
||||
use the /proc/%llu version. There's no reason to have
|
||||
two copies of this plus all the #ifdefs. --ryan. */
|
||||
#ifdef SDL_PLATFORM_FREEBSD
|
||||
retval = readSymLink("/proc/curproc/file");
|
||||
result = readSymLink("/proc/curproc/file");
|
||||
#elif defined(SDL_PLATFORM_NETBSD)
|
||||
retval = readSymLink("/proc/curproc/exe");
|
||||
result = readSymLink("/proc/curproc/exe");
|
||||
#elif defined(SDL_PLATFORM_SOLARIS)
|
||||
retval = readSymLink("/proc/self/path/a.out");
|
||||
result = readSymLink("/proc/self/path/a.out");
|
||||
#else
|
||||
retval = readSymLink("/proc/self/exe"); // linux.
|
||||
if (!retval) {
|
||||
result = readSymLink("/proc/self/exe"); // linux.
|
||||
if (!result) {
|
||||
// older kernels don't have /proc/self ... try PID version...
|
||||
char path[64];
|
||||
const int rc = SDL_snprintf(path, sizeof(path),
|
||||
"/proc/%llu/exe",
|
||||
(unsigned long long)getpid());
|
||||
if ((rc > 0) && (rc < sizeof(path))) {
|
||||
retval = readSymLink(path);
|
||||
result = readSymLink(path);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef SDL_PLATFORM_SOLARIS // try this as a fallback if /proc didn't pan out
|
||||
if (!retval) {
|
||||
if (!result) {
|
||||
const char *path = getexecname();
|
||||
if ((path) && (path[0] == '/')) { // must be absolute path...
|
||||
retval = SDL_strdup(path);
|
||||
if (!retval) {
|
||||
result = SDL_strdup(path);
|
||||
if (!result) {
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
@@ -235,25 +235,25 @@ char *SDL_SYS_GetBasePath(void)
|
||||
/* If we had access to argv[0] here, we could check it for a path,
|
||||
or troll through $PATH looking for it, too. */
|
||||
|
||||
if (retval) { // chop off filename.
|
||||
char *ptr = SDL_strrchr(retval, '/');
|
||||
if (result) { // chop off filename.
|
||||
char *ptr = SDL_strrchr(result, '/');
|
||||
if (ptr) {
|
||||
*(ptr + 1) = '\0';
|
||||
} else { // shouldn't happen, but just in case...
|
||||
SDL_free(retval);
|
||||
retval = NULL;
|
||||
SDL_free(result);
|
||||
result = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (retval) {
|
||||
if (result) {
|
||||
// try to shrink buffer...
|
||||
char *ptr = (char *)SDL_realloc(retval, SDL_strlen(retval) + 1);
|
||||
char *ptr = (char *)SDL_realloc(result, SDL_strlen(result) + 1);
|
||||
if (ptr) {
|
||||
retval = ptr; // oh well if it failed.
|
||||
result = ptr; // oh well if it failed.
|
||||
}
|
||||
}
|
||||
|
||||
return retval;
|
||||
return result;
|
||||
}
|
||||
|
||||
char *SDL_SYS_GetPrefPath(const char *org, const char *app)
|
||||
@@ -267,7 +267,7 @@ char *SDL_SYS_GetPrefPath(const char *org, const char *app)
|
||||
*/
|
||||
const char *envr = SDL_getenv("XDG_DATA_HOME");
|
||||
const char *append;
|
||||
char *retval = NULL;
|
||||
char *result = NULL;
|
||||
char *ptr = NULL;
|
||||
size_t len = 0;
|
||||
|
||||
@@ -298,34 +298,34 @@ char *SDL_SYS_GetPrefPath(const char *org, const char *app)
|
||||
}
|
||||
|
||||
len += SDL_strlen(append) + SDL_strlen(org) + SDL_strlen(app) + 3;
|
||||
retval = (char *)SDL_malloc(len);
|
||||
if (!retval) {
|
||||
result = (char *)SDL_malloc(len);
|
||||
if (!result) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (*org) {
|
||||
(void)SDL_snprintf(retval, len, "%s%s%s/%s/", envr, append, org, app);
|
||||
(void)SDL_snprintf(result, len, "%s%s%s/%s/", envr, append, org, app);
|
||||
} else {
|
||||
(void)SDL_snprintf(retval, len, "%s%s%s/", envr, append, app);
|
||||
(void)SDL_snprintf(result, len, "%s%s%s/", envr, append, app);
|
||||
}
|
||||
|
||||
for (ptr = retval + 1; *ptr; ptr++) {
|
||||
for (ptr = result + 1; *ptr; ptr++) {
|
||||
if (*ptr == '/') {
|
||||
*ptr = '\0';
|
||||
if (mkdir(retval, 0700) != 0 && errno != EEXIST) {
|
||||
if (mkdir(result, 0700) != 0 && errno != EEXIST) {
|
||||
goto error;
|
||||
}
|
||||
*ptr = '/';
|
||||
}
|
||||
}
|
||||
if (mkdir(retval, 0700) != 0 && errno != EEXIST) {
|
||||
if (mkdir(result, 0700) != 0 && errno != EEXIST) {
|
||||
error:
|
||||
SDL_SetError("Couldn't create directory '%s': '%s'", retval, strerror(errno));
|
||||
SDL_free(retval);
|
||||
SDL_SetError("Couldn't create directory '%s': '%s'", result, strerror(errno));
|
||||
SDL_free(result);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return retval;
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -518,8 +518,8 @@ static char *xdg_user_dir_lookup (const char *type)
|
||||
char *SDL_SYS_GetUserFolder(SDL_Folder folder)
|
||||
{
|
||||
const char *param = NULL;
|
||||
char *retval;
|
||||
char *newretval;
|
||||
char *result;
|
||||
char *newresult;
|
||||
|
||||
/* According to `man xdg-user-dir`, the possible values are:
|
||||
DESKTOP
|
||||
@@ -540,7 +540,7 @@ char *SDL_SYS_GetUserFolder(SDL_Folder folder)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
retval = SDL_strdup(param);
|
||||
result = SDL_strdup(param);
|
||||
goto append_slash;
|
||||
|
||||
case SDL_FOLDER_DESKTOP:
|
||||
@@ -594,25 +594,25 @@ char *SDL_SYS_GetUserFolder(SDL_Folder folder)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
retval = xdg_user_dir_lookup(param);
|
||||
result = xdg_user_dir_lookup(param);
|
||||
|
||||
if (!retval) {
|
||||
if (!result) {
|
||||
SDL_SetError("XDG directory not available");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
append_slash:
|
||||
newretval = (char *) SDL_realloc(retval, SDL_strlen(retval) + 2);
|
||||
newresult = (char *) SDL_realloc(result, SDL_strlen(result) + 2);
|
||||
|
||||
if (!newretval) {
|
||||
SDL_free(retval);
|
||||
if (!newresult) {
|
||||
SDL_free(result);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
retval = newretval;
|
||||
SDL_strlcat(retval, "/", SDL_strlen(retval) + 2);
|
||||
result = newresult;
|
||||
SDL_strlcat(result, "/", SDL_strlen(result) + 2);
|
||||
|
||||
return retval;
|
||||
return result;
|
||||
}
|
||||
|
||||
#endif // SDL_FILESYSTEM_UNIX
|
||||
|
Reference in New Issue
Block a user