CFStringRef CFCopySystemVersionString(void) { CFStringRef versionString; CFDictionaryRef dict = _CFCopyServerVersionDictionary(); if (!dict) dict = _CFCopySystemVersionDictionary(); if (!dict) return NULL; versionString = (CFStringRef)CFDictionaryGetValue(dict, CFSTR("FullVersionString")); if (versionString) CFRetain(versionString); CFRelease(dict); return versionString; }
void safe_vproc_transaction_begin(void) { static int majorversion = 0; if (!majorversion) { CFDictionaryRef vers = _CFCopySystemVersionDictionary(); if (vers) { char buildver[256]; CFStringRef cfbuildver = CFDictionaryGetValue(vers, _kCFSystemVersionBuildVersionKey); if (cfbuildver && CFStringGetCString(cfbuildver, buildver, sizeof(buildver), kCFStringEncodingUTF8)) sscanf(buildver, "%d", &majorversion); CFRelease(vers); } if (!majorversion || majorversion >= OSXVers_10_6_SnowLeopard) LogMsg("Compiled without vproc_transaction support"); } }