ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/command.C
(Generate patch)

Comparing rxvt-unicode/src/command.C (file contents):
Revision 1.582 by sf-exg, Thu Jul 14 05:33:26 2016 UTC vs.
Revision 1.585 by root, Sun Jul 7 08:06:44 2019 UTC

2354wchar_t ecb_hot 2354wchar_t ecb_hot
2355rxvt_term::next_char () NOTHROW 2355rxvt_term::next_char () NOTHROW
2356{ 2356{
2357 while (cmdbuf_ptr < cmdbuf_endp) 2357 while (cmdbuf_ptr < cmdbuf_endp)
2358 { 2358 {
2359 // assume 7-bit to be ascii ALWAYS 2359 // assume 7-bit to be ascii ALWAYS (always true in POSIX)
2360 if (ecb_likely ((unsigned char)*cmdbuf_ptr <= 0x7f && *cmdbuf_ptr != 0x1b)) 2360 if (ecb_likely ((unsigned char)*cmdbuf_ptr <= 0x7f))
2361 return *cmdbuf_ptr++; 2361 return *cmdbuf_ptr++;
2362 2362
2363 wchar_t wc; 2363 wchar_t wc;
2364 size_t len = mbrtowc (&wc, cmdbuf_ptr, cmdbuf_endp - cmdbuf_ptr, mbstate); 2364 size_t len = mbrtowc (&wc, cmdbuf_ptr, cmdbuf_endp - cmdbuf_ptr, mbstate);
2365 2365
2690 wchar_t nlcr[] = { C0_LF, C0_CR }; 2690 wchar_t nlcr[] = { C0_LF, C0_CR };
2691 scr_add_lines (nlcr, ecb_array_length (nlcr), 1); 2691 scr_add_lines (nlcr, ecb_array_length (nlcr), 1);
2692 } 2692 }
2693 break; 2693 break;
2694 2694
2695#if 0 // disabled because embedded newlines can make exploits easier
2695 /* kidnapped escape sequence: Should be 8.3.48 */ 2696 /* kidnapped escape sequence: Should be 8.3.48 */
2696 case C1_ESA: /* ESC G */ 2697 case C1_ESA: /* ESC G */
2697 // used by original rxvt for rob nations own graphics mode 2698 // used by original rxvt for rob nations own graphics mode
2698 if (cmd_getc () == 'Q') 2699 if (cmd_getc () == 'Q' && option (Opt_insecure))
2699 tt_printf ("\033G0\012"); /* query graphics - no graphics */ 2700 tt_printf ("\033G0\012"); /* query graphics - no graphics */
2700 break; 2701 break;
2702#endif
2701 2703
2702 /* 8.3.63: CHARACTER TABULATION SET */ 2704 /* 8.3.63: CHARACTER TABULATION SET */
2703 case C1_HTS: /* ESC H */ 2705 case C1_HTS: /* ESC H */
2704 scr_set_tab (1); 2706 scr_set_tab (1);
2705 break; 2707 break;
2912 case CSI_VPR: /* 8.3.161: (1) LINE POSITION FORWARD */ 2914 case CSI_VPR: /* 8.3.161: (1) LINE POSITION FORWARD */
2913 scr_gotorc (arg[0], 0, RELATIVE); 2915 scr_gotorc (arg[0], 0, RELATIVE);
2914 break; 2916 break;
2915 2917
2916 case CSI_CUB: /* 8.3.18: (1) CURSOR LEFT */ 2918 case CSI_CUB: /* 8.3.18: (1) CURSOR LEFT */
2917 case CSI_HPB: /* 8.3.59: (1) CHARACTER POSITION BACKWARD */ 2919 case CSI_HPB: /* 8.3.59: (1) CHARACTER POSITION BACKWARD */
2918#ifdef ISO6429 2920#ifdef ISO6429
2919 arg[0] = -arg[0]; 2921 arg[0] = -arg[0];
2920#else /* emulate common DEC VTs */ 2922#else /* emulate common DEC VTs */
2921 arg[0] = arg[0] ? -arg[0] : -1; 2923 arg[0] = arg[0] ? -arg[0] : -1;
2922#endif 2924#endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines