<feed xmlns='http://www.w3.org/2005/Atom'>
<title>viewer.git/indra/llcommon/llprocesslauncher.cpp, branch 26.1.1</title>
<subtitle>Megapahit's fork of the Second Life viewer.
</subtitle>
<id>https://megapahit.org/viewer.git/atom?h=26.1.1</id>
<link rel='self' href='https://megapahit.org/viewer.git/atom?h=26.1.1'/>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/'/>
<updated>2012-01-20T23:10:40Z</updated>
<entry>
<title>Per Richard, replace LLProcessLauncher with LLProcess.</title>
<updated>2012-01-20T23:10:40Z</updated>
<author>
<name>Nat Goodspeed</name>
<email>nat@lindenlab.com</email>
</author>
<published>2012-01-20T23:10:40Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=f0dbb878337082d3f581874c12e6df2f4659a464'/>
<id>urn:sha1:f0dbb878337082d3f581874c12e6df2f4659a464</id>
<content type='text'>
LLProcessLauncher had the somewhat fuzzy mandate of (1) accumulating
parameters with which to launch a child process and (2) sometimes tracking the
lifespan of the ensuing child process. But a valid LLProcessLauncher object
might or might not have ever been associated with an actual child process.
LLProcess specifically tracks a child process. In effect, it's a fairly thin
wrapper around a process HANDLE (on Windows) or pid_t (elsewhere), with
lifespan management thrown in. A static LLProcess::create() method launches a
new child; create() accepts an LLSD bundle with child parameters. So building
up a parameter bundle is deferred to LLSD rather than conflated with the
process management object.
Reconcile all known LLProcessLauncher consumers in the viewer code base,
notably the class unit tests.
</content>
</entry>
<entry>
<title>To grow std::string by a char, use push_back() instead of append().</title>
<updated>2012-01-19T22:04:55Z</updated>
<author>
<name>Nat Goodspeed</name>
<email>nat@lindenlab.com</email>
</author>
<published>2012-01-19T22:04:55Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=083a9e0927144a9e2f052bc8573da8a26259a257'/>
<id>urn:sha1:083a9e0927144a9e2f052bc8573da8a26259a257</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Try to fix argument quoting on Windows.</title>
<updated>2012-01-19T21:41:17Z</updated>
<author>
<name>Nat Goodspeed</name>
<email>nat@lindenlab.com</email>
</author>
<published>2012-01-19T21:41:17Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=6fddfab6dd8e49dcbf4933bde23dbcdfe3e213db'/>
<id>urn:sha1:6fddfab6dd8e49dcbf4933bde23dbcdfe3e213db</id>
<content type='text'>
Despite LLProcessLauncher's list-of-argument-strings API, on Windows it must
ram them all into a single command-line string anyway. This means that if
arguments contain spaces (or anything else that would confuse Windows command-
line parsing), the target process won't receive the intended arguments.
Introduce double quotes for any arguments not already double-quoted by caller.
</content>
</entry>
<entry>
<title>Introduce static LLProcessLauncher::isRunning(ll_pid_t) method.</title>
<updated>2012-01-18T06:09:50Z</updated>
<author>
<name>Nat Goodspeed</name>
<email>nat@lindenlab.com</email>
</author>
<published>2012-01-18T06:09:50Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=06f9dbd8db9895f81d7bd325d8cf616f68533396'/>
<id>urn:sha1:06f9dbd8db9895f81d7bd325d8cf616f68533396</id>
<content type='text'>
typedef LLProcessLauncher::ll_pid_t to be HANDLE on Windows, pid_t elsewhere.
Then we can define getProcessID() returning ll_pid_t on all platforms,
retaining getProcessHandle() for hypothetical existing consumers... of which
there are none in practice.
This lets us define isRunning(ll_pid_t) to encapsulate the platform-specific
logic to actually check on a running child process, turning non-static
isRunning() into a fairly trivial wrapper.
</content>
</entry>
<entry>
<title>Add log message if LLProcessLauncher child fails to execv().</title>
<updated>2012-01-17T23:55:42Z</updated>
<author>
<name>Nat Goodspeed</name>
<email>nat@lindenlab.com</email>
</author>
<published>2012-01-17T23:55:42Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=c0731c1c05cafe508c91c5f583301234ba3b8403'/>
<id>urn:sha1:c0731c1c05cafe508c91c5f583301234ba3b8403</id>
<content type='text'>
On a Posix platform (vfork()/execv() implementation), if for any reason the
execv() failed (e.g. executable not on PATH), the viewer would never know, nor
the user: the vfork() child produced no output, and terminated with rc 0! Add
logging, make child terminate with nonzero rc.
Remove pointless addArgument(const char*) overload: this does nothing for you
that the compiler won't do implicitly.
In llupdateinstaller.cpp, remove pointless c_str() call in addArgument() arg:
we were starting with a std::string, then extracting its c_str(), only to
construct a whole new std::string from it!
</content>
</entry>
<entry>
<title>Fix CHOP-544.  Use cwd when creating a process on windows when the llprocesslauncher's working directory is not set.  Currently "" will be passed for the working directory which breaks the launching of the updater script.</title>
<updated>2011-03-17T19:16:41Z</updated>
<author>
<name>Alain Linden</name>
<email>alain@lindenlab.com</email>
</author>
<published>2011-03-17T19:16:41Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=313b77fd269665d059e64eee079d21da2a3129c1'/>
<id>urn:sha1:313b77fd269665d059e64eee079d21da2a3129c1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>SOCIAL-595 FIX Global Volume control does not affect volume of MOAP in minimal skin on Windows</title>
<updated>2011-03-01T23:03:26Z</updated>
<author>
<name>Richard Linden</name>
<email>none@none</email>
</author>
<published>2011-03-01T23:03:26Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=11a0785cebcbbcf89eab90c7f2a4c0b7c538736c'/>
<id>urn:sha1:11a0785cebcbbcf89eab90c7f2a4c0b7c538736c</id>
<content type='text'>
made slplugin.exe start with correct working directory (llplugin)
</content>
</entry>
<entry>
<title>fix working directory in install script and remove dependency on open option --args which is 10.6 only.  Also fix erroneous check in process launcher which was mistakenly reporting a failed execution of the new updater script.</title>
<updated>2010-12-10T23:41:14Z</updated>
<author>
<name>Andrew A. de Laix</name>
<email>alain@lindenlab.com</email>
</author>
<published>2010-12-10T23:41:14Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=8ab943f470552dd9469d6025bcd359a67ad5513e'/>
<id>urn:sha1:8ab943f470552dd9469d6025bcd359a67ad5513e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>STORM-52 FIXED Made it possible to use an external script editor.</title>
<updated>2010-11-12T22:53:29Z</updated>
<author>
<name>Vadim ProductEngine</name>
<email>vsavchuk@productengine.com</email>
</author>
<published>2010-11-12T22:53:29Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=b2fcba25c8dd04318420af30f877b0984a524055'/>
<id>urn:sha1:b2fcba25c8dd04318420af30f877b0984a524055</id>
<content type='text'>
The editor can be specified:
* via "ExternalEditor" setting in settings.xml
* via LL_SCRIPT_EDITOR variable

Removed obsolete XUIEditor setting in favor of the new one.
</content>
</entry>
<entry>
<title>Change license from GPL to LGPL (version 2.1)</title>
<updated>2010-08-13T11:24:57Z</updated>
<author>
<name>Oz Linden</name>
<email>oz@lindenlab.com</email>
</author>
<published>2010-08-13T11:24:57Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=06b0d72efa96b6a0ed665f7cd46f358c48929e7b'/>
<id>urn:sha1:06b0d72efa96b6a0ed665f7cd46f358c48929e7b</id>
<content type='text'>
</content>
</entry>
</feed>
