[uim-commit] r841 - trunk/fep

yamamoto at freedesktop.org yamamoto at freedesktop.org
Sun May 15 21:47:19 PDT 2005


Author: yamamoto
Date: 2005-05-15 21:47:15 -0700 (Sun, 15 May 2005)
New Revision: 841

Modified:
   trunk/fep/README.key
   trunk/fep/key.c
   trunk/fep/uim-fep.c
Log:
 * fep/{uim-fep.c,key.c}: handle 8bit characters


Modified: trunk/fep/README.key
===================================================================
--- trunk/fep/README.key	2005-05-15 06:15:51 UTC (rev 840)
+++ trunk/fep/README.key	2005-05-16 04:47:15 UTC (rev 841)
@@ -164,162 +164,432 @@
 
 Alt + ascii character
 
-Alt + Ctrl + space    "<Alt><Control> "
-Alt + Ctrl + a        "<Alt><Control>a"
-Alt + Ctrl + b        "<Alt><Control>b"
-Alt + Ctrl + c        "<Alt><Control>c"
-Alt + Ctrl + d        "<Alt><Control>d"
-Alt + Ctrl + e        "<Alt><Control>e"
-Alt + Ctrl + f        "<Alt><Control>f"
-Alt + Ctrl + g        "<Alt><Control>g"
-Alt + Ctrl + h        "<Alt>backspace"
-Alt + Ctrl + i        "<Alt>tab"
-Alt + Ctrl + j        "<Alt><Control>j"
-Alt + Ctrl + k        "<Alt><Control>k"
-Alt + Ctrl + l        "<Alt><Control>l"
-Alt + Ctrl + m        "<Alt>return"
-Alt + Ctrl + n        "<Alt><Control>n"
-Alt + Ctrl + o        "<Alt><Control>o"
-Alt + Ctrl + p        "<Alt><Control>p"
-Alt + Ctrl + q        "<Alt><Control>q"
-Alt + Ctrl + r        "<Alt><Control>r"
-Alt + Ctrl + s        "<Alt><Control>s"
-Alt + Ctrl + t        "<Alt><Control>t"
-Alt + Ctrl + u        "<Alt><Control>u"
-Alt + Ctrl + v        "<Alt><Control>v"
-Alt + Ctrl + w        "<Alt><Control>w"
-Alt + Ctrl + x        "<Alt><Control>x"
-Alt + Ctrl + y        "<Alt><Control>y"
-Alt + Ctrl + z        "<Alt><Control>z"
-Alt + Ctrl + [        "<Alt>escape"
-Alt + Ctrl + \        "<Alt><Control>\\"
-Alt + Ctrl + ]        "<Alt><Control>]"
-Alt + Ctrl + ^        "<Alt><Control>^"
-Alt + Ctrl + _        "<Alt><Control>_"
-Alt + space           "<Alt> "
-Alt + !               "<Alt>!"
-Alt + "               "<Alt>\""
-Alt + #               "<Alt>#"
-Alt + $               "<Alt>$"
-Alt + %               "<Alt>%"
-Alt + &               "<Alt>&"
-Alt + '               "<Alt>'"
-Alt + (               "<Alt>("
-Alt + )               "<Alt>)"
-Alt + *               "<Alt>*"
-Alt + +               "<Alt>+"
-Alt + ,               "<Alt>,"
-Alt + -               "<Alt>-"
-Alt + .               "<Alt>."
-Alt + /               "<Alt>/"
-Alt + 0               "<Alt>0"
-Alt + 1               "<Alt>1"
-Alt + 2               "<Alt>2"
-Alt + 3               "<Alt>3"
-Alt + 4               "<Alt>4"
-Alt + 5               "<Alt>5"
-Alt + 6               "<Alt>6"
-Alt + 7               "<Alt>7"
-Alt + 8               "<Alt>8"
-Alt + 9               "<Alt>9"
-Alt + :               "<Alt>:"
-Alt + ;               "<Alt>;"
-Alt + <               "<Alt><"
-Alt + =               "<Alt>="
-Alt + >               "<Alt>>"
-Alt + ?               "<Alt>?"
-Alt + @               "<Alt>@"
-Alt + A               "<Alt>A"
-Alt + B               "<Alt>B"
-Alt + C               "<Alt>C"
-Alt + D               "<Alt>D"
-Alt + E               "<Alt>E"
-Alt + F               "<Alt>F"
-Alt + G               "<Alt>G"
-Alt + H               "<Alt>H"
-Alt + I               "<Alt>I"
-Alt + J               "<Alt>J"
-Alt + K               "<Alt>K"
-Alt + L               "<Alt>L"
-Alt + M               "<Alt>M"
-Alt + N               "<Alt>N"
-Alt + O               "<Alt>O"
-Alt + P               "<Alt>P"
-Alt + Q               "<Alt>Q"
-Alt + R               "<Alt>R"
-Alt + S               "<Alt>S"
-Alt + T               "<Alt>T"
-Alt + U               "<Alt>U"
-Alt + V               "<Alt>V"
-Alt + W               "<Alt>W"
-Alt + X               "<Alt>X"
-Alt + Y               "<Alt>Y"
-Alt + Z               "<Alt>Z"
-Alt + [               "<Alt>["
-Alt + \               "<Alt>\\"
-Alt + ]               "<Alt>]"
-Alt + ^               "<Alt>^"
-Alt + _               "<Alt>_"
-Alt + `               "<Alt>`"
-Alt + a               "<Alt>a"
-Alt + b               "<Alt>b"
-Alt + c               "<Alt>c"
-Alt + d               "<Alt>d"
-Alt + e               "<Alt>e"
-Alt + f               "<Alt>f"
-Alt + g               "<Alt>g"
-Alt + h               "<Alt>h"
-Alt + i               "<Alt>i"
-Alt + j               "<Alt>j"
-Alt + k               "<Alt>k"
-Alt + l               "<Alt>l"
-Alt + m               "<Alt>m"
-Alt + n               "<Alt>n"
-Alt + o               "<Alt>o"
-Alt + p               "<Alt>p"
-Alt + q               "<Alt>q"
-Alt + r               "<Alt>r"
-Alt + s               "<Alt>s"
-Alt + t               "<Alt>t"
-Alt + u               "<Alt>u"
-Alt + v               "<Alt>v"
-Alt + w               "<Alt>w"
-Alt + x               "<Alt>x"
-Alt + y               "<Alt>y"
-Alt + z               "<Alt>z"
-Alt + {               "<Alt>{"
-Alt + |               "<Alt>|"
-Alt + }               "<Alt>}"
-Alt + ~               "<Alt>~"
-Alt + DEL             "<Alt>delete"
+Esc + Ctrl + space    "<Alt><Control> "
+Esc + Ctrl + a        "<Alt><Control>a"
+Esc + Ctrl + b        "<Alt><Control>b"
+Esc + Ctrl + c        "<Alt><Control>c"
+Esc + Ctrl + d        "<Alt><Control>d"
+Esc + Ctrl + e        "<Alt><Control>e"
+Esc + Ctrl + f        "<Alt><Control>f"
+Esc + Ctrl + g        "<Alt><Control>g"
+Esc + Ctrl + h        "<Alt>backspace"
+Esc + Ctrl + i        "<Alt>tab"
+Esc + Ctrl + j        "<Alt><Control>j"
+Esc + Ctrl + k        "<Alt><Control>k"
+Esc + Ctrl + l        "<Alt><Control>l"
+Esc + Ctrl + m        "<Alt>return"
+Esc + Ctrl + n        "<Alt><Control>n"
+Esc + Ctrl + o        "<Alt><Control>o"
+Esc + Ctrl + p        "<Alt><Control>p"
+Esc + Ctrl + q        "<Alt><Control>q"
+Esc + Ctrl + r        "<Alt><Control>r"
+Esc + Ctrl + s        "<Alt><Control>s"
+Esc + Ctrl + t        "<Alt><Control>t"
+Esc + Ctrl + u        "<Alt><Control>u"
+Esc + Ctrl + v        "<Alt><Control>v"
+Esc + Ctrl + w        "<Alt><Control>w"
+Esc + Ctrl + x        "<Alt><Control>x"
+Esc + Ctrl + y        "<Alt><Control>y"
+Esc + Ctrl + z        "<Alt><Control>z"
+Esc + Ctrl + [        "<Alt>escape"
+Esc + Ctrl + \        "<Alt><Control>\\"
+Esc + Ctrl + ]        "<Alt><Control>]"
+Esc + Ctrl + ^        "<Alt><Control>^"
+Esc + Ctrl + _        "<Alt><Control>_"
+Esc + space           "<Alt> "
+Esc + !               "<Alt>!"
+Esc + "               "<Alt>\""
+Esc + #               "<Alt>#"
+Esc + $               "<Alt>$"
+Esc + %               "<Alt>%"
+Esc + &               "<Alt>&"
+Esc + '               "<Alt>'"
+Esc + (               "<Alt>("
+Esc + )               "<Alt>)"
+Esc + *               "<Alt>*"
+Esc + +               "<Alt>+"
+Esc + ,               "<Alt>,"
+Esc + -               "<Alt>-"
+Esc + .               "<Alt>."
+Esc + /               "<Alt>/"
+Esc + 0               "<Alt>0"
+Esc + 1               "<Alt>1"
+Esc + 2               "<Alt>2"
+Esc + 3               "<Alt>3"
+Esc + 4               "<Alt>4"
+Esc + 5               "<Alt>5"
+Esc + 6               "<Alt>6"
+Esc + 7               "<Alt>7"
+Esc + 8               "<Alt>8"
+Esc + 9               "<Alt>9"
+Esc + :               "<Alt>:"
+Esc + ;               "<Alt>;"
+Esc + <               "<Alt><"
+Esc + =               "<Alt>="
+Esc + >               "<Alt>>"
+Esc + ?               "<Alt>?"
+Esc + @               "<Alt>@"
+Esc + A               "<Alt>A"
+Esc + B               "<Alt>B"
+Esc + C               "<Alt>C"
+Esc + D               "<Alt>D"
+Esc + E               "<Alt>E"
+Esc + F               "<Alt>F"
+Esc + G               "<Alt>G"
+Esc + H               "<Alt>H"
+Esc + I               "<Alt>I"
+Esc + J               "<Alt>J"
+Esc + K               "<Alt>K"
+Esc + L               "<Alt>L"
+Esc + M               "<Alt>M"
+Esc + N               "<Alt>N"
+Esc + O               "<Alt>O"
+Esc + P               "<Alt>P"
+Esc + Q               "<Alt>Q"
+Esc + R               "<Alt>R"
+Esc + S               "<Alt>S"
+Esc + T               "<Alt>T"
+Esc + U               "<Alt>U"
+Esc + V               "<Alt>V"
+Esc + W               "<Alt>W"
+Esc + X               "<Alt>X"
+Esc + Y               "<Alt>Y"
+Esc + Z               "<Alt>Z"
+Esc + [               "<Alt>["
+Esc + \               "<Alt>\\"
+Esc + ]               "<Alt>]"
+Esc + ^               "<Alt>^"
+Esc + _               "<Alt>_"
+Esc + `               "<Alt>`"
+Esc + a               "<Alt>a"
+Esc + b               "<Alt>b"
+Esc + c               "<Alt>c"
+Esc + d               "<Alt>d"
+Esc + e               "<Alt>e"
+Esc + f               "<Alt>f"
+Esc + g               "<Alt>g"
+Esc + h               "<Alt>h"
+Esc + i               "<Alt>i"
+Esc + j               "<Alt>j"
+Esc + k               "<Alt>k"
+Esc + l               "<Alt>l"
+Esc + m               "<Alt>m"
+Esc + n               "<Alt>n"
+Esc + o               "<Alt>o"
+Esc + p               "<Alt>p"
+Esc + q               "<Alt>q"
+Esc + r               "<Alt>r"
+Esc + s               "<Alt>s"
+Esc + t               "<Alt>t"
+Esc + u               "<Alt>u"
+Esc + v               "<Alt>v"
+Esc + w               "<Alt>w"
+Esc + x               "<Alt>x"
+Esc + y               "<Alt>y"
+Esc + z               "<Alt>z"
+Esc + {               "<Alt>{"
+Esc + |               "<Alt>|"
+Esc + }               "<Alt>}"
+Esc + ~               "<Alt>~"
+Esc + DEL             "<Alt>delete"
 
 
 
 Alt + special key
 
