XDarwin has no creator code
Brought to you by:
torrey
XDarwin's bundle signature is "????". This is a generic signature used by default when an application is first created.
Someone needs to register a creator code with Apple so that XDarwin will be a first class Mac application.
An example of the problem this causes is, I can't use the LSGetApplicationForInfo() API to launch XDarwin in a tool that I'm writing.
Logged In: YES
user_id=133579
Most Carbon applications need Creator codes, but many Cocoa apps only have identifiers. Creator codes are only useful on HFS+ volumes. XDarwin's identifier is "org.xfree86.XDarwin". You can launch XDarwin using code such as the following from XDarwinStartup.c:
theStatus = LSFindApplicationForInfo(kLSUnknownCreator,
CFSTR("org.xfree86.XDarwin"),
NULL, NULL, &appURL);
if (theStatus) {
fprintf(stderr, "Could not find the XDarwin application. (Error = 0x%lx)\n", theStatus);
fprintf(stderr, "Launch XDarwin once from the Finder.\n");
return theStatus;
}
appPath = CFURLCopyFileSystemPath (appURL, kCFURLPOSIXPathStyle);
success = CFStringGetCString(appPath, quartzPath, PATH_MAX, CFStringGetSystemEncoding());
if (! success) {
fprintf(stderr, "Could not find path to XDarwin application.\n");
return success;
}
// Launch the XDarwin application
strncat(quartzPath, "/Contents/MacOS/XDarwin", PATH_MAX);
newargv[0] = quartzPath;
execv(newargv[0], newargv);
fprintf(stderr, "Could not start XDarwin application at %s.\n", newargv[0]);
return errno;
Logged In: YES
user_id=133579
Apparently my previous explanation about using identifiers is okay. Closing.