diff --git a/modules/juce_graphics/unicode/juce_Unicode.cpp b/modules/juce_graphics/unicode/juce_Unicode.cpp index 076c4a2acf..e215460c89 100644 --- a/modules/juce_graphics/unicode/juce_Unicode.cpp +++ b/modules/juce_graphics/unicode/juce_Unicode.cpp @@ -310,6 +310,7 @@ public: doTest ("12345_00001"); doTest ("1_3(1)"); doTest ("-12323"); + doTest ("8784-43_-33"); } }; diff --git a/modules/juce_graphics/unicode/juce_UnicodeBidi.cpp b/modules/juce_graphics/unicode/juce_UnicodeBidi.cpp index 6077ac8f80..1fe70f9ed3 100644 --- a/modules/juce_graphics/unicode/juce_UnicodeBidi.cpp +++ b/modules/juce_graphics/unicode/juce_UnicodeBidi.cpp @@ -387,15 +387,18 @@ private: const auto level = (uint16_t) embeddingLevel; const auto isEven = isOdd (level) == false; - JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wswitch-enum") - switch (curr.getBidiType()) + if (curr.getGeneralCategory() != GeneralCategory::pc) { - case BidiType::ltr: curr.bidiLevel = (isEven ? level : level + 1); break; - case BidiType::rtl: curr.bidiLevel = (isEven ? level + 1 : level ); break; + JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wswitch-enum") + switch (curr.getBidiType()) + { + case BidiType::ltr: curr.bidiLevel = (isEven ? level : level + 1); break; + case BidiType::rtl: curr.bidiLevel = (isEven ? level + 1 : level ); break; - default: break; + default: break; + } + JUCE_END_IGNORE_WARNINGS_GCC_LIKE } - JUCE_END_IGNORE_WARNINGS_GCC_LIKE } }