]> git.lizzy.rs Git - irrlicht.git/commitdiff
Merging r6194 from trunk to ogl-es branch.
authorcutealien <cutealien@dfc29bdd-3216-0410-991c-e03cc46cb475>
Sun, 21 Feb 2021 19:09:14 +0000 (19:09 +0000)
committercutealien <cutealien@dfc29bdd-3216-0410-991c-e03cc46cb475>
Sun, 21 Feb 2021 19:09:14 +0000 (19:09 +0000)
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/branches/ogl-es@6195 dfc29bdd-3216-0410-991c-e03cc46cb475

source/Irrlicht/CIrrDeviceOSX.mm

index c709adb57a899aa3449183a682b885611567d485..0be15bb384fbcb3bc6823ca276415e7de6a43091 100644 (file)
@@ -1067,20 +1067,28 @@ void CIrrDeviceMacOSX::sleep(u32 timeMs, bool pauseTimer=false)
 
 void CIrrDeviceMacOSX::setWindowCaption(const wchar_t* text)
 {
-       size_t size;
-       char title[1024];
-
        if (Window != NULL)
        {
-               size = wcstombs(title,text,1024);
-               title[1023] = 0;
-#ifdef __MAC_10_6
-               NSString* name = [NSString stringWithCString:title encoding:NSUTF8StringEncoding];
+               if ( text )
+               {
+                       size_t numBytes = wcslen(text) * sizeof(wchar_t);
+
+#ifdef __BIG_ENDIAN__
+                       NSStringEncoding encode = sizeof(wchar_t) == 4 ? NSUTF32BigEndianStringEncoding : NSUTF16BigEndianStringEncoding;
 #else
-               NSString* name = [NSString stringWithCString:title length:size];
+                       NSStringEncoding encode = sizeof(wchar_t) == 4 ? NSUTF32LittleEndianStringEncoding : NSUTF16LittleEndianStringEncoding;
 #endif
-               [Window setTitle:name];
-               [name release];
+                       NSString* name = [[NSString alloc] initWithBytes:text length:numBytes encoding:encode];
+                       if ( name )
+                       {
+                               [Window setTitle:name];
+                               [name release];
+                       }
+               }
+               else
+               {
+                       [Window setTitle:@""];
+               }
        }
 }