summaryrefslogtreecommitdiff
path: root/core/string/ustring.cpp
AgeCommit message (Collapse)Author
2022-08-01File: Re-add support to skip CR (`\r`) in `File::get_as_text`Rémi Verschelde
This was removed in #63481, and we confirmed that it's better like this, but we add back the possibility to strip CR as an option, to optionally restore the previous behavior. For performance this is done directly in `String::parse_utf8`. Also fixes Android `FileAccess::get_line()` as this one _should_ strip CR. Supersedes #63717.
2022-07-07Allows parsing of invalid UTF-16 surrogates (can be encountered in Windows ↵bruvzg
filenames) and some non-standard UTF-8 variants, makes Unicode parse errors more verbose.
2022-06-12Fix parameter name for String.left and String.rightHaoyu Qiu
2022-06-03Fix `String.uri_encode` on WindowsHaoyu Qiu
2022-05-20Tweak 64-bit integer overflow message to mention that it's a signed typeHugo Locurcio
2022-05-17Create onready variables when dropping nodes and holding CtrlHaoyu Qiu
2022-05-12Add documentation comments for internationalization C++ macrosHugo Locurcio
2022-05-01Fix left aligned integer sign in string formattingHaoyu Qiu
2022-04-27Merge pull request #59979 from bruvzg/cpp_check2Rémi Verschelde
2022-04-25Implement Scene Unique Nodesreduz
Implements https://github.com/godotengine/godot-proposals/issues/4096 * Nodes can be marked unique to the scene in the editor (or via code). * Unique nodes can be accessed via the **%** prefix at any point in the path. From that point in the path (depending on whether the scene of the path is), the unique node will be fetched. * Implementation is very optimal, as these nodes are cached.
2022-04-20Fix more issues found by cppcheck.bruvzg
2022-03-17Unify TextServer built-in module and GDExtension code.bruvzg
2022-02-24Optimize String concatenation and copy functionsBartłomiej T. Listwon
2022-02-04Cleanup and move char functions to the `char_utils.h` header.bruvzg
2022-01-28Merge pull request #57116 from bruvzg/win_net_shareRémi Verschelde
2022-01-26Rename String::is_subsequence_ofi to String::is_subsequence_ofnWilson E. Alvarez
2022-01-24[Windows] Add support for handling network share paths.bruvzg
2022-01-20Rename or refactor macros to avoid leading underscoresOmar Polo
These are not used consistently and some can conflict with system-specific defines. While here, also delete some unused macros.
2022-01-15Replace String::num_real code with a wrapper around String::numAaron Franke
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2021-12-16Make `--doctool` locale awareHaoyu Qiu
* Adds `indent(str)` to `String`: * Indent the (multiline) string with the given indentation. * This method is added in order to keep the translated XML correctly indented. * Moves the loading of tool/doc translation into `editor/editor_translation.{h,cpp}`. * This will be used from both `EditorSettings` and the doc tool from `main`. * Makes use of doc translation when generating XML class references, and setup the translation locale based on `-l LOCALE` CLI parameter. The XML class reference won't be translated if `-l LOCALE` parameter is not given, or when it's `-l en`.
2021-12-09Replace String comparisons with "", String() to is_empty()Nathan Franke
Also: - Adds two stress tests to test_string.h - Changes to .empty() on std::strings
2021-11-30Don't return reference on copy assignment operatorsRémi Verschelde
We prefer to prevent using chained assignment (`T a = b = c = T();`) as this can lead to confusing code and subtle bugs. According to https://en.wikipedia.org/wiki/Assignment_operator_(C%2B%2B), C++ allows any arbitrary return type, so this is standard compliant. This could be re-assessed if/when we have an actual need for a behavior more akin to that of the C++ STL, for now this PR simply changes a handful of cases which were inconsistent with the rest of the codebase (`void` return type was already the most common case prior to this commit).
2021-11-23Rename `remove()` to `remove_at()` when removing by indexLightning_A
2021-11-15Allow dehardcoding documentation branch and URL in docs linksRémi Verschelde
This makes it possible to change the branch of the documentation that URLs are pointing to without having to modify all class reference files. In the XML class reference, the `$DOCS_URL` placeholder should be used, and will be replaced automatically in the editor and when generating the RST class reference. The documentation branch string is set in `version.py`. Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2021-11-11String: Remove `erase` method, bindings can't mutate StringRémi Verschelde
2021-11-11Add missing characters for property name quotingHaoyu Qiu
2021-10-28clang-format: Various fixes to comments alignment from `clang-format` 13Rémi Verschelde
All reviewed manually and occasionally rewritten to avoid bad auto formatting.
2021-10-22Merge pull request #54081 from Rubonnek/add_bin_messages_masterRémi Verschelde
2021-10-21Accept capital B in String::bin_to_int prefixWilson E. Alvarez
2021-10-21Add error messages to String::hex_to_int, and accept capital X in prefixWilson E. Alvarez
2021-09-15Fix String::num_real and String test cases when compiling with doublesAaron Franke
2021-09-13Merge pull request #52049 from theraot/masterRémi Verschelde
2021-08-31Remove `#ifdefs` for handling compilation with Visual Studio < 2015Hugo Locurcio
Godot 3.3 and later require Visual Studio 2017 to be compiled.
2021-08-29Rename String::is_rel_path to String::is_relative_pathWilson E. Alvarez
2021-08-24Fix get_base_dir windows top level directory logicTheraot
This is a fix for https://github.com/godotengine/godot/issues/52048
2021-08-18String: Remove old NO_USE_STDLIB code pathRémi Verschelde
We're using the standard library in many core classes by now so this code path no longer makes sense.
2021-08-18String: Fix default decimals truncation in num and num_realRémi Verschelde
Fixes undefined behavior, and fixes the logic for negative powers of ten. Fixes #51764. Adds tests to validate the changes and prevent regressions. Adds docs for `String.num`.
2021-08-13Convert ustring macros to inline functions and use them wherever possible.Anilforextra
Add new inline functions to check if a character is lowercase or uppercase. Remove unused upper case macro.
2021-07-25Use const references where possible for List range iteratorsRémi Verschelde
2021-07-23Use C++ iterators for Lists in many situationsAaron Franke
2021-07-13Merge pull request #49291 from NoFr1ends/fix-49262Rémi Verschelde
String::format leave passed values untouched
2021-06-16Rename `is_valid_integer()` to `is_valid_int()`Lightning_A
Method from `String`
2021-06-16Merge pull request #49505 from underdoeg/patch-2Rémi Verschelde
fix url parsing with port numbers
2021-06-11Reformat structure string operatorsAaron Franke
The order of numbers is not changed except for Transform2D. All logic is done inside of their structures (and not in Variant). For the number of decimals printed, they now use String::num_real which works best with real_t, except for Color which is fixed at 4 decimals (this is a reliable number of float digits when converting from 16-bpc so it seems like a good choice)
2021-06-11Merge pull request #49279 from Calinou/rename-string-is-abs-path-methodRémi Verschelde
Rename `String.is_abs_path()` to `String.is_absolute_path()`
2021-06-11fix url parsing with port numbersPhilip Whitfield
String.get_slice_count is always at least 1 or 2 for bases with a port number. Before this change the following URL would return ERR_INVALID_PARAMETER ```ws://127.0.0.1:8000/test```
2021-06-03String::format leave passed values untouchedJonas Bernemann
If the passed value or key contains double quotation marks it will no longer get removed.
2021-06-03Rename `String.is_abs_path()` to `String.is_absolute_path()`Hugo Locurcio
This is more consistent with `NodePath.is_absolute()`.
2021-05-29Increase String::num default decimal precisionHeikki Simojoki
Fixes #34541 Renamed MAX_DIGITS to MAX_DECIMALS, since it only changes the amount of digits after the decimal point. Increased MAX_DECIMALS to 32, and made String::num use MAX_DECIMALS consistently. If -1 is passed as decimal precision to String::num, it now gets changed to the correct precision based on the number's magnitude, instead of using printf default(which is 6) String::num_real also calculates the correct precision now. Also made the types used in floating-point math more consistent in a few places.