Ticket #2996: 0002-4-Update-main-method.patch

File 0002-4-Update-main-method.patch, 1.4 KB (added by BogDan, 9 years ago)
  • source/main.cpp

    From 16df7ae9d38cda3befa5d31b2aaae56f83b168af Mon Sep 17 00:00:00 2001
    From: BogDan Vatra <bogdan@kde.org>
    Date: Tue, 13 Jan 2015 18:48:34 +0200
    Subject: [PATCH 4/5] Update main method
    
    Allow JAVA to set env vars.
    ---
     source/main.cpp | 20 ++++++++++++++------
     1 file changed, 14 insertions(+), 6 deletions(-)
    
    diff --git a/source/main.cpp b/source/main.cpp
    index 4d90e76..0428e69 100644
    a b static void RunGameOrAtlas(int argc, const char* argv[])  
    525525}
    526526
    527527#if OS_ANDROID
    528 // In Android we compile the engine as a shared library, not an executable,
    529 // so rename main() to a different symbol that the wrapper library can load
    530 #undef main
    531 #define main pyrogenesis_main
    532 extern "C" __attribute__((visibility ("default"))) int main(int argc, char* argv[]);
    533 #endif
     528#include <jni.h>
     529extern"C" JNIEXPORT jint JNICALL Java_com_play0ad_Native_setenv
     530  (JNIEnv* env, jclass /*clazz*/, jstring key, jstring value, jboolean overwrite)
     531{
     532    const char *k = env->GetStringUTFChars(key, NULL);
     533    const char *v = env->GetStringUTFChars(value, NULL);
     534    int err = setenv(k, v, overwrite);
     535    env->ReleaseStringUTFChars(key, k);
     536    env->ReleaseStringUTFChars(value, v);
     537    return err;
     538}
    534539
     540extern "C" __attribute__((visibility ("default"))) int SDL_main(int argc, char* argv[])
     541#else
    535542extern "C" int main(int argc, char* argv[])
     543#endif
    536544{
    537545#if OS_UNIX
    538546    // Don't allow people to run the game with root permissions,