I was thinking about how to best structure Host::RunShellCommand and ProcessLaunchInfo::ConvertArgumentsForLaunchingInShell based on previous discussions with greg.  <div><br></div><div>One thing I don't understand is why we need this use_default_shell argument.  For starters, it seems like a better name for this argument would be requires_shell_expansion.  As in, you should pass true if your command string might contain environment variables, commands stringed together with &&, etc.  And pass false otherwise.  </div><div><br></div><div>Is there any reason to not just <b>always </b>run it in a shell?  just delete that argument to the function and let it always be true?  It makes the code simpler and I don't see what the advantage is to letting it be false.  The end result is still the same.</div>