Explorar o código

Fix for bug #1738

getTrailingNumber("string") and stripTrailingNumber("string") will now work for single letter cases. For example, getTrailingNumber() will return "11" if the input is "a11" or "t11", and stripTrailingNumber() will return "a" if the input is "a11".
klaus95 %!s(int64=8) %!d(string=hai) anos
pai
achega
d6fd1a49ca
Modificáronse 1 ficheiros con 1 adicións e 1 borrados
  1. 1 1
      Engine/source/core/util/str.cpp

+ 1 - 1
Engine/source/core/util/str.cpp

@@ -1620,7 +1620,7 @@ String String::GetTrailingNumber(const char* str, S32& number)
    if ((*p == '-') || (*p == '_'))
       number = -dAtoi(p + 1);
    else
-      number = ((p == base.c_str()) ? dAtoi(p) : dAtoi(++p));
+      number = (isdigit(*p) && (p == base.c_str()) ? dAtoi(p) : dAtoi(++p));
 
    // Remove space between the name and the number
    while ((p > base.c_str()) && dIsspace(*(p-1)))