Skip to content
Snippets Groups Projects
Commit aa1bbe32 authored by Nat Goodspeed's avatar Nat Goodspeed
Browse files

Make LLProcess::Params streamable; use that in LLExternalEditor.

parent b9a03b95
No related branches found
No related tags found
No related merge requests found
......@@ -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
*****************************************************************************/
......
......@@ -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 @@ class LL_COMMON_API LLProcess: public boost::noncopyable
bool mAutokill;
};
/// for logging
LL_COMMON_API std::ostream& operator<<(std::ostream&, const LLProcess::Params&);
#endif // LL_LLPROCESS_H
......@@ -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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment