Browse Source

Removed log message length limitation for Apple platforms

This works in conjunction with https://github.com/libsdl-org/SDL/pull/5584
Sam Lantinga 3 years ago
parent
commit
7e636b03cc
3 changed files with 19 additions and 16 deletions
  1. 3 10
      src/SDL_log.c
  2. 8 3
      src/video/cocoa/SDL_cocoavideo.m
  3. 8 3
      src/video/uikit/SDL_uikitvideo.m

+ 3 - 10
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__)
     {

+ 8 - 3
src/video/cocoa/SDL_cocoavideo.m

@@ -270,11 +270,16 @@ Cocoa_CreateImage(SDL_Surface * surface)
  *  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);
+        }
     }
 }
 

+ 8 - 3
src/video/uikit/SDL_uikitvideo.m

@@ -278,11 +278,16 @@ UIKit_ForceUpdateHomeIndicator()
  */
 
 #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 */