summaryrefslogtreecommitdiff
path: root/launchd/x11-exec.c
diff options
context:
space:
mode:
authorJeremy Huddleston <jeremy@yuffie.local>2007-12-16 01:12:20 -0800
committerJeremy Huddleston <jeremy@yuffie.local>2007-12-16 01:12:20 -0800
commitcced740b1e1c8220701e59cec1be04498f851296 (patch)
tree8ec8a2cd170282ceef7bc420cbe396db24605a1b /launchd/x11-exec.c
parent3c5ae3a242895f53d4f27fefb785f2725077a55d (diff)
OS-X: Added argv[0] hack for finding Xquartz UI and icon as well as claiming its dock icon
Partially removes need for x11-exec on OS-X. We still need to handle options set in defaults.
Diffstat (limited to 'launchd/x11-exec.c')
-rw-r--r--launchd/x11-exec.c87
1 files changed, 0 insertions, 87 deletions
diff --git a/launchd/x11-exec.c b/launchd/x11-exec.c
deleted file mode 100644
index bc1a233..0000000
--- a/launchd/x11-exec.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* x11-exec.c -- Find X11.app by bundle-id and report its path.
- This is so launchd can correctly find X11.app, even if the user moved it.
-
- Copyright (c) 2007 Apple, Inc.
-
- Permission is hereby granted, free of charge, to any person
- obtaining a copy of this software and associated documentation files
- (the "Software"), to deal in the Software without restriction,
- including without limitation the rights to use, copy, modify, merge,
- publish, distribute, sublicense, and/or sell copies of the Software,
- and to permit persons to whom the Software is furnished to do so,
- subject to the following conditions:
-
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT
- HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- DEALINGS IN THE SOFTWARE.
-
- Except as contained in this notice, the name(s) of the above
- copyright holders shall not be used in advertising or otherwise to
- promote the sale, use or other dealings in this Software without
- prior written authorization. */
-
-#include <CoreServices/CoreServices.h>
-#include <stdio.h>
-#include <unistd.h>
-
-#define kX11AppBundleId "org.x.X11"
-#define kX11AppBundlePath "/Contents/MacOS/X11"
-
-int main(int argc, char **argv) {
- char x11_path[PATH_MAX];
- char** args = NULL;
- CFURLRef appURL = NULL;
- OSStatus osstatus = LSFindApplicationForInfo(kLSUnknownCreator, CFSTR(kX11AppBundleId), nil, nil, &appURL);
-
- switch (osstatus) {
- case noErr:
- if (appURL == NULL) {
- fprintf(stderr, "%s: Invalid response from LSFindApplicationForInfo(%s)\n",
- argv[0], kX11AppBundleId);
- exit(1);
- }
-
- if (!CFURLGetFileSystemRepresentation(appURL, true, (unsigned char *)x11_path, sizeof(x11_path))) {
- fprintf(stderr, "%s: Error resolving URL for %s\n", argv[0], kX11AppBundleId);
- exit(2);
- }
-
- strlcat(x11_path, kX11AppBundlePath, sizeof(x11_path));
- fprintf(stderr, "X11.app = %s\n", x11_path);
-
- args = (char**)malloc(sizeof (char*) * (argc + 1));
- if (args) {
- int i;
- args[0] = x11_path;
- for (i = 1; i < argc; ++i) {
- args[i] = argv[i];
- }
- args[i] = NULL;
- }
-
- execv(x11_path, args);
-
- fprintf(stderr, "Error executing X11.app (%s):", x11_path);
- perror(NULL);
- exit(3);
- break;
- case kLSApplicationNotFoundErr:
- fprintf(stderr, "%s: Unable to find application for %s\n", argv[0], kX11AppBundleId);
- exit(4);
- default:
- fprintf(stderr, "%s: Unable to find application for %s, error code = %d\n",
- argv[0], kX11AppBundleId, (int)osstatus);
- exit(5);
- }
- /* not reached */
-}
-
-