mozilla-crashreporter-restart-args.patch
changeset 483 6a8f38a81faf
parent 469 26e68edfc24b
equal deleted inserted replaced
479:56e16f4cce54 483:6a8f38a81faf
     1 # HG changeset patch
     1 # HG changeset patch
     2 # User Wolfgang Rosenauer <wr@rosenauer.org>
     2 # User Wolfgang Rosenauer <wr@rosenauer.org>
     3 # Parent 2cea34f21fbbd778c9643f4453c8438719c27444
     3 # Parent 07bb4ecfd6d6cc16360e7a32ee10b885d523f20d
     4 Bug 762780 - crashreporter fails to restart Firefox
     4 Bug 762780 - crashreporter restart command should support MOZ_APP_LAUNCHER
     5 
     5 
     6 diff --git a/toolkit/crashreporter/nsExceptionHandler.cpp b/toolkit/crashreporter/nsExceptionHandler.cpp
     6 diff --git a/toolkit/crashreporter/nsExceptionHandler.cpp b/toolkit/crashreporter/nsExceptionHandler.cpp
     7 --- a/toolkit/crashreporter/nsExceptionHandler.cpp
     7 --- a/toolkit/crashreporter/nsExceptionHandler.cpp
     8 +++ b/toolkit/crashreporter/nsExceptionHandler.cpp
     8 +++ b/toolkit/crashreporter/nsExceptionHandler.cpp
     9 @@ -1364,29 +1364,22 @@ SetRestartArgs(int argc, char** argv)
     9 @@ -1360,32 +1360,25 @@ nsresult
       
    10  SetRestartArgs(int argc, char** argv)
       
    11  {
       
    12    if (!gExceptionHandler)
       
    13      return NS_OK;
    10  
    14  
    11    int i;
    15    int i;
    12    nsCAutoString envVar;
    16    nsCAutoString envVar;
    13    char *env;
    17    char *env;
       
    18 +  char *argv1 = getenv("MOZ_APP_LAUNCHER");
    14    for (i = 0; i < argc; i++) {
    19    for (i = 0; i < argc; i++) {
    15      envVar = "MOZ_CRASHREPORTER_RESTART_ARG_";
    20      envVar = "MOZ_CRASHREPORTER_RESTART_ARG_";
    16      envVar.AppendInt(i);
    21      envVar.AppendInt(i);
    17      envVar += "=";
    22      envVar += "=";
    18 -#if defined(XP_UNIX) && !defined(XP_MACOSX)
    23 -#if defined(XP_UNIX) && !defined(XP_MACOSX)
    25 -        strcmp(argv[i] + arg_len - 4, "-bin") == 0) {
    30 -        strcmp(argv[i] + arg_len - 4, "-bin") == 0) {
    26 -      envVar.Append(argv[i], arg_len - 4);
    31 -      envVar.Append(argv[i], arg_len - 4);
    27 -    } else
    32 -    } else
    28 -#endif
    33 -#endif
    29 -    {
    34 -    {
    30 +    // Is there a request to suppress default binary launcher?
    35 +    if (argv1 && i == 0) {
    31 +    char* argv1 = getenv("MOZ_APP_LAUNCHER");
    36 +      // Is there a request to suppress default binary launcher?
    32 +    if(!argv1) {
    37 +      envVar += argv1;
       
    38 +    } else {
    33        envVar += argv[i];
    39        envVar += argv[i];
    34 +    } else {
       
    35 +      envVar += argv1;
       
    36      }
    40      }
    37  
    41  
    38      // PR_SetEnv() wants the string to be available for the lifetime
    42      // PR_SetEnv() wants the string to be available for the lifetime
    39      // of the app, so dup it here
    43      // of the app, so dup it here
    40      env = ToNewCString(envVar);
    44      env = ToNewCString(envVar);
    41      if (!env)
    45      if (!env)
    42        return NS_ERROR_OUT_OF_MEMORY;
    46        return NS_ERROR_OUT_OF_MEMORY;
    43