* Changed the alert message translation to something which makes a bit more
sense, and is less error prone. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36711 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
+15
-12
@@ -511,23 +511,26 @@ Shell::_Spawn(int row, int col, const char *encoding, int argc, const char **arg
|
|||||||
|
|
||||||
execve(argv[0], (char * const *)argv, environ);
|
execve(argv[0], (char * const *)argv, environ);
|
||||||
|
|
||||||
/*
|
// Exec failed.
|
||||||
* Exec failed.
|
// TODO: This doesn't belong here.
|
||||||
* TODO: This doesn't belong here.
|
|
||||||
*/
|
|
||||||
|
|
||||||
sleep(1);
|
sleep(1);
|
||||||
BString knonLocalizedPart = "alert --stop ";
|
|
||||||
const char *kLocalizedPart =
|
|
||||||
B_TRANSLATE("'Cannot execute \"%s\":\n\t%s' 'Use default shell' 'Abort'");
|
|
||||||
const char *spawnAlertMessage = knonLocalizedPart << kLocalizedPart;
|
|
||||||
char errorMessage[256];
|
|
||||||
snprintf(errorMessage, sizeof(errorMessage), spawnAlertMessage, argv[0], strerror(errno));
|
|
||||||
|
|
||||||
int returnValue = system(errorMessage);
|
BString alertCommand = "alert --stop '";
|
||||||
if (returnValue == 0)
|
alertCommand += B_TRANSLATE("Cannot execute \"%command\":\n\t%error");
|
||||||
|
alertCommand += "' '";
|
||||||
|
alertCommand += B_TRANSLATE("Use default shell");
|
||||||
|
alertCommand += "' '";
|
||||||
|
alertCommand += B_TRANSLATE("Abort");
|
||||||
|
alertCommand += "'";
|
||||||
|
alertCommand.ReplaceFirst("%command", argv[0]);
|
||||||
|
alertCommand.ReplaceFirst("%error", strerror(errno));
|
||||||
|
|
||||||
|
int returnValue = system(alertCommand.String());
|
||||||
|
if (returnValue == 0) {
|
||||||
execl(kDefaultShellCommand[0], kDefaultShellCommand[0],
|
execl(kDefaultShellCommand[0], kDefaultShellCommand[0],
|
||||||
kDefaultShellCommand[1], NULL);
|
kDefaultShellCommand[1], NULL);
|
||||||
|
}
|
||||||
|
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user