--- rxvt-unicode/src/screen.C 2014/12/13 09:49:48 1.452 +++ rxvt-unicode/src/screen.C 2021/07/03 04:04:13 1.463 @@ -4,6 +4,7 @@ * * Copyright (c) 1997-2001 Geoff Wing * Copyright (c) 2003-2007 Marc Lehmann + * Copyright (c) 2015 Emanuele Giaquinta * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -96,7 +97,7 @@ /* Fill part/all of a line with blanks. */ void -rxvt_term::scr_blank_line (line_t &l, unsigned int col, unsigned int width, rend_t efs) const NOTHROW +rxvt_term::scr_blank_line (line_t &l, unsigned int col, unsigned int width, rend_t efs) const noexcept { if (!l.valid ()) { @@ -108,7 +109,7 @@ l.touch (); efs &= ~RS_baseattrMask; // remove italic etc. fontstyles - efs = SET_FONT (efs, FONTSET (efs)->find_font (' ')); + efs = SET_FONT (efs, FONTSET (efs)->find_space_font ()); text_t *et = l.t + col; rend_t *er = l.r + col; @@ -123,7 +124,7 @@ /* ------------------------------------------------------------------------- */ /* Fill a full line with blanks - make sure it is allocated first */ void -rxvt_term::scr_blank_screen_mem (line_t &l, rend_t efs) const NOTHROW +rxvt_term::scr_blank_screen_mem (line_t &l, rend_t efs) const noexcept { scr_blank_line (l, 0, ncol, efs); @@ -133,14 +134,14 @@ // nuke a single wide character at the given column void -rxvt_term::scr_kill_char (line_t &l, int col) const NOTHROW +rxvt_term::scr_kill_char (line_t &l, int col) const noexcept { // find begin while (col > 0 && l.t[col] == NOCHAR) col--; rend_t rend = l.r[col] & ~RS_baseattrMask; - rend = SET_FONT (rend, FONTSET (rend)->find_font (' ')); + rend = SET_FONT (rend, FONTSET (rend)->find_space_font ()); l.touch (); @@ -167,7 +168,7 @@ * ------------------------------------------------------------------------- */ void -rxvt_term::scr_alloc () NOTHROW +rxvt_term::scr_alloc () noexcept { int tsize = sizeof (text_t) * ncol; int rsize = sizeof (rend_t) * ncol; @@ -305,7 +306,7 @@ int pend = MOD (term_start + top_row , prev_total_rows); int q = total_rows; // rewrapped row - if (top_row) + if ((rewrap_always || top_row) && !rewrap_never) { // Re-wrap lines. This is rather ugly, possibly because I am too dumb // to come up with a lean and mean algorithm. @@ -442,7 +443,7 @@ } void ecb_cold -rxvt_term::scr_release () NOTHROW +rxvt_term::scr_release () noexcept { chunk_free (chunk, chunk_size); chunk = 0; @@ -471,7 +472,7 @@ } void ecb_cold -rxvt_term::scr_soft_reset () NOTHROW +rxvt_term::scr_soft_reset () noexcept { /* only affects modes, nothing drastic such as clearing the screen */ #if ENABLE_OVERLAY @@ -495,7 +496,7 @@ * XTERM_SEQ: Restore cursor: ESC 8 */ void -rxvt_term::scr_cursor (cursor_mode mode) NOTHROW +rxvt_term::scr_cursor (cursor_mode mode) noexcept { screen_t *s; @@ -536,7 +537,7 @@ } void -rxvt_term::scr_swap_screen () NOTHROW +rxvt_term::scr_swap_screen () noexcept { if (!option (Opt_secondaryScreen)) return; @@ -594,7 +595,7 @@ // clear WrapNext indicator, solidifying position on next line void -rxvt_term::scr_do_wrap () NOTHROW +rxvt_term::scr_do_wrap () noexcept { if (!(screen.flags & Screen_WrapNext)) return; @@ -614,9 +615,9 @@ * Change the colour for following text */ void -rxvt_term::scr_color (unsigned int color, int fgbg) NOTHROW +rxvt_term::scr_color (unsigned int color, int fgbg) noexcept { - if (!IN_RANGE_INC (color, minCOLOR, maxTermCOLOR)) + if (!IN_RANGE_INC (color, minCOLOR, maxTermCOLOR24)) color = fgbg; if (fgbg == Color_fg) @@ -630,7 +631,7 @@ * Change the rendition style for following text */ void -rxvt_term::scr_rendition (int set, int style) NOTHROW +rxvt_term::scr_rendition (int set, int style) noexcept { if (set) rstyle |= style; @@ -647,7 +648,7 @@ * count negative ==> scroll down */ int ecb_hot -rxvt_term::scr_scroll_text (int row1, int row2, int count) NOTHROW +rxvt_term::scr_scroll_text (int row1, int row2, int count) noexcept { if (count == 0 || (row1 > row2)) return 0; @@ -791,7 +792,7 @@ * Add text given in of length to screen struct */ void ecb_hot -rxvt_term::scr_add_lines (const wchar_t *str, int len, int minlines) NOTHROW +rxvt_term::scr_add_lines (const wchar_t *str, int len, int minlines) noexcept { if (len <= 0) /* sanity */ return; @@ -1013,8 +1014,8 @@ && ROW(screen.cur.row - 1).is_longer ()) { linep = &ROW(screen.cur.row - 1); - tp = line->t + ncol - 1; - rp = line->r + ncol - 1; + tp = linep->t + ncol - 1; + rp = linep->r + ncol - 1; } else continue; @@ -1047,7 +1048,7 @@ * XTERM_SEQ: CTRL-H */ void -rxvt_term::scr_backspace () NOTHROW +rxvt_term::scr_backspace () noexcept { if (screen.cur.col == 0) { @@ -1074,7 +1075,7 @@ * XTERM_SEQ: CTRL-I */ void -rxvt_term::scr_tab (int count, bool ht) NOTHROW +rxvt_term::scr_tab (int count, bool ht) noexcept { int i, x; @@ -1151,7 +1152,7 @@ */ #if !ENABLE_MINIMAL void ecb_cold -rxvt_term::scr_backindex () NOTHROW +rxvt_term::scr_backindex () noexcept { if (screen.cur.col > 0) scr_gotorc (0, -1, R_RELATIVE | C_RELATIVE); @@ -1168,7 +1169,7 @@ */ #if !ENABLE_MINIMAL void ecb_cold -rxvt_term::scr_forwardindex () NOTHROW +rxvt_term::scr_forwardindex () noexcept { if (screen.cur.col < ncol - 1) scr_gotorc (0, 1, R_RELATIVE | C_RELATIVE); @@ -1191,7 +1192,7 @@ * Goto Row/Column */ void -rxvt_term::scr_gotorc (int row, int col, int relative) NOTHROW +rxvt_term::scr_gotorc (int row, int col, int relative) noexcept { want_refresh = 1; ZERO_SCROLLBACK (); @@ -1240,7 +1241,7 @@ * direction should be UP or DN */ void -rxvt_term::scr_index (enum page_dirn direction) NOTHROW +rxvt_term::scr_index (enum page_dirn direction) noexcept { want_refresh = 1; ZERO_SCROLLBACK (); @@ -1266,7 +1267,7 @@ * extension: clear to right unless wrapped: ESC [ 3 K */ void -rxvt_term::scr_erase_line (int mode) NOTHROW +rxvt_term::scr_erase_line (int mode) noexcept { unsigned int col, num; @@ -1330,7 +1331,7 @@ * XTERM_SEQ: Clear whole screen : ESC [ 2 J */ void -rxvt_term::scr_erase_screen (int mode) NOTHROW +rxvt_term::scr_erase_screen (int mode) noexcept { int num; int32_t row; @@ -1410,7 +1411,7 @@ #if !ENABLE_MINIMAL void -rxvt_term::scr_erase_savelines () NOTHROW +rxvt_term::scr_erase_savelines () noexcept { want_refresh = 1; ZERO_SCROLLBACK (); @@ -1425,7 +1426,7 @@ * XTERM_SEQ: Screen Alignment Test: ESC # 8 */ void ecb_cold -rxvt_term::scr_E () NOTHROW +rxvt_term::scr_E () noexcept { rend_t fs; @@ -1460,7 +1461,7 @@ * Insert/Delete lines */ void -rxvt_term::scr_insdel_lines (int count, int insdel) NOTHROW +rxvt_term::scr_insdel_lines (int count, int insdel) noexcept { int end; @@ -1490,7 +1491,7 @@ * Insert/Delete characters from the current position */ void -rxvt_term::scr_insdel_chars (int count, int insdel) NOTHROW +rxvt_term::scr_insdel_chars (int count, int insdel) noexcept { want_refresh = 1; ZERO_SCROLLBACK (); @@ -1599,7 +1600,7 @@ * XTERM_SEQ: Set region - inclusive: ESC [ ; r */ void ecb_cold -rxvt_term::scr_scroll_region (int top, int bot) NOTHROW +rxvt_term::scr_scroll_region (int top, int bot) noexcept { max_it (top, 0); min_it (bot, nrow - 1); @@ -1619,7 +1620,7 @@ * XTERM_SEQ: Make cursor invisible: ESC [ ? 25 l */ void ecb_cold -rxvt_term::scr_cursor_visible (int mode) NOTHROW +rxvt_term::scr_cursor_visible (int mode) noexcept { want_refresh = 1; @@ -1636,7 +1637,7 @@ * XTERM_SEQ: Unset Wraparound: ESC [ ? 7 l */ void ecb_cold -rxvt_term::scr_autowrap (int mode) NOTHROW +rxvt_term::scr_autowrap (int mode) noexcept { if (mode) screen.flags |= Screen_Autowrap; @@ -1655,7 +1656,7 @@ * XTERM_SEQ: Set Relative: ESC [ ? 6 l */ void ecb_cold -rxvt_term::scr_relative_origin (int mode) NOTHROW +rxvt_term::scr_relative_origin (int mode) noexcept { if (mode) screen.flags |= Screen_Relative; @@ -1672,7 +1673,7 @@ * XTERM_SEQ: Set Replace mode: ESC [ ? 4 l */ void ecb_cold -rxvt_term::scr_insert_mode (int mode) NOTHROW +rxvt_term::scr_insert_mode (int mode) noexcept { if (mode) screen.flags |= Screen_Insert; @@ -1688,7 +1689,7 @@ * XTERM_SEQ: Clear all tabs : ESC [ 3 g */ void ecb_cold -rxvt_term::scr_set_tab (int mode) NOTHROW +rxvt_term::scr_set_tab (int mode) noexcept { if (mode < 0) memset (tabs, 0, ncol); @@ -1703,7 +1704,7 @@ * XTERM_SEQ: Normal video : ESC [ ? 5 l */ void -rxvt_term::scr_rvideo_mode (bool on) NOTHROW +rxvt_term::scr_rvideo_mode (bool on) noexcept { rvideo_mode = on; @@ -1715,6 +1716,14 @@ { rvideo_state = on; +#if OFF_FOCUS_FADING + if (rs[Rs_fade]) + { + ::swap (pix_colors_focused[Color_fg], pix_colors_focused[Color_bg]); + ::swap (pix_colors_unfocused[Color_fg], pix_colors_unfocused[Color_bg]); + } + else +#endif ::swap (pix_colors[Color_fg], pix_colors[Color_bg]); #ifdef HAVE_IMG if (bg_img == 0) @@ -1737,7 +1746,7 @@ * XTERM_SEQ: Report position: ESC [ 6 n */ void ecb_cold -rxvt_term::scr_report_position () NOTHROW +rxvt_term::scr_report_position () noexcept { tt_printf ("\033[%d;%dR", screen.cur.row + 1, screen.cur.col + 1); } @@ -1750,7 +1759,7 @@ * Set font style */ void ecb_cold -rxvt_term::set_font_style () NOTHROW +rxvt_term::set_font_style () noexcept { #if 0 switch (charsets [screen.charset]) @@ -1782,7 +1791,7 @@ * XTERM_SEQ: Invoke G3 character set: ESC O */ void ecb_cold -rxvt_term::scr_charset_choose (int set) NOTHROW +rxvt_term::scr_charset_choose (int set) noexcept { screen.charset = set; set_font_style (); @@ -1798,7 +1807,7 @@ * See set_font_style for possible values for */ void -rxvt_term::scr_charset_set (int set, unsigned int ch) NOTHROW +rxvt_term::scr_charset_set (int set, unsigned int ch) noexcept { charsets[set] = (unsigned char)ch; set_font_style (); @@ -1813,7 +1822,7 @@ * refresh matching text. */ bool ecb_cold -rxvt_term::scr_refresh_rend (rend_t mask, rend_t value) NOTHROW +rxvt_term::scr_refresh_rend (rend_t mask, rend_t value) noexcept { bool found = false; @@ -1842,7 +1851,7 @@ }; void ecb_hot -rxvt_term::scr_expose (int x, int y, int ewidth, int eheight, bool refresh) NOTHROW +rxvt_term::scr_expose (int x, int y, int ewidth, int eheight, bool refresh) noexcept { int i; row_col_t rc[RC_COUNT]; @@ -1886,7 +1895,7 @@ * Refresh the entire screen */ void -rxvt_term::scr_touch (bool refresh) NOTHROW +rxvt_term::scr_touch (bool refresh) noexcept { scr_expose (0, 0, vt_width, vt_height, refresh); } @@ -1897,7 +1906,7 @@ * the top of the screen */ void -rxvt_term::scr_move_to (int y, int len) NOTHROW +rxvt_term::scr_move_to (int y, int len) noexcept { // lerp (y, 0, len, top_row, nrow - 1) scr_changeview (top_row + (nrow - 1 - top_row) * y / len); @@ -1909,13 +1918,13 @@ * direction should be UP or DN */ bool -rxvt_term::scr_page (int nlines) NOTHROW +rxvt_term::scr_page (int nlines) noexcept { return scr_changeview (view_start - nlines); } bool -rxvt_term::scr_changeview (int new_view_start) NOTHROW +rxvt_term::scr_changeview (int new_view_start) noexcept { clamp_it (new_view_start, top_row, 0); @@ -1943,7 +1952,7 @@ /* ------------------------------------------------------------------------- */ void -rxvt_term::scr_bell () NOTHROW +rxvt_term::scr_bell () noexcept { #ifndef NO_BELL @@ -1975,7 +1984,7 @@ /* ------------------------------------------------------------------------- */ void ecb_cold -rxvt_term::scr_printscreen (int fullhist) NOTHROW +rxvt_term::scr_printscreen (int fullhist) noexcept { #ifdef PRINTPIPE int nrows, row_start; @@ -2034,7 +2043,7 @@ * screen.text/screen.rend contain what the screen will change to. */ void ecb_hot -rxvt_term::scr_refresh () NOTHROW +rxvt_term::scr_refresh () noexcept { int16_t col, row, /* column/row we're processing */ ocrow; /* old cursor row */ @@ -2120,18 +2129,13 @@ ccol2 = Color_bg; #endif - if (focus && cursor_type != 2) + if (focus && cursor_type == 0) { rend_t rend = cur_rend; - if (cursor_type == 1) - rend ^= RS_Uline; - else - { - rend ^= RS_RVid; - rend = SET_FGCOLOR (rend, ccol1); - rend = SET_BGCOLOR (rend, ccol2); - } + rend ^= RS_RVid; + rend = SET_FGCOLOR (rend, ccol1); + rend = SET_BGCOLOR (rend, ccol2); scr_set_char_rend (ROW(screen.cur.row), cur_col, rend); } @@ -2143,9 +2147,9 @@ // save the current cursor coordinates if the cursor is visible // and either the window is unfocused or the cursor style is - // vertical bar, so as to clear the outline cursor in the next - // refresh if the cursor moves or becomes invisible - if (showcursor && (!focus || cursor_type == 2) && screen.cur.row - view_start < nrow) + // underline or vertical bar, so as to clear the outline cursor in + // the next refresh if the cursor moves or becomes invisible + if (showcursor && (!focus || cursor_type != 0) && screen.cur.row - view_start < nrow) { oldcursor.row = screen.cur.row - view_start; oldcursor.col = screen.cur.col; @@ -2449,16 +2453,23 @@ { if (focus) { - if (cursor_type != 2) + if (cursor_type == 0) scr_set_char_rend (ROW(screen.cur.row), cur_col, cur_rend); else if (oldcursor.row >= 0) { XSetForeground (dpy, gc, pix_colors[ccol1]); - XFillRectangle (dpy, vt, gc, - Col2Pixel (cur_col), - Row2Pixel (oldcursor.row), - 1, - Height2Pixel (1)); + if (cursor_type == 1) + XFillRectangle (dpy, vt, gc, + Col2Pixel (cur_col), + Row2Pixel (oldcursor.row + 1) - 2, + Width2Pixel (1), + 2); + else + XFillRectangle (dpy, vt, gc, + Col2Pixel (cur_col), + Row2Pixel (oldcursor.row), + 2, + Height2Pixel (1)); } } else if (oldcursor.row >= 0) @@ -2489,7 +2500,7 @@ } void ecb_cold -rxvt_term::scr_remap_chars (line_t &l) NOTHROW +rxvt_term::scr_remap_chars (line_t &l) noexcept { if (!l.valid ()) return; @@ -2501,7 +2512,7 @@ } void ecb_cold -rxvt_term::scr_remap_chars () NOTHROW +rxvt_term::scr_remap_chars () noexcept { for (int i = total_rows; i--; ) scr_remap_chars (row_buf [i]); @@ -2514,7 +2525,7 @@ } void ecb_cold -rxvt_term::scr_recolour (bool refresh) NOTHROW +rxvt_term::scr_recolor (bool refresh) noexcept { bool transparent = false; @@ -2565,7 +2576,7 @@ /* ------------------------------------------------------------------------- */ void -rxvt_term::scr_clear (bool really) NOTHROW +rxvt_term::scr_clear (bool really) noexcept { if (!mapped) return; @@ -2578,7 +2589,7 @@ } void -rxvt_term::scr_xor_rect (int beg_row, int beg_col, int end_row, int end_col, rend_t rstyle1, rend_t rstyle2) NOTHROW +rxvt_term::scr_xor_rect (int beg_row, int beg_col, int end_row, int end_col, rend_t rstyle1, rend_t rstyle2) noexcept { int view_end = view_start + nrow; int row, col; @@ -2600,7 +2611,7 @@ } void -rxvt_term::scr_xor_span (int beg_row, int beg_col, int end_row, int end_col, rend_t rstyle) NOTHROW +rxvt_term::scr_xor_span (int beg_row, int beg_col, int end_row, int end_col, rend_t rstyle) noexcept { int view_end = view_start + nrow; int row, col; @@ -2627,7 +2638,7 @@ /* ------------------------------------------------------------------------- */ void ecb_hot -rxvt_term::scr_reverse_selection () NOTHROW +rxvt_term::scr_reverse_selection () noexcept { if (selection.op && current_screen == selection.screen @@ -2653,7 +2664,7 @@ */ #if 0 void -rxvt_term::scr_dump (int fd) NOTHROW +rxvt_term::scr_dump (int fd) noexcept { // if this method is needed, it can be implemented by factoring the // relevant code in scr_printscreen @@ -2664,7 +2675,7 @@ * CHARACTER SELECTION * * ------------------------------------------------------------------------- */ void -rxvt_term::selection_check (int check_more) NOTHROW +rxvt_term::selection_check (int check_more) noexcept { if (!selection.op) return; @@ -2680,7 +2691,7 @@ } void -rxvt_term::selection_changed () NOTHROW +rxvt_term::selection_changed () noexcept { line_t &r1 = ROW (selection.beg.row); while (selection.beg.col < r1.l && r1.t [selection.beg.col] == NOCHAR) @@ -2698,24 +2709,28 @@ * Paste a selection direct to the command fd */ void -rxvt_term::tt_paste (char *data, unsigned int len) NOTHROW +rxvt_term::tt_paste (char *data, unsigned int len) noexcept { /* convert normal newline chars into common keyboard Return key sequence */ for (unsigned int i = 0; i < len; i++) if (data[i] == C0_LF) data[i] = C0_CR; - if (priv_modes & PrivMode_BracketPaste) + #if ENABLE_FRILLS + if ((priv_modes & PrivMode_BracketPaste) && !option (Opt_disablePasteBrackets)) tt_printf ("\x1b[200~"); + #endif tt_write (data, len); - if (priv_modes & PrivMode_BracketPaste) + #if ENABLE_FRILLS + if ((priv_modes & PrivMode_BracketPaste) && !option (Opt_disablePasteBrackets)) tt_printf ("\x1b[201~"); + #endif } void -rxvt_term::paste (char *data, unsigned int len) NOTHROW +rxvt_term::paste (char *data, unsigned int len) noexcept { if (HOOK_INVOKE ((this, HOOK_TT_PASTE, DT_STR_LEN, data, len, DT_END))) return; @@ -2731,7 +2746,7 @@ * EXT: button 2 release */ void -rxvt_term::selection_request (Time tm, int selnum) NOTHROW +rxvt_term::selection_request (Time tm, int selnum) noexcept { if (!selection_req) { @@ -2746,7 +2761,7 @@ * EXT: SelectionClear */ void -rxvt_term::selection_clear (bool clipboard) NOTHROW +rxvt_term::selection_clear (bool clipboard) noexcept { if (!clipboard) { @@ -2841,7 +2856,7 @@ #if ENABLE_COMBINING else if (IS_COMPOSE (*t)) { - int len = rxvt_composite.expand (*t, 0); + int len = rxvt_composite.expand (*t); extra -= (len - 1); @@ -2898,7 +2913,7 @@ } bool -rxvt_term::selection_grab (Time tm, bool clipboard) NOTHROW +rxvt_term::selection_grab (Time tm, bool clipboard) noexcept { Atom sel; @@ -2942,7 +2957,7 @@ * EXT: button 1 press */ void ecb_cold -rxvt_term::selection_click (int clicks, int x, int y) NOTHROW +rxvt_term::selection_click (int clicks, int x, int y) noexcept { clicks = ((clicks - 1) % 3) + 1; selection.clicks = clicks; /* save clicks so extend will work */ @@ -2971,7 +2986,7 @@ * Mark a selection at the specified col/row */ void ecb_cold -rxvt_term::selection_start_colrow (int col, int row) NOTHROW +rxvt_term::selection_start_colrow (int col, int row) noexcept { want_refresh = 1; @@ -3008,7 +3023,7 @@ #define DELIMIT_REND(x) 1 void ecb_cold -rxvt_term::selection_delimit_word (enum page_dirn dirn, const row_col_t *mark, row_col_t *ret) NOTHROW +rxvt_term::selection_delimit_word (enum page_dirn dirn, const row_col_t *mark, row_col_t *ret) noexcept { int col, row, dirnadd, tcol, trow, w1, w2; row_col_t bound; @@ -3092,7 +3107,7 @@ * flag == 2 ==> button 3 motion */ void ecb_cold -rxvt_term::selection_extend (int x, int y, int flag) NOTHROW +rxvt_term::selection_extend (int x, int y, int flag) noexcept { int col = clamp (Pixel2Col (x), 0, ncol); int row = clamp (Pixel2Row (y), 0, nrow - 1); @@ -3128,7 +3143,7 @@ * Extend the selection to the specified col/row */ void ecb_cold -rxvt_term::selection_extend_colrow (int32_t col, int32_t row, int button3, int buttonpress, int clickchange) NOTHROW +rxvt_term::selection_extend_colrow (int32_t col, int32_t row, int button3, int buttonpress, int clickchange) noexcept { row_col_t pos; enum { @@ -3329,7 +3344,7 @@ #if !ENABLE_MINIMAL void ecb_cold -rxvt_term::selection_remove_trailing_spaces () NOTHROW +rxvt_term::selection_remove_trailing_spaces () noexcept { int32_t end_col, end_row; text_t *stp; @@ -3377,7 +3392,7 @@ * EXT: button 3 double click */ void ecb_cold -rxvt_term::selection_rotate (int x, int y) NOTHROW +rxvt_term::selection_rotate (int x, int y) noexcept { selection.clicks = selection.clicks % 3 + 1; selection_extend_colrow (Pixel2Col (x), Pixel2Row (y), 1, 0, 1); @@ -3389,7 +3404,7 @@ * EXT: SelectionRequest */ void ecb_cold -rxvt_term::selection_send (const XSelectionRequestEvent &rq) NOTHROW +rxvt_term::selection_send (const XSelectionRequestEvent &rq) noexcept { Atom property = rq.property == None ? rq.target : rq.property; XSelectionEvent ev; @@ -3491,7 +3506,7 @@ } else { - cl = L""; + cl = (wchar_t *)L""; selectlen = 0; } @@ -3533,7 +3548,7 @@ /* ------------------------------------------------------------------------- */ #if USE_XIM void ecb_cold -rxvt_term::im_set_position (XPoint &pos) NOTHROW +rxvt_term::im_set_position (XPoint &pos) noexcept { XWindowAttributes xwa; @@ -3546,7 +3561,7 @@ #if ENABLE_OVERLAY void -rxvt_term::scr_overlay_new (int x, int y, int w, int h) NOTHROW +rxvt_term::scr_overlay_new (int x, int y, int w, int h) noexcept { if (nrow < 1 || ncol < 1) return; @@ -3601,7 +3616,7 @@ } void -rxvt_term::scr_overlay_off () NOTHROW +rxvt_term::scr_overlay_off () noexcept { if (!ov.text) return; @@ -3619,7 +3634,7 @@ } void -rxvt_term::scr_overlay_set (int x, int y, text_t text, rend_t rend) NOTHROW +rxvt_term::scr_overlay_set (int x, int y, text_t text, rend_t rend) noexcept { if (!ov.text || x >= ov.w - 2 || y >= ov.h - 2) return; @@ -3631,14 +3646,14 @@ } void -rxvt_term::scr_overlay_set (int x, int y, const char *s) NOTHROW +rxvt_term::scr_overlay_set (int x, int y, const char *s) noexcept { while (*s) scr_overlay_set (x++, y, *s++); } void -rxvt_term::scr_overlay_set (int x, int y, const wchar_t *s) NOTHROW +rxvt_term::scr_overlay_set (int x, int y, const wchar_t *s) noexcept { while (*s) { @@ -3654,7 +3669,7 @@ } void -rxvt_term::scr_swap_overlay () NOTHROW +rxvt_term::scr_swap_overlay () noexcept { if (!ov.text) return;