Hi all. I mainly use Autohotkey to quickly type accented and otherwise obscure Unicode glyphs not normally accessible via the keyboard (e.g. macrons and dots over or under characters, etc).
The basic syntax is like this:
Code:
:c*?:.A+:: ; user types .A+, which should give U+1EA0 (A with dot underneath)
uc = áº
Goto, uni
:c*?:.a+:: ; user types .a+, which should give U+1EA1 (a with dot underneath)
uc = ạ
Goto, uni
uni:
Transform, Clipboard, Unicode, %uc%
Send ^v
return
This works perfectly for almost everything, with the exception of a handful of characters whose double-byte codes (the bit after uc =) end in a no-break space (U+00A0), in which case the keyboard input is replaced by nothing (i.e. it's deleted, not replaced).
I'm on XP. The behaviour occurs in AutoHotkey 1.0.48 (which I know is old), but also in the latest AutoHotkey_L (v1.1.00.00), with the following syntax:
Code:
:c*?:.A+::Ạ ; (= Ạ- should give A with dot underneath)
:c*?::G+::Ġ ; (= Ä - should give G with dot over)
:c*?::S+::Ṡ ; (= á¹ - should give S with dot over)
:c*?:-G+::Ḡ ; (= Ḡ- should give G with macron over)
... etc
Strangely, not all characters whose double-byte codes end in no-break space are affected. From my own list of several hundred substitutions, the only characters affected by this are those in the example above, namely Ạ Ġ Ṡ and Ḡ - all of whose doublebyte codes end in no-break space.
The problem is definitely not font-related.
Could someone please have a look at the double-byte code parser and see what it does with no-break spaces.
Many thanks
[Moved from Bug Reports. ~jaco0646]