Automated merge with tip of viewer64

Wed, 03 Jan 2018 13:57:07 -0800

author
callum_linden
date
Wed, 03 Jan 2018 13:57:07 -0800
changeset 55048
4d9e8c74f8fd
parent 55047
f66c53f7d508
parent 54594
91de0c379cd2
child 55049
91c0a2f152f2

Automated merge with tip of viewer64

autobuild.xml file | annotate | diff | revisions
     1.1 --- a/autobuild.xml	Mon Dec 18 17:14:28 2017 -0800
     1.2 +++ b/autobuild.xml	Wed Jan 03 13:57:07 2018 -0800
     1.3 @@ -3231,9 +3231,9 @@
     1.4              <key>archive</key>
     1.5              <map>
     1.6                <key>hash</key>
     1.7 -              <string>a1cc313f9238316a514b8d3056f86b31</string>
     1.8 +              <string>a8071b247d78e5555340f83e3491e7df</string>
     1.9                <key>url</key>
    1.10 -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/11774/68078/viewer_manager-1.0.511462-darwin64-511462.tar.bz2</string>
    1.11 +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/12055/70540/viewer_manager-1.0.511658-darwin64-511658.tar.bz2</string>
    1.12              </map>
    1.13              <key>name</key>
    1.14              <string>darwin64</string>
    1.15 @@ -3255,9 +3255,9 @@
    1.16              <key>archive</key>
    1.17              <map>
    1.18                <key>hash</key>
    1.19 -              <string>73894a49bd63e06adc0e365efae6e03e</string>
    1.20 +              <string>a9597ba92618b2616e058dee8f56c80c</string>
    1.21                <key>url</key>
    1.22 -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/11775/68084/viewer_manager-1.0.511462-windows-511462.tar.bz2</string>
    1.23 +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/12056/70546/viewer_manager-1.0.511658-windows-511658.tar.bz2</string>
    1.24              </map>
    1.25              <key>name</key>
    1.26              <string>windows</string>
    1.27 @@ -3268,7 +3268,7 @@
    1.28          <key>source_type</key>
    1.29          <string>hg</string>
    1.30          <key>version</key>
    1.31 -        <string>1.0.511462</string>
    1.32 +        <string>1.0.511658</string>
    1.33        </map>
    1.34        <key>vlc-bin</key>
    1.35        <map>
     2.1 --- a/indra/llcommon/llfile.cpp	Mon Dec 18 17:14:28 2017 -0800
     2.2 +++ b/indra/llcommon/llfile.cpp	Wed Jan 03 13:57:07 2018 -0800
     2.3 @@ -182,7 +182,14 @@
     2.4  	int rc = ::mkdir(dirname.c_str(), (mode_t)perms);
     2.5  #endif
     2.6  	// We often use mkdir() to ensure the existence of a directory that might
     2.7 -	// already exist. Don't spam the log if it does.
     2.8 +	// already exist. There is no known case in which we want to call out as
     2.9 +	// an error the requested directory already existing.
    2.10 +	if (rc < 0 && errno == EEXIST)
    2.11 +	{
    2.12 +		// this is not the error you want, move along
    2.13 +		return 0;
    2.14 +	}
    2.15 +	// anything else might be a problem
    2.16  	return warnif("mkdir", dirname, rc, EEXIST);
    2.17  }
    2.18  
     3.1 --- a/indra/llcommon/llfile.h	Mon Dec 18 17:14:28 2017 -0800
     3.2 +++ b/indra/llcommon/llfile.h	Wed Jan 03 13:57:07 2018 -0800
     3.3 @@ -69,6 +69,7 @@
     3.4  
     3.5  	// perms is a permissions mask like 0777 or 0700.  In most cases it will
     3.6  	// be overridden by the user's umask.  It is ignored on Windows.
     3.7 +	// mkdir() considers "directory already exists" to be SUCCESS.
     3.8  	static	int		mkdir(const std::string& filename, int perms = 0700);
     3.9  
    3.10  	static	int		rmdir(const std::string& filename);
     4.1 --- a/indra/llui/llspellcheck.cpp	Mon Dec 18 17:14:28 2017 -0800
     4.2 +++ b/indra/llui/llspellcheck.cpp	Wed Jan 03 13:57:07 2018 -0800
     4.3 @@ -406,10 +406,7 @@
     4.4  const std::string LLSpellChecker::getDictionaryUserPath()
     4.5  {
     4.6  	std::string dict_path = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, DICT_DIR, "");
     4.7 -	if (!gDirUtilp->fileExists(dict_path))
     4.8 -	{
     4.9 -		LLFile::mkdir(dict_path);
    4.10 -	}
    4.11 +	LLFile::mkdir(dict_path);
    4.12  	return dict_path;
    4.13  }
    4.14  
     5.1 --- a/indra/llvfs/lldir.cpp	Mon Dec 18 17:14:28 2017 -0800
     5.2 +++ b/indra/llvfs/lldir.cpp	Wed Jan 03 13:57:07 2018 -0800
     5.3 @@ -597,7 +597,7 @@
     5.4  				<< "': prefix is empty, possible bad filename" << LL_ENDL;
     5.5  	}
     5.6  
     5.7 -	std::string expanded_filename = add(add(prefix, subdir1), subdir2);
     5.8 +	std::string expanded_filename = add(prefix, subdir1, subdir2);
     5.9  	if (expanded_filename.empty() && in_filename.empty())
    5.10  	{
    5.11  		return "";
    5.12 @@ -693,7 +693,7 @@
    5.13  		std::string subdir_path(add(skindir, subdir));
    5.14  		BOOST_FOREACH(std::string subsubdir, subsubdirs)
    5.15  		{
    5.16 -			std::string full_path(add(add(subdir_path, subsubdir), filename));
    5.17 +			std::string full_path(add(subdir_path, subsubdir, filename));
    5.18  			if (fileExists(full_path))
    5.19  			{
    5.20  				function(subsubdir, full_path);
    5.21 @@ -1052,13 +1052,6 @@
    5.22  	LL_DEBUGS("AppInit","Directories") << "  SkinDir:               " << getSkinDir() << LL_ENDL;
    5.23  }
    5.24  
    5.25 -std::string LLDir::add(const std::string& path, const std::string& name) const
    5.26 -{
    5.27 -	std::string destpath(path);
    5.28 -	append(destpath, name);
    5.29 -	return destpath;
    5.30 -}
    5.31 -
    5.32  void LLDir::append(std::string& destpath, const std::string& name) const
    5.33  {
    5.34  	// Delegate question of whether we need a separator to helper method.
     6.1 --- a/indra/llvfs/lldir.h	Mon Dec 18 17:14:28 2017 -0800
     6.2 +++ b/indra/llvfs/lldir.h	Wed Jan 03 13:57:07 2018 -0800
     6.3 @@ -202,9 +202,28 @@
     6.4  	/// Append specified @a name to @a destpath, separated by getDirDelimiter()
     6.5  	/// if both are non-empty.
     6.6  	void append(std::string& destpath, const std::string& name) const;
     6.7 -	/// Append specified @a name to @a path, separated by getDirDelimiter()
     6.8 -	/// if both are non-empty. Return result, leaving @a path unmodified.
     6.9 -	std::string add(const std::string& path, const std::string& name) const;
    6.10 +	/// Variadic form: append @a name0 and @a name1 and arbitrary other @a
    6.11 +	/// names to @a destpath, separated by getDirDelimiter() as needed.
    6.12 +	template <typename... NAMES>
    6.13 +	void append(std::string& destpath, const std::string& name0, const std::string& name1,
    6.14 +				const NAMES& ... names) const
    6.15 +	{
    6.16 +		// In a typical recursion case, we'd accept (destpath, name0, names).
    6.17 +		// We accept (destpath, name0, name1, names) because it's important to
    6.18 +		// delegate the two-argument case to the non-template implementation.
    6.19 +		append(destpath, name0);
    6.20 +		append(destpath, name1, names...);
    6.21 +	}
    6.22 +
    6.23 +	/// Append specified @a names to @a path, separated by getDirDelimiter()
    6.24 +	/// as needed. Return result, leaving @a path unmodified.
    6.25 +	template <typename... NAMES>
    6.26 +	std::string add(const std::string& path, const NAMES& ... names) const
    6.27 +	{
    6.28 +		std::string destpath(path);
    6.29 +		append(destpath, names...);
    6.30 +		return destpath;
    6.31 +	}
    6.32  
    6.33  protected:
    6.34  	// Does an add() or append() call need a directory delimiter?
     7.1 --- a/indra/llvfs/lldir_linux.cpp	Mon Dec 18 17:14:28 2017 -0800
     7.2 +++ b/indra/llvfs/lldir_linux.cpp	Wed Jan 03 13:57:07 2018 -0800
     7.3 @@ -185,41 +185,29 @@
     7.4  	int res = LLFile::mkdir(mOSUserAppDir);
     7.5  	if (res == -1)
     7.6  	{
     7.7 -		if (errno != EEXIST)
     7.8 -		{
     7.9 -			LL_WARNS() << "Couldn't create app user dir " << mOSUserAppDir << LL_ENDL;
    7.10 -			LL_WARNS() << "Default to base dir" << mOSUserDir << LL_ENDL;
    7.11 -			mOSUserAppDir = mOSUserDir;
    7.12 -		}
    7.13 +		LL_WARNS() << "Couldn't create app user dir " << mOSUserAppDir << LL_ENDL;
    7.14 +		LL_WARNS() << "Default to base dir" << mOSUserDir << LL_ENDL;
    7.15 +		mOSUserAppDir = mOSUserDir;
    7.16  	}
    7.17  
    7.18  	res = LLFile::mkdir(getExpandedFilename(LL_PATH_LOGS,""));
    7.19  	if (res == -1)
    7.20  	{
    7.21 -		if (errno != EEXIST)
    7.22 -		{
    7.23 -			LL_WARNS() << "Couldn't create LL_PATH_LOGS dir " << getExpandedFilename(LL_PATH_LOGS,"") << LL_ENDL;
    7.24 -		}
    7.25 +		LL_WARNS() << "Couldn't create LL_PATH_LOGS dir " << getExpandedFilename(LL_PATH_LOGS,"") << LL_ENDL;
    7.26  	}
    7.27  	
    7.28  	res = LLFile::mkdir(getExpandedFilename(LL_PATH_USER_SETTINGS,""));
    7.29  	if (res == -1)
    7.30  	{
    7.31 -		if (errno != EEXIST)
    7.32 -		{
    7.33 -			LL_WARNS() << "Couldn't create LL_PATH_USER_SETTINGS dir " << getExpandedFilename(LL_PATH_USER_SETTINGS,"") << LL_ENDL;
    7.34 -		}
    7.35 +		LL_WARNS() << "Couldn't create LL_PATH_USER_SETTINGS dir " << getExpandedFilename(LL_PATH_USER_SETTINGS,"") << LL_ENDL;
    7.36  	}
    7.37 -	
    7.38 +
    7.39  	res = LLFile::mkdir(getExpandedFilename(LL_PATH_CACHE,""));
    7.40  	if (res == -1)
    7.41  	{
    7.42 -		if (errno != EEXIST)
    7.43 -		{
    7.44 -			LL_WARNS() << "Couldn't create LL_PATH_CACHE dir " << getExpandedFilename(LL_PATH_CACHE,"") << LL_ENDL;
    7.45 -		}
    7.46 +		LL_WARNS() << "Couldn't create LL_PATH_CACHE dir " << getExpandedFilename(LL_PATH_CACHE,"") << LL_ENDL;
    7.47  	}
    7.48 -	
    7.49 +
    7.50  	mCAFile = getExpandedFilename(LL_PATH_APP_SETTINGS, "CA.pem");
    7.51  }
    7.52  
     8.1 --- a/indra/llvfs/lldir_solaris.cpp	Mon Dec 18 17:14:28 2017 -0800
     8.2 +++ b/indra/llvfs/lldir_solaris.cpp	Wed Jan 03 13:57:07 2018 -0800
     8.3 @@ -203,41 +203,29 @@
     8.4  	int res = LLFile::mkdir(mOSUserAppDir);
     8.5  	if (res == -1)
     8.6  	{
     8.7 -		if (errno != EEXIST)
     8.8 -		{
     8.9 -			LL_WARNS() << "Couldn't create app user dir " << mOSUserAppDir << LL_ENDL;
    8.10 -			LL_WARNS() << "Default to base dir" << mOSUserDir << LL_ENDL;
    8.11 -			mOSUserAppDir = mOSUserDir;
    8.12 -		}
    8.13 +		LL_WARNS() << "Couldn't create app user dir " << mOSUserAppDir << LL_ENDL;
    8.14 +		LL_WARNS() << "Default to base dir" << mOSUserDir << LL_ENDL;
    8.15 +		mOSUserAppDir = mOSUserDir;
    8.16  	}
    8.17  
    8.18  	res = LLFile::mkdir(getExpandedFilename(LL_PATH_LOGS,""));
    8.19  	if (res == -1)
    8.20  	{
    8.21 -		if (errno != EEXIST)
    8.22 -		{
    8.23 -			LL_WARNS() << "Couldn't create LL_PATH_LOGS dir " << getExpandedFilename(LL_PATH_LOGS,"") << LL_ENDL;
    8.24 -		}
    8.25 +		LL_WARNS() << "Couldn't create LL_PATH_LOGS dir " << getExpandedFilename(LL_PATH_LOGS,"") << LL_ENDL;
    8.26  	}
    8.27  	
    8.28  	res = LLFile::mkdir(getExpandedFilename(LL_PATH_USER_SETTINGS,""));
    8.29  	if (res == -1)
    8.30  	{
    8.31 -		if (errno != EEXIST)
    8.32 -		{
    8.33 -			LL_WARNS() << "Couldn't create LL_PATH_USER_SETTINGS dir " << getExpandedFilename(LL_PATH_USER_SETTINGS,"") << LL_ENDL;
    8.34 -		}
    8.35 +		LL_WARNS() << "Couldn't create LL_PATH_USER_SETTINGS dir " << getExpandedFilename(LL_PATH_USER_SETTINGS,"") << LL_ENDL;
    8.36  	}
    8.37 -	
    8.38 +
    8.39  	res = LLFile::mkdir(getExpandedFilename(LL_PATH_CACHE,""));
    8.40  	if (res == -1)
    8.41  	{
    8.42 -		if (errno != EEXIST)
    8.43 -		{
    8.44 -			LL_WARNS() << "Couldn't create LL_PATH_CACHE dir " << getExpandedFilename(LL_PATH_CACHE,"") << LL_ENDL;
    8.45 -		}
    8.46 +		LL_WARNS() << "Couldn't create LL_PATH_CACHE dir " << getExpandedFilename(LL_PATH_CACHE,"") << LL_ENDL;
    8.47  	}
    8.48 -	
    8.49 +
    8.50  	mCAFile = getExpandedFilename(LL_PATH_APP_SETTINGS, "CA.pem");
    8.51  }
    8.52  
     9.1 --- a/indra/llvfs/lldir_win32.cpp	Mon Dec 18 17:14:28 2017 -0800
     9.2 +++ b/indra/llvfs/lldir_win32.cpp	Wed Jan 03 13:57:07 2018 -0800
     9.3 @@ -32,10 +32,7 @@
     9.4  #include "llerror.h"
     9.5  #include "llrand.h"		// for gLindenLabRandomNumber
     9.6  #include <shlobj.h>
     9.7 -#include <Knownfolders.h>
     9.8 -#include <iostream>
     9.9 -#include <map>
    9.10 -#include <Objbase.h>                // CoTaskMemFree()
    9.11 +#include <fstream>
    9.12  
    9.13  #include <direct.h>
    9.14  #include <errno.h>
    9.15 @@ -46,47 +43,15 @@
    9.16  #define PACKVERSION(major,minor) MAKELONG(minor,major)
    9.17  DWORD GetDllVersion(LPCTSTR lpszDllName);
    9.18  
    9.19 -namespace {
    9.20 -
    9.21 -std::string getKnownFolderPath(const std::string& desc, REFKNOWNFOLDERID folderid)
    9.22 -{
    9.23 -    // https://msdn.microsoft.com/en-us/library/windows/desktop/bb762188(v=vs.85).aspx
    9.24 -    PWSTR wstrptr = 0;
    9.25 -    HRESULT result = SHGetKnownFolderPath(
    9.26 -        folderid,
    9.27 -        KF_FLAG_DEFAULT,            // no flags
    9.28 -        NULL,                       // current user, no impersonation
    9.29 -        &wstrptr);
    9.30 -    if (result == S_OK)
    9.31 -    {
    9.32 -        std::string utf8 = utf16str_to_utf8str(llutf16string(wstrptr));
    9.33 -        // have to free the returned pointer after copying its data
    9.34 -        CoTaskMemFree(wstrptr);
    9.35 -        return utf8;
    9.36 -    }
    9.37 -
    9.38 -    // gack, no logging yet!
    9.39 -    // at least say something to a developer trying to debug this...
    9.40 -    static std::map<HRESULT, const char*> codes
    9.41 -    {
    9.42 -        { E_FAIL, "E_FAIL; known folder does not have a path?" },
    9.43 -        { E_INVALIDARG, "E_INVALIDARG; not present on system?" }
    9.44 -    };
    9.45 -    auto found = codes.find(result);
    9.46 -    const char* text = (found == codes.end())? "unknown" : found->second;
    9.47 -    std::cout << "*** SHGetKnownFolderPath(" << desc << ") failed with "
    9.48 -              << result << " (" << text << ")\n";
    9.49 -    return {};
    9.50 -}
    9.51 -
    9.52 -} // anonymous namespace
    9.53 -
    9.54  LLDir_Win32::LLDir_Win32()
    9.55  {
    9.56 +	// set this first: used by append() and add() methods
    9.57  	mDirDelimiter = "\\";
    9.58  
    9.59 -	// Application Data is where user settings go
    9.60 -	mOSUserDir = getKnownFolderPath("RoamingAppData", FOLDERID_RoamingAppData);
    9.61 +	// Application Data is where user settings go. We rely on $APPDATA being
    9.62 +	// correct; in fact the VMP makes a point of setting it properly, since
    9.63 +	// Windows itself botches the job for non-ASCII usernames (MAINT-8087).
    9.64 +	mOSUserDir = ll_safe_string(getenv("APPDATA"));
    9.65  
    9.66  	// We want cache files to go on the local disk, even if the
    9.67  	// user is on a network with a "roaming profile".
    9.68 @@ -96,7 +61,7 @@
    9.69  	//
    9.70  	// We used to store the cache in AppData\Roaming, and the installer
    9.71  	// cleans up that version on upgrade.  JC
    9.72 -	mOSCacheDir = getKnownFolderPath("LocalAppData", FOLDERID_LocalAppData);
    9.73 +	mOSCacheDir = ll_safe_string(getenv("LOCALAPPDATA"));
    9.74  
    9.75  	WCHAR w_str[MAX_PATH];
    9.76  	if (GetTempPath(MAX_PATH, w_str))
    9.77 @@ -122,6 +87,38 @@
    9.78  		mTempDir = mOSUserDir;
    9.79  	}
    9.80  
    9.81 +/*==========================================================================*|
    9.82 +	// Now that we've got mOSUserDir, one way or another, let's see how we did
    9.83 +	// with our environment variables.
    9.84 +	{
    9.85 +		auto report = [this](std::ostream& out){
    9.86 +			out << "mOSUserDir  = '" << mOSUserDir  << "'\n"
    9.87 +				<< "mOSCacheDir = '" << mOSCacheDir << "'\n"
    9.88 +				<< "mTempDir    = '" << mTempDir    << "'" << std::endl;
    9.89 +		};
    9.90 +		int res = LLFile::mkdir(mOSUserDir);
    9.91 +		if (res == -1)
    9.92 +		{
    9.93 +			// If we couldn't even create the directory, just blurt to stderr
    9.94 +			report(std::cerr);
    9.95 +		}
    9.96 +		else
    9.97 +		{
    9.98 +			// successfully created logdir, plunk a log file there
    9.99 +			std::string logfilename(add(mOSUserDir, "lldir.log"));
   9.100 +			std::ofstream logfile(logfilename.c_str());
   9.101 +			if (! logfile.is_open())
   9.102 +			{
   9.103 +				report(std::cerr);
   9.104 +			}
   9.105 +			else
   9.106 +			{
   9.107 +				report(logfile);
   9.108 +			}
   9.109 +		}
   9.110 +	}
   9.111 +|*==========================================================================*/
   9.112 +
   9.113  //	fprintf(stderr, "mTempDir = <%s>",mTempDir);
   9.114  
   9.115  	// Set working directory, for LLDir::getWorkingDir()
   9.116 @@ -167,7 +164,7 @@
   9.117  	// 'llplugin' need to go somewhere else.
   9.118  	// alas... this also gets called during static initialization 
   9.119  	// time due to the construction of gDirUtil in lldir.cpp.
   9.120 -	if(! LLFile::isdir(mAppRODataDir + mDirDelimiter + "skins"))
   9.121 +	if(! LLFile::isdir(add(mAppRODataDir, "skins")))
   9.122  	{
   9.123  		// What? No skins in the working dir?
   9.124  		// Try the executable's directory.
   9.125 @@ -176,7 +173,7 @@
   9.126  
   9.127  //	LL_INFOS() << "mAppRODataDir = " << mAppRODataDir << LL_ENDL;
   9.128  
   9.129 -	mSkinBaseDir = mAppRODataDir + mDirDelimiter + "skins";
   9.130 +	mSkinBaseDir = add(mAppRODataDir, "skins");
   9.131  
   9.132  	// Build the default cache directory
   9.133  	mDefaultCacheDir = buildSLOSCacheDir();
   9.134 @@ -185,13 +182,10 @@
   9.135  	int res = LLFile::mkdir(mDefaultCacheDir);
   9.136  	if (res == -1)
   9.137  	{
   9.138 -		if (errno != EEXIST)
   9.139 -		{
   9.140 -			LL_WARNS() << "Couldn't create LL_PATH_CACHE dir " << mDefaultCacheDir << LL_ENDL;
   9.141 -		}
   9.142 +		LL_WARNS() << "Couldn't create LL_PATH_CACHE dir " << mDefaultCacheDir << LL_ENDL;
   9.143  	}
   9.144  
   9.145 -	mLLPluginDir = mExecutableDir + mDirDelimiter + "llplugin";
   9.146 +	mLLPluginDir = add(mExecutableDir, "llplugin");
   9.147  }
   9.148  
   9.149  LLDir_Win32::~LLDir_Win32()
   9.150 @@ -207,52 +201,38 @@
   9.151  	if (!app_read_only_data_dir.empty())
   9.152  	{
   9.153  		mAppRODataDir = app_read_only_data_dir;
   9.154 -		mSkinBaseDir = mAppRODataDir + mDirDelimiter + "skins";
   9.155 +		mSkinBaseDir = add(mAppRODataDir, "skins");
   9.156  	}
   9.157  	mAppName = app_name;
   9.158 -	mOSUserAppDir = mOSUserDir;
   9.159 -	mOSUserAppDir += "\\";
   9.160 -	mOSUserAppDir += app_name;
   9.161 +	mOSUserAppDir = add(mOSUserDir, app_name);
   9.162  
   9.163  	int res = LLFile::mkdir(mOSUserAppDir);
   9.164  	if (res == -1)
   9.165  	{
   9.166 -		if (errno != EEXIST)
   9.167 -		{
   9.168 -			LL_WARNS() << "Couldn't create app user dir " << mOSUserAppDir << LL_ENDL;
   9.169 -			LL_WARNS() << "Default to base dir" << mOSUserDir << LL_ENDL;
   9.170 -			mOSUserAppDir = mOSUserDir;
   9.171 -		}
   9.172 +		LL_WARNS() << "Couldn't create app user dir " << mOSUserAppDir << LL_ENDL;
   9.173 +		LL_WARNS() << "Default to base dir" << mOSUserDir << LL_ENDL;
   9.174 +		mOSUserAppDir = mOSUserDir;
   9.175  	}
   9.176  	//dumpCurrentDirectories();
   9.177  
   9.178  	res = LLFile::mkdir(getExpandedFilename(LL_PATH_LOGS,""));
   9.179  	if (res == -1)
   9.180  	{
   9.181 -		if (errno != EEXIST)
   9.182 -		{
   9.183 -			LL_WARNS() << "Couldn't create LL_PATH_LOGS dir " << getExpandedFilename(LL_PATH_LOGS,"") << LL_ENDL;
   9.184 -		}
   9.185 +		LL_WARNS() << "Couldn't create LL_PATH_LOGS dir " << getExpandedFilename(LL_PATH_LOGS,"") << LL_ENDL;
   9.186  	}
   9.187 -	
   9.188 +
   9.189  	res = LLFile::mkdir(getExpandedFilename(LL_PATH_USER_SETTINGS,""));
   9.190  	if (res == -1)
   9.191  	{
   9.192 -		if (errno != EEXIST)
   9.193 -		{
   9.194 -			LL_WARNS() << "Couldn't create LL_PATH_USER_SETTINGS dir " << getExpandedFilename(LL_PATH_USER_SETTINGS,"") << LL_ENDL;
   9.195 -		}
   9.196 +		LL_WARNS() << "Couldn't create LL_PATH_USER_SETTINGS dir " << getExpandedFilename(LL_PATH_USER_SETTINGS,"") << LL_ENDL;
   9.197  	}
   9.198 -	
   9.199 +
   9.200  	res = LLFile::mkdir(getExpandedFilename(LL_PATH_CACHE,""));
   9.201  	if (res == -1)
   9.202  	{
   9.203 -		if (errno != EEXIST)
   9.204 -		{
   9.205 -			LL_WARNS() << "Couldn't create LL_PATH_CACHE dir " << getExpandedFilename(LL_PATH_CACHE,"") << LL_ENDL;
   9.206 -		}
   9.207 +		LL_WARNS() << "Couldn't create LL_PATH_CACHE dir " << getExpandedFilename(LL_PATH_CACHE,"") << LL_ENDL;
   9.208  	}
   9.209 -	
   9.210 +
   9.211  	mCAFile = getExpandedFilename(LL_PATH_APP_SETTINGS, "CA.pem");
   9.212  }
   9.213  
    10.1 --- a/indra/newview/llappviewer.cpp	Mon Dec 18 17:14:28 2017 -0800
    10.2 +++ b/indra/newview/llappviewer.cpp	Wed Jan 03 13:57:07 2018 -0800
    10.3 @@ -4136,10 +4136,7 @@
    10.4  	S32 res = LLFile::mkdir("StaticVFSDump");
    10.5  	if (res == -1)
    10.6  	{
    10.7 -		if (errno != EEXIST)
    10.8 -		{
    10.9 -			LL_WARNS() << "Couldn't create dir StaticVFSDump" << LL_ENDL;
   10.10 -		}
   10.11 +		LL_WARNS() << "Couldn't create dir StaticVFSDump" << LL_ENDL;
   10.12  	}
   10.13  	SetCurrentDirectory(utf8str_to_utf16str("StaticVFSDump").c_str());
   10.14  	gStaticVFS->dumpFiles();
   10.15 @@ -4153,10 +4150,7 @@
   10.16  	res = LLFile::mkdir("VFSDump");
   10.17  	if (res == -1)
   10.18  	{
   10.19 -		if (errno != EEXIST)
   10.20 -		{
   10.21 -			LL_WARNS() << "Couldn't create dir VFSDump" << LL_ENDL;
   10.22 -		}
   10.23 +		LL_WARNS() << "Couldn't create dir VFSDump" << LL_ENDL;
   10.24  	}
   10.25  	SetCurrentDirectory(utf8str_to_utf16str("VFSDump").c_str());
   10.26  	gVFS->dumpFiles();
    11.1 --- a/indra/newview/llpresetsmanager.cpp	Mon Dec 18 17:14:28 2017 -0800
    11.2 +++ b/indra/newview/llpresetsmanager.cpp	Wed Jan 03 13:57:07 2018 -0800
    11.3 @@ -78,16 +78,10 @@
    11.4  	std::string presets_path = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, PRESETS_DIR);
    11.5  	std::string full_path;
    11.6  
    11.7 -	if (!gDirUtilp->fileExists(presets_path))
    11.8 -	{
    11.9 -		LLFile::mkdir(presets_path);
   11.10 -	}
   11.11 +	LLFile::mkdir(presets_path);
   11.12  
   11.13  	full_path = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, PRESETS_DIR, subdirectory);
   11.14 -	if (!gDirUtilp->fileExists(full_path))
   11.15 -	{
   11.16 -		LLFile::mkdir(full_path);
   11.17 -	}
   11.18 +	LLFile::mkdir(full_path);
   11.19  
   11.20  	return full_path;
   11.21  }
    12.1 --- a/indra/newview/lltexturecache.cpp	Mon Dec 18 17:14:28 2017 -0800
    12.2 +++ b/indra/newview/lltexturecache.cpp	Wed Jan 03 13:57:07 2018 -0800
    12.3 @@ -1054,11 +1054,11 @@
    12.4  			return max_size ;
    12.5  		}
    12.6  	}
    12.7 -	
    12.8 +
    12.9  	if (!mReadOnly)
   12.10  	{
   12.11  		LLFile::mkdir(mTexturesDirName);
   12.12 -		
   12.13 +
   12.14  		const char* subdirs = "0123456789abcdef";
   12.15  		for (S32 i=0; i<16; i++)
   12.16  		{
   12.17 @@ -1602,11 +1602,11 @@
   12.18  
   12.19  	closeHeaderEntriesFile();//close possible file handler
   12.20  	purgeAllTextures(false) ; //clear the cache.
   12.21 -	
   12.22 +
   12.23  	if (!mReadOnly) //regenerate the directory tree if not exists.
   12.24  	{
   12.25  		LLFile::mkdir(mTexturesDirName);
   12.26 -		
   12.27 +
   12.28  		const char* subdirs = "0123456789abcdef";
   12.29  		for (S32 i=0; i<16; i++)
   12.30  		{
    13.1 --- a/indra/newview/viewer_manifest.py	Mon Dec 18 17:14:28 2017 -0800
    13.2 +++ b/indra/newview/viewer_manifest.py	Wed Jan 03 13:57:07 2018 -0800
    13.3 @@ -689,10 +689,10 @@
    13.4              self.path("zh-CN.pak")
    13.5              self.path("zh-TW.pak")
    13.6  
    13.7 -            with self.prefix(src=os.path.join(pkgdir, 'bin', 'release'), dst="llplugin"):
    13.8 -                self.path("libvlc.dll")
    13.9 -                self.path("libvlccore.dll")
   13.10 -                self.path("plugins/")
   13.11 +        with self.prefix(src=os.path.join(pkgdir, 'bin', 'release'), dst="llplugin"):
   13.12 +            self.path("libvlc.dll")
   13.13 +            self.path("libvlccore.dll")
   13.14 +            self.path("plugins/")
   13.15  
   13.16          # pull in the crash logger and updater from other projects
   13.17          # tag:"crash-logger" here as a cue to the exporter
    14.1 --- a/indra/test/CMakeLists.txt	Mon Dec 18 17:14:28 2017 -0800
    14.2 +++ b/indra/test/CMakeLists.txt	Wed Jan 03 13:57:07 2018 -0800
    14.3 @@ -73,9 +73,6 @@
    14.4    list(APPEND test_SOURCE_FILES
    14.5         llmessagetemplateparser_tut.cpp
    14.6         )
    14.7 -  set(EXTRA_WINDOWS_LIBRARIES "")
    14.8 -else (NOT WINDOWS)
    14.9 -  set(EXTRA_WINDOWS_LIBRARIES ole32)
   14.10  endif (NOT WINDOWS)
   14.11  
   14.12  set_source_files_properties(${test_HEADER_FILES}
   14.13 @@ -99,7 +96,6 @@
   14.14      ${GOOGLEMOCK_LIBRARIES}
   14.15      ${PTHREAD_LIBRARY}
   14.16      ${WINDOWS_LIBRARIES}
   14.17 -    ${EXTRA_WINDOWS_LIBRARIES}
   14.18      ${BOOST_PROGRAM_OPTIONS_LIBRARY}
   14.19      ${BOOST_REGEX_LIBRARY}
   14.20      ${BOOST_COROUTINE_LIBRARY}

mercurial