From b25b7890e2c5166fa19c6ebbd43369ddc6d89547 Mon Sep 17 00:00:00 2001 From: Pierre d'Herbemont Date: Wed, 6 Jan 2010 16:02:15 +0100 Subject: [PATCH] dirs_macos: When running from command line there is no bundle identifier by default. --- src/config/dirs_macos.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/config/dirs_macos.c b/src/config/dirs_macos.c index fc91de2e1c..7c00f022b5 100644 --- a/src/config/dirs_macos.c +++ b/src/config/dirs_macos.c @@ -90,13 +90,25 @@ static char *getAppDependentDir(vlc_userdir_t type) break; } + // Default fallback + const char *name = "org.videolan.vlc"; + CFBundleRef mainBundle = CFBundleGetMainBundle(); - CFStringRef identifierAsNS = CFBundleGetIdentifier(mainBundle); - const char *identifier = CFStringGetCStringPtr(identifierAsNS, kCFStringEncodingUTF8); - + if (mainBundle) + { + CFStringRef identifierAsNS = CFBundleGetIdentifier(mainBundle); + if (identifierAsNS) + { + char identifier[256]; + Boolean ret = CFStringGetCString(identifierAsNS, identifier, sizeof(identifier), kCFStringEncodingUTF8); + if (ret) + name = identifier; + } + } + char *psz_parent = config_GetHomeDir (); char *psz_dir; - if( asprintf( &psz_dir, psz_path, psz_parent, identifier) == -1 ) + if( asprintf( &psz_dir, psz_path, psz_parent, name) == -1 ) psz_dir = NULL; free(psz_parent); -- 2.39.2