Darwin: Really add launcher this time
This commit is contained in:
		
							parent
							
								
									bcbaf2a0ce
								
							
						
					
					
						commit
						7f2972d47a
					
				| 
						 | 
				
			
			@ -0,0 +1,30 @@
 | 
			
		|||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 | 
			
		||||
<plist version="1.0">
 | 
			
		||||
<dict>
 | 
			
		||||
	<key>CFBundleDevelopmentRegion</key>
 | 
			
		||||
	<string>English</string>
 | 
			
		||||
	<key>CFBundleExecutable</key>
 | 
			
		||||
	<string>X11</string>
 | 
			
		||||
	<key>CFBundleGetInfoString</key>
 | 
			
		||||
	<string>2.0, Copyright © 2003-2007, Apple Inc.</string>
 | 
			
		||||
	<key>CFBundleIconFile</key>
 | 
			
		||||
	<string>X11.icns</string>
 | 
			
		||||
	<key>CFBundleIdentifier</key>
 | 
			
		||||
	<string>org.x.X11_launcher</string>
 | 
			
		||||
	<key>CFBundleInfoDictionaryVersion</key>
 | 
			
		||||
	<string>6.0</string>
 | 
			
		||||
	<key>CFBundleName</key>
 | 
			
		||||
	<string>X11</string>
 | 
			
		||||
	<key>CFBundlePackageType</key>
 | 
			
		||||
	<string>APPL</string>
 | 
			
		||||
	<key>CFBundleShortVersionString</key>
 | 
			
		||||
	<string>2.0</string>
 | 
			
		||||
	<key>CFBundleSignature</key>
 | 
			
		||||
	<string>x11l</string>
 | 
			
		||||
	<key>LSUIElement</key>
 | 
			
		||||
	<string>1</string>
 | 
			
		||||
	<key>NSHumanReadableCopyright</key>
 | 
			
		||||
	<string>Copyright © 2007, Apple Inc.</string>
 | 
			
		||||
</dict>
 | 
			
		||||
</plist>
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -0,0 +1,290 @@
 | 
			
		|||
// !$*UTF8*$!
 | 
			
		||||
{
 | 
			
		||||
	archiveVersion = 1;
 | 
			
		||||
	classes = {
 | 
			
		||||
	};
 | 
			
		||||
	objectVersion = 42;
 | 
			
		||||
	objects = {
 | 
			
		||||
 | 
			
		||||
/* Begin PBXBuildFile section */
 | 
			
		||||
		527F241B0B5D938C007840A7 /* X11.icns in Resources */ = {isa = PBXBuildFile; fileRef = 50459C5F038587C60ECA21EC /* X11.icns */; };
 | 
			
		||||
		527F241D0B5D938C007840A7 /* bundle-main.c in Sources */ = {isa = PBXBuildFile; fileRef = 50EE2AB703849F0B0ECA21EC /* bundle-main.c */; };
 | 
			
		||||
		527F241F0B5D938C007840A7 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50F4F0A7039D6ACA0E82C0CB /* CoreFoundation.framework */; };
 | 
			
		||||
		527F24370B5D9D89007840A7 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 527F24260B5D938C007840A7 /* Info.plist */; };
 | 
			
		||||
