[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#36923: Combining Diacritical Marks are not Latin only
From: |
Juri Linkov |
Subject: |
bug#36923: Combining Diacritical Marks are not Latin only |
Date: |
Mon, 05 Aug 2019 22:41:59 +0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (x86_64-pc-linux-gnu) |
>> (aref char-script-table ?\N{COMBINING ACUTE ACCENT})
>>
>> could return
>>
>> (latin greek cyrillic)
>>
>> instead of the current
>>
>> latin
>
> char-script-table is documented to yield a single symbol, so returning
> a list would be an incompatible change, which we should avoid.
The docstring of char-script-table says:
Char table of script symbols.
It has one extra slot whose value is a list of script symbols.
So it seems char-script-table should yield a list of script symbols?
I searched more for char-script-table in the documentation, and one
place where it's used is forward-word. But I don't understand why
forward-word doesn't stop between “COMBINING ACUTE ACCENT” (that is
the Latin script) and non-Latin letters.
This is good that it doesn't stop here, and I'm just trying to
understand why - so the same logic could be used in markchars-mode.
Maybe it doesn't stop because of special script handling in
‘find-word-boundary-function-table’? Or because it ignores all
combining characters?
BTW, while looking at forward-word and right-word I noticed inconsistency:
there are left-word and right-word commands, but no left-sexp and right-sexp
to accompany forward-sexp.
> More generally, I think what you describe is a clear conceptual bug in
> markchars-mode: it should only pay attention to the script of the base
> characters, not to the script of combining accents. The latter is
> mostly irrelevant, certainly so for the purpose of detecting
> confusables.
Could you suggest a proper function to strip all combining characters
from the string?