Author: axeld Date: 2010-05-07 11:25:53 +0200 (Fri, 07 May 2010) New Revision: 36711 Changeset: http://dev.haiku-os.org/changeset/36711/haiku Modified: haiku/trunk/src/apps/terminal/Shell.cpp Log: * Changed the alert message translation to something which makes a bit more sense, and is less error prone. Modified: haiku/trunk/src/apps/terminal/Shell.cpp =================================================================== --- haiku/trunk/src/apps/terminal/Shell.cpp 2010-05-07 09:25:18 UTC (rev 36710) +++ haiku/trunk/src/apps/terminal/Shell.cpp 2010-05-07 09:25:53 UTC (rev 36711) @@ -511,23 +511,26 @@ execve(argv[0], (char * const *)argv, environ); - /* - * Exec failed. - * TODO: This doesn't belong here. - */ + // Exec failed. + // TODO: This doesn't belong here. 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); - if (returnValue == 0) + BString alertCommand = "alert --stop '"; + 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], kDefaultShellCommand[1], NULL); + } exit(1); }