Skip to content
Snippets Groups Projects
  1. Sep 11, 2020
  2. Sep 08, 2020
  3. Jul 27, 2020
  4. Mar 25, 2020
  5. Dec 14, 2018
    • Nat Goodspeed's avatar
      SL-10153: Introduce ll_convert, windows_message() templates. · 9ffcafb6
      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>().
      9ffcafb6
  6. May 17, 2018
  7. Feb 23, 2017
    • Nat Goodspeed's avatar
      DRTVWR-418: Fix a round of compile errors surfaced by -std=c++11. · ae0b3149
      Nat Goodspeed authored
      These are mostly things that were in fact erroneous, but accepted by older
      compilers.
      
      This changeset has not yet been built with Visual Studio 2013 or Linux gcc,
      even with -std=c++11.
      
      This changeset has not been built *without* -std=c++11. It should be used in
      conjunction with a corresponding change to LL_BUILD_DARWIN_BASE_SWITCHES in
      viewer-build-variables/variables.
      
      This is a work in progress. We do not assert that this changeset completes the
      work needed to turn on -std=c++11, even on the Mac.
      ae0b3149
  8. Nov 16, 2016
  9. Apr 24, 2016
  10. Nov 10, 2015
  11. Nov 20, 2014
  12. Sep 05, 2013
  13. Aug 27, 2013
  14. Aug 26, 2013
  15. Aug 19, 2013
  16. Mar 29, 2013
  17. Feb 01, 2012
  18. Nov 28, 2011
  19. Oct 13, 2010
  20. Sep 21, 2010
  21. Aug 13, 2010
  22. Jan 25, 2010
  23. Nov 30, 2009
  24. Nov 29, 2009
  25. Nov 18, 2009
  26. Nov 12, 2009
  27. Oct 03, 2009
  28. Sep 03, 2009
    • Nat Goodspeed's avatar
      QAR-1619: Fix Windows link errors when building INTEGRATION_TEST_lllazy. · a1c69da3
      Nat Goodspeed authored
      The problem arose because we were setting LL_COMMON_BUILD in
      llcommon/CMakeLists.txt, not only for the library build itself but also for
      its LL_ADD_INTEGRATION_TEST tests. This told all the headers compiled into the
      INTEGRATION_TEST_lllazy executable that the executable was providing all the
      llcommon symbols, rather than importing them.
      The solution is to switch to the llcommon_EXPORTS symbol automagically defined
      by CMake when building the llcommon shared library itself.
      a1c69da3
  29. Jul 30, 2009
  30. Jul 16, 2009
  31. Jul 02, 2009
  32. May 22, 2009
    • Brad Kittenbrink's avatar
      DEV-27646 dll linkage for login module. · 01d39082
      Brad Kittenbrink authored
      Ok, finally got this to a point where it doesn't break the build and I can check
      in. llcommon can be built as a shared library (disabled but can be enabled with
      cmake cache var LLCOMMON_LINK_SHARED.
      
      reviewed by Mani on tuesday (I still need to get his suggested changes
      re-reviewed)
      01d39082
  33. Feb 03, 2009
  34. Jan 07, 2009
  35. Jun 02, 2008
  36. Apr 03, 2008
  37. Feb 13, 2008
  38. Oct 17, 2007
Loading