diff --git a/src/gfx_layout.cpp b/src/gfx_layout.cpp index dbead01676..73b2e0ae3d 100644 --- a/src/gfx_layout.cpp +++ b/src/gfx_layout.cpp @@ -93,6 +93,8 @@ static inline void GetLayouter(Layouter::LineCacheItem &line, std::string_view s state.PopColour(); } else if (c >= SCC_FIRST_FONT && c <= SCC_LAST_FONT) { state.SetFontSize((FontSize)(c - SCC_FIRST_FONT)); + } else if (c == 0x200B) { + /* Zero-width space. */ } else { /* Filter out non printable characters */ if (!IsPrintable(c)) continue; diff --git a/src/table/strgen_tables.h b/src/table/strgen_tables.h index badab707bd..b4d1a356f1 100644 --- a/src/table/strgen_tables.h +++ b/src/table/strgen_tables.h @@ -145,6 +145,7 @@ static const CmdStruct _cmd_structs[] = { {"RIGHT_ARROW", EmitSingleChar, SCC_RIGHT_ARROW, 0, -1, C_DONTCOUNT}, {"SMALL_LEFT_ARROW", EmitSingleChar, SCC_LESS_THAN, 0, -1, C_DONTCOUNT}, {"SMALL_RIGHT_ARROW", EmitSingleChar, SCC_GREATER_THAN, 0, -1, C_DONTCOUNT}, + {"ZWSP", EmitSingleChar, 0x200B, 0, -1, C_DONTCOUNT}, /* The following are directional formatting codes used to get the RTL strings right: * http://www.unicode.org/unicode/reports/tr9/#Directional_Formatting_Codes */