mirror of
https://github.com/storytold/figcraft.git
synced 2026-10-27 20:06:53 -06:00
JIS X 4051's line-start (行頭禁則) and line-end (行末禁則) sets were mostly there — closing punctuation and brackets, small kana, the prolonged sound mark, iteration marks and opening brackets already never start or end a line — but a few categories fell through: - the halfwidth small kana ァ–ッ (U+FF67..U+FF6F) and the halfwidth voicing marks ゙゚ (U+FF9E/U+FF9F) were not line-start prohibited, so a wrapped line could begin with them; - the spacing (semi-)voiced sound marks ゛゜ (U+309B/U+309C) and the kana iteration marks 〱〲〳〴〵 (U+3031..U+3035) likewise; - the halfwidth parentheses ⦅⦆ were missing from the line-end/line-start sets. Add them (ranges in `class`, the two parentheses in the OPEN and CLOSE strings), and pin every JIS category in the behaviour suite: the existing 22 cases stay and 9 join them (halfwidth small kana and small tsu, halfwidth and spacing voicing marks, kana and vertical kana iteration marks, both halfwidth parentheses), plus a wrap case where a halfwidth small kana moves down with its base (キャ) and a case showing a manual newline may still start a line with a prohibited character (禁則 is for automatic wrapping only). `break_opportunities` fails on the old sets at the first new halfwidth small-kana case. Latin wrapping, ideograph breaks and the rest of the behaviour suite are unchanged, and the headline numbers stay as they are. Verified: cargo test -p figcraft-text --lib 92 passed; cargo clippy -p figcraft-text --all-targets -- -D warnings clean; rustfmt clean on the touched files. Docs: docs/target-app-parity.md text behaviour row and ROADMAP progress log, revision history and header.