-Alt + enter           "<Alt>return"
-Alt + tab             "<Alt>tab"
-Alt + backspace       "<Alt>backspace"
-Alt + escape          "<Alt>escape"
-Alt + delete          "<Alt>delete"
-Alt + home            "<Alt>home"
-Alt + end             "<Alt>end"
-Alt + page up         "<Alt>prior"
-Alt + page down       "<Alt>next"
-Alt + insert          "<Alt>insert"
-Alt + up              "<Alt>up"
-Alt + down            "<Alt>down"
-Alt + left            "<Alt>left"
-Alt + right           "<Alt>right"
-Alt + F1              "<Alt>F1"
-Alt + F2              "<Alt>F2"
-Alt + F3              "<Alt>F3"
-Alt + F4              "<Alt>F4"
-Alt + F5              "<Alt>F5"
-Alt + F6              "<Alt>F6"
-Alt + F7              "<Alt>F7"
-Alt + F8              "<Alt>F8"
-Alt + F9              "<Alt>F9"
-Alt + F10             "<Alt>F10"
-Alt + F11             "<Alt>F11"
-Alt + F12             "<Alt>F12"
+Esc + enter           "<Alt>return"
+Esc + tab             "<Alt>tab"
+Esc + backspace       "<Alt>backspace"
+Esc + escape          "<Alt>escape"
+Esc + delete          "<Alt>delete"
+Esc + home            "<Alt>home"
+Esc + end             "<Alt>end"
+Esc + page up         "<Alt>prior"
+Esc + page down       "<Alt>next"
+Esc + insert          "<Alt>insert"
+Esc + up              "<Alt>up"
+Esc + down            "<Alt>down"
+Esc + left            "<Alt>left"
+Esc + right           "<Alt>right"
+Esc + F1              "<Alt>F1"
+Esc + F2              "<Alt>F2"
+Esc + F3              "<Alt>F3"
+Esc + F4              "<Alt>F4"
+Esc + F5              "<Alt>F5"
+Esc + F6              "<Alt>F6"
+Esc + F7              "<Alt>F7"
+Esc + F8              "<Alt>F8"
+Esc + F9              "<Alt>F9"
+Esc + F10             "<Alt>F10"
+Esc + F11             "<Alt>F11"
+Esc + F12             "<Alt>F12"
+
+
+
+8bit character
+
+Oct    Hex
+
+128    0x80           "<Meta><Control> "
+129    0x81           "<Meta><Control>a"
+130    0x82           "<Meta><Control>b"
+131    0x83           "<Meta><Control>c"
+132    0x84           "<Meta><Control>d"
+133    0x85           "<Meta><Control>e"
+134    0x86           "<Meta><Control>f"
+135    0x87           "<Meta><Control>g"
+136    0x88           "<Meta>backspace"
+137    0x89           "<Meta>tab"
+138    0x8a           "<Meta><Control>j"
+139    0x8b           "<Meta><Control>k"
+140    0x8c           "<Meta><Control>l"
+141    0x8d           "<Meta>return"
+142    0x8e           "<Meta><Control>n"
+143    0x8f           "<Meta><Control>o"
+144    0x90           "<Meta><Control>p"
+145    0x91           "<Meta><Control>q"
+146    0x92           "<Meta><Control>r"
+147    0x93           "<Meta><Control>s"
+148    0x94           "<Meta><Control>t"
+149    0x95           "<Meta><Control>u"
+150    0x96           "<Meta><Control>v"
+151    0x97           "<Meta><Control>w"
+152    0x98           "<Meta><Control>x"
+153    0x99           "<Meta><Control>y"
+154    0x9a           "<Meta><Control>z"
+155    0x9b           "<Meta>escape"
+156    0x9c           "<Meta><Control>\\"
+157    0x9d           "<Meta><Control>]"
+158    0x9e           "<Meta><Control>^"
+159    0x9f           "<Meta><Control>_"
+160    0xa0           "<Meta> "
+161    0xa1           "<Meta>!"
+162    0xa2           "<Meta>\""
+163    0xa3           "<Meta>#"
+164    0xa4           "<Meta>$"
+165    0xa5           "<Meta>%"
+166    0xa6           "<Meta>&"
+167    0xa7           "<Meta>'"
+168    0xa8           "<Meta>("
+169    0xa9           "<Meta>)"
+170    0xaa           "<Meta>*"
+171    0xab           "<Meta>+"
+172    0xac           "<Meta>,"
+173    0xad           "<Meta>-"
+174    0xae           "<Meta>."
+175    0xaf           "<Meta>/"
+176    0xb0           "<Meta>0"
+177    0xb1           "<Meta>1"
+178    0xb2           "<Meta>2"
+179    0xb3           "<Meta>3"
+180    0xb4           "<Meta>4"
+181    0xb5           "<Meta>5"
+182    0xb6           "<Meta>6"
+183    0xb7           "<Meta>7"
+184    0xb8           "<Meta>8"
+185    0xb9           "<Meta>9"
+186    0xba           "<Meta>:"
+187    0xbb           "<Meta>;"
+188    0xbc           "<Meta><"
+189    0xbd           "<Meta>="
+190    0xbe           "<Meta>>"
+191    0xbf           "<Meta>?"
+192    0xc0           "<Meta>@"
+193    0xc1           "<Meta>A"
+194    0xc2           "<Meta>B"
+195    0xc3           "<Meta>C"
+196    0xc4           "<Meta>D"
+197    0xc5           "<Meta>E"
+198    0xc6           "<Meta>F"
+199    0xc7           "<Meta>G"
+200    0xc8           "<Meta>H"
+201    0xc9           "<Meta>I"
+202    0xca           "<Meta>J"
+203    0xcb           "<Meta>K"
+204    0xcc           "<Meta>L"
+205    0xcd           "<Meta>M"
+206    0xce           "<Meta>N"
+207    0xcf           "<Meta>O"
+208    0xd0           "<Meta>P"
+209    0xd1           "<Meta>Q"
+210    0xd2           "<Meta>R"
+211    0xd3           "<Meta>S"
+212    0xd4           "<Meta>T"
+213    0xd5           "<Meta>U"
+214    0xd6           "<Meta>V"
+215    0xd7           "<Meta>W"
+216    0xd8           "<Meta>X"
+217    0xd9           "<Meta>Y"
+218    0xda           "<Meta>Z"
+219    0xdb           "<Meta>["
+220    0xdc           "<Meta>\\"
+221    0xdd           "<Meta>]"
+222    0xde           "<Meta>^"
+223    0xdf           "<Meta>_"
+224    0xe0           "<Meta>`"
+225    0xe1           "<Meta>a"
+226    0xe2           "<Meta>b"
+227    0xe3           "<Meta>c"
+228    0xe4           "<Meta>d"
+229    0xe5           "<Meta>e"
+230    0xe6           "<Meta>f"
+231    0xe7           "<Meta>g"
+232    0xe8           "<Meta>h"
+233    0xe9           "<Meta>i"
+234    0xea           "<Meta>j"
+235    0xeb           "<Meta>k"
+236    0xec           "<Meta>l"
+237    0xed           "<Meta>m"
+238    0xee           "<Meta>n"
+239    0xef           "<Meta>o"
+240    0xf0           "<Meta>p"
+241    0xf1           "<Meta>q"
+242    0xf2           "<Meta>r"
+243    0xf3           "<Meta>s"
+244    0xf4           "<Meta>t"
+245    0xf5           "<Meta>u"
+246    0xf6           "<Meta>v"
+247    0xf7           "<Meta>w"
+248    0xf8           "<Meta>x"
+249    0xf9           "<Meta>y"
+250    0xfa           "<Meta>z"
+251    0xfb           "<Meta>{"
+252    0xfc           "<Meta>|"
+253    0xfd           "<Meta>}"
+254    0xfe           "<Meta>~"
+255    0xff           "<Meta>delete"
+
+
+
+Alt + 8bit character
+
+      Oct    Hex
+
+Esc + 128    0x80           "<Alt><Meta><Control> "
+Esc + 129    0x81           "<Alt><Meta><Control>a"
+Esc + 130    0x82           "<Alt><Meta><Control>b"
+Esc + 131    0x83           "<Alt><Meta><Control>c"
+Esc + 132    0x84           "<Alt><Meta><Control>d"
+Esc + 133    0x85           "<Alt><Meta><Control>e"
+Esc + 134    0x86           "<Alt><Meta><Control>f"
+Esc + 135    0x87           "<Alt><Meta><Control>g"
+Esc + 136    0x88           "<Alt><Meta>backspace"
+Esc + 137    0x89           "<Alt><Meta>tab"
+Esc + 138    0x8a           "<Alt><Meta><Control>j"
+Esc + 139    0x8b           "<Alt><Meta><Control>k"
+Esc + 140    0x8c           "<Alt><Meta><Control>l"
+Esc + 141    0x8d           "<Alt><Meta>return"
+Esc + 142    0x8e           "<Alt><Meta><Control>n"
+Esc + 143    0x8f           "<Alt><Meta><Control>o"
+Esc + 144    0x90           "<Alt><Meta><Control>p"
+Esc + 145    0x91           "<Alt><Meta><Control>q"
+Esc + 146    0x92           "<Alt><Meta><Control>r"
+Esc + 147    0x93           "<Alt><Meta><Control>s"
+Esc + 148    0x94           "<Alt><Meta><Control>t"
+Esc + 149    0x95           "<Alt><Meta><Control>u"
+Esc + 150    0x96           "<Alt><Meta><Control>v"
+Esc + 151    0x97           "<Alt><Meta><Control>w"
+Esc + 152    0x98           "<Alt><Meta><Control>x"
+Esc + 153    0x99           "<Alt><Meta><Control>y"
+Esc + 154    0x9a           "<Alt><Meta><Control>z"
+Esc + 155    0x9b           "<Alt><Meta>escape"
+Esc + 156    0x9c           "<Alt><Meta><Control>\\"
+Esc + 157    0x9d           "<Alt><Meta><Control>]"
+Esc + 158    0x9e           "<Alt><Meta><Control>^"
+Esc + 159    0x9f           "<Alt><Meta><Control>_"
+Esc + 160    0xa0           "<Alt><Meta> "
+Esc + 161    0xa1           "<Alt><Meta>!"
+Esc + 162    0xa2           "<Alt><Meta>\""
+Esc + 163    0xa3           "<Alt><Meta>#"
+Esc + 164    0xa4           "<Alt><Meta>$"
+Esc + 165    0xa5           "<Alt><Meta>%"
+Esc + 166    0xa6           "<Alt><Meta>&"
+Esc + 167    0xa7           "<Alt><Meta>'"
+Esc + 168    0xa8           "<Alt><Meta>("
+Esc + 169    0xa9           "<Alt><Meta>)"
+Esc + 170    0xaa           "<Alt><Meta>*"
+Esc + 171    0xab           "<Alt><Meta>+"
+Esc + 172    0xac           "<Alt><Meta>,"
+Esc + 173    0xad           "<Alt><Meta>-"
+Esc + 174    0xae           "<Alt><Meta>."
+Esc + 175    0xaf           "<Alt><Meta>/"
+Esc + 176    0xb0           "<Alt><Meta>0"
+Esc + 177    0xb1           "<Alt><Meta>1"
+Esc + 178    0xb2           "<Alt><Meta>2"
+Esc + 179    0xb3           "<Alt><Meta>3"
+Esc + 180    0xb4           "<Alt><Meta>4"
+Esc + 181    0xb5           "<Alt><Meta>5"
+Esc + 182    0xb6           "<Alt><Meta>6"
+Esc + 183    0xb7           "<Alt><Meta>7"
+Esc + 184    0xb8           "<Alt><Meta>8"
+Esc + 185    0xb9           "<Alt><Meta>9"
+Esc + 186    0xba           "<Alt><Meta>:"
+Esc + 187    0xbb           "<Alt><Meta>;"
+Esc + 188    0xbc           "<Alt><Meta><"
+Esc + 189    0xbd           "<Alt><Meta>="
+Esc + 190    0xbe           "<Alt><Meta>>"
+Esc + 191    0xbf           "<Alt><Meta>?"
+Esc + 192    0xc0           "<Alt><Meta>@"
+Esc + 193    0xc1           "<Alt><Meta>A"
+Esc + 194    0xc2           "<Alt><Meta>B"
+Esc + 195    0xc3           "<Alt><Meta>C"
+Esc + 196    0xc4           "<Alt><Meta>D"
+Esc + 197    0xc5           "<Alt><Meta>E"
+Esc + 198    0xc6           "<Alt><Meta>F"
+Esc + 199    0xc7           "<Alt><Meta>G"
+Esc + 200    0xc8           "<Alt><Meta>H"
+Esc + 201    0xc9           "<Alt><Meta>I"
+Esc + 202    0xca           "<Alt><Meta>J"
+Esc + 203    0xcb           "<Alt><Meta>K"
+Esc + 204    0xcc           "<Alt><Meta>L"
+Esc + 205    0xcd           "<Alt><Meta>M"
+Esc + 206    0xce           "<Alt><Meta>N"
+Esc + 207    0xcf           "<Alt><Meta>O"
+Esc + 208    0xd0           "<Alt><Meta>P"
+Esc + 209    0xd1           "<Alt><Meta>Q"
+Esc + 210    0xd2           "<Alt><Meta>R"
+Esc + 211    0xd3           "<Alt><Meta>S"
+Esc + 212    0xd4           "<Alt><Meta>T"
+Esc + 213    0xd5           "<Alt><Meta>U"
+Esc + 214    0xd6           "<Alt><Meta>V"
+Esc + 215    0xd7           "<Alt><Meta>W"
+Esc + 216    0xd8           "<Alt><Meta>X"
+Esc + 217    0xd9           "<Alt><Meta>Y"
+Esc + 218    0xda           "<Alt><Meta>Z"
+Esc + 219    0xdb           "<Alt><Meta>["
+Esc + 220    0xdc           "<Alt><Meta>\\"
+Esc + 221    0xdd           "<Alt><Meta>]"
+Esc + 222    0xde           "<Alt><Meta>^"
+Esc + 223    0xdf           "<Alt><Meta>_"
+Esc + 224    0xe0           "<Alt><Meta>`"
+Esc + 225    0xe1           "<Alt><Meta>a"
+Esc + 226    0xe2           "<Alt><Meta>b"
+Esc + 227    0xe3           "<Alt><Meta>c"
+Esc + 228    0xe4           "<Alt><Meta>d"
+Esc + 229    0xe5           "<Alt><Meta>e"
+Esc + 230    0xe6           "<Alt><Meta>f"
+Esc + 231    0xe7           "<Alt><Meta>g"
+Esc + 232    0xe8           "<Alt><Meta>h"
+Esc + 233    0xe9           "<Alt><Meta>i"
+Esc + 234    0xea           "<Alt><Meta>j"
+Esc + 235    0xeb           "<Alt><Meta>k"
+Esc + 236    0xec           "<Alt><Meta>l"
+Esc + 237    0xed           "<Alt><Meta>m"
+Esc + 238    0xee           "<Alt><Meta>n"
+Esc + 239    0xef           "<Alt><Meta>o"
+Esc + 240    0xf0           "<Alt><Meta>p"
+Esc + 241    0xf1           "<Alt><Meta>q"
+Esc + 242    0xf2           "<Alt><Meta>r"
+Esc + 243    0xf3           "<Alt><Meta>s"
+Esc + 244    0xf4           "<Alt><Meta>t"
+Esc + 245    0xf5           "<Alt><Meta>u"
+Esc + 246    0xf6           "<Alt><Meta>v"
+Esc + 247    0xf7           "<Alt><Meta>w"
+Esc + 248    0xf8           "<Alt><Meta>x"
+Esc + 249    0xf9           "<Alt><Meta>y"
+Esc + 250    0xfa           "<Alt><Meta>z"
+Esc + 251    0xfb           "<Alt><Meta>{"
+Esc + 252    0xfc           "<Alt><Meta>|"
+Esc + 253    0xfd           "<Alt><Meta>}"
+Esc + 254    0xfe           "<Alt><Meta>~"
+Esc + 255    0xff           "<Alt><Meta>delete"

