EXT-6934 FIXED method LLInventoryObject::rename does not change Name, if string is empty after correction.
Problem description: LLInventoryObject::rename corrects incoming string and remove odd spaces, for example converts string " " to empty string "", as the result empty string can be set as InventoryObject name. Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/505/ --HG-- branch : product-enginemeow-7.2.2
parent
2067454025
commit
d0dd18a908
|
|
@ -85,10 +85,7 @@ LLInventoryObject::LLInventoryObject(const LLUUID& uuid,
|
|||
mType(type),
|
||||
mName(name)
|
||||
{
|
||||
LLStringUtil::replaceNonstandardASCII(mName, ' ');
|
||||
LLStringUtil::replaceChar(mName, '|', ' ');
|
||||
LLStringUtil::trim(mName);
|
||||
LLStringUtil::truncate(mName, DB_INV_ITEM_NAME_STR_LEN);
|
||||
correctInventoryName(mName);
|
||||
}
|
||||
|
||||
LLInventoryObject::LLInventoryObject() :
|
||||
|
|
@ -155,12 +152,8 @@ void LLInventoryObject::setUUID(const LLUUID& new_uuid)
|
|||
void LLInventoryObject::rename(const std::string& n)
|
||||
{
|
||||
std::string new_name(n);
|
||||
LLStringUtil::replaceNonstandardASCII(new_name, ' ');
|
||||
LLStringUtil::replaceChar(new_name, '|', ' ');
|
||||
LLStringUtil::trim(new_name);
|
||||
LLStringUtil::truncate(new_name, DB_INV_ITEM_NAME_STR_LEN);
|
||||
|
||||
if( new_name != mName )
|
||||
correctInventoryName(new_name);
|
||||
if( !new_name.empty() && new_name != mName )
|
||||
{
|
||||
mName = new_name;
|
||||
}
|
||||
|
|
@ -221,10 +214,7 @@ BOOL LLInventoryObject::importLegacyStream(std::istream& input_stream)
|
|||
" %254s %254[^|]",
|
||||
keyword, valuestr);
|
||||
mName.assign(valuestr);
|
||||
LLStringUtil::replaceNonstandardASCII(mName, ' ');
|
||||
LLStringUtil::replaceChar(mName, '|', ' ');
|
||||
LLStringUtil::trim(mName);
|
||||
LLStringUtil::truncate(mName, DB_INV_ITEM_NAME_STR_LEN);
|
||||
correctInventoryName(mName);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -284,6 +274,15 @@ void LLInventoryObject::updateServer(BOOL) const
|
|||
llwarns << "LLInventoryObject::updateServer() called. Doesn't do anything." << llendl;
|
||||
}
|
||||
|
||||
inline
|
||||
void LLInventoryObject::correctInventoryName(std::string& name)
|
||||
{
|
||||
LLStringUtil::replaceNonstandardASCII(name, ' ');
|
||||
LLStringUtil::replaceChar(name, '|', ' ');
|
||||
LLStringUtil::trim(name);
|
||||
LLStringUtil::truncate(name, DB_INV_ITEM_NAME_STR_LEN);
|
||||
}
|
||||
|
||||
|
||||
///----------------------------------------------------------------------------
|
||||
/// Class LLInventoryItem
|
||||
|
|
|
|||
|
|
@ -92,9 +92,13 @@ public:
|
|||
void setParent(const LLUUID& new_parent);
|
||||
void setType(LLAssetType::EType type);
|
||||
|
||||
private:
|
||||
// in place correction for inventory name string
|
||||
void correctInventoryName(std::string& name);
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// File Support
|
||||
// Implemented here so that a minimal information set can be transmitted
|
||||
// Implemented here so that a minimal information set can be transmitted
|
||||
// between simulator and viewer.
|
||||
//--------------------------------------------------------------------
|
||||
public:
|
||||
|
|
|
|||
Loading…
Reference in New Issue