I am in agreement with BlueHazzard in the I have not seen warning coming from programs that get called from C::B being on the shell being used as all Linux and MAc shells are not created equal and work differently.
I also spotted in the last week or so that the code in different spots uses/accesses the shell in some strange ways (strange as in I do not understand why the code works one way in soma areas of the code and differently in other areas). I have not had any issues with the shell so I have not investigated it as I am working on other things.
An example of this is in compilergcc.cpp, where the first code snippet uses the config console_shell value, but the second snippet uses the environment SHELL..... I have no idea why or what ramifications this has, if any.
if (!platform::windows)
{
const wxString shell(Manager::Get()->GetConfigManager("app")->Read("/console_shell", DEFAULT_CONSOLE_SHELL));
cmd->command = shell + " '" + cmd->command + "'";
}
if (!platform::windows)
{
// for non-win platforms, use m_ConsoleTerm to run the console app
wxString term = Manager::Get()->GetConfigManager(_T("app"))->Read(_T("/console_terminal"), DEFAULT_CONSOLE_TERM);
term.Replace(_T("$TITLE"), titleStr);
term.Replace(_T("$WORKDIR"), dirStr);
cmd << term << strSPACE;
wxString shell;
wxGetEnv(_T("SHELL"), &shell);
if (shell.Contains(_T("csh")))
{
// "The csh is a tool utterly inadequate for programming,
// and its use for such purposes should be strictly banned!"
// -- Csh Programming Considered Harmful
command << DEFAULT_CONSOLE_SHELL << strSPACE;
// each shell execution must be enclosed to "":
// xterm -T X -e /bin/sh -c "/usr/bin/cb_console_runner X"
// here is first \"
command << strQUOTE;
commandIsQuoted = true;
}
}