summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2012-01-22 10:58:16 -0500
committerNat Goodspeed <nat@lindenlab.com>2012-01-22 10:58:16 -0500
commitaa1bbe3277842a9a6e7db5227b35f1fbea50b7a6 (patch)
treeeb7cd1bf8a97963e177027e865458c87104425a9
parentb9a03b95aafb07eb32a8f99a671f2216acce96d4 (diff)
Make LLProcess::Params streamable; use that in LLExternalEditor.
-rw-r--r--indra/llcommon/llprocess.cpp15
-rw-r--r--indra/llcommon/llprocess.h4
-rw-r--r--indra/newview/llexternaleditor.cpp14
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;