… | |
… | |
358 | case XK_KP_Right: /* \033Ov or standard */ |
358 | case XK_KP_Right: /* \033Ov or standard */ |
359 | case XK_KP_Left: /* \033Ot or standard */ |
359 | case XK_KP_Left: /* \033Ot or standard */ |
360 | if ((PrivateModes & PrivMode_aplKP) ? !shft : shft) |
360 | if ((PrivateModes & PrivMode_aplKP) ? !shft : shft) |
361 | { |
361 | { |
362 | STRCPY (kbuf, "\033OZ"); |
362 | STRCPY (kbuf, "\033OZ"); |
363 | kbuf[2] = ("txvr"[keysym - XK_KP_Left]); |
363 | kbuf[2] = "txvr"[keysym - XK_KP_Left]; |
364 | break; |
364 | break; |
365 | } |
365 | } |
366 | else |
366 | else |
367 | /* translate to std. cursor key */ |
367 | /* translate to std. cursor key */ |
368 | keysym = XK_Left + (keysym - XK_KP_Left); |
368 | keysym = XK_Left + (keysym - XK_KP_Left); |
… | |
… | |
371 | case XK_Up: /* "\033[A" */ |
371 | case XK_Up: /* "\033[A" */ |
372 | case XK_Down: /* "\033[B" */ |
372 | case XK_Down: /* "\033[B" */ |
373 | case XK_Right: /* "\033[C" */ |
373 | case XK_Right: /* "\033[C" */ |
374 | case XK_Left: /* "\033[D" */ |
374 | case XK_Left: /* "\033[D" */ |
375 | STRCPY (kbuf, "\033[Z"); |
375 | STRCPY (kbuf, "\033[Z"); |
376 | kbuf[2] = ("DACB"[keysym - XK_Left]); |
376 | kbuf[2] = "DACB"[keysym - XK_Left]; |
377 | /* do Shift first */ |
377 | /* do Shift first */ |
378 | if (shft) |
378 | if (shft) |
379 | kbuf[2] = ("dacb"[keysym - XK_Left]); |
379 | kbuf[2] = "dacb"[keysym - XK_Left]; |
380 | else if (ctrl) |
380 | else if (ctrl) |
381 | { |
381 | { |
382 | kbuf[1] = 'O'; |
382 | kbuf[1] = 'O'; |
383 | kbuf[2] = ("dacb"[keysym - XK_Left]); |
383 | kbuf[2] = "dacb"[keysym - XK_Left]; |
384 | } |
384 | } |
385 | else if (PrivateModes & PrivMode_aplCUR) |
385 | else if (PrivateModes & PrivMode_aplCUR) |
386 | kbuf[1] = 'O'; |
386 | kbuf[1] = 'O'; |
387 | #ifdef MULTICHAR_SET |
387 | #ifdef MULTICHAR_SET |
388 | //TODO: ?? |
388 | //TODO: ?? |
… | |
… | |
947 | { |
947 | { |
948 | if (*cmdbuf_ptr < 0x80) // assume < 0x80 to be ascii ALWAYS (all shift-states etc.) uh-oh |
948 | if (*cmdbuf_ptr < 0x80) // assume < 0x80 to be ascii ALWAYS (all shift-states etc.) uh-oh |
949 | return *cmdbuf_ptr++; |
949 | return *cmdbuf_ptr++; |
950 | |
950 | |
951 | wchar_t wc; |
951 | wchar_t wc; |
952 | size_t len = mbrtowc (&wc, (char *)cmdbuf_ptr, cmdbuf_endp - cmdbuf_ptr, &mbstate.mbs); |
952 | size_t len = mbrtowc (&wc, (char *)cmdbuf_ptr, cmdbuf_endp - cmdbuf_ptr, mbstate); |
953 | |
953 | |
954 | if (len == (size_t)-2) |
954 | if (len == (size_t)-2) |
955 | return NOCHAR; |
955 | return NOCHAR; |
956 | |
956 | |
957 | if (len == (size_t)-1) |
957 | if (len == (size_t)-1) |
… | |
… | |
2369 | /* case 1: do_tek_mode (); break; */ |
2369 | /* case 1: do_tek_mode (); break; */ |
2370 | case '#': |
2370 | case '#': |
2371 | if (cmd_getc () == '8') |
2371 | if (cmd_getc () == '8') |
2372 | scr_E (); |
2372 | scr_E (); |
2373 | break; |
2373 | break; |
2374 | case ' (': |
2374 | case '(': |
2375 | scr_charset_set (0, (unsigned int)cmd_getc ()); |
2375 | scr_charset_set (0, (unsigned int)cmd_getc ()); |
2376 | break; |
2376 | break; |
2377 | case ')': |
2377 | case ')': |
2378 | scr_charset_set (1, (unsigned int)cmd_getc ()); |
2378 | scr_charset_set (1, (unsigned int)cmd_getc ()); |
2379 | break; |
2379 | break; |