… | |
… | |
2867 | break; |
2867 | break; |
2868 | |
2868 | |
2869 | case '?': |
2869 | case '?': |
2870 | if (ch == 'h' || ch == 'l' || ch == 'r' || ch == 's' || ch == 't') |
2870 | if (ch == 'h' || ch == 'l' || ch == 'r' || ch == 's' || ch == 't') |
2871 | process_terminal_mode (ch, priv, nargs, arg); |
2871 | process_terminal_mode (ch, priv, nargs, arg); |
|
|
2872 | if (prev_ch == '$' && ch == 'p') |
|
|
2873 | process_terminal_mode (ch, priv, nargs, arg); |
2872 | break; |
2874 | break; |
2873 | |
2875 | |
2874 | case '!': |
2876 | case '!': |
2875 | if (ch == CSI_70) |
2877 | if (ch == CSI_70) |
2876 | { |
2878 | { |
… | |
… | |
3726 | { 2004, PrivMode_BracketPaste }, |
3728 | { 2004, PrivMode_BracketPaste }, |
3727 | }; |
3729 | }; |
3728 | |
3730 | |
3729 | if (nargs == 0) |
3731 | if (nargs == 0) |
3730 | return; |
3732 | return; |
|
|
3733 | |
|
|
3734 | // DECRQM |
|
|
3735 | if (mode == 'p') |
|
|
3736 | { |
|
|
3737 | int status = 0; |
|
|
3738 | if (nargs != 1) |
|
|
3739 | return; |
|
|
3740 | |
|
|
3741 | for (j = 0; j < ecb_array_length (argtopriv); j++) |
|
|
3742 | if (argtopriv[j].argval == arg[0]) |
|
|
3743 | { |
|
|
3744 | status = (priv_modes & argtopriv[j].bit) ? 1 : 2; |
|
|
3745 | break; |
|
|
3746 | } |
|
|
3747 | |
|
|
3748 | tt_printf ("\33[?%d;%d$y", arg[0], status); |
|
|
3749 | return; |
|
|
3750 | } |
3731 | |
3751 | |
3732 | /* make lo/hi boolean */ |
3752 | /* make lo/hi boolean */ |
3733 | if (mode == 'l') |
3753 | if (mode == 'l') |
3734 | mode = 0; /* reset */ |
3754 | mode = 0; /* reset */ |
3735 | else if (mode == 'h') |
3755 | else if (mode == 'h') |