… | |
… | |
23 | #if HAVE_WCHAR_H |
23 | #if HAVE_WCHAR_H |
24 | # include <wchar.h> |
24 | # include <wchar.h> |
25 | #else |
25 | #else |
26 | // stdlib.h might provide it |
26 | // stdlib.h might provide it |
27 | #endif |
27 | #endif |
|
|
28 | |
|
|
29 | #include <libptytty.h> |
28 | |
30 | |
29 | // we assume that Xlib.h defines XPointer, and it does since at least 1994... |
31 | // we assume that Xlib.h defines XPointer, and it does since at least 1994... |
30 | |
32 | |
31 | extern "C" { |
33 | extern "C" { |
32 | #include <X11/Xlib.h> |
34 | #include <X11/Xlib.h> |
… | |
… | |
88 | #include "rxvtfont.h" |
90 | #include "rxvtfont.h" |
89 | #include "rxvttoolkit.h" |
91 | #include "rxvttoolkit.h" |
90 | #include "rxvtimg.h" |
92 | #include "rxvtimg.h" |
91 | #include "scrollbar.h" |
93 | #include "scrollbar.h" |
92 | #include "ev_cpp.h" |
94 | #include "ev_cpp.h" |
93 | #include "libptytty.h" |
|
|
94 | |
95 | |
95 | #include "rxvtperl.h" |
96 | #include "rxvtperl.h" |
96 | |
97 | |
97 | // try to avoid some macros to decrease code size, on some systems |
98 | // try to avoid some macros to decrease code size, on some systems |
98 | #if ENABLE_MINIMAL |
99 | #if ENABLE_MINIMAL |
… | |
… | |
123 | #endif |
124 | #endif |
124 | |
125 | |
125 | /****************************************************************************/ |
126 | /****************************************************************************/ |
126 | |
127 | |
127 | // exception thrown on fatal (per-instance) errors |
128 | // exception thrown on fatal (per-instance) errors |
128 | class rxvt_failure_exception { }; |
129 | class rxvt_failure_exception : public std::exception |
|
|
130 | { |
|
|
131 | public: |
|
|
132 | const char * |
|
|
133 | what () const noexcept override |
|
|
134 | { |
|
|
135 | return ""; |
|
|
136 | } |
|
|
137 | }; |
129 | |
138 | |
130 | // exception thrown when the command parser runs out of input data |
139 | // exception thrown when the command parser runs out of input data |
131 | class out_of_input { }; |
140 | class out_of_input { }; |
132 | |
141 | |
133 | /* |
142 | /* |
… | |
… | |
135 | * PROTOTYPES |
144 | * PROTOTYPES |
136 | ***************************************************************************** |
145 | ***************************************************************************** |
137 | */ |
146 | */ |
138 | // main.C |
147 | // main.C |
139 | #define SET_LOCALE(locale) rxvt_set_locale (locale) |
148 | #define SET_LOCALE(locale) rxvt_set_locale (locale) |
140 | extern bool rxvt_set_locale (const char *locale) NOTHROW; |
149 | extern bool rxvt_set_locale (const char *locale) noexcept; |
141 | extern void rxvt_push_locale (const char *locale) NOTHROW; |
150 | extern void rxvt_push_locale (const char *locale) noexcept; |
142 | extern void rxvt_pop_locale () NOTHROW; |
151 | extern void rxvt_pop_locale () noexcept; |
143 | void rxvt_init (); |
152 | void rxvt_init (); |
144 | |
153 | |
145 | // misc.C |
154 | // misc.C |
146 | char * rxvt_wcstombs (const wchar_t *str, int len = -1); |
155 | char * rxvt_wcstombs (const wchar_t *str, int len = -1); |
147 | wchar_t * rxvt_mbstowcs (const char *str, int len = -1); |
156 | wchar_t * rxvt_mbstowcs (const char *str, int len = -1); |
148 | char * rxvt_wcstoutf8 (const wchar_t *str, int len = -1); |
157 | char * rxvt_wcstoutf8 (const wchar_t *str, int len = -1); |
149 | wchar_t * rxvt_utf8towcs (const char *str, int len = -1); |
158 | wchar_t * rxvt_utf8towcs (const char *str, int len = -1); |
150 | |
159 | |
151 | const char * rxvt_basename (const char *str) NOTHROW; |
160 | const char * rxvt_basename (const char *str) noexcept; |
152 | void rxvt_vlog (const char *fmt, va_list arg_ptr) NOTHROW; |
161 | void rxvt_vlog (const char *fmt, va_list arg_ptr) noexcept; |
153 | void rxvt_log (const char *fmt,...) NOTHROW; |
162 | void rxvt_log (const char *fmt,...) noexcept; |
154 | void rxvt_warn (const char *fmt,...) NOTHROW; |
163 | void rxvt_warn (const char *fmt,...) noexcept; |
155 | ecb_noreturn ecb_cold |
164 | ecb_noreturn ecb_cold |
156 | void rxvt_fatal (const char *fmt, ...) THROW ((class rxvt_failure_exception)); |
165 | void rxvt_fatal (const char *fmt, ...); |
157 | ecb_noreturn ecb_cold |
166 | ecb_noreturn ecb_cold |
158 | void rxvt_exit_failure () THROW ((class rxvt_failure_exception)); |
167 | void rxvt_exit_failure (); |
159 | |
168 | |
160 | void * rxvt_malloc (size_t size); |
169 | void * rxvt_malloc (size_t size); |
161 | void * rxvt_calloc (size_t number, size_t size); |
170 | void * rxvt_calloc (size_t number, size_t size); |
162 | void * rxvt_realloc (void *ptr, size_t size); |
171 | void * rxvt_realloc (void *ptr, size_t size); |
163 | |
172 | |
164 | char * rxvt_strtrim (char *str) NOTHROW; |
173 | char * rxvt_strtrim (char *str) noexcept; |
165 | char ** rxvt_strsplit (char delim, const char *str) NOTHROW; |
174 | char ** rxvt_strsplit (char delim, const char *str) noexcept; |
166 | |
175 | |
167 | static inline void |
176 | static inline void |
168 | rxvt_free_strsplit (char **ptr) NOTHROW |
177 | rxvt_free_strsplit (char **ptr) noexcept |
169 | { |
178 | { |
170 | free (ptr[0]); |
179 | free (ptr[0]); |
171 | free (ptr); |
180 | free (ptr); |
172 | } |
181 | } |
173 | |
182 | |
… | |
… | |
388 | C0_SOH, C0_STX, C0_ETX, C0_EOT, C0_ENQ, C0_ACK, C0_BEL, |
397 | C0_SOH, C0_STX, C0_ETX, C0_EOT, C0_ENQ, C0_ACK, C0_BEL, |
389 | C0_BS , C0_HT , C0_LF , C0_VT , C0_FF , C0_CR , C0_SO , C0_SI , |
398 | C0_BS , C0_HT , C0_LF , C0_VT , C0_FF , C0_CR , C0_SO , C0_SI , |
390 | C0_DLE, C0_DC1, C0_DC2, D0_DC3, C0_DC4, C0_NAK, C0_SYN, C0_ETB, |
399 | C0_DLE, C0_DC1, C0_DC2, D0_DC3, C0_DC4, C0_NAK, C0_SYN, C0_ETB, |
391 | C0_CAN, C0_EM , C0_SUB, C0_ESC, C0_IS4, C0_IS3, C0_IS2, C0_IS1, |
400 | C0_CAN, C0_EM , C0_SUB, C0_ESC, C0_IS4, C0_IS3, C0_IS2, C0_IS1, |
392 | }; |
401 | }; |
|
|
402 | |
|
|
403 | struct string_term |
|
|
404 | { |
|
|
405 | unsigned char v[3]; |
|
|
406 | }; |
|
|
407 | |
393 | #define CHAR_ST 0x9c /* 0234 */ |
408 | #define CHAR_ST 0x9c /* 0234 */ |
394 | |
409 | |
395 | /* |
410 | /* |
396 | * XTerm Operating System Commands: ESC ] Ps;Pt (ST|BEL) |
411 | * XTerm Operating System Commands: ESC ] Ps;Pt (ST|BEL) |
397 | * colour extensions by Christian W. Zuckschwerdt <zany@triq.net> |
412 | * colour extensions by Christian W. Zuckschwerdt <zany@triq.net> |
… | |
… | |
441 | URxvt_boldItalicFont = 713, |
456 | URxvt_boldItalicFont = 713, |
442 | |
457 | |
443 | URxvt_view_up = 720, |
458 | URxvt_view_up = 720, |
444 | URxvt_view_down = 721, |
459 | URxvt_view_down = 721, |
445 | |
460 | |
|
|
461 | URxvt_cellinfo = 776, // returns font cell width, height etc. |
446 | URxvt_perl = 777, // for use by perl extensions, starts with "extension-name;" |
462 | URxvt_perl = 777, // for use by perl extensions, starts with "extension-name;" |
447 | }; |
463 | }; |
448 | |
464 | |
449 | /* Words starting with `Color_' are colours. Others are counts */ |
465 | /* Words starting with `Color_' are colours. Others are counts */ |
450 | /* |
466 | /* |
… | |
… | |
572 | #define PrivMode_vt52 (1UL<<18) |
588 | #define PrivMode_vt52 (1UL<<18) |
573 | #define PrivMode_LFNL (1UL<<19) |
589 | #define PrivMode_LFNL (1UL<<19) |
574 | #define PrivMode_MouseBtnEvent (1UL<<20) |
590 | #define PrivMode_MouseBtnEvent (1UL<<20) |
575 | #define PrivMode_MouseAnyEvent (1UL<<21) |
591 | #define PrivMode_MouseAnyEvent (1UL<<21) |
576 | #define PrivMode_BracketPaste (1UL<<22) |
592 | #define PrivMode_BracketPaste (1UL<<22) |
577 | #define PrivMode_ExtModeMouse (1UL<<23) // xterm pseudo-utf-8 hack |
593 | #define PrivMode_ExtMouseUTF8 (1UL<<23) // xterm pseudo-utf-8 hack |
578 | #define PrivMode_ExtMouseRight (1UL<<24) // xterm pseudo-utf-8, but works in non-utf-8-locales |
594 | #define PrivMode_ExtMouseUrxvt (1UL<<24) // xterm pseudo-utf-8, but works in non-utf-8-locales |
579 | #define PrivMode_BlinkingCursor (1UL<<25) |
595 | #define PrivMode_BlinkingCursor (1UL<<25) |
580 | #define PrivMode_FocusEvent (1UL<<26) |
596 | #define PrivMode_FocusEvent (1UL<<26) |
|
|
597 | #define PrivMode_ExtMouseSGR (1UL<<27) |
581 | |
598 | |
582 | #define PrivMode_mouse_report (PrivMode_MouseX10|PrivMode_MouseX11|PrivMode_MouseBtnEvent|PrivMode_MouseAnyEvent) |
599 | #define PrivMode_mouse_report (PrivMode_MouseX10|PrivMode_MouseX11|PrivMode_MouseBtnEvent|PrivMode_MouseAnyEvent) |
583 | |
600 | |
584 | #ifdef ALLOW_132_MODE |
601 | #ifdef ALLOW_132_MODE |
585 | # define PrivMode_Default (PrivMode_Autowrap|PrivMode_ShiftKeys|PrivMode_VisibleCursor|PrivMode_132OK) |
602 | # define PrivMode_Default (PrivMode_Autowrap|PrivMode_ShiftKeys|PrivMode_VisibleCursor|PrivMode_132OK) |
… | |
… | |
768 | /****************************************************************************/ |
785 | /****************************************************************************/ |
769 | |
786 | |
770 | #define UNICODE_MASK 0x1fffffUL |
787 | #define UNICODE_MASK 0x1fffffUL |
771 | |
788 | |
772 | #if UNICODE_3 |
789 | #if UNICODE_3 |
773 | # define COMPOSE_LO 0x40000000UL |
790 | # define COMPOSE_LO 0x110000UL |
774 | # define COMPOSE_HI 0x400fffffUL |
791 | # define COMPOSE_HI 0x1fffffUL |
775 | # define IS_COMPOSE(n) ((int32_t)(n) >= COMPOSE_LO) |
792 | # define IS_COMPOSE(n) ((int32_t)(n) >= COMPOSE_LO) |
776 | #else |
793 | #else |
777 | # if ENABLE_PERL |
794 | # if ENABLE_PERL |
778 | # define COMPOSE_LO 0xe000UL // our _own_ functions don't like (illegal) surrogates |
795 | # define COMPOSE_LO 0xe000UL // our _own_ functions don't like (illegal) surrogates |
779 | # define COMPOSE_HI 0xf8ffUL // in utf-8, so use private use area only |
796 | # define COMPOSE_HI 0xf8ffUL // in utf-8, so use private use area only |
… | |
… | |
788 | // compose chars are used to represent composite characters |
805 | // compose chars are used to represent composite characters |
789 | // that are not representable in unicode, as well as characters |
806 | // that are not representable in unicode, as well as characters |
790 | // not fitting in the BMP. |
807 | // not fitting in the BMP. |
791 | struct compose_char |
808 | struct compose_char |
792 | { |
809 | { |
793 | unicode_t c1, c2; // any chars != NOCHAR are valid |
810 | // c1 can be any character != NOCHAR, including another compose character |
|
|
811 | // c2 must always be a zero-width character or NOCHAR, in case |
|
|
812 | // this just extends beyond the BMP. |
|
|
813 | unicode_t c1, c2; |
794 | |
814 | |
795 | compose_char (unicode_t c1, unicode_t c2) |
815 | compose_char (unicode_t c1, unicode_t c2) |
796 | : c1(c1), c2(c2) |
816 | : c1(c1), c2(c2) |
797 | { } |
817 | { } |
798 | }; |
818 | }; |
799 | |
819 | |
800 | class rxvt_composite_vec |
820 | struct rxvt_composite_vec |
801 | { |
821 | { |
802 | vector<compose_char> v; |
822 | vector<compose_char> v; |
803 | public: |
823 | |
804 | text_t compose (unicode_t c1, unicode_t c2 = NOCHAR); |
824 | text_t compose (unicode_t c1, unicode_t c2 = NOCHAR); |
805 | int expand (unicode_t c, wchar_t *r); |
825 | template<typename T> int expand (unicode_t c, T *r); |
|
|
826 | int expand (unicode_t c) { return expand (c, (text_t *)0); } |
806 | compose_char *operator [](text_t c) |
827 | compose_char *operator [](text_t c) |
807 | { |
828 | { |
808 | return c >= COMPOSE_LO && c < COMPOSE_LO + v.size () |
829 | return c >= COMPOSE_LO && c < COMPOSE_LO + v.size () |
809 | ? &v[c - COMPOSE_LO] |
830 | ? &v[c - COMPOSE_LO] |
810 | : 0; |
831 | : 0; |
811 | } |
832 | } |
812 | }; |
833 | }; |
813 | |
834 | |
814 | extern class rxvt_composite_vec rxvt_composite; |
835 | extern class rxvt_composite_vec rxvt_composite; |
|
|
836 | #endif |
|
|
837 | |
|
|
838 | #if 0 |
|
|
839 | // expand the sequence into a static array |
|
|
840 | // works even without ENABLE_COMBINING |
|
|
841 | template<typename T, int max_size_ = 48> |
|
|
842 | struct rxvt_compose_expand_static |
|
|
843 | { |
|
|
844 | #if ENABLE_COMBINING |
|
|
845 | enum { max_size = max_size_ }; |
|
|
846 | |
|
|
847 | T chrs[max_size]; |
|
|
848 | |
|
|
849 | // expand sequence and return start ptr |
|
|
850 | // guarantees at least one output |
|
|
851 | // get the length with length () on that ptr |
|
|
852 | T *operator ()(unicode_t c) |
|
|
853 | { |
|
|
854 | T *cur = chrs + max_size; |
|
|
855 | |
|
|
856 | while (ecb_expect_false (IS_COMPOSE (c))) |
|
|
857 | if (ecb_expect_true (c - COMPOSE_LO < rxvt_composite.v.size ())) |
|
|
858 | { |
|
|
859 | compose_char *cc = &rxvt_composite.v [c - COMPOSE_LO]; |
|
|
860 | |
|
|
861 | if (cc->c2 != NOCHAR) |
|
|
862 | { |
|
|
863 | cur -= cur > chrs; *cur = cc->c2; |
|
|
864 | } |
|
|
865 | |
|
|
866 | c = cc->c1; |
|
|
867 | } |
|
|
868 | else |
|
|
869 | c = NOCHAR; |
|
|
870 | |
|
|
871 | cur -= cur > chrs; *cur = c; |
|
|
872 | |
|
|
873 | return cur; |
|
|
874 | } |
|
|
875 | |
|
|
876 | int length (T *first) |
|
|
877 | { |
|
|
878 | return chrs + max_size - first; |
|
|
879 | } |
|
|
880 | #else |
|
|
881 | T chr; |
|
|
882 | |
|
|
883 | T *operator ()(text_t c); |
|
|
884 | { |
|
|
885 | chr = c; |
|
|
886 | return &chr; |
|
|
887 | } |
|
|
888 | |
|
|
889 | int length (T *first) |
|
|
890 | { |
|
|
891 | return 1; |
|
|
892 | } |
|
|
893 | #endif |
|
|
894 | }; |
815 | #endif |
895 | #endif |
816 | |
896 | |
817 | /****************************************************************************/ |
897 | /****************************************************************************/ |
818 | |
898 | |
819 | #ifdef KEYSYM_RESOURCE |
899 | #ifdef KEYSYM_RESOURCE |
… | |
… | |
1028 | current_screen:1, /* primary or secondary */ |
1108 | current_screen:1, /* primary or secondary */ |
1029 | num_scr_allow:1, |
1109 | num_scr_allow:1, |
1030 | bypass_keystate:1, |
1110 | bypass_keystate:1, |
1031 | #if ENABLE_FRILLS |
1111 | #if ENABLE_FRILLS |
1032 | urgency_hint:1, |
1112 | urgency_hint:1, |
|
|
1113 | rewrap_always:1, |
|
|
1114 | rewrap_never:1, |
1033 | #endif |
1115 | #endif |
1034 | #if CURSOR_BLINK |
1116 | #if CURSOR_BLINK |
1035 | hidden_cursor:1, |
1117 | hidden_cursor:1, |
1036 | #endif |
1118 | #endif |
1037 | #if TEXT_BLINK |
1119 | #if TEXT_BLINK |
… | |
… | |
1115 | #endif |
1197 | #endif |
1116 | |
1198 | |
1117 | #if ENABLE_OVERLAY |
1199 | #if ENABLE_OVERLAY |
1118 | overlay_base ov; |
1200 | overlay_base ov; |
1119 | |
1201 | |
1120 | void scr_swap_overlay () NOTHROW; |
1202 | void scr_swap_overlay () noexcept; |
1121 | void scr_overlay_new (int x, int y, int w, int h) NOTHROW; |
1203 | void scr_overlay_new (int x, int y, int w, int h) noexcept; |
1122 | void scr_overlay_off () NOTHROW; |
1204 | void scr_overlay_off () noexcept; |
1123 | void scr_overlay_set (int x, int y, |
1205 | void scr_overlay_set (int x, int y, |
1124 | text_t text, |
1206 | text_t text, |
1125 | rend_t rend = OVERLAY_RSTYLE) NOTHROW; |
1207 | rend_t rend = OVERLAY_RSTYLE) noexcept; |
1126 | void scr_overlay_set (int x, int y, const char *s) NOTHROW; |
1208 | void scr_overlay_set (int x, int y, const char *s) noexcept; |
1127 | void scr_overlay_set (int x, int y, const wchar_t *s) NOTHROW; |
1209 | void scr_overlay_set (int x, int y, const wchar_t *s) noexcept; |
1128 | #endif |
1210 | #endif |
1129 | |
1211 | |
1130 | vector<void *> allocated; // free these memory blocks with free() |
1212 | vector<void *> allocated; // free these memory blocks with free() |
1131 | |
1213 | |
1132 | int parent_x, parent_y; // parent window position relative to root, only updated on demand |
1214 | int parent_x, parent_y; // parent window position relative to root, only updated on demand |
… | |
… | |
1173 | # endif |
1255 | # endif |
1174 | #endif |
1256 | #endif |
1175 | |
1257 | |
1176 | long vt_emask, vt_emask_perl, vt_emask_xim, vt_emask_mouse; |
1258 | long vt_emask, vt_emask_perl, vt_emask_xim, vt_emask_mouse; |
1177 | |
1259 | |
1178 | void vt_select_input () const NOTHROW |
1260 | void vt_select_input () const noexcept |
1179 | { |
1261 | { |
1180 | XSelectInput (dpy, vt, vt_emask | vt_emask_perl | vt_emask_xim | vt_emask_mouse); |
1262 | XSelectInput (dpy, vt, vt_emask | vt_emask_perl | vt_emask_xim | vt_emask_mouse); |
1181 | } |
1263 | } |
1182 | |
1264 | |
1183 | #if ENABLE_PERL |
1265 | #if ENABLE_PERL |
… | |
… | |
1247 | XPoint spot; // most recently sent spot position |
1329 | XPoint spot; // most recently sent spot position |
1248 | |
1330 | |
1249 | void im_destroy (); |
1331 | void im_destroy (); |
1250 | void im_cb (); im_watcher im_ev; |
1332 | void im_cb (); im_watcher im_ev; |
1251 | void im_set_size (XRectangle &size); |
1333 | void im_set_size (XRectangle &size); |
1252 | void im_set_position (XPoint &pos) NOTHROW; |
1334 | void im_set_position (XPoint &pos) noexcept; |
1253 | void im_set_color (unsigned long &fg, unsigned long &bg); |
1335 | void im_set_color (unsigned long &fg, unsigned long &bg); |
1254 | void im_set_preedit_area (XRectangle &preedit_rect, XRectangle &status_rect, const XRectangle &needed_rect); |
1336 | void im_set_preedit_area (XRectangle &preedit_rect, XRectangle &status_rect, const XRectangle &needed_rect); |
1255 | |
1337 | |
1256 | bool im_is_running (); |
1338 | bool im_is_running (); |
1257 | void im_send_spot (); |
1339 | void im_send_spot (); |
… | |
… | |
1261 | |
1343 | |
1262 | // command.C |
1344 | // command.C |
1263 | void key_press (XKeyEvent &ev); |
1345 | void key_press (XKeyEvent &ev); |
1264 | void key_release (XKeyEvent &ev); |
1346 | void key_release (XKeyEvent &ev); |
1265 | |
1347 | |
1266 | wchar_t next_char () NOTHROW; |
1348 | wchar_t next_char () noexcept; |
1267 | wchar_t cmd_getc () THROW ((class out_of_input)); |
1349 | wchar_t cmd_getc (); |
1268 | uint32_t next_octet () NOTHROW; |
1350 | uint32_t next_octet () noexcept; |
1269 | uint32_t cmd_get8 () THROW ((class out_of_input)); |
1351 | uint32_t cmd_get8 (); |
1270 | |
1352 | |
1271 | void cmd_parse (); |
1353 | void cmd_parse (); |
1272 | void mouse_report (XButtonEvent &ev); |
1354 | void mouse_report (XButtonEvent &ev); |
1273 | void button_press (XButtonEvent &ev); |
1355 | void button_press (XButtonEvent &ev); |
1274 | void button_release (XButtonEvent &ev); |
1356 | void button_release (XButtonEvent &ev); |
… | |
… | |
1288 | void process_nonprinting (unicode_t ch); |
1370 | void process_nonprinting (unicode_t ch); |
1289 | void process_escape_vt52 (unicode_t ch); |
1371 | void process_escape_vt52 (unicode_t ch); |
1290 | void process_escape_seq (); |
1372 | void process_escape_seq (); |
1291 | void process_csi_seq (); |
1373 | void process_csi_seq (); |
1292 | void process_window_ops (const int *args, unsigned int nargs); |
1374 | void process_window_ops (const int *args, unsigned int nargs); |
1293 | char *get_to_st (unicode_t &ends_how); |
1375 | char *get_to_st (string_term &st); |
1294 | void process_dcs_seq (); |
1376 | void process_dcs_seq (); |
1295 | void process_osc_seq (); |
1377 | void process_osc_seq (); |
1296 | void process_color_seq (int report, int color, const char *str, char resp); |
1378 | void process_color_seq (int report, int color, const char *str, string_term &st); |
1297 | void process_xterm_seq (int op, char *str, char resp); |
1379 | void process_xterm_seq (int op, char *str, string_term &st); |
1298 | unsigned int map_rgb24_color (unsigned int r, unsigned int g, unsigned int b, unsigned int a); |
1380 | unsigned int map_rgb24_color (unsigned int r, unsigned int g, unsigned int b, unsigned int a); |
1299 | int privcases (int mode, unsigned long bit); |
1381 | int privcases (int mode, unsigned long bit); |
1300 | void process_terminal_mode (int mode, int priv, unsigned int nargs, const int *arg); |
1382 | void process_terminal_mode (int mode, int priv, unsigned int nargs, const int *arg); |
1301 | void process_sgr_mode (unsigned int nargs, const int *arg); |
1383 | void process_sgr_mode (unsigned int nargs, const int *arg); |
1302 | void set_cursor_style (int style); |
1384 | void set_cursor_style (int style); |
… | |
… | |
1339 | void set_widthheight (unsigned int newwidth, unsigned int newheight); |
1421 | void set_widthheight (unsigned int newwidth, unsigned int newheight); |
1340 | void get_window_origin (int &x, int &y); |
1422 | void get_window_origin (int &x, int &y); |
1341 | |
1423 | |
1342 | // screen.C |
1424 | // screen.C |
1343 | |
1425 | |
1344 | bool option (uint8_t opt) const NOTHROW |
1426 | bool option (uint8_t opt) const noexcept |
1345 | { |
1427 | { |
1346 | return options[opt >> 3] & (1 << (opt & 7)); |
1428 | return options[opt >> 3] & (1 << (opt & 7)); |
1347 | } |
1429 | } |
1348 | |
1430 | |
1349 | void set_option (uint8_t opt, bool set = true) NOTHROW; |
1431 | void set_option (uint8_t opt, bool set = true) noexcept; |
1350 | |
1432 | |
1351 | int fgcolor_of (rend_t r) const NOTHROW |
1433 | int fgcolor_of (rend_t r) const noexcept |
1352 | { |
1434 | { |
1353 | int base = GET_BASEFG (r); |
1435 | int base = GET_BASEFG (r); |
1354 | #ifndef NO_BRIGHTCOLOR |
1436 | #ifndef NO_BRIGHTCOLOR |
1355 | if (r & RS_Bold |
1437 | if (r & RS_Bold |
1356 | # if ENABLE_STYLES |
1438 | # if ENABLE_STYLES |
… | |
… | |
1360 | base += minBrightCOLOR - minCOLOR; |
1442 | base += minBrightCOLOR - minCOLOR; |
1361 | #endif |
1443 | #endif |
1362 | return base; |
1444 | return base; |
1363 | } |
1445 | } |
1364 | |
1446 | |
1365 | int bgcolor_of (rend_t r) const NOTHROW |
1447 | int bgcolor_of (rend_t r) const noexcept |
1366 | { |
1448 | { |
1367 | int base = GET_BASEBG (r); |
1449 | int base = GET_BASEBG (r); |
1368 | #ifndef NO_BRIGHTCOLOR |
1450 | #ifndef NO_BRIGHTCOLOR |
1369 | if (r & RS_Blink |
1451 | if (r & RS_Blink |
1370 | # if ENABLE_STYLES |
1452 | # if ENABLE_STYLES |
… | |
… | |
1375 | #endif |
1457 | #endif |
1376 | return base; |
1458 | return base; |
1377 | } |
1459 | } |
1378 | |
1460 | |
1379 | // modifies first argument(!) |
1461 | // modifies first argument(!) |
1380 | void tt_paste (char *data, unsigned int len) NOTHROW; |
1462 | void tt_paste (char *data, unsigned int len) noexcept; |
1381 | void paste (char *data, unsigned int len) NOTHROW; |
1463 | void paste (char *data, unsigned int len) noexcept; |
1382 | void scr_alloc () NOTHROW; |
1464 | void scr_alloc () noexcept; |
1383 | void scr_blank_line (line_t &l, unsigned int col, unsigned int width, rend_t efs) const NOTHROW; |
1465 | void scr_blank_line (line_t &l, unsigned int col, unsigned int width, rend_t efs) const noexcept; |
1384 | void scr_blank_screen_mem (line_t &l, rend_t efs) const NOTHROW; |
1466 | void scr_blank_screen_mem (line_t &l, rend_t efs) const noexcept; |
1385 | void scr_kill_char (line_t &l, int col) const NOTHROW; |
1467 | void scr_kill_char (line_t &l, int col) const noexcept; |
1386 | void scr_set_char_rend (line_t &l, int col, rend_t rend); |
1468 | void scr_set_char_rend (line_t &l, int col, rend_t rend); |
1387 | int scr_scroll_text (int row1, int row2, int count) NOTHROW; |
1469 | int scr_scroll_text (int row1, int row2, int count) noexcept; |
1388 | void copy_line (line_t &dst, line_t &src); |
1470 | void copy_line (line_t &dst, line_t &src); |
1389 | void scr_reset (); |
1471 | void scr_reset (); |
1390 | void scr_release () NOTHROW; |
1472 | void scr_release () noexcept; |
1391 | void scr_clear (bool really = false) NOTHROW; |
1473 | void scr_clear (bool really = false) noexcept; |
1392 | void scr_refresh () NOTHROW; |
1474 | void scr_refresh () noexcept; |
1393 | bool scr_refresh_rend (rend_t mask, rend_t value) NOTHROW; |
1475 | bool scr_refresh_rend (rend_t mask, rend_t value) noexcept; |
1394 | void scr_erase_screen (int mode) NOTHROW; |
1476 | void scr_erase_screen (int mode) noexcept; |
1395 | #if ENABLE_FRILLS |
1477 | #if ENABLE_FRILLS |
1396 | void scr_erase_savelines () NOTHROW; |
1478 | void scr_erase_savelines () noexcept; |
1397 | void scr_backindex () NOTHROW; |
1479 | void scr_backindex () noexcept; |
1398 | void scr_forwardindex () NOTHROW; |
1480 | void scr_forwardindex () noexcept; |
1399 | #endif |
1481 | #endif |
1400 | void scr_touch (bool refresh) NOTHROW; |
1482 | void scr_touch (bool refresh) noexcept; |
1401 | void scr_expose (int x, int y, int width, int height, bool refresh) NOTHROW; |
1483 | void scr_expose (int x, int y, int width, int height, bool refresh) noexcept; |
1402 | void scr_recolor (bool refresh = true) NOTHROW; |
1484 | void scr_recolor (bool refresh = true) noexcept; |
1403 | void scr_remap_chars () NOTHROW; |
1485 | void scr_remap_chars () noexcept; |
1404 | void scr_remap_chars (line_t &l) NOTHROW; |
1486 | void scr_remap_chars (line_t &l) noexcept; |
1405 | |
1487 | |
1406 | enum cursor_mode { SAVE, RESTORE }; |
1488 | enum cursor_mode { SAVE, RESTORE }; |
1407 | |
1489 | |
1408 | void scr_poweron (); |
1490 | void scr_poweron (); |
1409 | void scr_soft_reset () NOTHROW; |
1491 | void scr_soft_reset () noexcept; |
1410 | void scr_cursor (cursor_mode mode) NOTHROW; |
1492 | void scr_cursor (cursor_mode mode) noexcept; |
1411 | void scr_do_wrap () NOTHROW; |
1493 | void scr_do_wrap () noexcept; |
1412 | void scr_swap_screen () NOTHROW; |
1494 | void scr_swap_screen () noexcept; |
1413 | void scr_change_screen (int scrn); |
1495 | void scr_change_screen (int scrn); |
1414 | void scr_color (unsigned int color, int fgbg) NOTHROW; |
1496 | void scr_color (unsigned int color, int fgbg) noexcept; |
1415 | void scr_rendition (int set, int style) NOTHROW; |
1497 | void scr_rendition (int set, int style) noexcept; |
1416 | void scr_add_lines (const wchar_t *str, int len, int minlines = 0) NOTHROW; |
1498 | void scr_add_lines (const wchar_t *str, int len, int minlines = 0) noexcept; |
1417 | void scr_backspace () NOTHROW; |
1499 | void scr_backspace () noexcept; |
1418 | void scr_tab (int count, bool ht = false) NOTHROW; |
1500 | void scr_tab (int count, bool ht = false) noexcept; |
1419 | void scr_gotorc (int row, int col, int relative) NOTHROW; |
1501 | void scr_gotorc (int row, int col, int relative) noexcept; |
1420 | void scr_index (enum page_dirn direction) NOTHROW; |
1502 | void scr_index (enum page_dirn direction) noexcept; |
1421 | void scr_erase_line (int mode) NOTHROW; |
1503 | void scr_erase_line (int mode) noexcept; |
1422 | void scr_E () NOTHROW; |
1504 | void scr_E () noexcept; |
1423 | void scr_insdel_lines (int count, int insdel) NOTHROW; |
1505 | void scr_insdel_lines (int count, int insdel) noexcept; |
1424 | void scr_insdel_chars (int count, int insdel) NOTHROW; |
1506 | void scr_insdel_chars (int count, int insdel) noexcept; |
1425 | void scr_scroll_region (int top, int bot) NOTHROW; |
1507 | void scr_scroll_region (int top, int bot) noexcept; |
1426 | void scr_cursor_visible (int mode) NOTHROW; |
1508 | void scr_cursor_visible (int mode) noexcept; |
1427 | void scr_autowrap (int mode) NOTHROW; |
1509 | void scr_autowrap (int mode) noexcept; |
1428 | void scr_relative_origin (int mode) NOTHROW; |
1510 | void scr_relative_origin (int mode) noexcept; |
1429 | void scr_insert_mode (int mode) NOTHROW; |
1511 | void scr_insert_mode (int mode) noexcept; |
1430 | void scr_set_tab (int mode) NOTHROW; |
1512 | void scr_set_tab (int mode) noexcept; |
1431 | void scr_rvideo_mode (bool on) NOTHROW; |
1513 | void scr_rvideo_mode (bool on) noexcept; |
1432 | void scr_report_position () NOTHROW; |
1514 | void scr_report_position () noexcept; |
1433 | void set_font_style () NOTHROW; |
1515 | void set_font_style () noexcept; |
1434 | void scr_charset_choose (int set) NOTHROW; |
1516 | void scr_charset_choose (int set) noexcept; |
1435 | void scr_charset_set (int set, unsigned int ch) NOTHROW; |
1517 | void scr_charset_set (int set, unsigned int ch) noexcept; |
1436 | void scr_move_to (int y, int len) NOTHROW; |
1518 | void scr_move_to (int y, int len) noexcept; |
1437 | bool scr_page (int nlines) NOTHROW; |
1519 | bool scr_page (int nlines) noexcept; |
1438 | bool scr_page (enum page_dirn direction, int nlines) NOTHROW |
1520 | bool scr_page (enum page_dirn direction, int nlines) noexcept |
1439 | { |
1521 | { |
1440 | return scr_page (direction * nlines); |
1522 | return scr_page (direction * nlines); |
1441 | } |
1523 | } |
1442 | bool scr_changeview (int new_view_start) NOTHROW; |
1524 | bool scr_changeview (int new_view_start) noexcept; |
1443 | void scr_bell () NOTHROW; |
1525 | void scr_bell () noexcept; |
1444 | void scr_printscreen (int fullhist) NOTHROW; |
1526 | void scr_printscreen (int fullhist) noexcept; |
1445 | void scr_xor_rect (int beg_row, int beg_col, int end_row, int end_col, rend_t rstyle1, rend_t rstyle2) NOTHROW; |
1527 | void scr_xor_rect (int beg_row, int beg_col, int end_row, int end_col, rend_t rstyle1, rend_t rstyle2) noexcept; |
1446 | void scr_xor_span (int beg_row, int beg_col, int end_row, int end_col, rend_t rstyle) NOTHROW; |
1528 | void scr_xor_span (int beg_row, int beg_col, int end_row, int end_col, rend_t rstyle) noexcept; |
1447 | void scr_reverse_selection () NOTHROW; |
1529 | void scr_reverse_selection () noexcept; |
1448 | void scr_dump (int fd) NOTHROW; |
1530 | void scr_dump (int fd) noexcept; |
1449 | |
1531 | |
1450 | void selection_check (int check_more) NOTHROW; |
1532 | void selection_check (int check_more) noexcept; |
1451 | void selection_changed () NOTHROW; /* sets want_refresh, corrects coordinates */ |
1533 | void selection_changed () noexcept; /* sets want_refresh, corrects coordinates */ |
1452 | void selection_request (Time tm, int selnum = Sel_Primary) NOTHROW; |
1534 | void selection_request (Time tm, int selnum = Sel_Primary) noexcept; |
1453 | void selection_clear (bool clipboard = false) NOTHROW; |
1535 | void selection_clear (bool clipboard = false) noexcept; |
1454 | void selection_make (Time tm); |
1536 | void selection_make (Time tm); |
1455 | bool selection_grab (Time tm, bool clipboard = false) NOTHROW; |
1537 | bool selection_grab (Time tm, bool clipboard = false) noexcept; |
1456 | void selection_start_colrow (int col, int row) NOTHROW; |
1538 | void selection_start_colrow (int col, int row) noexcept; |
1457 | void selection_delimit_word (enum page_dirn dirn, const row_col_t *mark, row_col_t *ret) NOTHROW; |
1539 | void selection_delimit_word (enum page_dirn dirn, const row_col_t *mark, row_col_t *ret) noexcept; |
1458 | void selection_extend_colrow (int32_t col, int32_t row, int button3, int buttonpress, int clickchange) NOTHROW; |
1540 | void selection_extend_colrow (int32_t col, int32_t row, int button3, int buttonpress, int clickchange) noexcept; |
1459 | void selection_remove_trailing_spaces () NOTHROW; |
1541 | void selection_remove_trailing_spaces () noexcept; |
1460 | void selection_send (const XSelectionRequestEvent &rq) NOTHROW; |
1542 | void selection_send (const XSelectionRequestEvent &rq) noexcept; |
1461 | void selection_click (int clicks, int x, int y) NOTHROW; |
1543 | void selection_click (int clicks, int x, int y) noexcept; |
1462 | void selection_extend (int x, int y, int flag) NOTHROW; |
1544 | void selection_extend (int x, int y, int flag) noexcept; |
1463 | void selection_rotate (int x, int y) NOTHROW; |
1545 | void selection_rotate (int x, int y) noexcept; |
1464 | |
1546 | |
1465 | // xdefaults.C |
1547 | // xdefaults.C |
1466 | void rxvt_usage (int type); |
1548 | void rxvt_usage (int type); |
1467 | const char **get_options (int argc, const char *const *argv); |
1549 | const char **get_options (int argc, const char *const *argv); |
1468 | int parse_keysym (const char *str, unsigned int &state); |
1550 | int parse_keysym (const char *str, unsigned int &state); |