SDL: Removed log message length limitation for Apple platforms

From 7e636b03cc68be354696279be627a89533f3ad1d Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Fri, 29 Apr 2022 10:16:14 -0700
Subject: [PATCH] Removed log message length limitation for Apple platforms

This works in conjunction with https://github.com/libsdl-org/SDL/pull/5584
---
 src/SDL_log.c                    | 13 +++----------
 src/video/cocoa/SDL_cocoavideo.m | 11 ++++++++---
 src/video/uikit/SDL_uikitvideo.m | 11 ++++++++---
 3 files changed, 19 insertions(+), 16 deletions(-)

diff --git a/src/SDL_log.c b/src/SDL_log.c
index 02ac4e40385..d3896e21871 100644
--- a/src/SDL_log.c
+++ b/src/SDL_log.c
@@ -430,17 +430,10 @@ SDL_LogOutput(void *userdata, int category, SDL_LogPriority priority,
 #elif defined(__APPLE__) && (defined(SDL_VIDEO_DRIVER_COCOA) || defined(SDL_VIDEO_DRIVER_UIKIT))
     /* Technically we don't need Cocoa/UIKit, but that's where this function is defined for now.
     */
-    extern void SDL_NSLog(const char *text);
+    extern void SDL_NSLog(const char *prefix, const char *text);
     {
-        char *text;
-        /* !!! FIXME: why not just "char text[SDL_MAX_LOG_MESSAGE];" ? */
-        text = SDL_stack_alloc(char, SDL_MAX_LOG_MESSAGE);
-        if (text) {
-            SDL_snprintf(text, SDL_MAX_LOG_MESSAGE, "%s: %s", SDL_priority_prefixes[priority], message);
-            SDL_NSLog(text);
-            SDL_stack_free(text);
-            return;
-        }
+        SDL_NSLog(SDL_priority_prefixes[priority], message);
+        return;
     }
 #elif defined(__PSP__)
     {
diff --git a/src/video/cocoa/SDL_cocoavideo.m b/src/video/cocoa/SDL_cocoavideo.m
index 74d85382936..c5e5d640928 100644
--- a/src/video/cocoa/SDL_cocoavideo.m
+++ b/src/video/cocoa/SDL_cocoavideo.m
@@ -270,11 +270,16 @@
  *  versions remain identical!
  */
 
-void SDL_NSLog(const char *text)
+void SDL_NSLog(const char *prefix, const char *text)
 {
     @autoreleasepool {
-        NSString *str = [NSString stringWithUTF8String:text];
-        NSLog(@"%@", str);
+        NSString *nsText = [NSString stringWithUTF8String:text];
+        if (prefix) {
+            NSString *nsPrefix = [NSString stringWithUTF8String:prefix];
+            NSLog(@"%@: %@", nsPrefix, nsText);
+        } else {
+            NSLog(@"%@", nsText);
+        }
     }
 }
 
diff --git a/src/video/uikit/SDL_uikitvideo.m b/src/video/uikit/SDL_uikitvideo.m
index 5d2b96e38e2..81d7bf647a7 100644
--- a/src/video/uikit/SDL_uikitvideo.m
+++ b/src/video/uikit/SDL_uikitvideo.m
@@ -278,11 +278,16 @@ static void UIKit_DeleteDevice(SDL_VideoDevice * device)
  */
 
 #if !defined(SDL_VIDEO_DRIVER_COCOA)
-void SDL_NSLog(const char *text)
+void SDL_NSLog(const char *prefix, const char *text)
 {
     @autoreleasepool {
-        NSString *str = [NSString stringWithUTF8String:text];
-        NSLog(@"%@", str);
+        NSString *nsText = [NSString stringWithUTF8String:text];
+        if (prefix) {
+            NSString *nsPrefix = [NSString stringWithUTF8String:prefix];
+            NSLog(@"%@: %@", nsPrefix, nsText);
+        } else {
+            NSLog(@"%@", nsText);
+        }
     }
 }
 #endif /* SDL_VIDEO_DRIVER_COCOA */