From 988ba05fa816196b64572c71b026f63856b1f246 Mon Sep 17 00:00:00 2001 From: mösi Date: Thu, 6 Oct 2011 09:23:05 +0000 Subject: • Das Skript ist jetzt mit dem neuen AutoHotkey_L Unicode kompatibel, aber nur mehr bedingt mit dem alten AHK oder dem AutoHotkey_L ANSI. • Die Dynamische BST (M3+F3) reagiert jetzt nicht nur auf Compose, sondern auch auf Ebene 5/6. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.neo-layout.org@2407 b9310e46-f624-0410-8ea1-cfbb3a30dc96 --- windows/neo-vars/src/source/compose-gen.ahk | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'windows/neo-vars/src/source/compose-gen.ahk') diff --git a/windows/neo-vars/src/source/compose-gen.ahk b/windows/neo-vars/src/source/compose-gen.ahk index 75f8bfb..afadb9c 100644 --- a/windows/neo-vars/src/source/compose-gen.ahk +++ b/windows/neo-vars/src/source/compose-gen.ahk @@ -1799,7 +1799,17 @@ SetFormat, Integer, hex break char := asc(SubStr(str,1,1)) str := SubStr(str,2) - if (char < 0x80) + if (A_IsUnicode) { + if ((char < 0xDC00) or (char >= 0xE000)) + result .= "U" . SubStr("000000" . Substr(char, 3), -5) + else { + ; unwrap surrogates + char2 := asc(Substr(str,1,1)) + str := SubStr(str,2) + result .= "U" . SubStr("000000" . SubStr(((char & 0x3FF) << 12) + (char2 & 0x3FF), 3), -5) + } + } + else if (char < 0x80) result .= "U" . SubStr("000000" . SubStr(char,3),-5) else if (char < 0xC0) { ; error -- cgit v1.2.3