mirror of
https://github.com/storytold/wordcraft.git
synced 2026-10-25 19:07:17 -06:00
* RTF import: Mac OS Roman text (`\mac`, `\fcharset77`) (#1653) A Macintosh RTF document (`{\rtf1\mac …}`) had its `\'xx` bytes read as Windows-1252: LibreOffice's fdo85889-mac.rtf showed "ñòó" instead of "ÒÚÛ". Mac OS Roman (code page 10000, with the euro sign at 0xDB) joins the single-byte code pages, and the reader uses it for `\mac` documents, fonts with the Mac charset (`\fcharset77`) and `\cpg` / `\ansicpg` 10000. Tests: the code page table (accents, euro, quotes) and two RTF cases, the issue's file and a Mac-charset font in a Windows document. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * RTF import: DOS code pages (`\pc`, `\pca`, OEM `\cpg`) (#1653) With the OEM tables from #1146 now on main, the RTF reader decodes DOS text too: `\pc` documents as code page 437, `\pca` as 850, a font's `\cpg` 437/737/850/852/857/866 and `\fcharset254` (PC 437). `encoding::code_page_byte` decodes a byte of document text in any code page RTF names (Windows, OEM or Mac OS Roman; ASCII below 0x80 stays ASCII), and `is_byte_code_page` says which those are. `SINGLE_BYTE_CODE_PAGES` stays Windows-only, so `text.typeCode`'s `ansi` pages are unchanged. A `\cpg` / `\ansicpg` number out of the u16 range is now ignored; before, `pv as u16` truncated it to another code page (65973 read as 437). Tests: document text in DOS, Mac and Windows pages; `\pc`, `\pca` with a `\cpg437` font, and an out-of-range `\ansicpg`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Brandon Thomas <echelon@gmail.com>