comparison src/sys/osx/filesystem.cc @ 196:f0ff06a45c42

date: use std::optional for values
author Paper <mrpapersonic@gmail.com>
date Thu, 07 Dec 2023 16:28:11 -0500
parents 975a3f0965e2
children c4ca035c565d
comparison
equal deleted inserted replaced
195:975a3f0965e2 196:f0ff06a45c42
16 } 16 }
17 17
18 namespace osx { 18 namespace osx {
19 19
20 bool GetApplicationSupportDirectory(std::string& result) { 20 bool GetApplicationSupportDirectory(std::string& result) {
21 const CFArrayRef strings = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, true); 21 // NSArray* strings = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, ON);
22 const CFArrayRef strings = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, ON);
22 if (!strings) 23 if (!strings)
23 return false; 24 return false;
24 25
26 // NSIndex index = [strings count];
25 const CFIndex count = CFArrayGetCount(strings); 27 const CFIndex count = CFArrayGetCount(strings);
26 if (count < 1) { 28 if (count < 1) {
27 CFRelease(strings); 29 CFRelease(strings);
28 return false; 30 return false;
29 } 31 }
30 32
33 // NSString* string = [strings objectAtIndex: 0];
31 const CFStringRef string = reinterpret_cast<CFStringRef>(CFArrayGetValueAtIndex(strings, 0)); 34 const CFStringRef string = reinterpret_cast<CFStringRef>(CFArrayGetValueAtIndex(strings, 0));
32 if (!string) { 35 if (!string) {
33 CFRelease(strings); 36 CFRelease(strings);
34 return false; 37 return false;
35 } 38 }
36 39
40 // result = [string UTF8String];
37 result.resize(CFStringGetMaximumSizeForEncoding(CFStringGetLength(string), kCFStringEncodingUTF8) + 1); 41 result.resize(CFStringGetMaximumSizeForEncoding(CFStringGetLength(string), kCFStringEncodingUTF8) + 1);
38 if (!CFStringGetCString(string, &result.front(), result.length(), kCFStringEncodingUTF8)) { 42 if (!CFStringGetCString(string, &result.front(), result.length(), kCFStringEncodingUTF8)) {
39 CFRelease(strings); 43 CFRelease(strings);
40 return false; 44 return false;
41 } 45 }