예제 #1
0
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;
}
예제 #2
0
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");
		}
	}