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

Comparing rxvt-unicode/src/rxvt.h (file contents):
Revision 1.553 by root, Tue Jun 25 03:35:01 2019 UTC vs.
Revision 1.569 by sf-exg, Sun Feb 19 08:48:42 2023 UTC

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
31extern "C" { 33extern "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
128class rxvt_failure_exception { }; 129class rxvt_failure_exception : public std::exception
130{
131public:
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
131class out_of_input { }; 140class 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)
140extern bool rxvt_set_locale (const char *locale) NOTHROW; 149extern bool rxvt_set_locale (const char *locale) noexcept;
141extern void rxvt_push_locale (const char *locale) NOTHROW; 150extern void rxvt_push_locale (const char *locale) noexcept;
142extern void rxvt_pop_locale () NOTHROW; 151extern void rxvt_pop_locale () noexcept;
143void rxvt_init (); 152void rxvt_init ();
144 153
145// misc.C 154// misc.C
146char * rxvt_wcstombs (const wchar_t *str, int len = -1); 155char * rxvt_wcstombs (const wchar_t *str, int len = -1);
147wchar_t * rxvt_mbstowcs (const char *str, int len = -1); 156wchar_t * rxvt_mbstowcs (const char *str, int len = -1);
148char * rxvt_wcstoutf8 (const wchar_t *str, int len = -1); 157char * rxvt_wcstoutf8 (const wchar_t *str, int len = -1);
149wchar_t * rxvt_utf8towcs (const char *str, int len = -1); 158wchar_t * rxvt_utf8towcs (const char *str, int len = -1);
150 159
151const char * rxvt_basename (const char *str) NOTHROW; 160const char * rxvt_basename (const char *str) noexcept;
152void rxvt_vlog (const char *fmt, va_list arg_ptr) NOTHROW; 161void rxvt_vlog (const char *fmt, va_list arg_ptr) noexcept;
153void rxvt_log (const char *fmt,...) NOTHROW; 162void rxvt_log (const char *fmt,...) noexcept;
154void rxvt_warn (const char *fmt,...) NOTHROW; 163void rxvt_warn (const char *fmt,...) noexcept;
155ecb_noreturn ecb_cold 164ecb_noreturn ecb_cold
156void rxvt_fatal (const char *fmt, ...) THROW ((class rxvt_failure_exception)); 165void rxvt_fatal (const char *fmt, ...);
157ecb_noreturn ecb_cold 166ecb_noreturn ecb_cold
158void rxvt_exit_failure () THROW ((class rxvt_failure_exception)); 167void rxvt_exit_failure ();
159 168
160void * rxvt_malloc (size_t size); 169void * rxvt_malloc (size_t size);
161void * rxvt_calloc (size_t number, size_t size); 170void * rxvt_calloc (size_t number, size_t size);
162void * rxvt_realloc (void *ptr, size_t size); 171void * rxvt_realloc (void *ptr, size_t size);
163 172
164char * rxvt_strtrim (char *str) NOTHROW; 173char * rxvt_strtrim (char *str) noexcept;
165char ** rxvt_strsplit (char delim, const char *str) NOTHROW; 174char ** rxvt_strsplit (char delim, const char *str) noexcept;
166 175
167static inline void 176static inline void
168rxvt_free_strsplit (char **ptr) NOTHROW 177rxvt_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
403struct 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.
791struct compose_char 808struct 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
800class rxvt_composite_vec 820struct rxvt_composite_vec
801{ 821{
802 vector<compose_char> v; 822 vector<compose_char> v;
803public: 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
814extern class rxvt_composite_vec rxvt_composite; 835extern 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
841template<typename T, int max_size_ = 48>
842struct 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);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines