long response = 0; OSErr err = ::Gestalt (gestaltSystemVersion, &response); if ( err || response < 0x850) { ::StopAlert (5000, NULL); return PR_FALSE; } return PR_TRUE;
long response = 0; OSErr err = ::Gestalt (gestaltSystemVersion, &response);  if ( err || response < 0x860) { ::StopAlert (5000, NULL); return PR_FALSE; }           ProcessInfoRec  info; FSSpec          tempFSSpec; ProcessSerialNumber psn, nextProcessPsn;  nextProcessPsn.highLongOfPSN = 0; nextProcessPsn.lowLongOfPSN  = kNoProcess;   err = ::GetCurrentProcess(&psn);  if (err != noErr) return PR_FALSE;         while (err == noErr) { err = ::GetNextProcess(&nextProcessPsn); if (err != noErr) break; info.processInfoLength = sizeof(ProcessInfoRec); info.processName = nil; info.processAppSpec = &tempFSSpec; err = ::GetProcessInformation(&nextProcessPsn, &info); if (err != noErr) break;  if (info.processSignature == kNSCreator || info.processSignature == kMozCreator) {  if (!(info.processNumber.lowLongOfPSN == psn.lowLongOfPSN && info.processNumber.highLongOfPSN == psn.highLongOfPSN)) {   if ((info.processSignature == kNSCreator && VersGreaterThan4(&tempFSSpec)) || info.processSignature == kMozCreator) {  Str255 str; ::GetIndString(str, kNSCanRunStrArrayID, kAnotherVersionStrIndex); if (StrLength(str) == 0) err = resNotFound; else { SInt16 outItemHit; if (str) ::StandardAlert(kAlertStopAlert, str, nil, nil, &outItemHit); err = fnfErr; } } } } }  if (err == noErr || err == procNotFound) return PR_TRUE;  return PR_FALSE;
PRBool NS_CanRun() {	long response = 0;	OSErr err = ::Gestalt (gestaltSystemVersion, &response);	if ( err || response < 0x850)	{		::StopAlert (5000, NULL);		return PR_FALSE;	}	return PR_TRUE;}