Three quality gaps closed, one of them unlocking the C engine for the most common Chinese configuration: - first-line indent now runs on the 1D DP and the C engine (module 1.5: ekp-c-break-with-arrays grows a 15th arg FIRST-LINE-WIDTH). A line starts at box 0 exactly when i = 0, so no (position x line-count) state is needed; only true parshape and looseness still take the 2D Elisp path. Indented Chinese sample, w=400: C engine 82 ms (this configuration previously bypassed C entirely and ran the heaviest Elisp DP). The C-result reconstruction mirrors the per-line width, and an equivalence test pins indent == the equivalent parshape across engines. - LEFTHYPHENMIN / RIGHTHYPHENMIN are parsed from dictionaries and applied (en_US declares 2/3; the hardcoded 2/2 allowed breaks like "gen-cy" that the dictionary forbids). Explicit overrides still win; partial overrides keep the dictionary's other side. - JIS X 4051 line-start prohibition for small kana, the prolonged sound mark and iteration marks (new defcustom ekp-cjk-no-line-start-extra, char-table backed): っょー々 can no longer start a line. Pure break-permission change; spacing and the DP are untouched. Also fixed in passing: - ekp--split-with-hyphen extracted regexp groups AFTER resolving the hyphenator; dictionary compilation clobbers the match data (latent since the resolver was hoisted; exposed by the HYPHENMIN parser) — groups are captured first now. - ekp--first-indent-pixel goes through the width cache; it runs once per rendered line and was re-measuring the reference glyph every time (C path was 397 ms before, 82 ms after). 4 new ERT tests (92 total); fuzz 300/300 against C 1.5. C module must be rebuilt: make -C ekp_c clean all Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| ekp-bench.el | ||
| ekp-demo.el | ||
| ekp-fuzz.el | ||
| ekp-region-tests.el | ||
| ekp-showcase.el | ||
| ekp-tests.el | ||
| run-tests.sh | ||
| text-de_DE.txt | ||
| text-en_US.txt | ||
| text-fr.txt | ||
| text-zh2-en_US.txt | ||
| text-zh-en_US.txt | ||
| text-zh.txt | ||