improve behavior of SDL_SetHint(WithPriority) (#5309)
diff --git a/src/SDL_hints.c b/src/SDL_hints.c
index 96869f6..423851a 100644
--- a/src/SDL_hints.c
+++ b/src/SDL_hints.c
@@ -66,7 +66,8 @@ SDL_SetHintWithPriority(const char *name, const char *value,
if (priority < hint->priority) {
return SDL_FALSE;
}
- if (((hint->value == NULL) != (value == NULL)) || (value && (SDL_strcmp(hint->value, value) != 0))) {
+ if (hint->value != value &&
+ (!value || !hint->value || SDL_strcmp(hint->value, value) != 0)) {
for (entry = hint->callbacks; entry; ) {
/* Save the next entry in case this one is deleted */
SDL_HintWatch *next = entry->next;