/* End PBXBuildFile section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXFileReference section */
 | 
			
		||||
		50459C5F038587C60ECA21EC /* X11.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = X11.icns; sourceTree = "<group>"; };
 | 
			
		||||
		50EE2AB703849F0B0ECA21EC /* bundle-main.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = "bundle-main.c"; sourceTree = "<group>"; };
 | 
			
		||||
		50F4F0A7039D6ACA0E82C0CB /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; };
 | 
			
		||||
		527F24260B5D938C007840A7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = Info.plist; sourceTree = "<group>"; };
 | 
			
		||||
		527F24270B5D938C007840A7 /* X11.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = X11.app; sourceTree = BUILT_PRODUCTS_DIR; };
 | 
			
		||||
/* End PBXFileReference section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXFrameworksBuildPhase section */
 | 
			
		||||
		527F241E0B5D938C007840A7 /* Frameworks */ = {
 | 
			
		||||
			isa = PBXFrameworksBuildPhase;
 | 
			
		||||
			buildActionMask = 2147483647;
 | 
			
		||||
			files = (
 | 
			
		||||
				527F241F0B5D938C007840A7 /* CoreFoundation.framework in Frameworks */,
 | 
			
		||||
			);
 | 
			
		||||
			runOnlyForDeploymentPostprocessing = 0;
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXFrameworksBuildPhase section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXGroup section */
 | 
			
		||||
		195DF8CFFE9D517E11CA2CBB /* Products */ = {
 | 
			
		||||
			isa = PBXGroup;
 | 
			
		||||
			children = (
 | 
			
		||||
				527F24270B5D938C007840A7 /* X11.app */,
 | 
			
		||||
			);
 | 
			
		||||
			name = Products;
 | 
			
		||||
			sourceTree = "<group>";
 | 
			
		||||
		};
 | 
			
		||||
		20286C29FDCF999611CA2CEA /* X11 */ = {
 | 
			
		||||
			isa = PBXGroup;
 | 
			
		||||
			children = (
 | 
			
		||||
				20286C2AFDCF999611CA2CEA /* Sources */,
 | 
			
		||||
				20286C2CFDCF999611CA2CEA /* Resources */,
 | 
			
		||||
				20286C32FDCF999611CA2CEA /* External Frameworks and Libraries */,
 | 
			
		||||
				195DF8CFFE9D517E11CA2CBB /* Products */,
 | 
			
		||||
				527F24260B5D938C007840A7 /* Info.plist */,
 | 
			
		||||
			);
 | 
			
		||||
			name = X11;
 | 
			
		||||
			sourceTree = "<group>";
 | 
			
		||||
		};
 | 
			
		||||
		20286C2AFDCF999611CA2CEA /* Sources */ = {
 | 
			
		||||
			isa = PBXGroup;
 | 
			
		||||
			children = (
 | 
			
		||||
				50EE2AB703849F0B0ECA21EC /* bundle-main.c */,
 | 
			
		||||
			);
 | 
			
		||||
			name = Sources;
 | 
			
		||||
			sourceTree = "<group>";
 | 
			
		||||
		};
 | 
			
		||||
		20286C2CFDCF999611CA2CEA /* Resources */ = {
 | 
			
		||||
			isa = PBXGroup;
 | 
			
		||||
			children = (
 | 
			
		||||
				50459C5F038587C60ECA21EC /* X11.icns */,
 | 
			
		||||
			);
 | 
			
		||||
			name = Resources;
 | 
			
		||||
			sourceTree = "<group>";
 | 
			
		||||
		};
 | 
			
		||||
		20286C32FDCF999611CA2CEA /* External Frameworks and Libraries */ = {
 | 
			
		||||
			isa = PBXGroup;
 | 
			
		||||
			children = (
 | 
			
		||||
				50F4F0A7039D6ACA0E82C0CB /* CoreFoundation.framework */,
 | 
			
		||||
			);
 | 
			
		||||
			name = "External Frameworks and Libraries";
 | 
			
		||||
			sourceTree = "<group>";
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXGroup section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXHeadersBuildPhase section */
 | 
			
		||||
		527F24170B5D938C007840A7 /* Headers */ = {
 | 
			
		||||
			isa = PBXHeadersBuildPhase;
 | 
			
		||||
			buildActionMask = 2147483647;
 | 
			
		||||
			files = (
 | 
			
		||||
			);
 | 
			
		||||
			runOnlyForDeploymentPostprocessing = 0;
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXHeadersBuildPhase section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXNativeTarget section */
 | 
			
		||||
		527F24160B5D938C007840A7 /* X11 */ = {
 | 
			
		||||
			isa = PBXNativeTarget;
 | 
			
		||||
			buildConfigurationList = 527F24220B5D938C007840A7 /* Build configuration list for PBXNativeTarget "X11" */;
 | 
			
		||||
			buildPhases = (
 | 
			
		||||
				527F24170B5D938C007840A7 /* Headers */,
 | 
			
		||||
				527F24180B5D938C007840A7 /* Resources */,
 | 
			
		||||
				527F241C0B5D938C007840A7 /* Sources */,
 | 
			
		||||
				527F241E0B5D938C007840A7 /* Frameworks */,
 | 
			
		||||
				527F24210B5D938C007840A7 /* Rez */,
 | 
			
		||||
			);
 | 
			
		||||
			buildRules = (
 | 
			
		||||
			);
 | 
			
		||||
			dependencies = (
 | 
			
		||||
			);
 | 
			
		||||
			name = X11;
 | 
			
		||||
			productName = X11;
 | 
			
		||||
			productReference = 527F24270B5D938C007840A7 /* X11.app */;
 | 
			
		||||
			productType = "com.apple.product-type.application";
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXNativeTarget section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXProject section */
 | 
			
		||||
		20286C28FDCF999611CA2CEA /* Project object */ = {
 | 
			
		||||
			isa = PBXProject;
 | 
			
		||||
			buildConfigurationList = 527F24080B5D8FFC007840A7 /* Build configuration list for PBXProject "X11" */;
 | 
			
		||||
			compatibilityVersion = "Xcode 2.4";
 | 
			
		||||
			hasScannedForEncodings = 1;
 | 
			
		||||
			mainGroup = 20286C29FDCF999611CA2CEA /* X11 */;
 | 
			
		||||
			projectDirPath = "";
 | 
			
		||||
			projectRoot = "";
 | 
			
		||||
			shouldCheckCompatibility = 1;
 | 
			
		||||
			targets = (
 | 
			
		||||
				527F24160B5D938C007840A7 /* X11 */,
 | 
			
		||||
			);
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXProject section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXResourcesBuildPhase section */
 | 
			
		||||
		527F24180B5D938C007840A7 /* Resources */ = {
 | 
			
		||||
			isa = PBXResourcesBuildPhase;
 | 
			
		||||
			buildActionMask = 2147483647;
 | 
			
		||||
			files = (
 | 
			
		||||
				527F24370B5D9D89007840A7 /* Info.plist in Resources */,
 | 
			
		||||
				527F241B0B5D938C007840A7 /* X11.icns in Resources */,
 | 
			
		||||
			);
 | 
			
		||||
			runOnlyForDeploymentPostprocessing = 0;
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXResourcesBuildPhase section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXRezBuildPhase section */
 | 
			
		||||
		527F24210B5D938C007840A7 /* Rez */ = {
 | 
			
		||||
			isa = PBXRezBuildPhase;
 | 
			
		||||
			buildActionMask = 2147483647;
 | 
			
		||||
			files = (
 | 
			
		||||
			);
 | 
			
		||||
			runOnlyForDeploymentPostprocessing = 0;
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXRezBuildPhase section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXSourcesBuildPhase section */
 | 
			
		||||
		527F241C0B5D938C007840A7 /* Sources */ = {
 | 
			
		||||
			isa = PBXSourcesBuildPhase;
 | 
			
		||||
			buildActionMask = 2147483647;
 | 
			
		||||
			files = (
 | 
			
		||||
				527F241D0B5D938C007840A7 /* bundle-main.c in Sources */,
 | 
			
		||||
			);
 | 
			
		||||
			runOnlyForDeploymentPostprocessing = 0;
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXSourcesBuildPhase section */
 | 
			
		||||
 | 
			
		||||
/* Begin XCBuildConfiguration section */
 | 
			
		||||
		527F24090B5D8FFC007840A7 /* Development */ = {
 | 
			
		||||
			isa = XCBuildConfiguration;
 | 
			
		||||
			buildSettings = {
 | 
			
		||||
				INSTALL_MODE_FLAG = "a+rX";
 | 
			
		||||
			};
 | 
			
		||||
			name = Development;
 | 
			
		||||
		};
 | 
			
		||||
		527F240A0B5D8FFC007840A7 /* Deployment */ = {
 | 
			
		||||
			isa = XCBuildConfiguration;
 | 
			
		||||
			buildSettings = {
 | 
			
		||||
				INSTALL_MODE_FLAG = "a+rX";
 | 
			
		||||
			};
 | 
			
		||||
			name = Deployment;
 | 
			
		||||
		};
 | 
			
		||||
		527F240B0B5D8FFC007840A7 /* Default */ = {
 | 
			
		||||
			isa = XCBuildConfiguration;
 | 
			
		||||
			buildSettings = {
 | 
			
		||||
				INSTALL_MODE_FLAG = "a+rX";
 | 
			
		||||
			};
 | 
			
		||||
			name = Default;
 | 
			
		||||
		};
 | 
			
		||||
		527F24230B5D938C007840A7 /* Development */ = {
 | 
			
		||||
			isa = XCBuildConfiguration;
 | 
			
		||||
			buildSettings = {
 | 
			
		||||
				COPY_PHASE_STRIP = NO;
 | 
			
		||||
				FRAMEWORK_SEARCH_PATHS = "";
 | 
			
		||||
				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
 | 
			
		||||
				HEADER_SEARCH_PATHS = /usr/X11/include;
 | 
			
		||||
				INFOPLIST_FILE = Info.plist;
 | 
			
		||||
				INSTALL_PATH = $DSTROOT/Applications/Utilties;
 | 
			
		||||
				LIBRARY_SEARCH_PATHS = /usr/X11/lib;
 | 
			
		||||
				OTHER_CFLAGS = "";
 | 
			
		||||
				OTHER_LDFLAGS = (
 | 
			
		||||
					"-lXau",
 | 
			
		||||
					"-lxcb",
 | 
			
		||||
					"-lX11",
 | 
			
		||||
				);
 | 
			
		||||
				OTHER_REZFLAGS = "";
 | 
			
		||||
				PRODUCT_NAME = X11;
 | 
			
		||||
				SECTORDER_FLAGS = "";
 | 
			
		||||
				WARNING_CFLAGS = (
 | 
			
		||||
					"-Wmost",
 | 
			
		||||
					"-Wno-four-char-constants",
 | 
			
		||||
					"-Wno-unknown-pragmas",
 | 
			
		||||
				);
 | 
			
		||||
				WRAPPER_EXTENSION = app;
 | 
			
		||||
			};
 | 
			
		||||
			name = Development;
 | 
			
		||||
		};
 | 
			
		||||
		527F24240B5D938C007840A7 /* Deployment */ = {
 | 
			
		||||
			isa = XCBuildConfiguration;
 | 
			
		||||
			buildSettings = {
 | 
			
		||||
				COPY_PHASE_STRIP = YES;
 | 
			
		||||
				FRAMEWORK_SEARCH_PATHS = "";
 | 
			
		||||
				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
 | 
			
		||||
				HEADER_SEARCH_PATHS = /usr/X11/include;
 | 
			
		||||
				INFOPLIST_FILE = Info.plist;
 | 
			
		||||
				INSTALL_PATH = /Applications/Utilties;
 | 
			
		||||
				LIBRARY_SEARCH_PATHS = /usr/X11/lib;
 | 
			
		||||
				OTHER_CFLAGS = "";
 | 
			
		||||
				OTHER_LDFLAGS = "";
 | 
			
		||||
				OTHER_REZFLAGS = "";
 | 
			
		||||
				PRODUCT_NAME = X11;
 | 
			
		||||
				SECTORDER_FLAGS = "";
 | 
			
		||||
				WARNING_CFLAGS = (
 | 
			
		||||
					"-Wmost",
 | 
			
		||||
					"-Wno-four-char-constants",
 | 
			
		||||
					"-Wno-unknown-pragmas",
 | 
			
		||||
				);
 | 
			
		||||
				WRAPPER_EXTENSION = app;
 | 
			
		||||
			};
 | 
			
		||||
			name = Deployment;
 | 
			
		||||
		};
 | 
			
		||||
		527F24250B5D938C007840A7 /* Default */ = {
 | 
			
		||||
			isa = XCBuildConfiguration;
 | 
			
		||||
			buildSettings = {
 | 
			
		||||
				FRAMEWORK_SEARCH_PATHS = "";
 | 
			
		||||
				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
 | 
			
		||||
				HEADER_SEARCH_PATHS = /usr/X11/include;
 | 
			
		||||
				INFOPLIST_FILE = Info.plist;
 | 
			
		||||
				INSTALL_PATH = /Applications/Utilties;
 | 
			
		||||
				LIBRARY_SEARCH_PATHS = /usr/X11/lib;
 | 
			
		||||
				OTHER_CFLAGS = "";
 | 
			
		||||
				OTHER_LDFLAGS = (
 | 
			
		||||
					"-lXau",
 | 
			
		||||
					"-lxcb",
 | 
			
		||||
					"-lX11",
 | 
			
		||||
				);
 | 
			
		||||
				OTHER_REZFLAGS = "";
 | 
			
		||||
				PRODUCT_NAME = X11;
 | 
			
		||||
				SECTORDER_FLAGS = "";
 | 
			
		||||
				WARNING_CFLAGS = (
 | 
			
		||||
					"-Wmost",
 | 
			
		||||
					"-Wno-four-char-constants",
 | 
			
		||||
					"-Wno-unknown-pragmas",
 | 
			
		||||
				);
 | 
			
		||||
				WRAPPER_EXTENSION = app;
 | 
			
		||||
			};
 | 
			
		||||
			name = Default;
 | 
			
		||||
		};
 | 
			
		||||
/* End XCBuildConfiguration section */
 | 
			
		||||
 | 
			
		||||
/* Begin XCConfigurationList section */
 | 
			
		||||
		527F24080B5D8FFC007840A7 /* Build configuration list for PBXProject "X11" */ = {
 | 
			
		||||
			isa = XCConfigurationList;
 | 
			
		||||
			buildConfigurations = (
 | 
			
		||||
				527F24090B5D8FFC007840A7 /* Development */,
 | 
			
		||||
				527F240A0B5D8FFC007840A7 /* Deployment */,
 | 
			
		||||
				527F240B0B5D8FFC007840A7 /* Default */,
 | 
			
		||||
			);
 | 
			
		||||
			defaultConfigurationIsVisible = 0;
 | 
			
		||||
			defaultConfigurationName = Default;
 | 
			
		||||
		};
 | 
			
		||||
		527F24220B5D938C007840A7 /* Build configuration list for PBXNativeTarget "X11" */ = {
 | 
			
		||||
			isa = XCConfigurationList;
 | 
			
		||||
			buildConfigurations = (
 | 
			
		||||
				527F24230B5D938C007840A7 /* Development */,
 | 
			
		||||
				527F24240B5D938C007840A7 /* Deployment */,
 | 
			
		||||
				527F24250B5D938C007840A7 /* Default */,
 | 
			
		||||
			);
 | 
			
		||||
			defaultConfigurationIsVisible = 0;
 | 
			
		||||
			defaultConfigurationName = Default;
 | 
			
		||||
		};
 | 
			
		||||
/* End XCConfigurationList section */
 | 
			
		||||
	};
 | 
			
		||||
	rootObject = 20286C28FDCF999611CA2CEA /* Project object */;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,81 @@
 | 
			
		|||
/* main.c -- X application launcher
 | 
			
		||||
 
 | 
			
		||||
 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 <stdio.h>
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
 | 
			
		||||
#include <CoreFoundation/CoreFoundation.h>
 | 
			
		||||
 | 
			
		||||
#define DEFAULT_APP "/usr/X11/bin/xterm"
 | 
			
		||||
 | 
			
		||||
int main (int argc, char **argv) {
 | 
			
		||||
  char *command = DEFAULT_APP;
 | 
			
		||||
  const char *newargv[7];
 | 
			
		||||
  int child;
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
	CFPropertyListRef PlistRef = CFPreferencesCopyAppValue(CFSTR("app_to_run"),
 | 
			
		||||
									kCFPreferencesCurrentApplication);
 | 
			
		||||
	
 | 
			
		||||
	if ((PlistRef == NULL) || (CFGetTypeID(PlistRef) != CFStringGetTypeID())) {
 | 
			
		||||
		CFPreferencesSetAppValue(CFSTR("app_to_run"), CFSTR(DEFAULT_APP), 
 | 
			
		||||
								 kCFPreferencesCurrentApplication);
 | 
			
		||||
		CFPreferencesAppSynchronize(kCFPreferencesCurrentApplication);
 | 
			
		||||
	} else {
 | 
			
		||||
		int len = CFStringGetLength((CFStringRef)PlistRef)+1;
 | 
			
		||||
		command = (char *) malloc(len);
 | 
			
		||||
		CFStringGetCString((CFStringRef)PlistRef, command, len,  kCFStringEncodingASCII);
 | 
			
		||||
		fprintf(stderr, "command=%s\n", command);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	if (PlistRef) CFRelease(PlistRef);
 | 
			
		||||
	
 | 
			
		||||
	newargv[0] = "/usr/bin/login";
 | 
			
		||||
	newargv[1] = "-fp";
 | 
			
		||||
	newargv[2] = getlogin();
 | 
			
		||||
	newargv[3] = "/bin/sh";
 | 
			
		||||
	newargv[4] = "-c";
 | 
			
		||||
	newargv[5] = command;
 | 
			
		||||
	newargv[6] = NULL;
 | 
			
		||||
 | 
			
		||||
    child = fork();
 | 
			
		||||
	
 | 
			
		||||
    switch (child) {
 | 
			
		||||
    case -1:				/* error */
 | 
			
		||||
      perror ("fork");
 | 
			
		||||
      return EXIT_FAILURE;		
 | 
			
		||||
    case 0:				    /* child */
 | 
			
		||||
      execvp (newargv[0], (char **const) newargv);
 | 
			
		||||
      perror ("Couldn't exec");
 | 
			
		||||
      _exit (1);
 | 
			
		||||
   }
 | 
			
		||||
	
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue