diff options
| author | Don Kjer <don@lindenlab.com> | 2011-03-23 01:26:03 +0000 | 
|---|---|---|
| committer | Don Kjer <don@lindenlab.com> | 2011-03-23 01:26:03 +0000 | 
| commit | 1e0608ff51efc69a14010f2ce5dba3acabe16e49 (patch) | |
| tree | 326e829b4233658ba8698e06ff17267618e93a62 /indra/llcommon | |
| parent | becc9d09970755f9cc0d95c46b9f2d81d5b856b5 (diff) | |
| parent | e4a4d75104916968ce03337094b1194e0daff438 (diff) | |
Merge with viewer-development
Diffstat (limited to 'indra/llcommon')
| -rw-r--r-- | indra/llcommon/llprocesslauncher.cpp | 24 | ||||
| -rw-r--r-- | indra/llcommon/llversionviewer.h | 4 | 
2 files changed, 24 insertions, 4 deletions
| diff --git a/indra/llcommon/llprocesslauncher.cpp b/indra/llcommon/llprocesslauncher.cpp index 4b0f6b0251..10950181fd 100644 --- a/indra/llcommon/llprocesslauncher.cpp +++ b/indra/llcommon/llprocesslauncher.cpp @@ -103,10 +103,30 @@ int LLProcessLauncher::launch(void)  	char *args2 = new char[args.size() + 1];  	strcpy(args2, args.c_str()); -	if( ! CreateProcessA( NULL, args2, NULL, NULL, FALSE, 0, NULL, NULL, &sinfo, &pinfo ) ) +	const char * working_directory = 0; +	if(!mWorkingDir.empty()) working_directory = mWorkingDir.c_str(); +	if( ! CreateProcessA( NULL, args2, NULL, NULL, FALSE, 0, NULL, working_directory, &sinfo, &pinfo ) )  	{ -		// TODO: do better than returning the OS-specific error code on failure...  		result = GetLastError(); + +		LPTSTR error_str = 0; +		if( +			FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, +				NULL, +				result, +				0, +				(LPTSTR)&error_str, +				0, +				NULL)  +			!= 0)  +		{ +			char message[256]; +			wcstombs(message, error_str, 256); +			message[255] = 0; +			llwarns << "CreateProcessA failed: " << message << llendl; +			LocalFree(error_str); +		} +  		if(result == 0)  		{  			// Make absolutely certain we return a non-zero value on failure. diff --git a/indra/llcommon/llversionviewer.h b/indra/llcommon/llversionviewer.h index 3838b2b16c..d22c879243 100644 --- a/indra/llcommon/llversionviewer.h +++ b/indra/llcommon/llversionviewer.h @@ -28,8 +28,8 @@  #define LL_LLVERSIONVIEWER_H  const S32 LL_VERSION_MAJOR = 2; -const S32 LL_VERSION_MINOR = 5; -const S32 LL_VERSION_PATCH = 3; +const S32 LL_VERSION_MINOR = 6; +const S32 LL_VERSION_PATCH = 2;  const S32 LL_VERSION_BUILD = 0;  const char * const LL_CHANNEL = "Second Life Developer"; | 
