diff options
| author | Nat Goodspeed <nat@lindenlab.com> | 2012-01-22 10:58:16 -0500 | 
|---|---|---|
| committer | Nat Goodspeed <nat@lindenlab.com> | 2012-01-22 10:58:16 -0500 | 
| commit | aa1bbe3277842a9a6e7db5227b35f1fbea50b7a6 (patch) | |
| tree | eb7cd1bf8a97963e177027e865458c87104425a9 | |
| parent | b9a03b95aafb07eb32a8f99a671f2216acce96d4 (diff) | |
Make LLProcess::Params streamable; use that in LLExternalEditor.
| -rw-r--r-- | indra/llcommon/llprocess.cpp | 15 | ||||
| -rw-r--r-- | indra/llcommon/llprocess.h | 4 | ||||
| -rw-r--r-- | indra/newview/llexternaleditor.cpp | 14 | 
3 files changed, 21 insertions, 12 deletions
diff --git a/indra/llcommon/llprocess.cpp b/indra/llcommon/llprocess.cpp index d30d87411d..9d6c19f1dd 100644 --- a/indra/llcommon/llprocess.cpp +++ b/indra/llcommon/llprocess.cpp @@ -81,6 +81,21 @@ bool LLProcess::isRunning(void)  	return (mProcessID != 0);  } +std::ostream& operator<<(std::ostream& out, const LLProcess::Params& params) +{ +	std::string cwd(params.cwd); +	if (! cwd.empty()) +	{ +		out << "cd '" << cwd << "': "; +	} +	out << '"' << std::string(params.executable) << '"'; +	BOOST_FOREACH(const std::string& arg, params.args) +	{ +		out << " \"" << arg << '"'; +	} +	return out; +} +  /*****************************************************************************  *   Windows specific  *****************************************************************************/ diff --git a/indra/llcommon/llprocess.h b/indra/llcommon/llprocess.h index 9ea129baf2..7dbdf23679 100644 --- a/indra/llcommon/llprocess.h +++ b/indra/llcommon/llprocess.h @@ -31,6 +31,7 @@  #include "llsdparam.h"  #include <boost/shared_ptr.hpp>  #include <boost/noncopyable.hpp> +#include <iosfwd>                   // std::ostream  #if LL_WINDOWS  #define WIN32_LEAN_AND_MEAN @@ -124,4 +125,7 @@ private:  	bool mAutokill;  }; +/// for logging +LL_COMMON_API std::ostream& operator<<(std::ostream&, const LLProcess::Params&); +  #endif // LL_LLPROCESS_H diff --git a/indra/newview/llexternaleditor.cpp b/indra/newview/llexternaleditor.cpp index 3dfebad958..0d3ed0ba35 100644 --- a/indra/newview/llexternaleditor.cpp +++ b/indra/newview/llexternaleditor.cpp @@ -74,12 +74,7 @@ LLExternalEditor::EErrorCode LLExternalEditor::setCommand(const std::string& env  		llinfos << "Adding the filename marker (" << sFilenameMarker << ")" << llendl;  	} -	llinfos << "Setting command [" << bin_path; -	BOOST_FOREACH(const std::string& arg, mProcessParams.args) -	{ -		llcont << " \"" << arg << "\""; -	} -	llcont << "]" << llendl; +	llinfos << "Setting command [" << mProcessParams << "]" << llendl;  	return EC_SUCCESS;  } @@ -108,12 +103,7 @@ LLExternalEditor::EErrorCode LLExternalEditor::run(const std::string& file_path)  	}  	// Run the editor. -	llinfos << "Running editor command [" << std::string(params.executable); -	BOOST_FOREACH(const std::string& arg, params.args) -	{ -		llcont << " \"" << arg << "\""; -	} -	llcont << "]" << llendl; +	llinfos << "Running editor command [" << params << "]" << llendl;  	// Prevent killing the process in destructor.  	params.autokill = false;  	return LLProcess::create(params) ? EC_SUCCESS : EC_FAILED_TO_RUN;  | 
