summaryrefslogtreecommitdiffstats
path: root/windows/neo-vars/src/source/compose-gen.ahk
diff options
context:
space:
mode:
authormösi <mösi@b9310e46-f624-0410-8ea1-cfbb3a30dc96>2011-10-06 09:23:05 +0000
committermösi <mösi@b9310e46-f624-0410-8ea1-cfbb3a30dc96>2011-10-06 09:23:05 +0000
commit988ba05fa816196b64572c71b026f63856b1f246 (patch)
tree2df9b0b556b6d245704aa8b2f0864619edfb637f /windows/neo-vars/src/source/compose-gen.ahk
parent77ebd4b08ea9b6e0119c6724fd1399f33b59107e (diff)
• 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. git-svn-id: https://svn.neo-layout.org@2407 b9310e46-f624-0410-8ea1-cfbb3a30dc96
Diffstat (limited to 'windows/neo-vars/src/source/compose-gen.ahk')
-rw-r--r--windows/neo-vars/src/source/compose-gen.ahk12
1 files changed, 11 insertions, 1 deletions
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