summaryrefslogtreecommitdiff
path: root/indra/llcommon
AgeCommit message (Collapse)Author
2019-10-16mergeBrad Payne (Vir Linden)
2019-09-10Merge viewer-release 6.3.2Graham Linden
2019-09-05Merged in lindenlab/viewer-lynxAndreyL ProductEngine
2019-08-26Merge 6.3.1 viewer-releaseGraham Linden
2019-08-26Merged in lindenlab/viewer-releaseAndreyL ProductEngine
2019-07-30Make llerror do 66% fewer fprintf calls when engaging ANSI encoding and ↵Graham Linden
eliminate branches from high-traffic code.
2019-05-28SL-11231 Unused code and wrong macroandreykproductengine
2019-05-27SL-10908 Output class names we are clearing on startupandreykproductengine
2019-05-21MergeAnchor
2019-05-21Merged in lindenlab/viewer-bearAndreyL ProductEngine
2019-05-14Mac buildfixAndreyL ProductEngine
2019-05-10MergeAnchor
2019-05-08Merge viewer-releaseGraham Linden
2019-04-26Merged SL-10400 and SL-10401AndreyL ProductEngine
2019-04-23SL-10401 - get agent attachment limit from SimulatorFeatures if availableBrad Payne (Vir Linden)
2019-03-08SL-10702: When attempting a new voice connection, ensure that the voicePump ↵Rider Linden
mail drop does not have any outstanding events.
2019-03-05MergeAnchor
2019-03-01Merged in lindenlab/viewer-releaseAndreyL ProductEngine
2019-02-20[SL-1360] - fix no alpha on default bake textures. uploaded new pngsAnchor
2019-01-29MergeAnchor
2019-01-15SL-10291 Replace apr thread with standard C++11 functionalityandreykproductengine
2019-01-15SL-10291 Replace apr_atomic with standard C++11 functionalityandreykproductengine
2019-01-17SL-10291 cleanup-mutexandreykproductengine
2019-01-14SL-10291 Replace apr_mutex with standard C++11 functionalityandreykproductengine
2019-03-18MergeRider Linden
2019-03-13Mods to make merge with viewer-release have less whitespace-only change and ↵Graham Linden
fix diffs between EEP and VR.
2019-03-08SL-10702: Mac gets very picky about override. (or MSVC isn't picky enough)Rider Linden
2019-03-08SL-10702: When attempting a new voice connection, ensure that the voicePump ↵Rider Linden
mail drop does not have any outstanding events.
2019-02-28MergeRider Linden
2019-01-04Added new LLSINGLETON macro that includes override keyword.Rider Linden
2018-12-15SL-10153: auto name{expression} declares an initializer_listNat Goodspeed
instead of a variable of type decltype(expression). Using SHGetKnownFolderPath(FOLDERID_Fonts) in LLFontGL::getFontPathSystem() requires new Windows #include files. A variable with a constructor can't be declared within the braces of a switch statement, even outside any of its case clauses.
2018-12-14SL-10153: VS 2013 isn't so fond of ?: involving std::string.Nat Goodspeed
2018-12-14SL-10153: Review and rationalize fetching paths from environment.Nat Goodspeed
Use LLStringUtil::getenv() or getoptenv() whenever we fetch a string that will be used as a pathname. Use LLFile::tmpdir() instead of getenv("TEMP"). As an added extra-special bonus, finally clean up $TMP/llcontrol-test-zzzzzz directories that have been accumulating every time we run a local build!
2018-12-14SL-10153: Fix previous commit for non-Windows systems.Nat Goodspeed
Move Windows-flavored llstring_getoptenv() to Windows-specific section of llstring.cpp. boost::optional type must be stated explicitly to initialize with a value. On platforms where llwchar is the same as wchar_t, LLWString is the same as std::wstring, so ll_convert specializations for std::wstring would duplicate those for LLWString. Defend against that. The compilers we use don't like 'return condition? { expr } : {}', in which we hope to construct and return an instance of the declared return type without having to restate the type. It works to use an explicit 'if' statement.
2018-12-14SL-10153: Introduce ll_convert, windows_message() templates.Nat Goodspeed
Add ll_convert<TO, FROM> template, used as (e.g.): ll_convert<std::string>(value_of_some_other_string_type); There is no generic template implementation -- the template exists solely to provide generic aliases for a bewildering family of llstring.h string- conversion functions with highly-specific names. There's a generic implementation, though, for the degenerate case where FROM and TO are identical. Add ll_convert<> specialization aliases for most of the string-conversion functions declared in llstring.h, including the Windows-specific ones involving llutf16string and std::wstring. Add a mini-lecture in llstring.h about appropriate use of string types on Windows. Add LL_WCHAR_T_NATIVE llpreprocessor.h macro so we can detect whether to provide separate conversions for llutf16string and std::wstring, or whether those would collide because the types are identical. Add inline ll_convert_wide_to_string(const std::wstring&) overloads so caller isn't required to call arg.c_str(), which naturally permits an ll_convert alias. Add ll_convert_wide_to_wstring(), ll_convert_wstring_to_wide() as placeholders for converting between Windows std::wstring and Linden LLWString, with corresponding ll_convert aliases. We don't yet have library code to perform such conversions officially; for now, just copy characters. Add LLStringUtil::getenv(key) and getoptenv(key) functions. The latter returns boost::optional<string_type> in case the caller needs to detect absence of a given environment variable rather than simply accepting a default value. Naturally getenv(), which accepts a default, is implemented using getoptenv(). getoptenv(), in turn, is implemented using an underlying llstring_getoptenv(). On Windows, llstring_getoptenv() returns boost::optional<std::wstring> (based on GetEnvironmentVariableW()), whereas elsewhere, llstring_getoptenv() returns boost::optional<std::string> (based on classic Posix getenv()). The beauty of generic ll_convert is that the portable LLStringUtilBase<T>:: getoptenv() template can call the platform-specific llstring_getoptenv() and transparently perform whatever conversion is necessary to return the desired string_type. Add windows_message<T>(error) template, with an overload that implicitly calls GetLastError(). We provide a single concrete windows_message<std::wstring>() implementation because that's what we get from Windows FormatMessageW() -- everything else is a generic conversion to the desired target string type. This obviates llprocess.cpp's previous WindowsErrorString() implementation -- reimplement using windows_message<std::string>().
2018-12-13MergeRider Linden
2018-12-11SL-10153: Improve ll_convert_string_to_wide() and its converse.Nat Goodspeed
Instead of returning a wchar_t* and requiring the caller to delete it later, return a std::basic_string<wchar_t> that's self-cleaning. If the caller wants a wchar_t*, s/he can call c_str() on the returned string. Default the code_page parameter to CP_UTF8, since we try to be really consistent about using UTF-8 encoding for all our internal std::strings.
2018-11-29SL-9954 Mac Viewer crashes if logcontrol-dev.xml is modifiedandreykproductengine
2018-11-28MergeAnchor
2018-11-22SL-10116 Allow to copy asset IDs for settings with appropriate perms.maxim_productengine
2018-11-14Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2018-11-14MergeRider Linden
2018-11-14Merged in lindenlab/axonAndreyL ProductEngine
2018-10-17DRTVWR-447: Merge Oz's logging changesNat Goodspeed
2018-10-17DRTVWR-447: Move test<5> and writeMsgNeedsEscaping() into sequence.Nat Goodspeed
2018-10-17Automated merge with ssh://bitbucket.org/nat_linden/viewer-poseidonNat Goodspeed
2018-10-16renumber the new test to replace the one that was removedOz Linden
2018-10-11Modify logging so that the in-viewer console and stderr do not escape line ↵Oz Linden
breaks Improve the implementation so that escaping is computed only once
2018-10-11MergeAnchor Linden
2018-10-04DRTVWR-474: Make login coroutine sync with updater process on failure.Nat Goodspeed
Specifically, introduce an LLEventMailDrop("LoginSync"). When the updater detects that an update is required, it will post to that rendezvous point. When login.cgi responds with login failure, make the login coroutine wait (a few seconds) for that ping from the updater. If we receive that ping and if it contains a "reply" key, make the fail.login listener respond to the updater with an indication of whether to proceed with update. If both login.cgi and the updater concur that an update is required, produce a new confirmation message for the user and then (once user responds) tell the updater to proceed. Otherwise, produce the usual login-failure message and tell the updater never mind. Introduce LLCoro::OverrideConsuming to provide temporary save/restore of the set_consuming() / get_consuming() flag. It's a good idea to set the consuming flag when retrieving data from an LLEventMailDrop.