X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FOpenGL_Windows.cpp;h=4c8326915dc57cb5e63dc1cd1fd4d9eed69c2ff5;hb=f77ab80df9b206477192d6b78080cda056816161;hp=cb74c6ceaca7a92741a39c1e78606cd5d274d0cc;hpb=091b2db0b9332d78c3063b0383f6e6527d91055a;p=lugaru.git diff --git a/Source/OpenGL_Windows.cpp b/Source/OpenGL_Windows.cpp index cb74c6c..4c83269 100644 --- a/Source/OpenGL_Windows.cpp +++ b/Source/OpenGL_Windows.cpp @@ -1392,7 +1392,34 @@ static bool try_launch_browser(const char *browser, const char *url) strcat(dst, " "); strcat(dst, url); } - return(system(buf) == 0); + + #define MAX_BROWSER_ARGS 512 + char *args[MAX_BROWSER_ARGS]; + char *path = NULL; + memset(args, '\0', sizeof (args)); + path = args[0] = strtok(buf, " "); + if (path == NULL) + return false; + + size_t i = 0; + for (i = 1; i < MAX_BROWSER_ARGS; i++) + { + args[i] = strtok(NULL, " "); + if (args[i] == NULL) + break; + } + + if (i == MAX_BROWSER_ARGS) + return false; + #undef MAX_BROWSER_ARGS + + //printf("calling execvp(\"%s\"", path); + //for (i = 0; args[i]; i++) + // printf(", \"%s\"", args[i]); + //printf("); ...\n\n\n"); + + execvp(path, args); + return(false); // exec shouldn't return unless there's an error. } #endif @@ -1642,7 +1669,11 @@ 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"); + #else launch_web_browser("http://www.wolfire.com/registerpc.html"); + #endif } #if PLATFORM_LINUX // (this may not be necessary any more.) @@ -2648,10 +2679,6 @@ static bool load_png(const char *file_name, TGAImageRec &tex) if (!row_pointers) goto png_done; - retval = malloc(width * height * 4); - if (!retval) - goto png_done; - if (!hasalpha) { png_byte *dst = tex.data;