diff options
author | Jeremy Huddleston <jeremy@yuffie.local> | 2007-12-16 01:12:20 -0800 |
---|---|---|
committer | Jeremy Huddleston <jeremy@yuffie.local> | 2007-12-16 01:12:20 -0800 |
commit | cced740b1e1c8220701e59cec1be04498f851296 (patch) | |
tree | 8ec8a2cd170282ceef7bc420cbe396db24605a1b /launchd | |
parent | 3c5ae3a242895f53d4f27fefb785f2725077a55d (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')
-rw-r--r-- | launchd/Makefile.am | 15 | ||||
-rw-r--r-- | launchd/org.x.X11.plist.cpp | 27 | ||||
-rw-r--r-- | launchd/x11-exec.c | 87 |
3 files changed, 0 insertions, 129 deletions
diff --git a/launchd/Makefile.am b/launchd/Makefile.am deleted file mode 100644 index b841df8..0000000 --- a/launchd/Makefile.am +++ /dev/null @@ -1,15 +0,0 @@ -if APPLE -libexec_PROGRAMS = x11-exec -x11_exec_LDFLAGS = -framework CoreServices -endif - -launchagents_PRE = org.x.X11.plist.pre -launchagents_DATA = $(launchagents_PRE:plist.pre=plist) - -CPP_FILES_FLAGS = \ - -D__libexecdir__="$(libexecdir)" \ - -D__bindir__="$(bindir)" - -CLEANFILES = $(launchagents_DATA) - -include $(top_srcdir)/cpprules.in diff --git a/launchd/org.x.X11.plist.cpp b/launchd/org.x.X11.plist.cpp deleted file mode 100644 index 6aed8d8..0000000 --- a/launchd/org.x.X11.plist.cpp +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>Label</key> - <string>org.x.X11</string> - <key>ProgramArguments</key> - <array> -#ifdef __APPLE__ - <string>__libexecdir__/x11-exec</string> - <string>-launchd</string> -#else - <string>__bindir__/startx</string> -#endif - </array> - <key>Sockets</key> - <dict> - <key>:0</key> - <dict> - <key>SecureSocketWithKey</key> - <string>DISPLAY</string> - </dict> - </dict> - <key>ServiceIPC</key> - <true/> -</dict> -</plist> 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 */ -} - - |