Disallow font change codes in the middle of UTF8 sequences.
This change to Font Manager fixes the problem of UTF8 strings being garbled in Wimp icons when the system alphabet isn't set to UTF8, but the encoding of the font set for the icon is UTF8.
Currently, when the system alphabet is not UTF8, even if an icon has been set to use a font opened with "\EUTF8", the Wimp still replaces all special wimp symbols in the &8x range with [code change to WimpSymbol font] + symbol + [code change back] (as long as the U+FFFD replacement character isn't defined in the font*1). This is undesirable if the icon contains UTF8-encoded text, since top-bit set bytes (in the &8x range) are part of valid sequences. This change causes the Font Manager to skip font change codes if they occur in the middle of a UTF8 sequence.
If applications want to use wimp symbols in UTF8 sequences, they should use the UTF8 sequences thereof, as detailed in the documentation.
Also, unrelated, fixes some debugging code Entry macros to EntryS, and a register recovery from the stack to use the FramLDR macro.
- If the encoding is UTF8, and the FM encounters eg. &88, it will reject it and provide the replacement character. The Wimp checks the returned character's bbox to see if the character was defined in the font, and therefore erroneously concludes that the original character (&88) was defined if, in fact, the replacement character is defined.