mirror of
https://github.com/storytold/deckcraft.git
synced 2026-10-26 11:36:58 -06:00
PowerPoint stores a Symbol-font character as U+F0xx with <a:sym typeface="Symbol"/>: U+F0DE is the Symbol font's double arrow (=>). The layout drew it from whichever installed face happened to map U+F0DE (Wingdings draws an arrow at another angle), because Apple's "Symbol" on macOS has no private-use cmap at all — it maps the glyphs to real Unicode instead. The test that checked this skipped on macOS. Add the Adobe Symbol encoding table (unicode.org MAPPINGS/VENDORS/ADOBE/symbol.txt; Apple's Mac OS Symbol is laid out identically) and remap a document's U+F0xx code to the real Unicode character the installed Symbol face draws it at: the PUA code when the face has one, else the encoding's real character (U+F0DE -> U+21D2 =>). The remap applies wherever a symbol-font character is drawn: - text runs with an a:sym font (shape_cells picks the face, shape_item remaps during shaping), - bullets (symbol_font_char), - metafile text (symbol_char). The previously-skipped symbol_font_characters_draw_in_the_sym_font test now runs on macOS (its guard checks the remapped character), and a new test checks U+F0DE draws as U+21D2 on Apple's Symbol.