- Sep 29, 2020
- Sep 28, 2020
-
-
Rye Mutt authored
-
- Mar 25, 2020
-
-
Nat Goodspeed authored
https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/snprintf-snprintf-snprintf-l-snwprintf-snwprintf-l?view=vs-2017 "Beginning with the UCRT in Visual Studio 2015 and Windows 10, snprintf is no longer identical to _snprintf. The snprintf function behavior is now C99 standard compliant." In other words, VS 2015 et ff. snprintf() now promises to nul-terminate the buffer even in the overflow case, which is what snprintf_hack::snprintf() was for. This removal was motivated by ambiguous-call errors generated by VS 2017 for library snprintf() vs. snprintf_hack::snprintf().
-
- Dec 14, 2018
-
-
Nat Goodspeed authored
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.
-
Nat Goodspeed authored
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>().
-
- Dec 11, 2018
-
-
Nat Goodspeed authored
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.
-
- Oct 03, 2017
-
-
Brad Payne (Vir Linden) authored
SL-808 - more work on arc display. area calculations still have some issues, especially for animated objects.
-
- Dec 07, 2016
-
-
Kitty Barnett authored
--HG-- branch : RLVa
-
- Nov 20, 2016
-
-
Kitty Barnett authored
--HG-- branch : RLVa
-
- Jun 01, 2016
-
-
andreykproductengine authored
-
- Nov 10, 2015
-
-
Oz Linden authored
-
- Apr 10, 2015
-
-
Oz Linden authored
restore the ll[io]fstream because we need them as wrappers on Windows for wide char paths; on other platforms they are now just typedefs to the std classes
-
- Apr 07, 2015
- Oct 23, 2014
-
-
callum_linden authored
-
- Oct 15, 2013
-
-
Richard Linden authored
-
- Sep 05, 2013
-
-
Richard Linden authored
another attempt to move mem stat into base class
-
- Aug 09, 2013
-
-
Richard Linden authored
replace llinfos, lldebugs, etc with new LL_INFOS(), LL_DEBUGS(), etc.
-
- Jul 19, 2013
-
-
Richard Linden authored
-
- May 22, 2013
-
-
Gilbert Gonzales authored
-
- Mar 29, 2013
-
-
Graham Madarasz authored
-
- Nov 15, 2012
-
-
Richard Linden authored
cleaning up build moved most includes of windows.h to llwin32headers.h to disable min/max macros, etc streamlined Time class and consolidated functionality in BlockTimer class llfasttimer is no longer included via llstring.h, so had to add it manually in several places
-
- Jul 12, 2012
-
-
Nicky authored
Crashfix: in ll_safe_string not only guard against 0 pointer, but against illegal length of buffer too.
-
- Feb 24, 2012
-
-
Nat Goodspeed authored
We didn't have any tokenizer suitable for scanning something like a bash command line. We do have a couple hacks, e.g. LLExternalEditor::tokenize() and LLCommandLineParser::parseCommandLineString(). Both try to work around boost::tokenizer limitations; but existing boost::tokenizer support just doesn't address this case. Neither of the above is available as a general scanner anyway, and parseCommandLineString() fails outright when passed "". New getTokens() also distinguishes between "drop delimiters" (e.g. space, return, newline) to be discarded from the token stream, versus "keep delimiters" (e.g. "+-*/") to be returned as tokens in their own right. There's an overload that honors escapes and a more efficient one that doesn't; each has a convenience overload that returns the scanned string vector rather than requiring a separate declaration. Tweak and comment older getTokens() implementation. Add unit tests for both old and new getTokens() implementations. Break out StringVec and std::ostream << StringVec from indra/llcommon/tests/listener.h to StringVec.h: that's coming in handy for a number of different TUT test sources.
-
- Jan 06, 2012
-
-
Richard Linden authored
Backed out changeset: 4f3024e9d629
-
- Dec 21, 2011
-
-
Seth ProductEngine authored
EXP-1693 FIXED the date localization in Item Profile window, Voice Morphs window and in scroll list widget in general. - Added a customizable date format string to be used for scroll list cell of "date" type. - The date localization does not change the value of a scroll list cell changing only its string representation. - Added using localized week days and month names from strings.xml for all locales not only Ja and Pl as it was before. - Changed the date format in Item Profile window (French locale) as noted in the issue description. - For this fix the French locale still needs the localization of the following strings in strings.xml: <string name="dateTimeWeekdaysNames"> <string name="dateTimeWeekdaysShortNames"> <string name="dateTimeMonthNames"> <string name="dateTimeMonthShortNames"> <string name="dateTimeDayFormat"> <string name="dateTimeAM"> <string name="dateTimePM">
-
- Aug 19, 2011
-
-
Richard Linden authored
string replacement, e.g. [[FOO]]
-
- Oct 13, 2010
-
-
Oz Linden authored
-
- Sep 21, 2010
-
-
Brad Payne (Vir Linden) authored
-
- Sep 16, 2010
-
-
Andrew Dyukov authored
The crash was caused by erroneous getting of month name from vector with week day names in LLStringUtil::formatDatetime(). This code woth introduced in June, so though it didn't work properly, it didn't cause the crash(cause June is 5th month). But when number of current month exceeded number of days in week(this happened in August cause it is 8th) code started getting 8th element from vector with 7. This caused the crash. It reproduced only on Japanese locale because only there code that caused it was used(see STORM-177 for details). This changeset seems to fix STORM-177 too. - Used vector with months names where it should be.
-
- Aug 13, 2010
-
-
Oz Linden authored
-
- Aug 05, 2010
-
-
Vadim Savchuk authored
Changes: - Added support for formatting day of the month without leading zero ("sday"). - Changed date format in place profile (landmark info) and in the top status bar according to bug reporter's request. Technical details: Actually implementation of strftime() in Linux and Windows supports stripping the leading zero (with "%-d" and "%#d" respectively). But that's not supported in MacOSX, so I had to reimplement it. Reviewed by Sergey Litovchuk at https://codereview.productengine.com/secondlife/r/842/
-
Vadim Savchuk authored
Changes: - Added support for formatting day of the month without leading zero ("sday"). - Changed date format in place profile (landmark info) and in the top status bar according to bug reporter's request. Technical details: Actually implementation of strftime() in Linux and Windows supports stripping the leading zero (with "%-d" and "%#d" respectively). But that's not supported in MacOSX, so I had to reimplement it. Reviewed by Sergey Litovchuk at https://codereview.productengine.com/secondlife/r/842/ --HG-- branch : product-engine
-
- Jul 26, 2010
-
-
Tofu Linden authored
-
Tofu Linden authored
-
Mike Antipov authored
--HG-- branch : product-engine
-
Mike Antipov authored
EXT-8318 FIX IMPROVED Code is refactored - avoid using of a separate call of the MultiByteToWideChar to get length of output string. Assumprion is: wide char buffer requires not more than input string length plus one for a null terminator. Reviewed by Richard Nelson at https://codereview.productengine.com/secondlife/r/775/ --HG-- branch : product-engine
-
- Jul 23, 2010
-
-
Mike Antipov authored
EXT-8318 ADDITIONAL FIXED ensure that thousands separator is in utf8 format (on Windows) before converting it to LLWString. Problem on Windows: ================== LLPanelMainInventory::updateItemcountText() formats number using viewer locale. non-break space is detected as unknown symbols while converting utf8str_to_wstring when formatted text is set to LLTextBox. FIX: === Added converting of string to multi-byte string and then to utf8 string while formatting on Windows. created opposite to "ll_convert_wide_to_string" function "ll_convert_string_to_wide" and helper function to call both of them. It is used now to convert result of formatted string while formatting integer number in locale. Fix affects Windows only. Reviewed by Richard Nelson at https://codereview.productengine.com/secondlife/r/775/ --HG-- branch : product-engine
-
Mike Antipov authored
Reviewed by Richard Nelson at https://codereview.productengine.com/secondlife/r/775/ --HG-- branch : product-engine
-