Merge Firestorm LGPL
commit
d794014c90
|
|
@ -952,11 +952,11 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>f6834ad22f311cf1e7091b90339531c0</string>
|
||||
<string>e137cd0eacda5df6204150b3bb51a971</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>md5</string>
|
||||
<key>url</key>
|
||||
<string>file:///opt/firestorm/fmodstudio-1.10.08-darwin-182341402.tar.bz2</string>
|
||||
<string>file:///opt/firestorm/fmodstudio-1.10.09-darwin-183011234.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin</string>
|
||||
|
|
@ -966,11 +966,11 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>4fc2133e8ad5bb206671e7f9dffc7d2d</string>
|
||||
<string>55abf769c33f10f9badb06eff85951f3</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>md5</string>
|
||||
<key>url</key>
|
||||
<string>file:///opt/firestorm/fmodstudio-1.10.08-linux-182341500.tar.bz2</string>
|
||||
<string>file:///opt/firestorm/fmodstudio-1.10.09-linux-183002243.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -980,11 +980,11 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>05f7f1790a3c57ec9741bd45bade9c43</string>
|
||||
<string>2318b66522d1247ae7887d39bcab4ec7</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>md5</string>
|
||||
<key>url</key>
|
||||
<string>file:///opt/firestorm/fmodstudio-1.10.08-linux64-182341501.tar.bz2</string>
|
||||
<string>file:///opt/firestorm/fmodstudio-1.10.09-linux64-183002242.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -994,11 +994,11 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>ccce662b1f3d31868093c6a25fdee3f5</string>
|
||||
<string>1693b43fbab6699e26d9f2767c336539</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>md5</string>
|
||||
<key>url</key>
|
||||
<string>file:///c:/cygwin/opt/firestorm/fmodstudio-1.10.08-windows-182340821.tar.bz2</string>
|
||||
<string>file:///c:/cygwin/opt/firestorm/fmodstudio-1.10.09-windows-183001324.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows</string>
|
||||
|
|
@ -1008,11 +1008,11 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>d796487f8504586309981f4eaa12e985</string>
|
||||
<string>2483cdd2b241bda235e7bbe7040e862f</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>md5</string>
|
||||
<key>url</key>
|
||||
<string>file:///c:/cygwin/opt/firestorm/fmodstudio-1.10.08-windows64-182340822.tar.bz2</string>
|
||||
<string>file:///c:/cygwin/opt/firestorm/fmodstudio-1.10.09-windows64-183001326.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
|
|
@ -1976,9 +1976,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>814bec3fa5045a18dce2bc4ce78b585d</string>
|
||||
<string>1b87073540bf081136e60777d99f09f2</string>
|
||||
<key>url</key>
|
||||
<string>file:///opt/firestorm/kdu-7.A.4-darwin-180792321.tar.bz2</string>
|
||||
<string>file:///opt/firestorm/kdu-7.A.5-darwin-182950050.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin</string>
|
||||
|
|
@ -2000,9 +2000,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>fa8a0db7f4900663f5d58eaac2b782b5</string>
|
||||
<string>daa35834257d08b59e876388d1244de8</string>
|
||||
<key>url</key>
|
||||
<string>file:///opt/firestorm/kdu-7.A.4-linux-180892203.tar.bz2</string>
|
||||
<string>file:///opt/firestorm/kdu-7.A.5-linux-182931105.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -2012,9 +2012,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>fa8a0db7f4900663f5d58eaac2b782b5</string>
|
||||
<string>daa35834257d08b59e876388d1244de8</string>
|
||||
<key>url</key>
|
||||
<string>file:///opt/firestorm/kdu-7.A.4-linux-180892203.tar.bz2</string>
|
||||
<string>file:///opt/firestorm/kdu-7.A.5-linux-182931105.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
@ -2898,9 +2898,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>e45ddfd82b5d18408f849c53800e468a</string>
|
||||
<string>246ed298944fd5200e4cac3703d6e075</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/open_libndofdev-0.8.182090947-linux-182090947.tar.bz2</string>
|
||||
<string>http://downloads.phoenixviewer.com/open_libndofdev-0.9.183150124-linux-183150124.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -2910,9 +2910,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>fc7ad14e06b4ac70a1d3849ef81ac844</string>
|
||||
<string>db8a7126178e7230fd6917a28cd67bd7</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/open_libndofdev-0.8.182090946-linux64-182090946.tar.bz2</string>
|
||||
<string>http://downloads.phoenixviewer.com/open_libndofdev-0.9.183150121-linux64-183150121.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
|
|||
|
|
@ -268,6 +268,39 @@ int LLFile::rename(const std::string& filename, const std::string& newname, int
|
|||
int rc = _wrename(utf16filename.c_str(),utf16newname.c_str());
|
||||
#else
|
||||
int rc = ::rename(filename.c_str(),newname.c_str());
|
||||
//<FS:Beq> FIRE-21669 & FIRE-11276 cross volume link rename workaround.
|
||||
// Note: This workaround generalises the solution previously applied in llxfer_file.
|
||||
// In doing this we add more failure modes to the operation, the copy can fail, the unlink can fail, in fact the copy can fail for multiple reasons.
|
||||
// "A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools." - Douglas Adams, Mostly harmless
|
||||
if (rc)
|
||||
{
|
||||
S32 error_number = errno;
|
||||
LL_INFOS("LLFile") << "Rename failure (" << error_number << ") - " << filename << " to " << newname << LL_ENDL;
|
||||
if (EXDEV == error_number)
|
||||
{
|
||||
if (copy(filename, newname)==true) // sigh in their wisdom LL decided that copy returns bool true not 0 whjen no error. using == true to make that clear.
|
||||
{
|
||||
LL_INFOS("LLFile") << "Rename across mounts not supported; copying+unlinking the file instead." << LL_ENDL;
|
||||
rc = LLFile::remove(filename);
|
||||
if (rc)
|
||||
{
|
||||
LL_WARNS("LLFile") << "unlink failed during copy/unlink workaround. Please check for stray file: " << filename << LL_ENDL;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS("LLFile") << "Copy failure during rename workaround for rename " << filename << " to " << newname << " (check both filenames and maunally rectify)" << LL_ENDL;
|
||||
}
|
||||
rc=0; // We need to reset rc here to avoid the higher level function taking corrective action on what could be bad files.
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS("LLFile") << "Rename fatally failed, no workaround attempted for errno="
|
||||
<< errno << "." << LL_ENDL;
|
||||
// rc will propogate alllowing corrective action above. Not entirely happy with this but it is what already happens so we're not making it worse.
|
||||
}
|
||||
}
|
||||
//</FS:Beq>
|
||||
#endif
|
||||
return warnif(STRINGIZE("rename to '" << newname << "' from"), filename, rc, supress_error);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -362,40 +362,44 @@ S32 LLXfer_File::processEOF()
|
|||
{
|
||||
if (LLFile::rename(mTempFilename,mLocalFilename))
|
||||
{
|
||||
#if !LL_WINDOWS
|
||||
S32 error_number = errno;
|
||||
LL_INFOS("Xfer") << "Rename failure (" << error_number << ") - "
|
||||
<< mTempFilename << " to " << mLocalFilename << LL_ENDL;
|
||||
if(EXDEV == error_number)
|
||||
{
|
||||
if(copy_file(mTempFilename, mLocalFilename) == 0)
|
||||
{
|
||||
LL_INFOS("Xfer") << "Rename across mounts; copying+unlinking the file instead." << LL_ENDL;
|
||||
unlink(mTempFilename.c_str());
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS("Xfer") << "Copy failure - " << mTempFilename << " to "
|
||||
<< mLocalFilename << LL_ENDL;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//LLFILE* fp = LLFile::fopen(mTempFilename, "r");
|
||||
//LL_WARNS() << "File " << mTempFilename << " does "
|
||||
// << (!fp ? "not" : "" ) << " exit." << LL_ENDL;
|
||||
//if(fp) fclose(fp);
|
||||
//fp = LLFile::fopen(mLocalFilename, "r");
|
||||
//LL_WARNS() << "File " << mLocalFilename << " does "
|
||||
// << (!fp ? "not" : "" ) << " exit." << LL_ENDL;
|
||||
//if(fp) fclose(fp);
|
||||
LL_WARNS("Xfer") << "Rename fatally failed, can only handle EXDEV ("
|
||||
<< EXDEV << ")" << LL_ENDL;
|
||||
}
|
||||
#else
|
||||
//<FS:Beq> FIRE-21669/FIRE-11276 : move similar fucntionality down into LLFile
|
||||
//#if !LL_WINDOWS
|
||||
// S32 error_number = errno;
|
||||
// LL_INFOS("Xfer") << "Rename failure (" << error_number << ") - "
|
||||
// << mTempFilename << " to " << mLocalFilename << LL_ENDL;
|
||||
// if(EXDEV == error_number)
|
||||
// {
|
||||
// if(copy_file(mTempFilename, mLocalFilename) == 0)
|
||||
// {
|
||||
// LL_INFOS("Xfer") << "Rename across mounts; copying+unlinking the file instead." << LL_ENDL;
|
||||
// unlink(mTempFilename.c_str());
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// LL_WARNS("Xfer") << "Copy failure - " << mTempFilename << " to "
|
||||
// << mLocalFilename << LL_ENDL;
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// //LLFILE* fp = LLFile::fopen(mTempFilename, "r");
|
||||
// //LL_WARNS() << "File " << mTempFilename << " does "
|
||||
// // << (!fp ? "not" : "" ) << " exit." << LL_ENDL;
|
||||
// //if(fp) fclose(fp);
|
||||
// //fp = LLFile::fopen(mLocalFilename, "r");
|
||||
// //LL_WARNS() << "File " << mLocalFilename << " does "
|
||||
// // << (!fp ? "not" : "" ) << " exit." << LL_ENDL;
|
||||
// //if(fp) fclose(fp);
|
||||
// LL_WARNS("Xfer") << "Rename fatally failed, can only handle EXDEV ("
|
||||
// << EXDEV << ")" << LL_ENDL;
|
||||
// }
|
||||
//#else
|
||||
// LL_WARNS("Xfer") << "Rename failure - " << mTempFilename << " to "
|
||||
// << mLocalFilename << LL_ENDL;
|
||||
//#endif
|
||||
//</FS:Beq>
|
||||
LL_WARNS("Xfer") << "Rename failure - " << mTempFilename << " to "
|
||||
<< mLocalFilename << LL_ENDL;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -137,7 +137,15 @@ void FloaterAO::updateList()
|
|||
currentSetName = AOEngine::instance().getCurrentSetName();
|
||||
}
|
||||
|
||||
// Lambda provides simple Alpha sorting, note this is case sensitive.
|
||||
auto sortRuleLambda = [](const AOSet* s1, const AOSet* s2) -> bool
|
||||
{
|
||||
return s1->getName() < s2->getName();
|
||||
};
|
||||
|
||||
mSetList=AOEngine::instance().getSetList();
|
||||
std::sort(mSetList.begin(), mSetList.end(), sortRuleLambda);
|
||||
|
||||
mSetSelector->removeall();
|
||||
mSetSelectorSmall->removeall();
|
||||
mSetSelector->clear();
|
||||
|
|
|
|||
|
|
@ -2600,6 +2600,9 @@ void LLAppViewer::initLoggingAndGetLastDuration()
|
|||
LLError::setFatalFunction(errorCallback);
|
||||
//LLError::setTimeFunction(getRuntime);
|
||||
|
||||
// <FS:Ansariel> Remove old CEF log file (defined in dullahan.h)
|
||||
LLFile::remove(gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "cef_log.txt"));
|
||||
|
||||
// Remove the last ".old" log file.
|
||||
std::string old_log_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,
|
||||
APP_NAME + ".old");
|
||||
|
|
|
|||
|
|
@ -2116,11 +2116,17 @@ void LLIMProcessing::requestOfflineMessages()
|
|||
{
|
||||
std::string cap_url = gAgent.getRegionCapability("ReadOfflineMsgs");
|
||||
|
||||
// <FS:Ansariel> Optional legacy offline messages
|
||||
if (!gSavedSettings.getBOOL("FSUseReadOfflineMsgsCap"))
|
||||
{
|
||||
cap_url = "";
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
|
||||
// Auto-accepted inventory items may require the avatar object
|
||||
// to build a correct name. Likewise, inventory offers from
|
||||
// muted avatars require the mute list to properly mute.
|
||||
if (cap_url.empty()
|
||||
|| gSavedSettings.getBOOL("FSUseReadOfflineMsgsCap") // <FS:Ansariel> Optional legacy offline messages
|
||||
|| gAgent.getRegionCapability("AcceptFriendship").empty()
|
||||
|| gAgent.getRegionCapability("AcceptGroupInvite").empty())
|
||||
{
|
||||
|
|
|
|||
|
|
@ -6553,7 +6553,9 @@ void LLSelectNode::renderOneWireframe(const LLColor4& color)
|
|||
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||
|
||||
if (LLSelectMgr::sRenderHiddenSelections) // && gFloaterTools && gFloaterTools->getVisible())
|
||||
bool wireframe_selection = (gFloaterTools && gFloaterTools->getVisible()) || LLSelectMgr::sRenderHiddenSelections;
|
||||
|
||||
if (LLSelectMgr::sRenderHiddenSelections)
|
||||
{
|
||||
gGL.blendFunc(LLRender::BF_SOURCE_COLOR, LLRender::BF_ONE);
|
||||
LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE, GL_GEQUAL);
|
||||
|
|
@ -6593,8 +6595,6 @@ void LLSelectNode::renderOneWireframe(const LLColor4& color)
|
|||
gGL.diffuseColor4f(color.mV[VRED] * 2, color.mV[VGREEN] * 2, color.mV[VBLUE] * 2, LLSelectMgr::sHighlightAlpha * 2);
|
||||
|
||||
{
|
||||
bool wireframe_selection = gFloaterTools && gFloaterTools->getVisible();
|
||||
|
||||
LLGLDisable depth(wireframe_selection ? 0 : GL_BLEND);
|
||||
LLGLEnable stencil(wireframe_selection ? 0 : GL_STENCIL_TEST);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue