[macOS] Add null checks for `NSString stringWithUTF8String`.
This commit is contained in:
parent
f15ced3f18
commit
d2e0544e0a
|
@ -41,9 +41,10 @@
|
||||||
|
|
||||||
String DirAccessMacOS::fix_unicode_name(const char *p_name) const {
|
String DirAccessMacOS::fix_unicode_name(const char *p_name) const {
|
||||||
String fname;
|
String fname;
|
||||||
NSString *nsstr = [[NSString stringWithUTF8String:p_name] precomposedStringWithCanonicalMapping];
|
if (p_name != nullptr) {
|
||||||
|
NSString *nsstr = [[NSString stringWithUTF8String:p_name] precomposedStringWithCanonicalMapping];
|
||||||
fname.parse_utf8([nsstr UTF8String]);
|
fname.parse_utf8([nsstr UTF8String]);
|
||||||
|
}
|
||||||
|
|
||||||
return fname;
|
return fname;
|
||||||
}
|
}
|
||||||
|
|
|
@ -125,7 +125,8 @@
|
||||||
|
|
||||||
- (void)applicationDidFinishLaunching:(NSNotification *)notice {
|
- (void)applicationDidFinishLaunching:(NSNotification *)notice {
|
||||||
NSString *nsappname = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"];
|
NSString *nsappname = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"];
|
||||||
NSString *nsbundleid_env = [NSString stringWithUTF8String:getenv("__CFBundleIdentifier")];
|
const char *bundled_id = getenv("__CFBundleIdentifier");
|
||||||
|
NSString *nsbundleid_env = [NSString stringWithUTF8String:(bundled_id != nullptr) ? bundled_id : ""];
|
||||||
NSString *nsbundleid = [[NSBundle mainBundle] bundleIdentifier];
|
NSString *nsbundleid = [[NSBundle mainBundle] bundleIdentifier];
|
||||||
if (nsappname == nil || isatty(STDOUT_FILENO) || isatty(STDIN_FILENO) || isatty(STDERR_FILENO) || ![nsbundleid isEqualToString:nsbundleid_env]) {
|
if (nsappname == nil || isatty(STDOUT_FILENO) || isatty(STDIN_FILENO) || isatty(STDERR_FILENO) || ![nsbundleid isEqualToString:nsbundleid_env]) {
|
||||||
// If the executable is started from terminal or is not bundled, macOS WindowServer won't register and activate app window correctly (menu and title bar are grayed out and input ignored).
|
// If the executable is started from terminal or is not bundled, macOS WindowServer won't register and activate app window correctly (menu and title bar are grayed out and input ignored).
|
||||||
|
|
Loading…
Reference in New Issue