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