You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-13 13:31:48 +00:00
Fix String::word_wrap() for long words
- Changes `TextServer.string_get_word_breaks()` - Returns pairs of boundary start and end offsets - Accepts `chars_per_line` to return line breaks - Removes `String::word_wrap()` Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
This commit is contained in:
@@ -220,37 +220,6 @@ void CharString::copy_from(const char *p_cstr) {
|
||||
/* String */
|
||||
/*************************************************************************/
|
||||
|
||||
//kind of poor should be rewritten properly
|
||||
String String::word_wrap(int p_chars_per_line) const {
|
||||
int from = 0;
|
||||
int last_space = 0;
|
||||
String ret;
|
||||
for (int i = 0; i < length(); i++) {
|
||||
if (i - from >= p_chars_per_line) {
|
||||
if (last_space == -1) {
|
||||
ret += substr(from, i - from + 1) + "\n";
|
||||
} else {
|
||||
ret += substr(from, last_space - from) + "\n";
|
||||
i = last_space; //rewind
|
||||
}
|
||||
from = i + 1;
|
||||
last_space = -1;
|
||||
} else if (operator[](i) == ' ' || operator[](i) == '\t') {
|
||||
last_space = i;
|
||||
} else if (operator[](i) == '\n') {
|
||||
ret += substr(from, i - from) + "\n";
|
||||
from = i + 1;
|
||||
last_space = -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (from < length()) {
|
||||
ret += substr(from, length());
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
Error String::parse_url(String &r_scheme, String &r_host, int &r_port, String &r_path) const {
|
||||
// Splits the URL into scheme, host, port, path. Strip credentials when present.
|
||||
String base = *this;
|
||||
|
||||
Reference in New Issue
Block a user