25e2a21245f186acf57e1be6227c9e2fdf9a4363
Root cause: ns_ax_buffer_text used BUF_BYTE_ADDRESS + raw pointer read which crosses the buffer gap when visible runs span it. The gap follows point, so completion cycling and dired navigation reliably trigger corruption — VoiceOver reads wrong text. Fix: Replace raw pointer extraction with Fbuffer_substring_no_properties which handles the gap internally. Add ax_length field to visible run struct for accurate UTF-16 length tracking (fixes supplementary Unicode character offset drift). Secondary: ax_offset accumulation now uses NSString length (UTF-16 units) instead of Emacs char count, preventing progressive drift in index mapping for subsequent visible runs.
# instalace mailu: brew install mu isync msmtp pak mbsync personal (musi existovat .mbsyncrc) pak mu init --maildir=~/.mail --my-address=martin@sukany.cz mu index
Description
Languages
Emacs Lisp
95.3%
Shell
4.7%