diff options
Diffstat (limited to 'indra/llcommon')
| -rw-r--r-- | indra/llcommon/indra_constants.cpp | 4 | ||||
| -rw-r--r-- | indra/llcommon/indra_constants.h | 4 | ||||
| -rw-r--r-- | indra/llcommon/llapr.cpp | 2 | ||||
| -rw-r--r-- | indra/llcommon/llstring.cpp | 27 | ||||
| -rw-r--r-- | indra/llcommon/llstring.h | 11 | 
5 files changed, 48 insertions, 0 deletions
| diff --git a/indra/llcommon/indra_constants.cpp b/indra/llcommon/indra_constants.cpp index 60721977cd..7ea42a3fc0 100644 --- a/indra/llcommon/indra_constants.cpp +++ b/indra/llcommon/indra_constants.cpp @@ -60,6 +60,10 @@ const LLUUID IMG_SMOKE_POOF				("1e63e323-5fe0-452e-92f8-b98bd0f764e3"); // On d  const LLUUID IMG_BIG_EXPLOSION_1		("5e47a0dc-97bf-44e0-8b40-de06718cee9d"); // On dataserver  const LLUUID IMG_BIG_EXPLOSION_2		("9c8eca51-53d5-42a7-bb58-cef070395db8"); // On dataserver +const LLUUID IMG_ALPHA_GRAD				("e97cf410-8e61-7005-ec06-629eba4cd1fb"); // VIEWER +const LLUUID IMG_ALPHA_GRAD_2D			("38b86f85-2575-52a9-a531-23108d8da837"); // VIEWER +const LLUUID IMG_TRANSPARENT			("8dcd4a48-2d37-4909-9f78-f7a9eb4ef903"); // VIEWER +  const LLUUID IMG_BLOOM1	  			    ("3c59f7fe-9dc8-47f9-8aaf-a9dd1fbc3bef"); // VIEWER  const LLUUID TERRAIN_DIRT_DETAIL		("0bc58228-74a0-7e83-89bc-5c23464bcec5"); // VIEWER  const LLUUID TERRAIN_GRASS_DETAIL		("63338ede-0037-c4fd-855b-015d77112fc8"); // VIEWER diff --git a/indra/llcommon/indra_constants.h b/indra/llcommon/indra_constants.h index 02f063f5e8..fda84aa5a8 100644 --- a/indra/llcommon/indra_constants.h +++ b/indra/llcommon/indra_constants.h @@ -197,6 +197,10 @@ LL_COMMON_API extern const LLUUID IMG_SMOKE_POOF;  LL_COMMON_API extern const LLUUID IMG_BIG_EXPLOSION_1;  LL_COMMON_API extern const LLUUID IMG_BIG_EXPLOSION_2; +LL_COMMON_API extern const LLUUID IMG_ALPHA_GRAD; +LL_COMMON_API extern const LLUUID IMG_ALPHA_GRAD_2D; +LL_COMMON_API extern const LLUUID IMG_TRANSPARENT; +  LL_COMMON_API extern const LLUUID IMG_BLOOM1;  LL_COMMON_API extern const LLUUID TERRAIN_DIRT_DETAIL;  LL_COMMON_API extern const LLUUID TERRAIN_GRASS_DETAIL; diff --git a/indra/llcommon/llapr.cpp b/indra/llcommon/llapr.cpp index a548c96002..86f407cdb0 100644 --- a/indra/llcommon/llapr.cpp +++ b/indra/llcommon/llapr.cpp @@ -294,9 +294,11 @@ void LLScopedLock::unlock()  bool ll_apr_warn_status(apr_status_t status)  {  	if(APR_SUCCESS == status) return false; +#if !LL_LINUX  	char buf[MAX_STRING];	/* Flawfinder: ignore */  	apr_strerror(status, buf, sizeof(buf));  	LL_WARNS("APR") << "APR: " << buf << LL_ENDL; +#endif  	return true;  } diff --git a/indra/llcommon/llstring.cpp b/indra/llcommon/llstring.cpp index f3b8999883..c45db3b185 100644 --- a/indra/llcommon/llstring.cpp +++ b/indra/llcommon/llstring.cpp @@ -576,6 +576,33 @@ std::string utf8str_truncate(const std::string& utf8str, const S32 max_len)  	}  } +std::string utf8str_symbol_truncate(const std::string& utf8str, const S32 symbol_len) +{ +    if (0 == symbol_len) +    { +        return std::string(); +    } +    if ((S32)utf8str.length() <= symbol_len) +    { +        return utf8str; +    } +    else +    { +        int len = 0, byteIndex = 0; +        const char* aStr = utf8str.c_str(); +        size_t origSize = utf8str.size(); + +        for (byteIndex = 0; len < symbol_len && byteIndex < origSize; byteIndex++) +        { +            if ((aStr[byteIndex] & 0xc0) != 0x80) +            { +                len += 1; +            } +        } +        return utf8str.substr(0, byteIndex); +    } +} +  std::string utf8str_substChar(  	const std::string& utf8str,  	const llwchar target_char, diff --git a/indra/llcommon/llstring.h b/indra/llcommon/llstring.h index 393f6d7a8c..a40db0f8cc 100644 --- a/indra/llcommon/llstring.h +++ b/indra/llcommon/llstring.h @@ -564,6 +564,17 @@ LL_COMMON_API S32 utf8str_compare_insensitive(  	const std::string& rhs);  /** +* @brief Properly truncate a utf8 string to a maximum character count. +* +* If symbol_len is longer than the string passed in, the return +* value == utf8str. +* @param utf8str A valid utf8 string to truncate. +* @param symbol_len The maximum number of symbols in the return value. +* @return Returns a valid utf8 string with symbol count <= max_len. +*/ +LL_COMMON_API std::string utf8str_symbol_truncate(const std::string& utf8str, const S32 symbol_len); + +/**   * @brief Replace all occurences of target_char with replace_char   *   * @param utf8str A utf8 string to process. | 
