1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00
Commit graph

340 commits

Author SHA1 Message Date
reuk
f0560cefbb
String: Fix mangled decoding of UTF-16 strings containing surrogate pairs in createStringFromData() 2025-11-19 20:01:17 +00:00
reuk
8b77aca786
CharPointer_UTF16: Make behaviour consistent when iterating through unpaired surrogates
There's a few things going on in this commit:

- The implementation of CharPointer_UTF16 now uses helpers from
  CharacterFunctions to avoid a few instances of magic numbers.
- Where it makes sense, member functions of that class have been DRYed
  by e.g. implementing getAndAdvance in terms of operator*() and
  operator++().
- Added more tests for incrementing/decrementing/dereferencing
  CharPointer_UTF16.

After this change, a CharPointer_UTF16 that points to an unpaired
surrogate will always dereference to a 32-bit character with that
surrogate's value.

Note that dereferencing a CharPointer_UTF16 that points to a high
surrogate at the final code unit in a memory region is inherently
unsafe, because CharPointer_UTF16 can't track its own size, and the
dereference operation will check the following code unit to see whether
it is a low surrogate.
2025-11-18 18:54:47 +00:00
reuk
83e5264c86
Formatting: Remove double-dots from comments and other strings 2025-11-18 15:47:42 +00:00
reuk
1b401b9c0a
StringArray: Add nodiscard 2025-09-17 12:50:05 +01:00
Anthony Nicholls
5b4fca7bd0 String: Fix a bug in calculating the number of significant digits for exact powers of 10 2025-08-13 13:11:36 +01:00
Anthony Nicholls
36d07a6ce3 Docs: Replace doxygen preprocessor conditionals with @cond and @endconds 2025-07-21 18:11:43 +02:00
Anthony Nicholls
51b46f3cd1 NewLine: Add support for strings appearing on the opposite side of the plus operator 2025-07-14 16:50:08 +01:00
reuk
5208b3ffc0
GlyphArrangement: Use portable string trimming 2025-06-03 16:12:00 +01:00
Anthony Nicholls
5e803ded5f Deprecations: Add ignore deprecation warning macros 2024-11-27 11:07:04 +00:00
Anthony Nicholls
0823ee6aed String: Fix the string length being passed in a UTF conversion test 2024-11-27 11:06:56 +00:00
Anthony Nicholls
bd322d0f78 String: Refactor a test function to be more generic 2024-11-27 11:06:56 +00:00
reuk
77f3073d92
String: Fix unit test failure for random seed 0xaccaaad0444426fa 2024-10-08 17:32:42 +01:00
Anthony Nicholls
77d4198091 Text: Refactor UTF-8 test to prevent warnings 2024-09-30 12:49:57 +01:00
Anthony Nicholls
0a78fefecb Text: Improve string validation
- Reject surrogate code points for all unicode encodings
- Prevent out of bounds access in some cases
- Move ASCII and UTF character validation functions to CharacterFunctions
- Add more unit tests
2024-09-06 15:40:39 +00:00
reuk
9112911122
MinGW: Remove support 2024-06-27 18:10:21 +01:00
Tatsuya Shiozawa
131b838c65
String: Use string length during UTF8 conversion
This implementation is equivalent to JUCE 7.
2024-06-20 17:52:22 +01:00
reuk
7c2a5fc758
JSON: Fix issue where max decimal places option was ignored during serialisation 2024-05-08 17:53:52 +01:00
Anthony Nicholls
bce68c2b11 String: Prevent implicit conversion warning in UTF-8 constructor 2024-05-01 14:39:09 +00:00
reuk
6be2db68d6 CharPointer: Tidy up and fix arithmetic operator return types 2024-04-16 17:48:35 +01:00
Anthony Nicholls
cde0593756 String: Add support for char8_t string literals 2024-04-16 17:48:35 +01:00
Tom Poole
94d98a2b10 Update licensing information 2024-04-16 11:39:35 +01:00
Tom Poole
6bf9bb9a2e Add final specifiers in implementation files 2023-10-10 16:12:38 +01:00
Tom Poole
4153d59e39 Formatting 2023-10-02 15:42:20 +01:00
Tom Poole
9b041f3d74 Add a base clang-tidy configuration 2023-09-18 11:24:19 +01:00
reuk
28414a6af8
Global: Avoid floating-point equality checks where possible 2023-04-04 19:55:11 +01:00
Tom Poole
cb494df663 Docs: Update Doxygen configuration 2023-01-18 15:00:42 +00:00
reuk
7c14c1fcd7
Use more concise stdlib type aliases 2022-09-26 18:03:47 +01:00
Tom Poole
cb2efe5d59 Improve some documentation 2022-07-14 15:24:40 +01:00
reuk
5fcb718ac9
String: Avoid using refcount to detect empty strings 2022-04-22 14:18:49 +01:00
Tom Poole
dea3fe60e4 Update copyright banners 2022-04-04 12:36:32 +01:00
reuk
fdfc279bea String: Fix logical error in hex parsing code 2022-02-07 14:24:11 +00:00
reuk
d66f9399ba
StringPairArray: Allow adding the contents of a std::unordered_map<String, String> 2022-01-10 22:15:19 +00:00
attila
f052e1becb Fix CharPointer_UTF8::isWhitespace() when encountering ideographic whitespace 2021-12-17 11:23:09 +01:00
ed
fc0f6b1f2f Tidy up 2021-12-02 09:24:55 +00:00
reuk
6244fc293f
CharacterFunctions: Avoid UB when parsing hex strings 2021-10-25 09:51:20 +01:00
ed
aabd65b0fd Text: Fix some build issues when JUCE_STRING_UTF_TYPE != 8 2021-10-14 16:52:31 +01:00
ed
b9542ccc4c Update code to use C++14 [[deprecated]] attribute
This commit removes the various compiler-specific JUCE_DEPRECATED macros and replaces them with C++14's deprecated attribute. It also removes the JUCE_CATCH_DEPRECATED_CODE_MISUSE flag as we can rely on the override specifier catching usage of these old virtual methods, and tidies up the DOXYGEN preprocessor checks as they were inconsistent across the codebase.
2021-09-29 16:14:00 +01:00
reuk
3c68581567
Use jassertquiet where possible 2021-07-23 10:58:44 +01:00
reuk
31a7c62baf
Windows: Fix and suppress some analysis warnings
This fixes warnings that are emitted when building with the `-analyze`
flag enabled.
2021-05-26 15:34:26 +01:00
Tom Poole
bfdda737a2 Projucer: Removed the live build 2021-05-14 12:54:07 +01:00
Tom Poole
79fbde7099 Added preliminary support for FreeBSD 2021-03-29 14:16:46 +01:00
reuk
64b9366e8f
CharacterFunctions: Add new function to move pointer past whitespace 2021-02-18 10:54:29 +00:00
Tom Poole
7c33b2132f Fixed some parsing issues in readDoubleValue 2021-02-03 17:53:32 +00:00
reuk
c41149f48d
String: Fix documentation for getTrailingIntValue 2021-01-28 15:59:24 +00:00
reuk
ff758a53b4
Array: Fix perfect forwarding when adding elements 2021-01-22 10:23:11 +00:00
reuk
5d26b6a20f
Aiff: Fix extremely slow loads of pathological files
If an aiff file advertied a large number of metadata keys, the
StringPairArray::set calls resulted in quadratic complexity.

We now read keys into a std::map instead, as it enables much faster
lookup, and then convert back to a StringPairArray at the last possible
moment.
2020-12-03 12:06:00 +00:00
reuk
4d27422d9f GCC: Suppress cast-align warnings 2020-09-24 12:52:45 +01:00
ed
744e16eebd Fixed some Doxygen parsing issues 2020-07-03 17:18:35 +01:00
ed
7f4b6e3288 Added missing String::operator+=() implementation for long ints 2020-06-08 12:48:32 +01:00
ed
b5214a341e Normalised lambda whitespace 2020-06-05 09:37:56 +01:00