]> git.jsancho.org Git - lugaru.git/blobdiff - Source/OpenGL_Windows.cpp
chdir to base of app bundle on the Mac.
[lugaru.git] / Source / OpenGL_Windows.cpp
index 2aec38d94c0fe2ef4d82225e57c592d7b810325d..a64f5e4408f3bda69737bacc04f7f2834fdfb4b9 100644 (file)
@@ -1341,6 +1341,14 @@ static void launch_web_browser(const char *url)
 #ifdef WIN32
     ShellExecute(NULL, "open", url, NULL, NULL, SW_SHOWNORMAL);
 
+#elif (defined(__APPLE__) && defined(__MACH__))
+    const char *fmt = "open '%s'";
+    const size_t len = strlen(fmt) + strlen(url) + 16;
+    char *buf = new char[len];
+    snprintf(buf, len, fmt, url);
+    system(buf);
+    delete[] buf;
+
 #elif PLATFORM_LINUX
     const char *fmt = "PATH=$PATH:. xdg-open '%s'";
     const size_t len = strlen(fmt) + strlen(url) + 16;
@@ -1434,6 +1442,19 @@ static inline void chdirToAppPath(const char *argv0)
     char *dir = calcBaseDir(argv0);
     if (dir)
     {
+        #if (defined(__APPLE__) && defined(__MACH__))
+        // Chop off /Contents/MacOS if it's at the end of the string, so we
+        //  land in the base of the app bundle.
+        const size_t len = strlen(dir);
+        const char *bundledirs = "/Contents/MacOS";
+        const size_t bundledirslen = strlen(bundledirs);
+        if (len > bundledirslen)
+        {
+            char *ptr = (dir + len) - bundledirslen;
+            if (strcasecmp(ptr, bundledirs) == 0)
+                *ptr = '\0';
+        }
+        #endif
         chdir(dir);
         free(dir);
     }
@@ -1562,10 +1583,12 @@ int main(int argc, char **argv)
 //             if(game.registernow){
                if(regnow)
                {
-            #if PLATFORM_LINUX  // (this may not be necessary any more.)
-            launch_web_browser("http://www.wolfire.com/registerlinux.html");
+            #if (defined(__APPLE__) && defined(__MACH__))
+            launch_web_browser("http://www.wolfire.com/purchase/lugaru/mac");
+            #elif PLATFORM_LINUX
+            launch_web_browser("http://www.wolfire.com/purchase/lugaru/linux");
             #else
-            launch_web_browser("http://www.wolfire.com/registerpc.html");
+            launch_web_browser("http://www.wolfire.com/purchase/lugaru/pc");
             #endif
                }