diff options
| -rw-r--r-- | doc/contributions.txt | 1 | ||||
| -rw-r--r-- | indra/llcommon/llfile.cpp | 21 | 
2 files changed, 16 insertions, 6 deletions
| diff --git a/doc/contributions.txt b/doc/contributions.txt index a63e3a22b0..d7f050a916 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -899,6 +899,7 @@ NickyD  Nicky Dasmijn  	VWR-29228  	MAINT-873 +	SUN-72  Nicky Perian  	OPEN-1  	STORM-1087 diff --git a/indra/llcommon/llfile.cpp b/indra/llcommon/llfile.cpp index bc615ed39e..864b6e6975 100644 --- a/indra/llcommon/llfile.cpp +++ b/indra/llcommon/llfile.cpp @@ -853,7 +853,8 @@ llifstream::llifstream(const std::string& _Filename,  #if LL_WINDOWS  	std::istream(&_M_filebuf)  { -	if (_M_filebuf.open(_Filename.c_str(), _Mode | ios_base::in) == 0) +	llutf16string wideName = utf8str_to_utf16str( _Filename ); +	if (_M_filebuf.open(wideName.c_str(), _Mode | ios_base::in) == 0)  	{  		_Myios::setstate(ios_base::failbit);  	} @@ -872,7 +873,8 @@ llifstream::llifstream(const char* _Filename,  #if LL_WINDOWS  	std::istream(&_M_filebuf)  { -	if (_M_filebuf.open(_Filename, _Mode | ios_base::in) == 0) +	llutf16string wideName = utf8str_to_utf16str( _Filename ); +	if (_M_filebuf.open(wideName.c_str(), _Mode | ios_base::in) == 0)  	{  		_Myios::setstate(ios_base::failbit);  	} @@ -917,8 +919,10 @@ bool llifstream::is_open() const  void llifstream::open(const char* _Filename, ios_base::openmode _Mode)  {	// open a C stream with specified mode -	if (_M_filebuf.open(_Filename, _Mode | ios_base::in) == 0) +  #if LL_WINDOWS +	llutf16string wideName = utf8str_to_utf16str( _Filename ); +	if (_M_filebuf.open( wideName.c_str(), _Mode | ios_base::in) == 0)  	{  		_Myios::setstate(ios_base::failbit);  	} @@ -927,6 +931,7 @@ void llifstream::open(const char* _Filename, ios_base::openmode _Mode)  		_Myios::clear();  	}  #else +	if (_M_filebuf.open(_Filename, _Mode | ios_base::in) == 0)  	{  		this->setstate(ios_base::failbit);  	} @@ -969,7 +974,8 @@ llofstream::llofstream(const std::string& _Filename,  #if LL_WINDOWS  	std::ostream(&_M_filebuf)  { -	if (_M_filebuf.open(_Filename.c_str(), _Mode | ios_base::out) == 0) +	llutf16string wideName = utf8str_to_utf16str( _Filename ); +	if (_M_filebuf.open( wideName.c_str(), _Mode | ios_base::out) == 0)  	{  		_Myios::setstate(ios_base::failbit);  	} @@ -988,7 +994,8 @@ llofstream::llofstream(const char* _Filename,  #if LL_WINDOWS  	std::ostream(&_M_filebuf)  { -	if (_M_filebuf.open(_Filename, _Mode | ios_base::out) == 0) +	llutf16string wideName = utf8str_to_utf16str( _Filename ); +	if (_M_filebuf.open( wideName.c_str(), _Mode | ios_base::out) == 0)  	{  		_Myios::setstate(ios_base::failbit);  	} @@ -1032,8 +1039,9 @@ bool llofstream::is_open() const  void llofstream::open(const char* _Filename, ios_base::openmode _Mode)  {	// open a C stream with specified mode -	if (_M_filebuf.open(_Filename, _Mode | ios_base::out) == 0)  #if LL_WINDOWS +	llutf16string wideName = utf8str_to_utf16str( _Filename ); +	if (_M_filebuf.open( wideName.c_str(), _Mode | ios_base::out) == 0)  	{  		_Myios::setstate(ios_base::failbit);  	} @@ -1042,6 +1050,7 @@ void llofstream::open(const char* _Filename, ios_base::openmode _Mode)  		_Myios::clear();  	}  #else +	if (_M_filebuf.open(_Filename, _Mode | ios_base::out) == 0)  	{  		this->setstate(ios_base::failbit);  	} | 
