diff options
Diffstat (limited to 'core/string')
-rw-r--r-- | core/string/compressed_translation.cpp | 2 | ||||
-rw-r--r-- | core/string/translation_po.cpp | 2 | ||||
-rw-r--r-- | core/string/ustring.cpp | 16 | ||||
-rw-r--r-- | core/string/ustring.h | 4 |
4 files changed, 20 insertions, 4 deletions
diff --git a/core/string/compressed_translation.cpp b/core/string/compressed_translation.cpp index ad90924293..15abf63f7e 100644 --- a/core/string/compressed_translation.cpp +++ b/core/string/compressed_translation.cpp @@ -44,7 +44,7 @@ struct _PHashTranslationCmp { void PHashTranslation::generate(const Ref<Translation> &p_from) { // This method compresses a Translation instance. - // Right now it doesn't handle context or plurals, so Translation subclasses using plurals or context (i.e TranslationPO) shouldn't be compressed. + // Right now, it doesn't handle context or plurals, so Translation subclasses using plurals or context (i.e TranslationPO) shouldn't be compressed. #ifdef TOOLS_ENABLED List<StringName> keys; p_from->get_message_list(&keys); diff --git a/core/string/translation_po.cpp b/core/string/translation_po.cpp index 846afe761b..42ba30fbe5 100644 --- a/core/string/translation_po.cpp +++ b/core/string/translation_po.cpp @@ -158,7 +158,7 @@ int TranslationPO::_get_plural_index(int p_n) const { void TranslationPO::_cache_plural_tests(const String &p_plural_rule) { // Some examples of p_plural_rule passed in can have the form: // "n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5" (Arabic) - // "n >= 2" (French) // When evaluating the last, esp careful with this one. + // "n >= 2" (French) // When evaluating the last, especially careful with this one. // "n != 1" (English) int first_ques_mark = p_plural_rule.find("?"); if (first_ques_mark == -1) { diff --git a/core/string/ustring.cpp b/core/string/ustring.cpp index a57c7b2504..28228e4a83 100644 --- a/core/string/ustring.cpp +++ b/core/string/ustring.cpp @@ -1764,7 +1764,7 @@ bool String::parse_utf8(const char *p_utf8, int p_len) { if (skip) { _UNICERROR("no space left"); - return true; //not enough spac + return true; //not enough space } } @@ -4394,6 +4394,18 @@ String String::property_name_encode() const { return *this; } +// Changes made to the set of invalid characters must also be reflected in the String documentation. +const String String::invalid_node_name_characters = ". : @ / \""; + +String String::validate_node_name() const { + Vector<String> chars = String::invalid_node_name_characters.split(" "); + String name = this->replace(chars[0], ""); + for (int i = 1; i < chars.size(); i++) { + name = name.replace(chars[i], ""); + } + return name; +} + String String::get_basename() const { int pos = rfind("."); if (pos < 0 || pos < MAX(rfind("/"), rfind("\\"))) { @@ -4468,7 +4480,7 @@ String String::sprintf(const Array &values, bool *error) const { for (; *self; self++) { const char32_t c = *self; - if (in_format) { // We have % - lets see what else we get. + if (in_format) { // We have % - let's see what else we get. switch (c) { case '%': { // Replace %% with % formatted += chr(c); diff --git a/core/string/ustring.h b/core/string/ustring.h index 821941036f..1e362d7683 100644 --- a/core/string/ustring.h +++ b/core/string/ustring.h @@ -419,6 +419,10 @@ public: String property_name_encode() const; + // node functions + static const String invalid_node_name_characters; + String validate_node_name() const; + bool is_valid_identifier() const; bool is_valid_integer() const; bool is_valid_float() const; |