diff options
Diffstat (limited to 'indra/llvfs')
| -rw-r--r-- | indra/llvfs/lldir.cpp | 42 | ||||
| -rw-r--r-- | indra/llvfs/lldir.h | 4 | 
2 files changed, 20 insertions, 26 deletions
| diff --git a/indra/llvfs/lldir.cpp b/indra/llvfs/lldir.cpp index da4abde451..1f0c4fe13a 100644 --- a/indra/llvfs/lldir.cpp +++ b/indra/llvfs/lldir.cpp @@ -565,27 +565,23 @@ std::string LLDir::getForbiddenFileChars()  	return "\\/:*?\"<>|";  } -void LLDir::setLindenUserDir(const std::string &first, const std::string &last) +void LLDir::setLindenUserDir(const std::string &username)  { -	// if both first and last aren't set, that's bad. -	if (!first.empty() && !last.empty()) +	// if the username isn't set, that's bad +	if (!username.empty())  	{  		// some platforms have case-sensitive filesystems, so be  		// utterly consistent with our firstname/lastname case. -		std::string firstlower(first); -		LLStringUtil::toLower(firstlower); -		std::string lastlower(last); -		LLStringUtil::toLower(lastlower); +		std::string userlower(username); +		LLStringUtil::toLower(userlower); +		LLStringUtil::replaceChar(userlower, ' ', '_');  		mLindenUserDir = getOSUserAppDir();  		mLindenUserDir += mDirDelimiter; -		mLindenUserDir += firstlower; -		mLindenUserDir += "_"; -		mLindenUserDir += lastlower; -		llinfos << "Got name for LLDir::setLindenUserDir(first='" << first << "', last='" << last << "')" << llendl; +		mLindenUserDir += userlower;  	}  	else  	{ -		llerrs << "Invalid name for LLDir::setLindenUserDir(first='" << first << "', last='" << last << "')" << llendl; +		llerrs << "NULL name for LLDir::setLindenUserDir" << llendl;  	}  	dumpCurrentDirectories();	 @@ -603,27 +599,25 @@ void LLDir::setChatLogsDir(const std::string &path)  	}  } -void LLDir::setPerAccountChatLogsDir(const std::string &first, const std::string &last) +void LLDir::setPerAccountChatLogsDir(const std::string &username)  {  	// if both first and last aren't set, assume we're grabbing the cached dir -	if (!first.empty() && !last.empty()) +	if (!username.empty())  	{  		// some platforms have case-sensitive filesystems, so be  		// utterly consistent with our firstname/lastname case. -		std::string firstlower(first); -		LLStringUtil::toLower(firstlower); -		std::string lastlower(last); -		LLStringUtil::toLower(lastlower); -		mPerAccountChatLogsDir = getChatLogsDir(); -		mPerAccountChatLogsDir += mDirDelimiter; -		mPerAccountChatLogsDir += firstlower; -		mPerAccountChatLogsDir += "_"; -		mPerAccountChatLogsDir += lastlower; +		std::string userlower(username); +		LLStringUtil::toLower(userlower); +		LLStringUtil::replaceChar(userlower, ' ', '_'); +		mLindenUserDir = getChatLogsDir(); +		mLindenUserDir += mDirDelimiter; +		mLindenUserDir += userlower;  	}  	else  	{ -		llwarns << "Invalid name for LLDir::setPerAccountChatLogsDir" << llendl; +		llerrs << "NULL name for LLDir::setPerAccountChatLogsDir" << llendl;  	} +	  }  void LLDir::setSkinFolder(const std::string &skin_folder) diff --git a/indra/llvfs/lldir.h b/indra/llvfs/lldir.h index 9067d75bac..05d5efc66f 100644 --- a/indra/llvfs/lldir.h +++ b/indra/llvfs/lldir.h @@ -137,8 +137,8 @@ class LLDir  	static std::string getForbiddenFileChars();  	virtual void setChatLogsDir(const std::string &path);		// Set the chat logs dir to this user's dir -	virtual void setPerAccountChatLogsDir(const std::string &first, const std::string &last);		// Set the per user chat log directory. -	virtual void setLindenUserDir(const std::string &first, const std::string &last);		// Set the linden user dir to this user's dir +	virtual void setPerAccountChatLogsDir(const std::string &username);		// Set the per user chat log directory. +	virtual void setLindenUserDir(const std::string &username);		// Set the linden user dir to this user's dir  	virtual void setSkinFolder(const std::string &skin_folder);  	virtual bool setCacheDir(const std::string &path); | 
