[cmake-commits] andy committed OSXScriptLauncher.cxx 1.2 1.3

cmake-commits at cmake.org cmake-commits at cmake.org
Wed Jan 31 13:53:32 EST 2007


Update of /cvsroot/CMake/CMake/Source/CPack
In directory public:/mounts/ram/cvs-serv23333/Source/CPack

Modified Files:
	OSXScriptLauncher.cxx 
Log Message:
COMP: Use new API


Index: OSXScriptLauncher.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/CPack/OSXScriptLauncher.cxx,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- OSXScriptLauncher.cxx	11 Jan 2007 00:59:53 -0000	1.2
+++ OSXScriptLauncher.cxx	31 Jan 2007 18:53:30 -0000	1.3
@@ -6,7 +6,8 @@
 #include <Carbon/Carbon.h>
 #include <CoreFoundation/CoreFoundation.h>
 
-#define MaximumPathLength 1024
+// For the PATH_MAX constant
+#include <sys/syslimits.h>
 
 #define DebugError(x) \
   ofs << x << cmsys_ios::endl; \
@@ -21,8 +22,6 @@
   CFStringRef fileName;
   CFBundleRef appBundle;
   CFURLRef scriptFileURL;
-  FSRef fileRef;
-  FSSpec fileSpec;
   UInt8 *path;
 
   //get CF URL for script
@@ -31,12 +30,7 @@
     DebugError("Cannot get main bundle");
     return 1;
     }
-  if (! (fileName = CFStringCreateWithCString(NULL, "RuntimeScript",
-        kCFStringEncodingASCII)))
-    {
-    DebugError("CFStringCreateWithCString failed");
-    return 1;
-    }
+  fileName = CFSTR("RuntimeScript");
   if (! (scriptFileURL = CFBundleCopyResourceURL(appBundle, fileName, NULL,
         NULL)))
     {
@@ -44,44 +38,24 @@
     return 1;
     }
 
-  //Get file reference from Core Foundation URL
-  if (! CFURLGetFSRef(scriptFileURL, &fileRef))
-    {
-    DebugError("CFURLGetFSRef failed");
-    return 1;
-    }
-
-  //dispose of the CF variables
-  CFRelease(scriptFileURL);
-  CFRelease(fileName);
-
-  //convert FSRef to FSSpec
-  if (FSGetCatalogInfo(&fileRef, kFSCatInfoNone, NULL, NULL, &fileSpec,
-      NULL))
+  //create path string
+  if (! (path = new UInt8[PATH_MAX]))
     {
-    DebugError("FSGetCatalogInfo failed");
     return 1;
     }
 
-  //create path string
-  if (! (path = new UInt8[MaximumPathLength]))
+  //get the file system path of the url as a cstring
+  //in an encoding suitable for posix apis
+  if ( CFURLGetFileSystemRepresentation(scriptFileURL, true, path,
+        PATH_MAX) == false)
     {
+    DebugError("CFURLGetFileSystemRepresentation failed");
     return 1;
     }
 
-  //create file reference from file spec
-  OSErr err = FSpMakeFSRef(&fileSpec, &fileRef);
-  if(err) 
-    {
-    return err;
-    }
+  //dispose of the CF variable
+  CFRelease(scriptFileURL);
 
-  // and then convert the FSRef to a path
-  if ( FSRefMakePath(&fileRef, path, MaximumPathLength) )
-    {
-    DebugError("FSRefMakePath failed");
-    return 1;
-    }
   cmsys_stl::string fullScriptPath = reinterpret_cast<char*>(path);
   delete [] path;
 



More information about the Cmake-commits mailing list