Modified: trunk/fep/key.c
===================================================================
--- trunk/fep/key.c	2005-05-15 06:15:51 UTC (rev 840)
+++ trunk/fep/key.c	2005-05-16 04:47:15 UTC (rev 841)
@@ -67,6 +67,7 @@
 
 int tty2key(char key)
 {
+  key &= 0x7f;
   switch (key) {
   /* c-space */
   case 0:
@@ -97,13 +98,14 @@
 
 int tty2key_state(char key)
 {
-  int key_state = 0;
+  int key_state = (key & 0x80) ? UMod_Meta : 0;
+  key &= 0x7f;
   if (key == '\b' ||
       key == '\t' ||
       key == '\r' ||
       key == ESCAPE_CODE ||
       key == 0x7f) {
-    return 0;
+    return key_state;
   }
   if (key >= 'A' && key <= 'Z') {
     key_state += UMod_Shift;

Modified: trunk/fep/uim-fep.c
===================================================================
--- trunk/fep/uim-fep.c	2005-05-15 06:15:51 UTC (rev 840)
+++ trunk/fep/uim-fep.c	2005-05-16 04:47:15 UTC (rev 841)
@@ -699,16 +699,15 @@
 
         for (i = 0; i < len; i++) {
           key = tty2key(buf[i]);
-          if (key == UKey_Escape) {
+          key_state += tty2key_state(buf[i]);
+          if (key == UKey_Escape && key_state == 0) {
             int *key_and_key_len = escape_sequence2key(buf + i);
             key = key_and_key_len[0];
             if (key == UKey_Escape) {
               if (i + 1 < len) {
                 /* Alt+¥­¡¼ */
-                if (key_state != UMod_Alt) {
-                  key_state = UMod_Alt;
-                  continue;
-                }
+                key_state = UMod_Alt;
+                continue;
               } else if (g_opt.timeout > 0) {
                 struct timeval t;
                 FD_ZERO(&fds);
@@ -720,13 +719,13 @@
                   buf[len] = '\0';
                   debug(("read_again \"%s\"\n", buf));
                   i--;
+                  key_state = 0;
                   continue;
                 }
               }
             }
             key_len = key_and_key_len[1];
           } else {
-            key_state += tty2key_state(buf[i]);
             key_len = 1;
           }
           raw = press_key(key, key_state);



More information about the Uim-commit mailing list