Mercurial > hg > nnchat
comparison nnchat.c @ 206:af32c038cf1e
Add some hardcoded translations for certain terminal keycodes that NCurses 4.x on Solaris didn't handle .. urgh.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sat, 20 Nov 2010 19:14:22 +0200 |
parents | e7538539de7f |
children | e0c085426b91 |
comparison
equal
deleted
inserted
replaced
205:b1482bc34260 | 206:af32c038cf1e |
---|---|
1147 case 'c': c = 0x206; break; | 1147 case 'c': c = 0x206; break; |
1148 default: | 1148 default: |
1149 printMsg("Unhandled ESC-O key sequence 0x%02x\n", c); | 1149 printMsg("Unhandled ESC-O key sequence 0x%02x\n", c); |
1150 break; | 1150 break; |
1151 } | 1151 } |
1152 } else | |
1153 if (c == '[') { | |
1154 c = wgetch(stdscr); | |
1155 switch (c) { | |
1156 case 0x32: c = KEY_IC; break; | |
1157 case 0x33: c = KEY_DC; break; | |
1158 | |
1159 case 0x35: c = KEY_PPAGE; break; | |
1160 case 0x36: c = KEY_NPAGE; break; | |
1161 | |
1162 case 0x37: c = KEY_HOME; break; | |
1163 case 0x38: c = KEY_END; break; | |
1164 | |
1165 default: | |
1166 printMsg("Unhandled ESC-[*~ key sequence 0x%02x\n", c); | |
1167 c = ERR; | |
1168 break; | |
1169 } | |
1170 /* Get the trailing ~ */ | |
1171 if (c != ERR) | |
1172 wgetch(stdscr); | |
1152 } else { | 1173 } else { |
1153 printMsg("Unhandled ESC key sequence 0x%02x\n", c); | 1174 printMsg("Unhandled ESC key sequence 0x%02x\n", c); |
1154 continue; | 1175 continue; |
1155 } | 1176 } |
1156 } | 1177 } |
1249 case KEY_LEFT: nn_editbuf_setpos(editBuf, editBuf->pos - 1); update = TRUE; break; | 1270 case KEY_LEFT: nn_editbuf_setpos(editBuf, editBuf->pos - 1); update = TRUE; break; |
1250 case KEY_RIGHT: nn_editbuf_setpos(editBuf, editBuf->pos + 1); update = TRUE; break; | 1271 case KEY_RIGHT: nn_editbuf_setpos(editBuf, editBuf->pos + 1); update = TRUE; break; |
1251 | 1272 |
1252 case KEY_BACKSPACE: | 1273 case KEY_BACKSPACE: |
1253 case 0x08: | 1274 case 0x08: |
1275 case 0x7f: | |
1254 nn_editbuf_delete(editBuf, editBuf->pos - 1); | 1276 nn_editbuf_delete(editBuf, editBuf->pos - 1); |
1255 nn_editbuf_setpos(editBuf, editBuf->pos - 1); | 1277 nn_editbuf_setpos(editBuf, editBuf->pos - 1); |
1256 update = TRUE; | 1278 update = TRUE; |
1257 break; | 1279 break; |
1258 | 1280 |