Search
j0ke.net Open Build Service
>
Projects
>
mozilla
>
mozilla-xulrunner190
> mozilla-restart-cmd.patch
Sign Up
|
Log In
Username
Password
Cancel
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
File mozilla-restart-cmd.patch of Package mozilla-xulrunner190 (Revision 14)
Currently displaying revision
14
,
show latest
From: Wolfgang Rosenauer Subject: Set the correct restart command for session managers References: https://bugzilla.novell.com/show_bug.cgi?id=396552 Index: toolkit/xre/nsNativeAppSupportUnix.cpp =================================================================== RCS file: /cvsroot/mozilla/toolkit/xre/nsNativeAppSupportUnix.cpp,v retrieving revision 1.5 diff -u -p -6 -r1.5 nsNativeAppSupportUnix.cpp --- toolkit/xre/nsNativeAppSupportUnix.cpp 21 Feb 2008 10:55:06 -0000 1.5 +++ toolkit/xre/nsNativeAppSupportUnix.cpp 4 Jun 2008 16:04:51 -0000 @@ -156,18 +156,32 @@ gboolean save_yourself_cb(GnomeClient *c rv = gDirServiceProvider->GetFile(XRE_EXECUTABLE_FILE, &dummy, getter_AddRefs(executablePath)); if (NS_SUCCEEDED(rv)) { nsCAutoString path; char* argv[1]; - // Strip off the -bin suffix to get the shell script we should run; this is what Breakpad does nsCAutoString leafName; rv = executablePath->GetNativeLeafName(leafName); - if (NS_SUCCEEDED(rv) && StringEndsWith(leafName, NS_LITERAL_CSTRING("-bin"))) { - leafName.SetLength(leafName.Length() - strlen("-bin")); - executablePath->SetNativeLeafName(leafName); + if (NS_SUCCEEDED(rv)) { + if (StringEndsWith(leafName, NS_LITERAL_CSTRING("-bin"))) { + // Strip off the -bin suffix to get the shell script we should run; this is what Breakpad does + leafName.SetLength(leafName.Length() - strlen("-bin")); + executablePath->SetNativeLeafName(leafName); + } else { + // It's most likely a xulapp so check if leafName.sh is executable + // and use that instead of plain xulrunner stub + PRBool exec; + nsCOMPtr<nsIFile> tempPath; + executablePath->Clone(getter_AddRefs(tempPath)); + leafName.Append(NS_LITERAL_CSTRING(".sh")); + tempPath->SetNativeLeafName(leafName); + tempPath->IsExecutable(&exec); + if (exec) { + executablePath->SetNativeLeafName(leafName); + } + } } executablePath->GetNativePath(path); argv[0] = (char*)(path.get()); gnome_client_set_restart_command(client, 1, argv);