summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog.20022
-rw-r--r--doc/SetClassProcs.32
-rw-r--r--doc/keysyms.n1813
-rw-r--r--doc/ttk_Geometry.32
-rw-r--r--generic/ks_names.h4
-rw-r--r--generic/tkUtil.c14
-rw-r--r--macosx/tkMacOSXFont.c2
-rw-r--r--macosx/tkMacOSXMouseEvent.c69
-rw-r--r--macosx/tkMacOSXNotify.c9
-rw-r--r--macosx/tkMacOSXTest.c100
-rw-r--r--tests/bind.test23
-rw-r--r--tests/canvImg.test20
-rw-r--r--tests/grab.test36
-rw-r--r--win/tkWinPointer.c6
-rw-r--r--xlib/X11/keysymdef.h2
15 files changed, 1166 insertions, 938 deletions
diff --git a/ChangeLog.2002 b/ChangeLog.2002
index b523e7d..b27b92b 100644
--- a/ChangeLog.2002
+++ b/ChangeLog.2002
@@ -5218,7 +5218,7 @@
2000-05-31 Eric Melski <ericm@scriptics.com>
* library/bgerror.tcl: Improved bgerror based on work by Donal
- K. Fellows; no longer dependant on tk_dialog; features a
+ K. Fellows; no longer dependent on tk_dialog; features a
Windows-esque "Details" button, and a customizable extra function
button that allows the user to (for example) save the stack trace
to a file.
diff --git a/doc/SetClassProcs.3 b/doc/SetClassProcs.3
index 58618da..99eb81c 100644
--- a/doc/SetClassProcs.3
+++ b/doc/SetClassProcs.3
@@ -56,7 +56,7 @@ The \fIinstanceData\fR parameter passed to the \fIworldChangedProc\fR
will be identical to the \fIinstanceData\fR parameter passed to
\fBTk_SetClassProcs\fR.
.PP
-\fIcreateProc\fR is used to create platform-dependant windows. It is
+\fIcreateProc\fR is used to create platform-dependent windows. It is
invoked by \fBTk_MakeWindowExist\fR. \fIcreateProc\fR should have
arguments and results that match the type \fBTk_ClassCreateProc\fR:
.CS
diff --git a/doc/keysyms.n b/doc/keysyms.n
index 512c1a6..d5822a6 100644
--- a/doc/keysyms.n
+++ b/doc/keysyms.n
@@ -18,908 +18,941 @@ keysyms that will be recognized by Tk. Note that not all keysyms will
be valid on all platforms, and some keysyms are also available on
platforms that have a different native name for that key.
For example, on Unix systems, the presence
-of a particular keysym is dependant on the configuration of the
+of a particular keysym is dependent on the configuration of the
keyboard modifier map. This list shows keysyms along with their
decimal and hexadecimal values.
.PP
.CS
-space 32 0x0020
-exclam 33 0x0021
-quotedbl 34 0x0022
-numbersign 35 0x0023
-dollar 36 0x0024
-percent 37 0x0025
-ampersand 38 0x0026
-quoteright 39 0x0027
-parenleft 40 0x0028
-parenright 41 0x0029
-asterisk 42 0x002a
-plus 43 0x002b
-comma 44 0x002c
-minus 45 0x002d
-period 46 0x002e
-slash 47 0x002f
-0 48 0x0030
-1 49 0x0031
-2 50 0x0032
-3 51 0x0033
-4 52 0x0034
-5 53 0x0035
-6 54 0x0036
-7 55 0x0037
-8 56 0x0038
-9 57 0x0039
-colon 58 0x003a
-semicolon 59 0x003b
-less 60 0x003c
-equal 61 0x003d
-greater 62 0x003e
-question 63 0x003f
-at 64 0x0040
-A 65 0x0041
-B 66 0x0042
-C 67 0x0043
-D 68 0x0044
-E 69 0x0045
-F 70 0x0046
-G 71 0x0047
-H 72 0x0048
-I 73 0x0049
-J 74 0x004a
-K 75 0x004b
-L 76 0x004c
-M 77 0x004d
-N 78 0x004e
-O 79 0x004f
-P 80 0x0050
-Q 81 0x0051
-R 82 0x0052
-S 83 0x0053
-T 84 0x0054
-U 85 0x0055
-V 86 0x0056
-W 87 0x0057
-X 88 0x0058
-Y 89 0x0059
-Z 90 0x005a
-bracketleft 91 0x005b
-backslash 92 0x005c
-bracketright 93 0x005d
-asciicircum 94 0x005e
-underscore 95 0x005f
-quoteleft 96 0x0060
-a 97 0x0061
-b 98 0x0062
-c 99 0x0063
-d 100 0x0064
-e 101 0x0065
-f 102 0x0066
-g 103 0x0067
-h 104 0x0068
-i 105 0x0069
-j 106 0x006a
-k 107 0x006b
-l 108 0x006c
-m 109 0x006d
-n 110 0x006e
-o 111 0x006f
-p 112 0x0070
-q 113 0x0071
-r 114 0x0072
-s 115 0x0073
-t 116 0x0074
-u 117 0x0075
-v 118 0x0076
-w 119 0x0077
-x 120 0x0078
-y 121 0x0079
-z 122 0x007a
-braceleft 123 0x007b
-bar 124 0x007c
-braceright 125 0x007d
-asciitilde 126 0x007e
-nobreakspace 160 0x00a0
-exclamdown 161 0x00a1
-cent 162 0x00a2
-sterling 163 0x00a3
-currency 164 0x00a4
-yen 165 0x00a5
-brokenbar 166 0x00a6
-section 167 0x00a7
-diaeresis 168 0x00a8
-copyright 169 0x00a9
-ordfeminine 170 0x00aa
-guillemotleft 171 0x00ab
-notsign 172 0x00ac
-hyphen 173 0x00ad
-registered 174 0x00ae
-macron 175 0x00af
-degree 176 0x00b0
-plusminus 177 0x00b1
-twosuperior 178 0x00b2
-threesuperior 179 0x00b3
-acute 180 0x00b4
-mu 181 0x00b5
-paragraph 182 0x00b6
-periodcentered 183 0x00b7
-cedilla 184 0x00b8
-onesuperior 185 0x00b9
-masculine 186 0x00ba
-guillemotright 187 0x00bb
-onequarter 188 0x00bc
-onehalf 189 0x00bd
-threequarters 190 0x00be
-questiondown 191 0x00bf
-Agrave 192 0x00c0
-Aacute 193 0x00c1
-Acircumflex 194 0x00c2
-Atilde 195 0x00c3
-Adiaeresis 196 0x00c4
-Aring 197 0x00c5
-AE 198 0x00c6
-Ccedilla 199 0x00c7
-Egrave 200 0x00c8
-Eacute 201 0x00c9
-Ecircumflex 202 0x00ca
-Ediaeresis 203 0x00cb
-Igrave 204 0x00cc
-Iacute 205 0x00cd
-Icircumflex 206 0x00ce
-Idiaeresis 207 0x00cf
-Eth 208 0x00d0
-Ntilde 209 0x00d1
-Ograve 210 0x00d2
-Oacute 211 0x00d3
-Ocircumflex 212 0x00d4
-Otilde 213 0x00d5
-Odiaeresis 214 0x00d6
-multiply 215 0x00d7
-Ooblique 216 0x00d8
-Ugrave 217 0x00d9
-Uacute 218 0x00da
-Ucircumflex 219 0x00db
-Udiaeresis 220 0x00dc
-Yacute 221 0x00dd
-Thorn 222 0x00de
-ssharp 223 0x00df
-agrave 224 0x00e0
-aacute 225 0x00e1
-acircumflex 226 0x00e2
-atilde 227 0x00e3
-adiaeresis 228 0x00e4
-aring 229 0x00e5
-ae 230 0x00e6
-ccedilla 231 0x00e7
-egrave 232 0x00e8
-eacute 233 0x00e9
-ecircumflex 234 0x00ea
-ediaeresis 235 0x00eb
-igrave 236 0x00ec
-iacute 237 0x00ed
-icircumflex 238 0x00ee
-idiaeresis 239 0x00ef
-eth 240 0x00f0
-ntilde 241 0x00f1
-ograve 242 0x00f2
-oacute 243 0x00f3
-ocircumflex 244 0x00f4
-otilde 245 0x00f5
-odiaeresis 246 0x00f6
-division 247 0x00f7
-oslash 248 0x00f8
-ugrave 249 0x00f9
-uacute 250 0x00fa
-ucircumflex 251 0x00fb
-udiaeresis 252 0x00fc
-yacute 253 0x00fd
-thorn 254 0x00fe
-ydiaeresis 255 0x00ff
-Aogonek 417 0x01a1
-breve 418 0x01a2
-Lstroke 419 0x01a3
-Lcaron 421 0x01a5
-Sacute 422 0x01a6
-Scaron 425 0x01a9
-Scedilla 426 0x01aa
-Tcaron 427 0x01ab
-Zacute 428 0x01ac
+space 32 0x20
+exclam 33 0x21
+quotedbl 34 0x22
+numbersign 35 0x23
+dollar 36 0x24
+percent 37 0x25
+ampersand 38 0x26
+apostrophe 39 0x27
+parenleft 40 0x28
+parenright 41 0x29
+asterisk 42 0x2A
+plus 43 0x2B
+comma 44 0x2C
+minus 45 0x2D
+period 46 0x2E
+slash 47 0x2F
+0 48 0x30
+1 49 0x31
+2 50 0x32
+3 51 0x33
+4 52 0x34
+5 53 0x35
+6 54 0x36
+7 55 0x37
+8 56 0x38
+9 57 0x39
+colon 58 0x3A
+semicolon 59 0x3B
+less 60 0x3C
+equal 61 0x3D
+greater 62 0x3E
+question 63 0x3F
+at 64 0x40
+A 65 0x41
+B 66 0x42
+C 67 0x43
+D 68 0x44
+E 69 0x45
+F 70 0x46
+G 71 0x47
+H 72 0x48
+I 73 0x49
+J 74 0x4A
+K 75 0x4B
+L 76 0x4C
+M 77 0x4D
+N 78 0x4E
+O 79 0x4F
+P 80 0x50
+Q 81 0x51
+R 82 0x52
+S 83 0x53
+T 84 0x54
+U 85 0x55
+V 86 0x56
+W 87 0x57
+X 88 0x58
+Y 89 0x59
+Z 90 0x5A
+bracketleft 91 0x5B
+backslash 92 0x5C
+bracketright 93 0x5D
+asciicircum 94 0x5E
+underscore 95 0x5F
+grave 96 0x60
+a 97 0x61
+b 98 0x62
+c 99 0x63
+d 100 0x64
+e 101 0x65
+f 102 0x66
+g 103 0x67
+h 104 0x68
+i 105 0x69
+j 106 0x6A
+k 107 0x6B
+l 108 0x6C
+m 109 0x6D
+n 110 0x6E
+o 111 0x6F
+p 112 0x70
+q 113 0x71
+r 114 0x72
+s 115 0x73
+t 116 0x74
+u 117 0x75
+v 118 0x76
+w 119 0x77
+x 120 0x78
+y 121 0x79
+z 122 0x7A
+braceleft 123 0x7B
+bar 124 0x7C
+braceright 125 0x7D
+asciitilde 126 0x7E
+nobreakspace 160 0xA0
+exclamdown 161 0xA1
+cent 162 0xA2
+sterling 163 0xA3
+currency 164 0xA4
+yen 165 0xA5
+brokenbar 166 0xA6
+section 167 0xA7
+diaeresis 168 0xA8
+copyright 169 0xA9
+ordfeminine 170 0xAA
+guillemotleft 171 0xAB
+notsign 172 0xAC
+hyphen 173 0xAD
+registered 174 0xAE
+macron 175 0xAF
+degree 176 0xB0
+plusminus 177 0xB1
+twosuperior 178 0xB2
+threesuperior 179 0xB3
+acute 180 0xB4
+mu 181 0xB5
+paragraph 182 0xB6
+periodcentered 183 0xB7
+cedilla 184 0xB8
+onesuperior 185 0xB9
+masculine 186 0xBA
+guillemotright 187 0xBB
+onequarter 188 0xBC
+onehalf 189 0xBD
+threequarters 190 0xBE
+questiondown 191 0xBF
+Agrave 192 0xC0
+Aacute 193 0xC1
+Acircumflex 194 0xC2
+Atilde 195 0xC3
+Adiaeresis 196 0xC4
+Aring 197 0xC5
+AE 198 0xC6
+Ccedilla 199 0xC7
+Egrave 200 0xC8
+Eacute 201 0xC9
+Ecircumflex 202 0xCA
+Ediaeresis 203 0xCB
+Igrave 204 0xCC
+Iacute 205 0xCD
+Icircumflex 206 0xCE
+Idiaeresis 207 0xCF
+ETH 208 0xD0
+Ntilde 209 0xD1
+Ograve 210 0xD2
+Oacute 211 0xD3
+Ocircumflex 212 0xD4
+Otilde 213 0xD5
+Odiaeresis 214 0xD6
+multiply 215 0xD7
+Oslash 216 0xD8
+Ugrave 217 0xD9
+Uacute 218 0xDA
+Ucircumflex 219 0xDB
+Udiaeresis 220 0xDC
+Yacute 221 0xDD
+THORN 222 0xDE
+ssharp 223 0xDF
+agrave 224 0xE0
+aacute 225 0xE1
+acircumflex 226 0xE2
+atilde 227 0xE3
+adiaeresis 228 0xE4
+aring 229 0xE5
+ae 230 0xE6
+ccedilla 231 0xE7
+egrave 232 0xE8
+eacute 233 0xE9
+ecircumflex 234 0xEA
+ediaeresis 235 0xEB
+igrave 236 0xEC
+iacute 237 0xED
+icircumflex 238 0xEE
+idiaeresis 239 0xEF
+eth 240 0xF0
+ntilde 241 0xF1
+ograve 242 0xF2
+oacute 243 0xF3
+ocircumflex 244 0xF4
+otilde 245 0xF5
+odiaeresis 246 0xF6
+division 247 0xF7
+oslash 248 0xF8
+ugrave 249 0xF9
+uacute 250 0xFA
+ucircumflex 251 0xFB
+udiaeresis 252 0xFC
+yacute 253 0xFD
+thorn 254 0xFE
+ydiaeresis 255 0xFF
+Aogonek 417 0x1A1
+breve 418 0x1A2
+Lstroke 419 0x1A3
+Lcaron 421 0x1A5
+Sacute 422 0x1A6
+Scaron 425 0x1A9
+Scedilla 426 0x1AA
+Tcaron 427 0x1AB
+Zacute 428 0x1AC
.CE
.CS
-Zcaron 430 0x01ae
-Zabovedot 431 0x01af
-aogonek 433 0x01b1
-ogonek 434 0x01b2
-lstroke 435 0x01b3
-lcaron 437 0x01b5
-sacute 438 0x01b6
-caron 439 0x01b7
-scaron 441 0x01b9
-scedilla 442 0x01ba
-tcaron 443 0x01bb
-zacute 444 0x01bc
-doubleacute 445 0x01bd
-zcaron 446 0x01be
-zabovedot 447 0x01bf
-Racute 448 0x01c0
-Abreve 451 0x01c3
-Cacute 454 0x01c6
-Ccaron 456 0x01c8
-Eogonek 458 0x01ca
-Ecaron 460 0x01cc
-Dcaron 463 0x01cf
-Nacute 465 0x01d1
-Ncaron 466 0x01d2
-Odoubleacute 469 0x01d5
-Rcaron 472 0x01d8
-Uring 473 0x01d9
-Udoubleacute 475 0x01db
-Tcedilla 478 0x01de
-racute 480 0x01e0
-abreve 483 0x01e3
-cacute 486 0x01e6
-ccaron 488 0x01e8
-eogonek 490 0x01ea
-ecaron 492 0x01ec
-dcaron 495 0x01ef
-nacute 497 0x01f1
-ncaron 498 0x01f2
-odoubleacute 501 0x01f5
-rcaron 504 0x01f8
-uring 505 0x01f9
-udoubleacute 507 0x01fb
-tcedilla 510 0x01fe
-abovedot 511 0x01ff
-Hstroke 673 0x02a1
-Hcircumflex 678 0x02a6
-Iabovedot 681 0x02a9
-Gbreve 683 0x02ab
-Jcircumflex 684 0x02ac
-hstroke 689 0x02b1
-hcircumflex 694 0x02b6
-idotless 697 0x02b9
-gbreve 699 0x02bb
-jcircumflex 700 0x02bc
-Cabovedot 709 0x02c5
-Ccircumflex 710 0x02c6
-Gabovedot 725 0x02d5
-Gcircumflex 728 0x02d8
-Ubreve 733 0x02dd
-Scircumflex 734 0x02de
-cabovedot 741 0x02e5
-ccircumflex 742 0x02e6
-gabovedot 757 0x02f5
-gcircumflex 760 0x02f8
-ubreve 765 0x02fd
-scircumflex 766 0x02fe
-kappa 930 0x03a2
-Rcedilla 931 0x03a3
-Itilde 933 0x03a5
-Lcedilla 934 0x03a6
-Emacron 938 0x03aa
-Gcedilla 939 0x03ab
-Tslash 940 0x03ac
-rcedilla 947 0x03b3
-itilde 949 0x03b5
-lcedilla 950 0x03b6
-emacron 954 0x03ba
-gacute 955 0x03bb
-tslash 956 0x03bc
-ENG 957 0x03bd
-eng 959 0x03bf
-Amacron 960 0x03c0
-Iogonek 967 0x03c7
-Eabovedot 972 0x03cc
-Imacron 975 0x03cf
-Ncedilla 977 0x03d1
-Omacron 978 0x03d2
-Kcedilla 979 0x03d3
-Uogonek 985 0x03d9
-Utilde 989 0x03dd
-Umacron 990 0x03de
-amacron 992 0x03e0
-iogonek 999 0x03e7
-eabovedot 1004 0x03ec
-imacron 1007 0x03ef
-ncedilla 1009 0x03f1
-omacron 1010 0x03f2
-kcedilla 1011 0x03f3
-uogonek 1017 0x03f9
-utilde 1021 0x03fd
-umacron 1022 0x03fe
-overline 1150 0x047e
-kana_fullstop 1185 0x04a1
-kana_openingbracket 1186 0x04a2
-kana_closingbracket 1187 0x04a3
-kana_comma 1188 0x04a4
-kana_middledot 1189 0x04a5
-kana_WO 1190 0x04a6
-kana_a 1191 0x04a7
-kana_i 1192 0x04a8
-kana_u 1193 0x04a9
-kana_e 1194 0x04aa
-kana_o 1195 0x04ab
-kana_ya 1196 0x04ac
-kana_yu 1197 0x04ad
-kana_yo 1198 0x04ae
-kana_tu 1199 0x04af
-prolongedsound 1200 0x04b0
-kana_A 1201 0x04b1
-kana_I 1202 0x04b2
-kana_U 1203 0x04b3
-kana_E 1204 0x04b4
-kana_O 1205 0x04b5
-kana_KA 1206 0x04b6
-kana_KI 1207 0x04b7
-kana_KU 1208 0x04b8
-kana_KE 1209 0x04b9
-kana_KO 1210 0x04ba
-kana_SA 1211 0x04bb
-kana_SHI 1212 0x04bc
-kana_SU 1213 0x04bd
-kana_SE 1214 0x04be
-kana_SO 1215 0x04bf
-kana_TA 1216 0x04c0
-kana_TI 1217 0x04c1
-kana_TU 1218 0x04c2
-kana_TE 1219 0x04c3
-kana_TO 1220 0x04c4
-kana_NA 1221 0x04c5
-kana_NI 1222 0x04c6
-kana_NU 1223 0x04c7
-kana_NE 1224 0x04c8
-kana_NO 1225 0x04c9
-kana_HA 1226 0x04ca
-kana_HI 1227 0x04cb
-kana_HU 1228 0x04cc
-kana_HE 1229 0x04cd
-kana_HO 1230 0x04ce
-kana_MA 1231 0x04cf
-kana_MI 1232 0x04d0
-kana_MU 1233 0x04d1
-kana_ME 1234 0x04d2
-kana_MO 1235 0x04d3
-kana_YA 1236 0x04d4
-kana_YU 1237 0x04d5
-kana_YO 1238 0x04d6
-kana_RA 1239 0x04d7
-kana_RI 1240 0x04d8
-kana_RU 1241 0x04d9
-kana_RE 1242 0x04da
-kana_RO 1243 0x04db
-kana_WA 1244 0x04dc
-kana_N 1245 0x04dd
-voicedsound 1246 0x04de
-semivoicedsound 1247 0x04df
-Arabic_comma 1452 0x05ac
-Arabic_semicolon 1467 0x05bb
-Arabic_question_mark 1471 0x05bf
-Arabic_hamza 1473 0x05c1
-Arabic_maddaonalef 1474 0x05c2
-Arabic_hamzaonalef 1475 0x05c3
-Arabic_hamzaonwaw 1476 0x05c4
-Arabic_hamzaunderalef 1477 0x05c5
-Arabic_hamzaonyeh 1478 0x05c6
-Arabic_alef 1479 0x05c7
-Arabic_beh 1480 0x05c8
-Arabic_tehmarbuta 1481 0x05c9
-Arabic_teh 1482 0x05ca
-Arabic_theh 1483 0x05cb
-Arabic_jeem 1484 0x05cc
-Arabic_hah 1485 0x05cd
-Arabic_khah 1486 0x05ce
-Arabic_dal 1487 0x05cf
-Arabic_thal 1488 0x05d0
-Arabic_ra 1489 0x05d1
-Arabic_zain 1490 0x05d2
-Arabic_seen 1491 0x05d3
-Arabic_sheen 1492 0x05d4
-Arabic_sad 1493 0x05d5
-Arabic_dad 1494 0x05d6
-Arabic_tah 1495 0x05d7
-Arabic_zah 1496 0x05d8
-Arabic_ain 1497 0x05d9
-Arabic_ghain 1498 0x05da
-Arabic_tatweel 1504 0x05e0
-Arabic_feh 1505 0x05e1
-Arabic_qaf 1506 0x05e2
-Arabic_kaf 1507 0x05e3
-Arabic_lam 1508 0x05e4
-Arabic_meem 1509 0x05e5
+Zcaron 430 0x1AE
+Zabovedot 431 0x1AF
+aogonek 433 0x1B1
+ogonek 434 0x1B2
+lstroke 435 0x1B3
+lcaron 437 0x1B5
+sacute 438 0x1B6
+caron 439 0x1B7
+scaron 441 0x1B9
+scedilla 442 0x1BA
+tcaron 443 0x1BB
+zacute 444 0x1BC
+doubleacute 445 0x1BD
+zcaron 446 0x1BE
+zabovedot 447 0x1BF
+Racute 448 0x1C0
+Abreve 451 0x1C3
+Lacute 453 0x1C5
+Cacute 454 0x1C6
+Ccaron 456 0x1C8
+Eogonek 458 0x1CA
+Ecaron 460 0x1CC
+Dcaron 463 0x1CF
+Dstroke 464 0x1D0
+Nacute 465 0x1D1
+Ncaron 466 0x1D2
+Odoubleacute 469 0x1D5
+Rcaron 472 0x1D8
+Uring 473 0x1D9
+Udoubleacute 475 0x1DB
+Tcedilla 478 0x1DE
+racute 480 0x1E0
+abreve 483 0x1E3
+lacute 485 0x1E5
+cacute 486 0x1E6
+ccaron 488 0x1E8
+eogonek 490 0x1EA
+ecaron 492 0x1EC
+dcaron 495 0x1EF
+dstroke 496 0x1F0
+nacute 497 0x1F1
+ncaron 498 0x1F2
+odoubleacute 501 0x1F5
+rcaron 504 0x1F8
+uring 505 0x1F9
+udoubleacute 507 0x1FB
+tcedilla 510 0x1FE
+abovedot 511 0x1FF
+Hstroke 673 0x2A1
+Hcircumflex 678 0x2A6
+Iabovedot 681 0x2A9
+Gbreve 683 0x2AB
+Jcircumflex 684 0x2AC
+hstroke 689 0x2B1
+hcircumflex 694 0x2B6
+idotless 697 0x2B9
+gbreve 699 0x2BB
+jcircumflex 700 0x2BC
+Cabovedot 709 0x2C5
+Ccircumflex 710 0x2C6
+Gabovedot 725 0x2D5
+Gcircumflex 728 0x2D8
+Ubreve 733 0x2DD
+Scircumflex 734 0x2DE
+cabovedot 741 0x2E5
+ccircumflex 742 0x2E6
+gabovedot 757 0x2F5
+gcircumflex 760 0x2F8
+ubreve 765 0x2FD
+scircumflex 766 0x2FE
+kra 930 0x3A2
+Rcedilla 931 0x3A3
+Itilde 933 0x3A5
+Lcedilla 934 0x3A6
+Emacron 938 0x3AA
+Gcedilla 939 0x3AB
+Tslash 940 0x3AC
+rcedilla 947 0x3B3
+itilde 949 0x3B5
+lcedilla 950 0x3B6
+emacron 954 0x3BA
+gcedilla 955 0x3BB
+tslash 956 0x3BC
+ENG 957 0x3BD
+eng 959 0x3BF
+Amacron 960 0x3C0
+Iogonek 967 0x3C7
+Eabovedot 972 0x3CC
+Imacron 975 0x3CF
+Ncedilla 977 0x3D1
+Omacron 978 0x3D2
+Kcedilla 979 0x3D3
+Uogonek 985 0x3D9
+Utilde 989 0x3DD
+Umacron 990 0x3DE
+amacron 992 0x3E0
+iogonek 999 0x3E7
+eabovedot 1004 0x3EC
+imacron 1007 0x3EF
+ncedilla 1009 0x3F1
+omacron 1010 0x3F2
+kcedilla 1011 0x3F3
+uogonek 1017 0x3F9
+utilde 1021 0x3FD
+umacron 1022 0x3FE
+overline 1150 0x47E
+kana_fullstop 1185 0x4A1
+kana_openingbracket 1186 0x4A2
+kana_closingbracket 1187 0x4A3
+kana_comma 1188 0x4A4
+kana_conjunctive 1189 0x4A5
+kana_WO 1190 0x4A6
+kana_a 1191 0x4A7
+kana_i 1192 0x4A8
+kana_u 1193 0x4A9
+kana_e 1194 0x4AA
+kana_o 1195 0x4AB
+kana_ya 1196 0x4AC
+kana_yu 1197 0x4AD
+kana_yo 1198 0x4AE
+kana_tsu 1199 0x4AF
+prolongedsound 1200 0x4B0
+kana_A 1201 0x4B1
+kana_I 1202 0x4B2
+kana_U 1203 0x4B3
+kana_E 1204 0x4B4
+kana_O 1205 0x4B5
+kana_KA 1206 0x4B6
+kana_KI 1207 0x4B7
+kana_KU 1208 0x4B8
+kana_KE 1209 0x4B9
+kana_KO 1210 0x4BA
+kana_SA 1211 0x4BB
+kana_SHI 1212 0x4BC
+kana_SU 1213 0x4BD
+kana_SE 1214 0x4BE
+kana_SO 1215 0x4BF
+kana_TA 1216 0x4C0
+kana_CHI 1217 0x4C1
+kana_TSU 1218 0x4C2
+kana_TE 1219 0x4C3
+kana_TO 1220 0x4C4
+kana_NA 1221 0x4C5
+kana_NI 1222 0x4C6
+kana_NU 1223 0x4C7
+kana_NE 1224 0x4C8
+kana_NO 1225 0x4C9
+kana_HA 1226 0x4CA
+kana_HI 1227 0x4CB
+kana_FU 1228 0x4CC
+kana_HE 1229 0x4CD
+kana_HO 1230 0x4CE
+kana_MA 1231 0x4CF
+kana_MI 1232 0x4D0
+kana_MU 1233 0x4D1
+kana_ME 1234 0x4D2
+kana_MO 1235 0x4D3
+kana_YA 1236 0x4D4
+kana_YU 1237 0x4D5
+kana_YO 1238 0x4D6
+kana_RA 1239 0x4D7
+kana_RI 1240 0x4D8
+kana_RU 1241 0x4D9
+kana_RE 1242 0x4DA
+kana_RO 1243 0x4DB
+kana_WA 1244 0x4DC
+kana_N 1245 0x4DD
+voicedsound 1246 0x4DE
+semivoicedsound 1247 0x4DF
+Arabic_comma 1452 0x5AC
+Arabic_semicolon 1467 0x5BB
+Arabic_question_mark 1471 0x5BF
+Arabic_hamza 1473 0x5C1
+Arabic_maddaonalef 1474 0x5C2
+Arabic_hamzaonalef 1475 0x5C3
+Arabic_hamzaonwaw 1476 0x5C4
+Arabic_hamzaunderalef 1477 0x5C5
+Arabic_hamzaonyeh 1478 0x5C6
+Arabic_alef 1479 0x5C7
+Arabic_beh 1480 0x5C8
+Arabic_tehmarbuta 1481 0x5C9
+Arabic_teh 1482 0x5CA
+Arabic_theh 1483 0x5CB
+Arabic_jeem 1484 0x5CC
+Arabic_hah 1485 0x5CD
+Arabic_khah 1486 0x5CE
+Arabic_dal 1487 0x5CF
+Arabic_thal 1488 0x5D0
+Arabic_ra 1489 0x5D1
+Arabic_zain 1490 0x5D2
+Arabic_seen 1491 0x5D3
+Arabic_sheen 1492 0x5D4
+Arabic_sad 1493 0x5D5
+Arabic_dad 1494 0x5D6
+Arabic_tah 1495 0x5D7
+Arabic_zah 1496 0x5D8
+Arabic_ain 1497 0x5D9
+Arabic_ghain 1498 0x5DA
+Arabic_tatweel 1504 0x5E0
+Arabic_feh 1505 0x5E1
+Arabic_qaf 1506 0x5E2
+Arabic_kaf 1507 0x5E3
+Arabic_lam 1508 0x5E4
+Arabic_meem 1509 0x5E5
.CE
.CS
-Arabic_noon 1510 0x05e6
-Arabic_heh 1511 0x05e7
-Arabic_waw 1512 0x05e8
-Arabic_alefmaksura 1513 0x05e9
-Arabic_yeh 1514 0x05ea
-Arabic_fathatan 1515 0x05eb
-Arabic_dammatan 1516 0x05ec
-Arabic_kasratan 1517 0x05ed
-Arabic_fatha 1518 0x05ee
-Arabic_damma 1519 0x05ef
-Arabic_kasra 1520 0x05f0
-Arabic_shadda 1521 0x05f1
-Arabic_sukun 1522 0x05f2
-Serbian_dje 1697 0x06a1
-Macedonia_gje 1698 0x06a2
-Cyrillic_io 1699 0x06a3
-Ukranian_je 1700 0x06a4
-Macedonia_dse 1701 0x06a5
-Ukranian_i 1702 0x06a6
-Ukranian_yi 1703 0x06a7
-Serbian_je 1704 0x06a8
-Serbian_lje 1705 0x06a9
-Serbian_nje 1706 0x06aa
-Serbian_tshe 1707 0x06ab
-Macedonia_kje 1708 0x06ac
-Byelorussian_shortu 1710 0x06ae
-Serbian_dze 1711 0x06af
-numerosign 1712 0x06b0
-Serbian_DJE 1713 0x06b1
-Macedonia_GJE 1714 0x06b2
-Cyrillic_IO 1715 0x06b3
-Ukranian_JE 1716 0x06b4
-Macedonia_DSE 1717 0x06b5
-Ukranian_I 1718 0x06b6
-Ukranian_YI 1719 0x06b7
-Serbian_JE 1720 0x06b8
-Serbian_LJE 1721 0x06b9
-Serbian_NJE 1722 0x06ba
-Serbian_TSHE 1723 0x06bb
-Macedonia_KJE 1724 0x06bc
-Byelorussian_SHORTU 1726 0x06be
-Serbian_DZE 1727 0x06bf
-Cyrillic_yu 1728 0x06c0
-Cyrillic_a 1729 0x06c1
-Cyrillic_be 1730 0x06c2
-Cyrillic_tse 1731 0x06c3
-Cyrillic_de 1732 0x06c4
-Cyrillic_ie 1733 0x06c5
-Cyrillic_ef 1734 0x06c6
-Cyrillic_ghe 1735 0x06c7
-Cyrillic_ha 1736 0x06c8
-Cyrillic_i 1737 0x06c9
-Cyrillic_shorti 1738 0x06ca
-Cyrillic_ka 1739 0x06cb
-Cyrillic_el 1740 0x06cc
-Cyrillic_em 1741 0x06cd
-Cyrillic_en 1742 0x06ce
-Cyrillic_o 1743 0x06cf
-Cyrillic_pe 1744 0x06d0
-Cyrillic_ya 1745 0x06d1
-Cyrillic_er 1746 0x06d2
-Cyrillic_es 1747 0x06d3
-Cyrillic_te 1748 0x06d4
-Cyrillic_u 1749 0x06d5
-Cyrillic_zhe 1750 0x06d6
-Cyrillic_ve 1751 0x06d7
-Cyrillic_softsign 1752 0x06d8
-Cyrillic_yeru 1753 0x06d9
-Cyrillic_ze 1754 0x06da
-Cyrillic_sha 1755 0x06db
-Cyrillic_e 1756 0x06dc
-Cyrillic_shcha 1757 0x06dd
-Cyrillic_che 1758 0x06de
-Cyrillic_hardsign 1759 0x06df
-Cyrillic_YU 1760 0x06e0
-Cyrillic_A 1761 0x06e1
-Cyrillic_BE 1762 0x06e2
-Cyrillic_TSE 1763 0x06e3
-Cyrillic_DE 1764 0x06e4
-Cyrillic_IE 1765 0x06e5
-Cyrillic_EF 1766 0x06e6
-Cyrillic_GHE 1767 0x06e7
-Cyrillic_HA 1768 0x06e8
-Cyrillic_I 1769 0x06e9
-Cyrillic_SHORTI 1770 0x06ea
-Cyrillic_KA 1771 0x06eb
-Cyrillic_EL 1772 0x06ec
-Cyrillic_EM 1773 0x06ed
-Cyrillic_EN 1774 0x06ee
-Cyrillic_O 1775 0x06ef
-Cyrillic_PE 1776 0x06f0
-Cyrillic_YA 1777 0x06f1
-Cyrillic_ER 1778 0x06f2
-Cyrillic_ES 1779 0x06f3
-Cyrillic_TE 1780 0x06f4
-Cyrillic_U 1781 0x06f5
-Cyrillic_ZHE 1782 0x06f6
-Cyrillic_VE 1783 0x06f7
-Cyrillic_SOFTSIGN 1784 0x06f8
-Cyrillic_YERU 1785 0x06f9
-Cyrillic_ZE 1786 0x06fa
-Cyrillic_SHA 1787 0x06fb
-Cyrillic_E 1788 0x06fc
-Cyrillic_SHCHA 1789 0x06fd
-Cyrillic_CHE 1790 0x06fe
-Cyrillic_HARDSIGN 1791 0x06ff
-Greek_ALPHAaccent 1953 0x07a1
-Greek_EPSILONaccent 1954 0x07a2
-Greek_ETAaccent 1955 0x07a3
-Greek_IOTAaccent 1956 0x07a4
-Greek_IOTAdiaeresis 1957 0x07a5
-Greek_IOTAaccentdiaeresis 1958 0x07a6
-Greek_OMICRONaccent 1959 0x07a7
-Greek_UPSILONaccent 1960 0x07a8
-Greek_UPSILONdieresis 1961 0x07a9
-Greek_UPSILONaccentdieresis 1962 0x07aa
-Greek_OMEGAaccent 1963 0x07ab
-Greek_alphaaccent 1969 0x07b1
-Greek_epsilonaccent 1970 0x07b2
-Greek_etaaccent 1971 0x07b3
-Greek_iotaaccent 1972 0x07b4
-Greek_iotadieresis 1973 0x07b5
-Greek_iotaaccentdieresis 1974 0x07b6
-Greek_omicronaccent 1975 0x07b7
-Greek_upsilonaccent 1976 0x07b8
-Greek_upsilondieresis 1977 0x07b9
-Greek_upsilonaccentdieresis 1978 0x07ba
-Greek_omegaaccent 1979 0x07bb
-Greek_ALPHA 1985 0x07c1
-Greek_BETA 1986 0x07c2
-Greek_GAMMA 1987 0x07c3
-Greek_DELTA 1988 0x07c4
-Greek_EPSILON 1989 0x07c5
-Greek_ZETA 1990 0x07c6
-Greek_ETA 1991 0x07c7
-Greek_THETA 1992 0x07c8
-Greek_IOTA 1993 0x07c9
-Greek_KAPPA 1994 0x07ca
-Greek_LAMBDA 1995 0x07cb
-Greek_MU 1996 0x07cc
-Greek_NU 1997 0x07cd
-Greek_XI 1998 0x07ce
-Greek_OMICRON 1999 0x07cf
-Greek_PI 2000 0x07d0
-Greek_RHO 2001 0x07d1
-Greek_SIGMA 2002 0x07d2
-Greek_TAU 2004 0x07d4
-Greek_UPSILON 2005 0x07d5
-Greek_PHI 2006 0x07d6
-Greek_CHI 2007 0x07d7
-Greek_PSI 2008 0x07d8
-Greek_OMEGA 2009 0x07d9
-Greek_alpha 2017 0x07e1
-Greek_beta 2018 0x07e2
-Greek_gamma 2019 0x07e3
-Greek_delta 2020 0x07e4
-Greek_epsilon 2021 0x07e5
-Greek_zeta 2022 0x07e6
-Greek_eta 2023 0x07e7
-Greek_theta 2024 0x07e8
-Greek_iota 2025 0x07e9
-Greek_kappa 2026 0x07ea
-Greek_lambda 2027 0x07eb
-Greek_mu 2028 0x07ec
-Greek_nu 2029 0x07ed
-Greek_xi 2030 0x07ee
-Greek_omicron 2031 0x07ef
-Greek_pi 2032 0x07f0
-Greek_rho 2033 0x07f1
-Greek_sigma 2034 0x07f2
-Greek_finalsmallsigma 2035 0x07f3
-Greek_tau 2036 0x07f4
-Greek_upsilon 2037 0x07f5
-Greek_phi 2038 0x07f6
-Greek_chi 2039 0x07f7
-Greek_psi 2040 0x07f8
-Greek_omega 2041 0x07f9
-leftradical 2209 0x08a1
-topleftradical 2210 0x08a2
-horizconnector 2211 0x08a3
-topintegral 2212 0x08a4
-botintegral 2213 0x08a5
-vertconnector 2214 0x08a6
-topleftsqbracket 2215 0x08a7
-botleftsqbracket 2216 0x08a8
-toprightsqbracket 2217 0x08a9
-botrightsqbracket 2218 0x08aa
-topleftparens 2219 0x08ab
-botleftparens 2220 0x08ac
-toprightparens 2221 0x08ad
-botrightparens 2222 0x08ae
-leftmiddlecurlybrace 2223 0x08af
-rightmiddlecurlybrace 2224 0x08b0
-topleftsummation 2225 0x08b1
-botleftsummation 2226 0x08b2
-topvertsummationconnector 2227 0x08b3
-botvertsummationconnector 2228 0x08b4
-toprightsummation 2229 0x08b5
-botrightsummation 2230 0x08b6
-rightmiddlesummation 2231 0x08b7
+Arabic_noon 1510 0x5E6
+Arabic_ha 1511 0x5E7
+Arabic_waw 1512 0x5E8
+Arabic_alefmaksura 1513 0x5E9
+Arabic_yeh 1514 0x5EA
+Arabic_fathatan 1515 0x5EB
+Arabic_dammatan 1516 0x5EC
+Arabic_kasratan 1517 0x5ED
+Arabic_fatha 1518 0x5EE
+Arabic_damma 1519 0x5EF
+Arabic_kasra 1520 0x5F0
+Arabic_shadda 1521 0x5F1
+Arabic_sukun 1522 0x5F2
+Serbian_dje 1697 0x6A1
+Macedonia_gje 1698 0x6A2
+Cyrillic_io 1699 0x6A3
+Ukrainian_ie 1700 0x6A4
+Macedonia_dse 1701 0x6A5
+Ukrainian_i 1702 0x6A6
+Ukrainian_yi 1703 0x6A7
+Cyrillic_je 1704 0x6A8
+Cyrillic_lje 1705 0x6A9
+Cyrillic_nje 1706 0x6AA
+Serbian_tshe 1707 0x6AB
+Macedonia_kje 1708 0x6AC
+Byelorussian_shortu 1710 0x6AE
+Cyrillic_dzhe 1711 0x6AF
+numerosign 1712 0x6B0
+Serbian_DJE 1713 0x6B1
+Macedonia_GJE 1714 0x6B2
+Cyrillic_IO 1715 0x6B3
+Ukrainian_IE 1716 0x6B4
+Macedonia_DSE 1717 0x6B5
+Ukrainian_I 1718 0x6B6
+Ukrainian_YI 1719 0x6B7
+Cyrillic_JE 1720 0x6B8
+Cyrillic_LJE 1721 0x6B9
+Cyrillic_NJE 1722 0x6BA
+Serbian_TSHE 1723 0x6BB
+Macedonia_KJE 1724 0x6BC
+Byelorussian_SHORTU 1726 0x6BE
+Cyrillic_DZHE 1727 0x6BF
+Cyrillic_yu 1728 0x6C0
+Cyrillic_a 1729 0x6C1
+Cyrillic_be 1730 0x6C2
+Cyrillic_tse 1731 0x6C3
+Cyrillic_de 1732 0x6C4
+Cyrillic_ie 1733 0x6C5
+Cyrillic_ef 1734 0x6C6
+Cyrillic_ghe 1735 0x6C7
+Cyrillic_ha 1736 0x6C8
+Cyrillic_i 1737 0x6C9
+Cyrillic_shorti 1738 0x6CA
+Cyrillic_ka 1739 0x6CB
+Cyrillic_el 1740 0x6CC
+Cyrillic_em 1741 0x6CD
+Cyrillic_en 1742 0x6CE
+Cyrillic_o 1743 0x6CF
+Cyrillic_pe 1744 0x6D0
+Cyrillic_ya 1745 0x6D1
+Cyrillic_er 1746 0x6D2
+Cyrillic_es 1747 0x6D3
+Cyrillic_te 1748 0x6D4
+Cyrillic_u 1749 0x6D5
+Cyrillic_zhe 1750 0x6D6
+Cyrillic_ve 1751 0x6D7
+Cyrillic_softsign 1752 0x6D8
+Cyrillic_yeru 1753 0x6D9
+Cyrillic_ze 1754 0x6DA
+Cyrillic_sha 1755 0x6DB
+Cyrillic_e 1756 0x6DC
+Cyrillic_shcha 1757 0x6DD
+Cyrillic_che 1758 0x6DE
+Cyrillic_hardsign 1759 0x6DF
+Cyrillic_YU 1760 0x6E0
+Cyrillic_A 1761 0x6E1
+Cyrillic_BE 1762 0x6E2
+Cyrillic_TSE 1763 0x6E3
+Cyrillic_DE 1764 0x6E4
+Cyrillic_IE 1765 0x6E5
+Cyrillic_EF 1766 0x6E6
+Cyrillic_GHE 1767 0x6E7
+Cyrillic_HA 1768 0x6E8
+Cyrillic_I 1769 0x6E9
+Cyrillic_SHORTI 1770 0x6EA
+Cyrillic_KA 1771 0x6EB
+Cyrillic_EL 1772 0x6EC
+Cyrillic_EM 1773 0x6ED
+Cyrillic_EN 1774 0x6EE
+Cyrillic_O 1775 0x6EF
+Cyrillic_PE 1776 0x6F0
+Cyrillic_YA 1777 0x6F1
+Cyrillic_ER 1778 0x6F2
+Cyrillic_ES 1779 0x6F3
+Cyrillic_TE 1780 0x6F4
+Cyrillic_U 1781 0x6F5
+Cyrillic_ZHE 1782 0x6F6
+Cyrillic_VE 1783 0x6F7
+Cyrillic_SOFTSIGN 1784 0x6F8
+Cyrillic_YERU 1785 0x6F9
+Cyrillic_ZE 1786 0x6FA
+Cyrillic_SHA 1787 0x6FB
+Cyrillic_E 1788 0x6FC
+Cyrillic_SHCHA 1789 0x6FD
+Cyrillic_CHE 1790 0x6FE
+Cyrillic_HARDSIGN 1791 0x6FF
+Greek_ALPHAaccent 1953 0x7A1
+Greek_EPSILONaccent 1954 0x7A2
+Greek_ETAaccent 1955 0x7A3
+Greek_IOTAaccent 1956 0x7A4
+Greek_IOTAdieresis 1957 0x7A5
+Greek_IOTAaccentdiaeresis 1958 0x7A6
+Greek_OMICRONaccent 1959 0x7A7
+Greek_UPSILONaccent 1960 0x7A8
+Greek_UPSILONdieresis 1961 0x7A9
+Greek_UPSILONaccentdieresis 1962 0x7AA
+Greek_OMEGAaccent 1963 0x7AB
+Greek_accentdieresis 1966 0x7AE
+Greek_horizbar 1967 0x7AF
+Greek_alphaaccent 1969 0x7B1
+Greek_epsilonaccent 1970 0x7B2
+Greek_etaaccent 1971 0x7B3
+Greek_iotaaccent 1972 0x7B4
+Greek_iotadieresis 1973 0x7B5
+Greek_iotaaccentdieresis 1974 0x7B6
+Greek_omicronaccent 1975 0x7B7
+Greek_upsilonaccent 1976 0x7B8
+Greek_upsilondieresis 1977 0x7B9
+Greek_upsilonaccentdieresis 1978 0x7BA
+Greek_omegaaccent 1979 0x7BB
+Greek_ALPHA 1985 0x7C1
+Greek_BETA 1986 0x7C2
+Greek_GAMMA 1987 0x7C3
+Greek_DELTA 1988 0x7C4
+Greek_EPSILON 1989 0x7C5
+Greek_ZETA 1990 0x7C6
+Greek_ETA 1991 0x7C7
+Greek_THETA 1992 0x7C8
+Greek_IOTA 1993 0x7C9
+Greek_KAPPA 1994 0x7CA
+Greek_LAMDA 1995 0x7CB
+Greek_MU 1996 0x7CC
+Greek_NU 1997 0x7CD
+Greek_XI 1998 0x7CE
+Greek_OMICRON 1999 0x7CF
+Greek_PI 2000 0x7D0
+Greek_RHO 2001 0x7D1
+Greek_SIGMA 2002 0x7D2
+Greek_TAU 2004 0x7D4
+Greek_UPSILON 2005 0x7D5
+Greek_PHI 2006 0x7D6
+Greek_CHI 2007 0x7D7
+Greek_PSI 2008 0x7D8
+Greek_OMEGA 2009 0x7D9
+Greek_alpha 2017 0x7E1
+Greek_beta 2018 0x7E2
+Greek_gamma 2019 0x7E3
+Greek_delta 2020 0x7E4
+Greek_epsilon 2021 0x7E5
+Greek_zeta 2022 0x7E6
+Greek_eta 2023 0x7E7
+Greek_theta 2024 0x7E8
+Greek_iota 2025 0x7E9
+Greek_kappa 2026 0x7EA
+Greek_lamda 2027 0x7EB
+Greek_mu 2028 0x7EC
+Greek_nu 2029 0x7ED
+Greek_xi 2030 0x7EE
+Greek_omicron 2031 0x7EF
+Greek_pi 2032 0x7F0
+Greek_rho 2033 0x7F1
+Greek_sigma 2034 0x7F2
+Greek_finalsmallsigma 2035 0x7F3
+Greek_tau 2036 0x7F4
+Greek_upsilon 2037 0x7F5
+Greek_phi 2038 0x7F6
+Greek_chi 2039 0x7F7
+Greek_psi 2040 0x7F8
+Greek_omega 2041 0x7F9
+leftradical 2209 0x8A1
+topleftradical 2210 0x8A2
+horizconnector 2211 0x8A3
+topintegral 2212 0x8A4
+botintegral 2213 0x8A5
+vertconnector 2214 0x8A6
+topleftsqbracket 2215 0x8A7
+botleftsqbracket 2216 0x8A8
+toprightsqbracket 2217 0x8A9
+botrightsqbracket 2218 0x8AA
+topleftparens 2219 0x8AB
+botleftparens 2220 0x8AC
+toprightparens 2221 0x8AD
+botrightparens 2222 0x8AE
+leftmiddlecurlybrace 2223 0x8AF
+rightmiddlecurlybrace 2224 0x8B0
+topleftsummation 2225 0x8B1
+botleftsummation 2226 0x8B2
+topvertsummationconnector 2227 0x8B3
+botvertsummationconnector 2228 0x8B4
+toprightsummation 2229 0x8B5
+botrightsummation 2230 0x8B6
+rightmiddlesummation 2231 0x8B7
.CE
.CS
-lessthanequal 2236 0x08bc
-notequal 2237 0x08bd
-greaterthanequal 2238 0x08be
-integral 2239 0x08bf
-therefore 2240 0x08c0
-variation 2241 0x08c1
-infinity 2242 0x08c2
-nabla 2245 0x08c5
-approximate 2248 0x08c8
-similarequal 2249 0x08c9
-ifonlyif 2253 0x08cd
-implies 2254 0x08ce
-identical 2255 0x08cf
-radical 2262 0x08d6
-includedin 2266 0x08da
-includes 2267 0x08db
-intersection 2268 0x08dc
-union 2269 0x08dd
-logicaland 2270 0x08de
-logicalor 2271 0x08df
-partialderivative 2287 0x08ef
-function 2294 0x08f6
-leftarrow 2299 0x08fb
-uparrow 2300 0x08fc
-rightarrow 2301 0x08fd
-downarrow 2302 0x08fe
-blank 2527 0x09df
-soliddiamond 2528 0x09e0
-checkerboard 2529 0x09e1
-ht 2530 0x09e2
-ff 2531 0x09e3
-cr 2532 0x09e4
-lf 2533 0x09e5
-nl 2536 0x09e8
-vt 2537 0x09e9
-lowrightcorner 2538 0x09ea
-uprightcorner 2539 0x09eb
-upleftcorner 2540 0x09ec
-lowleftcorner 2541 0x09ed
-crossinglines 2542 0x09ee
-horizlinescan1 2543 0x09ef
-horizlinescan3 2544 0x09f0
-horizlinescan5 2545 0x09f1
-horizlinescan7 2546 0x09f2
-horizlinescan9 2547 0x09f3
-leftt 2548 0x09f4
-rightt 2549 0x09f5
-bott 2550 0x09f6
-topt 2551 0x09f7
-vertbar 2552 0x09f8
-emspace 2721 0x0aa1
-enspace 2722 0x0aa2
-em3space 2723 0x0aa3
-em4space 2724 0x0aa4
-digitspace 2725 0x0aa5
-punctspace 2726 0x0aa6
-thinspace 2727 0x0aa7
-hairspace 2728 0x0aa8
-emdash 2729 0x0aa9
-endash 2730 0x0aaa
-signifblank 2732 0x0aac
-ellipsis 2734 0x0aae
-doubbaselinedot 2735 0x0aaf
-onethird 2736 0x0ab0
-twothirds 2737 0x0ab1
-onefifth 2738 0x0ab2
-twofifths 2739 0x0ab3
-threefifths 2740 0x0ab4
-fourfifths 2741 0x0ab5
-onesixth 2742 0x0ab6
-fivesixths 2743 0x0ab7
-careof 2744 0x0ab8
-figdash 2747 0x0abb
-leftanglebracket 2748 0x0abc
-decimalpoint 2749 0x0abd
-rightanglebracket 2750 0x0abe
-marker 2751 0x0abf
-oneeighth 2755 0x0ac3
-threeeighths 2756 0x0ac4
-fiveeighths 2757 0x0ac5
-seveneighths 2758 0x0ac6
-trademark 2761 0x0ac9
-signaturemark 2762 0x0aca
-trademarkincircle 2763 0x0acb
-leftopentriangle 2764 0x0acc
-rightopentriangle 2765 0x0acd
-emopencircle 2766 0x0ace
-emopenrectangle 2767 0x0acf
-leftsinglequotemark 2768 0x0ad0
-rightsinglequotemark 2769 0x0ad1
-leftdoublequotemark 2770 0x0ad2
-rightdoublequotemark 2771 0x0ad3
-prescription 2772 0x0ad4
-minutes 2774 0x0ad6
-seconds 2775 0x0ad7
-latincross 2777 0x0ad9
-hexagram 2778 0x0ada
-filledrectbullet 2779 0x0adb
-filledlefttribullet 2780 0x0adc
-filledrighttribullet 2781 0x0add
-emfilledcircle 2782 0x0ade
-emfilledrect 2783 0x0adf
-enopencircbullet 2784 0x0ae0
-enopensquarebullet 2785 0x0ae1
-openrectbullet 2786 0x0ae2
-opentribulletup 2787 0x0ae3
-opentribulletdown 2788 0x0ae4
-openstar 2789 0x0ae5
-enfilledcircbullet 2790 0x0ae6
-enfilledsqbullet 2791 0x0ae7
-filledtribulletup 2792 0x0ae8
-filledtribulletdown 2793 0x0ae9
-leftpointer 2794 0x0aea
-rightpointer 2795 0x0aeb
-club 2796 0x0aec
-diamond 2797 0x0aed
-heart 2798 0x0aee
-maltesecross 2800 0x0af0
-dagger 2801 0x0af1
-doubledagger 2802 0x0af2
-checkmark 2803 0x0af3
-ballotcross 2804 0x0af4
-musicalsharp 2805 0x0af5
-musicalflat 2806 0x0af6
-malesymbol 2807 0x0af7
-femalesymbol 2808 0x0af8
-telephone 2809 0x0af9
-telephonerecorder 2810 0x0afa
-phonographcopyright 2811 0x0afb
-caret 2812 0x0afc
-singlelowquotemark 2813 0x0afd
-doublelowquotemark 2814 0x0afe
-cursor 2815 0x0aff
-leftcaret 2979 0x0ba3
-rightcaret 2982 0x0ba6
-downcaret 2984 0x0ba8
-upcaret 2985 0x0ba9
-overbar 3008 0x0bc0
-downtack 3010 0x0bc2
-upshoe 3011 0x0bc3
-downstile 3012 0x0bc4
-underbar 3014 0x0bc6
-jot 3018 0x0bca
-quad 3020 0x0bcc
-uptack 3022 0x0bce
-circle 3023 0x0bcf
-upstile 3027 0x0bd3
-downshoe 3030 0x0bd6
-rightshoe 3032 0x0bd8
-leftshoe 3034 0x0bda
-lefttack 3036 0x0bdc
-righttack 3068 0x0bfc
-hebrew_aleph 3296 0x0ce0
-hebrew_beth 3297 0x0ce1
-hebrew_gimmel 3298 0x0ce2
-hebrew_daleth 3299 0x0ce3
-hebrew_he 3300 0x0ce4
-hebrew_waw 3301 0x0ce5
-hebrew_zayin 3302 0x0ce6
-hebrew_het 3303 0x0ce7
-hebrew_teth 3304 0x0ce8
-hebrew_yod 3305 0x0ce9
-hebrew_finalkaph 3306 0x0cea
-hebrew_kaph 3307 0x0ceb
-hebrew_lamed 3308 0x0cec
-hebrew_finalmem 3309 0x0ced
-hebrew_mem 3310 0x0cee
-hebrew_finalnun 3311 0x0cef
-hebrew_nun 3312 0x0cf0
-hebrew_samekh 3313 0x0cf1
-hebrew_ayin 3314 0x0cf2
-hebrew_finalpe 3315 0x0cf3
-hebrew_pe 3316 0x0cf4
-hebrew_finalzadi 3317 0x0cf5
-hebrew_zadi 3318 0x0cf6
-hebrew_kuf 3319 0x0cf7
-hebrew_resh 3320 0x0cf8
-hebrew_shin 3321 0x0cf9
-hebrew_taf 3322 0x0cfa
-BackSpace 65288 0xff08
-Tab 65289 0xff09
-Linefeed 65290 0xff0a
-Clear 65291 0xff0b
-Return 65293 0xff0d
-Pause 65299 0xff13
-Scroll_Lock 65300 0xff14
-Sys_Req 65301 0xff15
-Escape 65307 0xff1b
-Multi_key 65312 0xff20
-Kanji 65313 0xff21
-Home 65360 0xff50
-Left 65361 0xff51
-Up 65362 0xff52
-Right 65363 0xff53
-Down 65364 0xff54
-Prior 65365 0xff55
-Next 65366 0xff56
-End 65367 0xff57
-Begin 65368 0xff58
-Win_L 65371 0xff5b
-Win_R 65372 0xff5c
+lessthanequal 2236 0x8BC
+notequal 2237 0x8BD
+greaterthanequal 2238 0x8BE
+integral 2239 0x8BF
+therefore 2240 0x8C0
+variation 2241 0x8C1
+infinity 2242 0x8C2
+nabla 2245 0x8C5
+approximate 2248 0x8C8
+similarequal 2249 0x8C9
+ifonlyif 2253 0x8CD
+implies 2254 0x8CE
+identical 2255 0x8CF
+radical 2262 0x8D6
+includedin 2266 0x8DA
+includes 2267 0x8DB
+intersection 2268 0x8DC
+union 2269 0x8DD
+logicaland 2270 0x8DE
+logicalor 2271 0x8DF
+partialderivative 2287 0x8EF
+function 2294 0x8F6
+leftarrow 2299 0x8FB
+uparrow 2300 0x8FC
+rightarrow 2301 0x8FD
+downarrow 2302 0x8FE
+blank 2527 0x9DF
+soliddiamond 2528 0x9E0
+checkerboard 2529 0x9E1
+ht 2530 0x9E2
+ff 2531 0x9E3
+cr 2532 0x9E4
+lf 2533 0x9E5
+nl 2536 0x9E8
+vt 2537 0x9E9
+lowrightcorner 2538 0x9EA
+uprightcorner 2539 0x9EB
+upleftcorner 2540 0x9EC
+lowleftcorner 2541 0x9ED
+crossinglines 2542 0x9EE
+horizlinescan1 2543 0x9EF
+horizlinescan3 2544 0x9F0
+horizlinescan5 2545 0x9F1
+horizlinescan7 2546 0x9F2
+horizlinescan9 2547 0x9F3
+leftt 2548 0x9F4
+rightt 2549 0x9F5
+bott 2550 0x9F6
+topt 2551 0x9F7
+vertbar 2552 0x9F8
+emspace 2721 0xAA1
+enspace 2722 0xAA2
+em3space 2723 0xAA3
+em4space 2724 0xAA4
+digitspace 2725 0xAA5
+punctspace 2726 0xAA6
+thinspace 2727 0xAA7
+hairspace 2728 0xAA8
+emdash 2729 0xAA9
+endash 2730 0xAAA
+signifblank 2732 0xAAC
+ellipsis 2734 0xAAE
+doubbaselinedot 2735 0xAAF
+onethird 2736 0xAB0
+twothirds 2737 0xAB1
+onefifth 2738 0xAB2
+twofifths 2739 0xAB3
+threefifths 2740 0xAB4
+fourfifths 2741 0xAB5
+onesixth 2742 0xAB6
+fivesixths 2743 0xAB7
+careof 2744 0xAB8
+figdash 2747 0xABB
+leftanglebracket 2748 0xABC
+decimalpoint 2749 0xABD
+rightanglebracket 2750 0xABE
+marker 2751 0xABF
+oneeighth 2755 0xAC3
+threeeighths 2756 0xAC4
+fiveeighths 2757 0xAC5
+seveneighths 2758 0xAC6
+trademark 2761 0xAC9
+signaturemark 2762 0xACA
+trademarkincircle 2763 0xACB
+leftopentriangle 2764 0xACC
+rightopentriangle 2765 0xACD
+emopencircle 2766 0xACE
+emopenrectangle 2767 0xACF
+leftsinglequotemark 2768 0xAD0
+rightsinglequotemark 2769 0xAD1
+leftdoublequotemark 2770 0xAD2
+rightdoublequotemark 2771 0xAD3
+prescription 2772 0xAD4
+minutes 2774 0xAD6
+seconds 2775 0xAD7
+latincross 2777 0xAD9
+hexagram 2778 0xADA
+filledrectbullet 2779 0xADB
+filledlefttribullet 2780 0xADC
+filledrighttribullet 2781 0xADD
+emfilledcircle 2782 0xADE
+emfilledrect 2783 0xADF
+enopencircbullet 2784 0xAE0
+enopensquarebullet 2785 0xAE1
+openrectbullet 2786 0xAE2
+opentribulletup 2787 0xAE3
+opentribulletdown 2788 0xAE4
+openstar 2789 0xAE5
+enfilledcircbullet 2790 0xAE6
+enfilledsqbullet 2791 0xAE7
+filledtribulletup 2792 0xAE8
+filledtribulletdown 2793 0xAE9
+leftpointer 2794 0xAEA
+rightpointer 2795 0xAEB
+club 2796 0xAEC
+diamond 2797 0xAED
+heart 2798 0xAEE
+maltesecross 2800 0xAF0
+dagger 2801 0xAF1
+doubledagger 2802 0xAF2
+checkmark 2803 0xAF3
+ballotcross 2804 0xAF4
+musicalsharp 2805 0xAF5
+musicalflat 2806 0xAF6
+malesymbol 2807 0xAF7
+femalesymbol 2808 0xAF8
+telephone 2809 0xAF9
+telephonerecorder 2810 0xAFA
+phonographcopyright 2811 0xAFB
+caret 2812 0xAFC
+singlelowquotemark 2813 0xAFD
+doublelowquotemark 2814 0xAFE
+cursor 2815 0xAFF
+leftcaret 2979 0xBA3
+rightcaret 2982 0xBA6
+downcaret 2984 0xBA8
+upcaret 2985 0xBA9
+overbar 3008 0xBC0
+downtack 3010 0xBC2
+upshoe 3011 0xBC3
+downstile 3012 0xBC4
+underbar 3014 0xBC6
+jot 3018 0xBCA
+quad 3020 0xBCC
+uptack 3022 0xBCE
+circle 3023 0xBCF
+upstile 3027 0xBD3
+downshoe 3030 0xBD6
+rightshoe 3032 0xBD8
+leftshoe 3034 0xBDA
+lefttack 3036 0xBDC
+righttack 3068 0xBFC
+hebrew_doublelowline 3295 0xCDF
+hebrew_aleph 3296 0xCE0
+hebrew_bet 3297 0xCE1
+hebrew_gimel 3298 0xCE2
+hebrew_dalet 3299 0xCE3
+hebrew_he 3300 0xCE4
+hebrew_waw 3301 0xCE5
+hebrew_zain 3302 0xCE6
+hebrew_chet 3303 0xCE7
+hebrew_tet 3304 0xCE8
+hebrew_yod 3305 0xCE9
+hebrew_finalkaph 3306 0xCEA
+hebrew_kaph 3307 0xCEB
+hebrew_lamed 3308 0xCEC
+hebrew_finalmem 3309 0xCED
+hebrew_mem 3310 0xCEE
+hebrew_finalnun 3311 0xCEF
+hebrew_nun 3312 0xCF0
+hebrew_samech 3313 0xCF1
+hebrew_ayin 3314 0xCF2
+hebrew_finalpe 3315 0xCF3
+hebrew_pe 3316 0xCF4
+hebrew_finalzade 3317 0xCF5
+hebrew_zade 3318 0xCF6
+hebrew_qoph 3319 0xCF7
+hebrew_resh 3320 0xCF8
+hebrew_shin 3321 0xCF9
+hebrew_taw 3322 0xCFA
+BackSpace 65288 0xFF08
+Tab 65289 0xFF09
+Linefeed 65290 0xFF0A
+Clear 65291 0xFF0B
+Return 65293 0xFF0D
+Pause 65299 0xFF13
+Scroll_Lock 65300 0xFF14
+Sys_Req 65301 0xFF15
+Escape 65307 0xFF1B
+Multi_key 65312 0xFF20
+Kanji 65313 0xFF21
+Muhenkan 65314 0xFF22
+Henkan_Mode 65315 0xFF23
+Romaji 65316 0xFF24
+Hiragana 65317 0xFF25
+Katakana 65318 0xFF26
+Hiragana_Katakana 65319 0xFF27
+Zenkaku 65320 0xFF28
+Hankaku 65321 0xFF29
+Zenkaku_Hankaku 65322 0xFF2A
+Touroku 65323 0xFF2B
+Massyo 65324 0xFF2C
+Kana_Lock 65325 0xFF2D
+Kana_Shift 65326 0xFF2E
+Eisu_Shift 65327 0xFF2F
+Eisu_toggle 65328 0xFF30
+Home 65360 0xFF50
+Left 65361 0xFF51
+Up 65362 0xFF52
+Right 65363 0xFF53
+Down 65364 0xFF54
+Prior 65365 0xFF55
+Next 65366 0xFF56
+End 65367 0xFF57
+Begin 65368 0xFF58
+Win_L 65371 0xFF5B
+Win_R 65372 0xFF5C
.CE
.CS
-App 65373 0xff5d
-Select 65376 0xff60
-Print 65377 0xff61
-Execute 65378 0xff62
-Insert 65379 0xff63
-Undo 65381 0xff65
-Redo 65382 0xff66
-Menu 65383 0xff67
-Find 65384 0xff68
-Cancel 65385 0xff69
-Help 65386 0xff6a
-Break 65387 0xff6b
-Hebrew_switch 65406 0xff7e
-Num_Lock 65407 0xff7f
-KP_Space 65408 0xff80
-KP_Tab 65417 0xff89
-KP_Enter 65421 0xff8d
-KP_F1 65425 0xff91
-KP_F2 65426 0xff92
-KP_F3 65427 0xff93
-KP_F4 65428 0xff94
-KP_Multiply 65450 0xffaa
-KP_Add 65451 0xffab
-KP_Separator 65452 0xffac
-KP_Subtract 65453 0xffad
-KP_Decimal 65454 0xffae
-KP_Divide 65455 0xffaf
-KP_0 65456 0xffb0
-KP_1 65457 0xffb1
-KP_2 65458 0xffb2
-KP_3 65459 0xffb3
-KP_4 65460 0xffb4
-KP_5 65461 0xffb5
-KP_6 65462 0xffb6
-KP_7 65463 0xffb7
-KP_8 65464 0xffb8
-KP_9 65465 0xffb9
-KP_Equal 65469 0xffbd
-F1 65470 0xffbe
-F2 65471 0xffbf
-F3 65472 0xffc0
-F4 65473 0xffc1
-F5 65474 0xffc2
-F6 65475 0xffc3
-F7 65476 0xffc4
-F8 65477 0xffc5
-F9 65478 0xffc6
-F10 65479 0xffc7
-L1 65480 0xffc8
-L2 65481 0xffc9
-L3 65482 0xffca
-L4 65483 0xffcb
-L5 65484 0xffcc
-L6 65485 0xffcd
-L7 65486 0xffce
-L8 65487 0xffcf
-L9 65488 0xffd0
-L10 65489 0xffd1
-R1 65490 0xffd2
-R2 65491 0xffd3
-R3 65492 0xffd4
-R4 65493 0xffd5
-R5 65494 0xffd6
-R6 65495 0xffd7
-R7 65496 0xffd8
-R8 65497 0xffd9
-R9 65498 0xffda
-R10 65499 0xffdb
-R11 65500 0xffdc
-R12 65501 0xffdd
-F33 65502 0xffde
-R14 65503 0xffdf
-R15 65504 0xffe0
-Shift_L 65505 0xffe1
-Shift_R 65506 0xffe2
-Control_L 65507 0xffe3
-Control_R 65508 0xffe4
-Caps_Lock 65509 0xffe5
-Shift_Lock 65510 0xffe6
-Meta_L 65511 0xffe7
-Meta_R 65512 0xffe8
-Alt_L 65513 0xffe9
-Alt_R 65514 0xffea
-Super_L 65515 0xffeb
-Super_R 65516 0xffec
-Hyper_L 65517 0xffed
-Hyper_R 65518 0xffee
-Delete 65535 0xffff
+App 65373 0xFF5D
+Select 65376 0xFF60
+Print 65377 0xFF61
+Execute 65378 0xFF62
+Insert 65379 0xFF63
+Undo 65381 0xFF65
+Redo 65382 0xFF66
+Menu 65383 0xFF67
+Find 65384 0xFF68
+Cancel 65385 0xFF69
+Help 65386 0xFF6A
+Break 65387 0xFF6B
+Mode_switch 65406 0xFF7E
+Num_Lock 65407 0xFF7F
+KP_Space 65408 0xFF80
+KP_Tab 65417 0xFF89
+KP_Enter 65421 0xFF8D
+KP_F1 65425 0xFF91
+KP_F2 65426 0xFF92
+KP_F3 65427 0xFF93
+KP_F4 65428 0xFF94
+KP_Home 65429 0xFF95
+KP_Left 65430 0xFF96
+KP_Up 65431 0xFF97
+KP_Right 65432 0xFF98
+KP_Down 65433 0xFF99
+KP_Prior 65434 0xFF9A
+KP_Next 65435 0xFF9B
+KP_End 65436 0xFF9C
+KP_Begin 65437 0xFF9D
+KP_Insert 65438 0xFF9E
+KP_Delete 65439 0xFF9F
+KP_Multiply 65450 0xFFAA
+KP_Add 65451 0xFFAB
+KP_Separator 65452 0xFFAC
+KP_Subtract 65453 0xFFAD
+KP_Decimal 65454 0xFFAE
+KP_Divide 65455 0xFFAF
+KP_0 65456 0xFFB0
+KP_1 65457 0xFFB1
+KP_2 65458 0xFFB2
+KP_3 65459 0xFFB3
+KP_4 65460 0xFFB4
+KP_5 65461 0xFFB5
+KP_6 65462 0xFFB6
+KP_7 65463 0xFFB7
+KP_8 65464 0xFFB8
+KP_9 65465 0xFFB9
+KP_Equal 65469 0xFFBD
+F1 65470 0xFFBE
+F2 65471 0xFFBF
+F3 65472 0xFFC0
+F4 65473 0xFFC1
+F5 65474 0xFFC2
+F6 65475 0xFFC3
+F7 65476 0xFFC4
+F8 65477 0xFFC5
+F9 65478 0xFFC6
+F10 65479 0xFFC7
+F11 65480 0xFFC8
+F12 65481 0xFFC9
+F13 65482 0xFFCA
+F14 65483 0xFFCB
+F15 65484 0xFFCC
+F16 65485 0xFFCD
+F17 65486 0xFFCE
+F18 65487 0xFFCF
+F19 65488 0xFFD0
+F20 65489 0xFFD1
+F21 65490 0xFFD2
+F22 65491 0xFFD3
+F23 65492 0xFFD4
+F24 65493 0xFFD5
+F25 65494 0xFFD6
+F26 65495 0xFFD7
+F27 65496 0xFFD8
+F28 65497 0xFFD9
+F29 65498 0xFFDA
+F30 65499 0xFFDB
+F31 65500 0xFFDC
+F32 65501 0xFFDD
+F33 65502 0xFFDE
+F34 65503 0xFFDF
+F35 65504 0xFFE0
+Shift_L 65505 0xFFE1
+Shift_R 65506 0xFFE2
+Control_L 65507 0xFFE3
+Control_R 65508 0xFFE4
+Caps_Lock 65509 0xFFE5
+Shift_Lock 65510 0xFFE6
+Meta_L 65511 0xFFE7
+Meta_R 65512 0xFFE8
+Alt_L 65513 0xFFE9
+Alt_R 65514 0xFFEA
+Super_L 65515 0xFFEB
+Super_R 65516 0xFFEC
+Hyper_L 65517 0xFFED
+Hyper_R 65518 0xFFEE
+Delete 65535 0xFFFF
XF86AudioLowerVolume 269025041 0x1008FF11
XF86AudioMute 269025042 0x1008FF12
XF86AudioRaiseVolume 269025043 0x1008FF13
diff --git a/doc/ttk_Geometry.3 b/doc/ttk_Geometry.3
index 61015c5..09d59e0 100644
--- a/doc/ttk_Geometry.3
+++ b/doc/ttk_Geometry.3
@@ -212,7 +212,7 @@ See \fBTk_GetPixelsFromObj(3)\fR for the syntax of length specifications.
.PP
\fBTtk_GetBorderFromObj\fR is the same as \fBTtk_GetPaddingFromObj\fR
except that the lengths are specified as integers
-(i.e., resolution-dependant values like \fI3m\fR are not allowed).
+(i.e., resolution-dependent values like \fI3m\fR are not allowed).
.PP
\fBTtk_GetStickyFromObj\fR converts the string in \fIobjPtr\fR
to a \fIsticky\fR bitmask. The string contains zero or more
diff --git a/generic/ks_names.h b/generic/ks_names.h
index e38c35c..3386ec0 100644
--- a/generic/ks_names.h
+++ b/generic/ks_names.h
@@ -332,6 +332,7 @@
{ "Otilde", 0xD5 },
{ "Odiaeresis", 0xD6 },
{ "multiply", 0xD7 },
+{ "Oslash", 0xD8 },
{ "Ooblique", 0xD8 },
{ "Ugrave", 0xD9 },
{ "Uacute", 0xDA },
@@ -464,8 +465,8 @@
{ "itilde", 0x3B5 },
{ "lcedilla", 0x3B6 },
{ "emacron", 0x3BA },
-{ "gacute", 0x3BB },
{ "gcedilla", 0x3BB },
+{ "gacute", 0x3BB },
{ "tslash", 0x3BC },
{ "ENG", 0x3BD },
{ "eng", 0x3BF },
@@ -720,6 +721,7 @@
{ "Greek_EPSILONaccent", 0x7A2 },
{ "Greek_ETAaccent", 0x7A3 },
{ "Greek_IOTAaccent", 0x7A4 },
+{ "Greek_IOTAdieresis", 0x7A5 },
{ "Greek_IOTAdiaeresis", 0x7A5 },
{ "Greek_IOTAaccentdiaeresis", 0x7A6 },
{ "Greek_OMICRONaccent", 0x7A7 },
diff --git a/generic/tkUtil.c b/generic/tkUtil.c
index 1942975..8e3e2ee 100644
--- a/generic/tkUtil.c
+++ b/generic/tkUtil.c
@@ -1244,8 +1244,8 @@ TkUtfToUniChar(
*
* TkUniCharToUtf --
*
- * Almost the same as Tcl_UniCharToUtf but producing surrogates if
- * TCL_UTF_MAX==3. So, up to 6 bytes might be produced.
+ * Almost the same as Tcl_UniCharToUtf but producing 4-byte UTF-8
+ * sequences even when TCL_UTF_MAX==3. So, up to 4 bytes might be produced.
*
* Results:
* *buf is filled with the UTF-8 string, and the return value is the
@@ -1262,10 +1262,12 @@ int TkUniCharToUtf(int ch, char *buf)
int size = Tcl_UniCharToUtf(ch, buf);
if ((((unsigned)(ch - 0x10000) <= 0xFFFFF)) && (size < 4)) {
/* Hey, this is wrong, we must be running TCL_UTF_MAX==3
- * The best thing we can do is spit out 2 surrogates */
- ch -= 0x10000;
- size = Tcl_UniCharToUtf(((ch >> 10) | 0xd800), buf);
- size += Tcl_UniCharToUtf(((ch & 0x3ff) | 0xdc00), buf+size);
+ * The best thing we can do is spit out a 4-byte UTF-8 character */
+ buf[3] = (char) ((ch | 0x80) & 0xBF);
+ buf[2] = (char) (((ch >> 6) | 0x80) & 0xBF);
+ buf[1] = (char) (((ch >> 12) | 0x80) & 0xBF);
+ buf[0] = (char) ((ch >> 18) | 0xF0);
+ size = 4;
}
return size;
}
diff --git a/macosx/tkMacOSXFont.c b/macosx/tkMacOSXFont.c
index fb71e85..e68b09f 100644
--- a/macosx/tkMacOSXFont.c
+++ b/macosx/tkMacOSXFont.c
@@ -343,7 +343,7 @@ CreateNamedSystemFont(
*
* This procedure is called when an application is created. It
* initializes all the structures that are used by the
- * platform-dependant code on a per application basis.
+ * platform-dependent code on a per application basis.
* Note that this is called before TkpInit() !
*
* Results:
diff --git a/macosx/tkMacOSXMouseEvent.c b/macosx/tkMacOSXMouseEvent.c
index 074e36e..84b5fa1 100644
--- a/macosx/tkMacOSXMouseEvent.c
+++ b/macosx/tkMacOSXMouseEvent.c
@@ -36,6 +36,7 @@ static unsigned int ButtonModifiers2State(UInt32 buttonState,
enum {
NSWindowWillMoveEventType = 20
};
+
/*
* In OS X 10.6 an NSEvent of type NSMouseMoved would always have a non-Nil
* window attribute pointing to the active window. As of 10.8 this behavior
@@ -58,6 +59,7 @@ enum {
NSTrackingArea *trackingArea = nil;
NSInteger eventNumber, clickCount, buttonNumber;
#endif
+ [NSEvent stopPeriodicEvents];
#ifdef TK_MAC_DEBUG_EVENTS
TKLog(@"-[%@(%p) %s] %@", [self class], self, _cmd, theEvent);
@@ -143,15 +145,28 @@ enum {
}
/*
- * If another toplevel has a grab, we ignore the event.
+ * Ignore the event if a local grab is in effect and the Tk event window is
+ * not in the grabber's subtree.
*/
grabWinPtr = winPtr->dispPtr->grabWinPtr;
- if (grabWinPtr &&
- grabWinPtr != winPtr &&
- !winPtr->dispPtr->grabFlags && /* this means the grab is local. */
- grabWinPtr->mainPtr == winPtr->mainPtr) {
- return theEvent;
+ if (grabWinPtr && /* There is a grab in effect ... */
+ !winPtr->dispPtr->grabFlags && /* and it is a local grab ... */
+ grabWinPtr->mainPtr == winPtr->mainPtr){ /* in the same application. */
+ Tk_Window tkwin2, tkEventWindow = Tk_CoordsToWindow(global.x, global.y, tkwin);
+ if (!tkEventWindow) {
+ return theEvent;
+ }
+ for (tkwin2 = tkEventWindow;
+ !Tk_IsTopLevel(tkwin2);
+ tkwin2 = Tk_Parent(tkwin2)) {
+ if (tkwin2 == (Tk_Window) grabWinPtr) {
+ break;
+ }
+ }
+ if (tkwin2 != (Tk_Window) grabWinPtr) {
+ return theEvent;
+ }
}
/*
@@ -225,6 +240,7 @@ enum {
}
if (eventType != NSScrollWheel) {
+
/*
* For normal mouse events, Tk_UpdatePointer will send the XEvent.
*/
@@ -235,6 +251,7 @@ enum {
#endif
Tk_UpdatePointer(tkwin, global.x, global.y, state);
} else {
+
/*
* For scroll wheel events we need to send the XEvent here.
*/
@@ -499,7 +516,7 @@ TkGenerateButtonEventForXPointer(
* TkGenerateButtonEvent --
*
* Given a global x & y position and the button key status this procedure
- * generates the appropiate X button event. It also handles the state
+ * generates the appropriate X button event. It also handles the state
* changes needed to implement implicit grabs.
*
* Results:
@@ -573,6 +590,7 @@ GenerateButtonEvent(
TkDisplay *dispPtr;
#if UNUSED
+
/*
* ButtonDown events will always occur in the front window. ButtonUp
* events, however, may occur anywhere on the screen. ButtonUp events
@@ -605,30 +623,46 @@ TkpWarpPointer(
TkDisplay *dispPtr)
{
CGPoint pt;
- UInt32 buttonState;
+ NSPoint loc;
+ int wNum;
if (dispPtr->warpWindow) {
int x, y;
-
+ TkWindow *winPtr = (TkWindow *) dispPtr->warpWindow;
+ TkWindow *topPtr = winPtr->privatePtr->toplevel->winPtr;
+ NSWindow *w = TkMacOSXDrawableWindow(winPtr->window);
+ wNum = [w windowNumber];
Tk_GetRootCoords(dispPtr->warpWindow, &x, &y);
pt.x = x + dispPtr->warpX;
pt.y = y + dispPtr->warpY;
+ loc.x = dispPtr->warpX;
+ loc.y = Tk_Height(topPtr) - dispPtr->warpY;
} else {
- pt.x = dispPtr->warpX;
+ wNum = 0;
+ pt.x = loc.x = dispPtr->warpX;
pt.y = dispPtr->warpY;
+ loc.y = tkMacOSXZeroScreenHeight - pt.y;
}
/*
- * Tell the OSX core to generate the events to make it happen.
+ * Generate an NSEvent of type NSMouseMoved.
+ *
+ * It is not clear why this is necessary. For example, calling
+ * event generate $w <Motion> -warp 1 -x $X -y $Y
+ * will cause two <Motion> events to be added to the Tcl queue.
*/
- buttonState = [NSEvent pressedMouseButtons];
- CGEventType type = kCGEventMouseMoved;
- CGEventRef theEvent = CGEventCreateMouseEvent(NULL, type, pt,
- buttonState);
CGWarpMouseCursorPosition(pt);
- CGEventPost(kCGHIDEventTap, theEvent);
- CFRelease(theEvent);
+ NSEvent *warpEvent = [NSEvent mouseEventWithType:NSMouseMoved
+ location:loc
+ modifierFlags:0
+ timestamp:GetCurrentEventTime()
+ windowNumber:wNum
+ context:nil
+ eventNumber:0
+ clickCount:1
+ pressure:0.0];
+ [NSApp postEvent:warpEvent atStart:NO];
}
/*
@@ -656,6 +690,7 @@ TkpSetCapture(
while (winPtr && !Tk_IsTopLevel(winPtr)) {
winPtr = winPtr->parentPtr;
}
+ [NSEvent stopPeriodicEvents];
captureWinPtr = (Tk_Window) winPtr;
}
diff --git a/macosx/tkMacOSXNotify.c b/macosx/tkMacOSXNotify.c
index a4a87c6..afee942 100644
--- a/macosx/tkMacOSXNotify.c
+++ b/macosx/tkMacOSXNotify.c
@@ -311,17 +311,16 @@ TkMacOSXEventsSetupProc(
if (currentEvent) {
if (currentEvent.type > 0) {
Tcl_SetMaxBlockTime(&zeroBlockTime);
- if (havePeriodicEvents) {
- [NSEvent stopPeriodicEvents];
- havePeriodicEvents = NO;
- }
+ [NSEvent stopPeriodicEvents];
+ havePeriodicEvents = NO;
}
} else if (!havePeriodicEvents){
/*
* When the user is not generating events we schedule a "hearbeat"
* event to fire every 0.1 seconds. This helps to make the vwait
- * command more responsive when there is no user input.
+ * command more responsive when there is no user input, e.g. when
+ * running the test suite.
*/
havePeriodicEvents = YES;
diff --git a/macosx/tkMacOSXTest.c b/macosx/tkMacOSXTest.c
index f109b7a..09736e6 100644
--- a/macosx/tkMacOSXTest.c
+++ b/macosx/tkMacOSXTest.c
@@ -13,6 +13,7 @@
*/
#include "tkMacOSXPrivate.h"
+#include "tkMacOSXConstants.h"
/*
* Forward declarations of procedures defined later in this file:
@@ -22,6 +23,8 @@
static int DebuggerObjCmd (ClientData dummy, Tcl_Interp *interp,
int objc, Tcl_Obj *const objv[]);
#endif
+static int PressButtonObjCmd (ClientData dummy, Tcl_Interp *interp,
+ int objc, Tcl_Obj *const objv[]);
/*
@@ -52,6 +55,7 @@ TkplatformtestInit(
#if MAC_OS_X_VERSION_MAX_ALLOWED < 1080
Tcl_CreateObjCommand(interp, "debugger", DebuggerObjCmd, NULL, NULL);
#endif
+ Tcl_CreateObjCommand(interp, "pressbutton", PressButtonObjCmd, NULL, NULL);
return TCL_OK;
}
@@ -119,6 +123,102 @@ TkTestLogDisplay(void) {
}
}
+/*
+ *----------------------------------------------------------------------
+ *
+ * PressButtonObjCmd --
+ *
+ * This Tcl command simulates a button press at a specific screen
+ * location. It injects NSEvents into the NSApplication event queue,
+ * as opposed to adding events to the Tcl queue as event generate
+ * would do. One application is for testing the grab command.
+ *
+ * Results:
+ * A standard Tcl result.
+ *
+ * Side effects:
+ * None.
+ *
+ *----------------------------------------------------------------------
+ */
+
+ /* ARGSUSED */
+static int
+PressButtonObjCmd(
+ ClientData clientData,
+ Tcl_Interp *interp,
+ int objc,
+ Tcl_Obj *const objv[])
+{
+ int x, y, i, value, wNum;
+ CGPoint pt;
+ NSPoint loc;
+ NSEvent *motion, *press, *release;
+ NSArray *screens = [NSScreen screens];
+ CGFloat ScreenHeight = 0;
+ enum {X=1, Y};
+
+ if (screens && [screens count]) {
+ ScreenHeight = [[screens objectAtIndex:0] frame].size.height;
+ }
+
+ if (objc != 3) {
+ Tcl_WrongNumArgs(interp, 1, objv, "x y");
+ return TCL_ERROR;
+ }
+ for (i = 1; i < objc; i++) {
+ if (Tcl_GetIntFromObj(interp,objv[i],&value) != TCL_OK) {
+ return TCL_ERROR;
+ }
+ switch (i) {
+ case X:
+ x = value;
+ break;
+ case Y:
+ y = value;
+ break;
+ default:
+ break;
+ }
+ }
+ pt.x = loc.x = x;
+ pt.y = y;
+ loc.y = ScreenHeight - y;
+ wNum = 0;
+ CGWarpMouseCursorPosition(pt);
+ motion = [NSEvent mouseEventWithType:NSMouseMoved
+ location:loc
+ modifierFlags:0
+ timestamp:GetCurrentEventTime()
+ windowNumber:wNum
+ context:nil
+ eventNumber:0
+ clickCount:1
+ pressure:0.0];
+ [NSApp postEvent:motion atStart:NO];
+ press = [NSEvent mouseEventWithType:NSLeftMouseDown
+ location:loc
+ modifierFlags:0
+ timestamp:GetCurrentEventTime()
+ windowNumber:wNum
+ context:nil
+ eventNumber:1
+ clickCount:1
+ pressure:0.0];
+ [NSApp postEvent:press atStart:NO];
+ release = [NSEvent mouseEventWithType:NSLeftMouseUp
+ location:loc
+ modifierFlags:0
+ timestamp:GetCurrentEventTime()
+ windowNumber:wNum
+ context:nil
+ eventNumber:2
+ clickCount:1
+ pressure:0.0];
+ [NSApp postEvent:release atStart:NO];
+ return TCL_OK;
+}
+
/*
* Local Variables:
diff --git a/tests/bind.test b/tests/bind.test
index a991f01..e7b3db3 100644
--- a/tests/bind.test
+++ b/tests/bind.test
@@ -5918,13 +5918,34 @@ test bind-28.8 {keysym names} -setup {
} -cleanup {
destroy .t.f
} -result {X x {keysym X}}
-test bind-28.9 {keysym names, deprecated X11 names (e.g. "Eth") are translated into non-deprecated version (like "ETH")} -body {
+test bind-28.9 {keysym names, Eth -> ETH} -body {
frame .t.f -class Test -width 150 -height 100
bind .t.f <Eth> foo
bind .t.f
} -cleanup {
destroy .t.f
} -result {<Key-ETH>}
+test bind-28.10 {keysym names, Ooblique -> Oslash} -body {
+ frame .t.f -class Test -width 150 -height 100
+ bind .t.f <Ooblique> foo
+ bind .t.f
+} -cleanup {
+ destroy .t.f
+} -result {<Key-Oslash>}
+test bind-28.11 {keysym names, gcedilla} -body {
+ frame .t.f -class Test -width 150 -height 100
+ bind .t.f <gcedilla> foo
+ bind .t.f
+} -cleanup {
+ destroy .t.f
+} -result {<Key-gcedilla>}
+test bind-28.12 {keysym names, Greek_IOTAdiaeresis -> Greek_IOTAdieresis} -body {
+ frame .t.f -class Test -width 150 -height 100
+ bind .t.f <Greek_IOTAdiaeresis> foo
+ bind .t.f
+} -cleanup {
+ destroy .t.f
+} -result {<Key-Greek_IOTAdieresis>}
test bind-29.1 {Tcl_BackgroundError procedure} -setup {
diff --git a/tests/canvImg.test b/tests/canvImg.test
index aa6781d..ea4aa3a 100644
--- a/tests/canvImg.test
+++ b/tests/canvImg.test
@@ -166,12 +166,12 @@ test canvImg-4.2 {ConfigureImage procedure} -constraints testImageType -setup {
update
set x {}
set y {}
- set timer [after 300 {lappend y "timeout"}]
+ set timer [after 300 {lappend y "timed out"}]
.c itemconfigure i1 -image foo2
update idletasks
update
# On MacOS we need to wait for the test image display procedure to run.
- while {"timeout" ni $y && [lindex $y end 1] ne "display"} {
+ while {"timed out" ni $y && [lindex $y end 1] ne "display"} {
vwait y
}
after cancel timer
@@ -741,9 +741,10 @@ test canvImg-10.1 {TranslateImage procedure} -constraints testImageType -setup {
.c create image 50 100 -image foo -tags image -anchor nw
update
set x {}
+ set timer [after 500 {lappend x "timed out"}]
foo changed 2 4 6 8 30 15
- # macOS Catalina needs a delay here.
- after 20
+ vwait x
+ after cancel $timer
update
return $x
} -cleanup {
@@ -759,9 +760,10 @@ test canvImg-11.1 {TranslateImage procedure} -constraints testImageType -setup {
.c create image 50 100 -image foo -tags image -anchor nw
update
set x {}
+ set timer [after 500 {lappend x "timed out"}]
foo changed 2 4 6 8 40 50
- # macOS Catalina needs a delay here.
- after 20
+ vwait x
+ after cancel $timer
update
return $x
} -cleanup {
@@ -799,14 +801,14 @@ test canvImg-11.3 {ImageChangedProc procedure} -constraints {
image create test foo2 -variable y
foo changed 0 0 0 0 40 50
foo2 changed 0 0 0 0 80 60
-
.c create image 50 100 -image foo -tags image -anchor nw
.c create image 70 110 -image foo2 -anchor nw
update
set y {}
+ set timer [after 500 {lappend y "timed out"}]
image create test foo -variable x
- # macOS Catalina needs a delay here.
- after 20
+ vwait x
+ after cancel $timer
update
return $y
} -cleanup {
diff --git a/tests/grab.test b/tests/grab.test
index 33399cb..653d756 100644
--- a/tests/grab.test
+++ b/tests/grab.test
@@ -12,10 +12,14 @@ eval tcltest::configure $argv
tcltest::loadTestedCommands
namespace import -force tcltest::test
-# There's currently no way to test the actual grab effect, per se,
-# in an automated test. Therefore, this test suite only covers the
-# interface to the grab command (ie, error messages, etc.)
+# The macOS test module includes the pressbutton command to simulate a
+# mouse button press event by injecting events into the NSApplication
+# event queue. On other platforms there is currently no way to test
+# the actual grab effect, per se, in an automated test. Therefore,
+# this test suite only covers the interface to the grab command (ie,
+# error messages, etc.) on platforms other than macOS.
+testConstraint pressbutton [llength [info commands pressbutton]]
test grab-1.1 {Tk_GrabObjCmd} -body {
grab
@@ -182,6 +186,32 @@ test grab-5.2 {Tk_GrabObjCmd, grab set} -body {
grab release .
} -result {. global}
+test grab-6.1 {local grab on child window} -constraints {
+ pressbutton
+} -body {
+ wm geometry . 100x200+200+100
+ set result {}
+ frame .f -background red -padx 10 -pady 10 -height 100 -width 80
+ bind . <Button-1> {lappend result "outside"}
+ bind .f <Button-1> {lappend result "inside"}
+ pack .f
+ update idletasks
+ pressbutton 250 150
+ update
+ lappend result ":"
+ pressbutton 250 250
+ update
+ lappend result ":"
+ grab set .f
+ pressbutton 250 150
+ update
+ lappend result ":"
+ pressbutton 250 250
+ update
+ return $result
+} -cleanup {
+ grab release .f
+} -result {inside outside : outside : inside outside :}
cleanupTests
return
diff --git a/win/tkWinPointer.c b/win/tkWinPointer.c
index 896500c..2b8656b 100644
--- a/win/tkWinPointer.c
+++ b/win/tkWinPointer.c
@@ -362,10 +362,12 @@ void TkSetCursorPos(
int y)
{
INPUT input;
+ unsigned xscreen = (GetSystemMetrics(SM_CXSCREEN) - 1);
+ unsigned yscreen = (GetSystemMetrics(SM_CYSCREEN) - 1);
input.type = INPUT_MOUSE;
- input.mi.dx = x * (65535.0 / (GetSystemMetrics(SM_CXSCREEN) - 1));
- input.mi.dy = y * (65535.0 / (GetSystemMetrics(SM_CYSCREEN) - 1));
+ input.mi.dx = (x * 65535 + xscreen/2) / xscreen;
+ input.mi.dy = (y * 65535 + yscreen/2) / yscreen;
input.mi.mouseData = 0;
input.mi.dwFlags = MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE;
input.mi.time = 0;
diff --git a/xlib/X11/keysymdef.h b/xlib/X11/keysymdef.h
index a7c654d..460c72d 100644
--- a/xlib/X11/keysymdef.h
+++ b/xlib/X11/keysymdef.h
@@ -397,6 +397,7 @@ SOFTWARE.
#define XK_Otilde 0x0d5
#define XK_Odiaeresis 0x0d6
#define XK_multiply 0x0d7
+#define XK_Oslash 0x0d8
#define XK_Ooblique 0x0d8
#define XK_Ugrave 0x0d9
#define XK_Uacute 0x0da
@@ -840,6 +841,7 @@ SOFTWARE.
#define XK_Greek_EPSILONaccent 0x7a2
#define XK_Greek_ETAaccent 0x7a3
#define XK_Greek_IOTAaccent 0x7a4
+#define XK_Greek_IOTAdieresis 0x7a5
#define XK_Greek_IOTAdiaeresis 0x7a5
#define XK_Greek_OMICRONaccent 0x7a7
#define XK_Greek_UPSILONaccent 0x7a8