From 195c7fb9ae8cf9097585a4ebd44c3fb1b879e1fd Mon Sep 17 00:00:00 2001 From: root Date: Sun, 8 Aug 2004 16:43:21 +0000 Subject: [PATCH] *** empty log message *** --- doc/rxvt.1 | 14 +++++-- doc/rxvt.tbl | 14 +++++-- doc/yodl/rxvt-options.yo | 6 ++- doc/yodl/rxvt-resources.yo | 6 ++- doc/yodl/versioninfo.yo | 6 +-- src/screen.C | 80 +++++++++----------------------------- 6 files changed, 54 insertions(+), 72 deletions(-) diff --git a/doc/rxvt.1 b/doc/rxvt.1 index 77e63575..4d880b74 100644 --- a/doc/rxvt.1 +++ b/doc/rxvt.1 @@ -1,7 +1,7 @@ .if !\n(.g .ab GNU tbl requires GNU troff. .if !dTS .ds TS .if !dTE .ds TE -.TH "RXVT" "1" "2004-07-31" "X Version 11" "X Tools" +.TH "RXVT" "1" "2004-08-06" "X Version 11" "X Tools" .SH "NAME" rxvt-unicode (ouR XVT, unicode) \- a VT102 emulator for the X window system .PP @@ -11,7 +11,7 @@ rxvt-unicode (ouR XVT, unicode) \- a VT102 emulator for the X window system .PP .SH "DESCRIPTION" .PP -\fBrxvt-unicode\fP, version \fB3\&.4\fP, is a colour vt102 terminal emulator +\fBrxvt-unicode\fP, version \fB3\&.5\fP, is a colour vt102 terminal emulator intended as an \fIxterm\fP(1) replacement for users who do not require features such as Tektronix 4014 emulation and toolkit-style configurability\&. As a result, \fBrxvt-unicode\fP uses much less swap space -- a significant @@ -157,6 +157,10 @@ resource \fBinternalBorder\fP\&. Compile \fIfrills\fP: External border of \fInumber\fP pixels\&. Also, \fB-bw\fP and \fB-borderwidth\fP\&. See resource entry for limits; resource \fBexternalBorder\fP\&. +.IP "\fB-bl\fP" +Compile \fIfrills\fP: Set MWM hints to request a borderless window, +i\&.e\&. if honoured by the WM, the rxvt window will not have window +decorations; resource \fBborderLess\fP\&. .IP "\fB-lsp\fP \fInumber\fP" Compile \fIlinespace\fP: Lines (pixel height) to insert between each row of the display; @@ -441,6 +445,10 @@ option \fB-b\fP\&. .IP "\fBexternalBorder:\fP \fInumber\fP" External border of \fInumber\fP pixels\&. This resource is limited to 100; option \fB-w\fP, \fB-bw\fP, \fB-borderwidth\fP\&. +.IP "\fBborderLess:\fP \fIboolean\fP" +Set MWM hints to request a borderless window, +i\&.e\&. if honoured by the WM, the rxvt window will not have window +decorations; option \fB-bl\fP\&. .IP "\fBtermName:\fP \fItermname\fP" Specifies the terminal type name to be set in the \fBTERM\fP environment variable; @@ -1103,7 +1111,7 @@ Click-and-drag doesn\&'t work with X11 mouse report overriding\&. .PP .SH "FTP LOCATION" .PP -rxvt-3\&.4\&.tar\&.gz can be found at the following ftp sites +rxvt-3\&.5\&.tar\&.gz can be found at the following ftp sites ftp://ftp\&.rxvt\&.org/pub/rxvt .PP .SH "CURRENT PROJECT COORDINATOR" diff --git a/doc/rxvt.tbl b/doc/rxvt.tbl index b07587dc..92a0afde 100644 --- a/doc/rxvt.tbl +++ b/doc/rxvt.tbl @@ -1,4 +1,4 @@ -.TH "RXVT" "1" "2004-07-31" "X Version 11" "X Tools" +.TH "RXVT" "1" "2004-08-06" "X Version 11" "X Tools" .SH "NAME" rxvt-unicode (ouR XVT, unicode) \- a VT102 emulator for the X window system .PP @@ -8,7 +8,7 @@ rxvt-unicode (ouR XVT, unicode) \- a VT102 emulator for the X window system .PP .SH "DESCRIPTION" .PP -\fBrxvt-unicode\fP, version \fB3\&.4\fP, is a colour vt102 terminal emulator +\fBrxvt-unicode\fP, version \fB3\&.5\fP, is a colour vt102 terminal emulator intended as an \fIxterm\fP(1) replacement for users who do not require features such as Tektronix 4014 emulation and toolkit-style configurability\&. As a result, \fBrxvt-unicode\fP uses much less swap space -- a significant @@ -154,6 +154,10 @@ resource \fBinternalBorder\fP\&. Compile \fIfrills\fP: External border of \fInumber\fP pixels\&. Also, \fB-bw\fP and \fB-borderwidth\fP\&. See resource entry for limits; resource \fBexternalBorder\fP\&. +.IP "\fB-bl\fP" +Compile \fIfrills\fP: Set MWM hints to request a borderless window, +i\&.e\&. if honoured by the WM, the rxvt window will not have window +decorations; resource \fBborderLess\fP\&. .IP "\fB-lsp\fP \fInumber\fP" Compile \fIlinespace\fP: Lines (pixel height) to insert between each row of the display; @@ -438,6 +442,10 @@ option \fB-b\fP\&. .IP "\fBexternalBorder:\fP \fInumber\fP" External border of \fInumber\fP pixels\&. This resource is limited to 100; option \fB-w\fP, \fB-bw\fP, \fB-borderwidth\fP\&. +.IP "\fBborderLess:\fP \fIboolean\fP" +Set MWM hints to request a borderless window, +i\&.e\&. if honoured by the WM, the rxvt window will not have window +decorations; option \fB-bl\fP\&. .IP "\fBtermName:\fP \fItermname\fP" Specifies the terminal type name to be set in the \fBTERM\fP environment variable; @@ -653,7 +661,7 @@ Click-and-drag doesn\&'t work with X11 mouse report overriding\&. .PP .SH "FTP LOCATION" .PP -rxvt-3\&.4\&.tar\&.gz can be found at the following ftp sites +rxvt-3\&.5\&.tar\&.gz can be found at the following ftp sites ftp://ftp\&.rxvt\&.org/pub/rxvt .PP .SH "CURRENT PROJECT COORDINATOR" diff --git a/doc/yodl/rxvt-options.yo b/doc/yodl/rxvt-options.yo index c0447592..eae8136a 100644 --- a/doc/yodl/rxvt-options.yo +++ b/doc/yodl/rxvt-options.yo @@ -1,4 +1,4 @@ -COMMENT(-- $Id: rxvt-options.yo,v 1.18 2004-08-01 15:06:02 root Exp $ --) +COMMENT(-- $Id: rxvt-options.yo,v 1.19 2004-08-08 16:43:55 root Exp $ --) COMMENT(----------------------------------------------------------------------) manpageoptions() @@ -139,6 +139,10 @@ startdit() Compile em(frills): External border of em(number) pixels. Also, bf(-bw) and bf(-borderwidth). See resource entry for limits; resource bf(externalBorder). + dit(bf(-bl)) + Compile em(frills): Set MWM hints to request a borderless window, + i.e. if honoured by the WM, the rxvt window will not have window + decorations; resource bf(borderLess). dit(bf(-lsp) em(number)) Compile em(linespace): Lines (pixel height) to insert between each row of the display; diff --git a/doc/yodl/rxvt-resources.yo b/doc/yodl/rxvt-resources.yo index d83716df..23fc64d3 100644 --- a/doc/yodl/rxvt-resources.yo +++ b/doc/yodl/rxvt-resources.yo @@ -1,4 +1,4 @@ -COMMENT(-- $Id: rxvt-resources.yo,v 1.18 2004-07-31 15:32:50 root Exp $ --) +COMMENT(-- $Id: rxvt-resources.yo,v 1.19 2004-08-08 16:43:55 root Exp $ --) COMMENT(----------------------------------------------------------------------) manpagesection(RESOURCES (available also as long-options)) @@ -226,6 +226,10 @@ startdit() dit(bf(externalBorder:) em(number)) External border of em(number) pixels. This resource is limited to 100; option bf(-w), bf(-bw), bf(-borderwidth). + dit(bf(borderLess:) em(boolean)) + Set MWM hints to request a borderless window, + i.e. if honoured by the WM, the rxvt window will not have window + decorations; option bf(-bl). dit(bf(termName:) em(termname)) Specifies the terminal type name to be set in the bf(TERM) environment variable; diff --git a/doc/yodl/versioninfo.yo b/doc/yodl/versioninfo.yo index 4b6dfbff..35ada7bd 100644 --- a/doc/yodl/versioninfo.yo +++ b/doc/yodl/versioninfo.yo @@ -1,10 +1,10 @@ -COMMENT(-- $Id: versioninfo.yo,v 1.21 2004-07-31 16:05:45 root Exp $ --) +COMMENT(-- $Id: versioninfo.yo,v 1.23 2004-08-08 16:47:39 root Exp $ --) DEFINEMACRO(RXVTNAME)(0) (rxvt) DEFINEMACRO(RXVTDATE)(0) - (2004-07-31) + (2004-08-06) DEFINEMACRO(RXVTVERSION)(0) - (3.4) + (3.5) DEFINEMACRO(RXVTMAINT)(0) (Marc A. Lehmann) DEFINEMACRO(RXVTMAINTEMAIL)(0) diff --git a/src/screen.C b/src/screen.C index fc07a76e..260d0004 100644 --- a/src/screen.C +++ b/src/screen.C @@ -707,19 +707,14 @@ rxvt_term::scr_scroll_text (int row1, int row2, int count, int spec) /* A: scroll up */ /* A1: Copy lines that will get clobbered by the rotation */ - for (i = 0, j = row1; i < count; i++, j++) - { - buf_text[i] = screen.text[j]; - buf_rend[i] = screen.rend[j]; - } + memcpy (buf_text, screen.text + row1, count * sizeof (text_t *)); + memcpy (buf_rend, screen.rend + row1, count * sizeof (rend_t *)); /* A2: Rotate lines */ - for (j = row1, i = j + count; i <= row2; i++, j++) - { - screen.tlen[j] = screen.tlen[i]; - screen.text[j] = screen.text[i]; - screen.rend[j] = screen.rend[i]; - } + i = row2 - row1 - count + 1; + memmove (screen.tlen + row1, screen.tlen + row1 + count, i * sizeof (int16_t)); + memmove (screen.text + row1, screen.text + row1 + count, i * sizeof (text_t *)); + memmove (screen.rend + row1, screen.rend + row1 + count, i * sizeof (rend_t *)); j = row2 - count + 1, i = count; } @@ -747,15 +742,12 @@ rxvt_term::scr_scroll_text (int row1, int row2, int count, int spec) } /* C: Resurrect lines */ - for (; i--; j++) - { - screen.tlen[j] = 0; - screen.text[j] = buf_text[i]; - screen.rend[j] = buf_rend[i]; - - if (!spec) /* line length may not equal TermWin.ncol */ - scr_blank_screen_mem (screen.text, screen.rend, (unsigned int)j, rstyle); - } + memset (screen.tlen + j, 0, i * sizeof (int16_t)); + memcpy (screen.text + j, buf_text, i * sizeof (text_t *)); + memcpy (screen.rend + j, buf_rend, i * sizeof (text_t *)); + if (!spec) /* line length may not equal TermWin.ncol */ + for (; i--; j++) + scr_blank_screen_mem (screen.text, screen.rend, (unsigned int)j, rstyle); return count; } @@ -783,7 +775,7 @@ rxvt_term::scr_add_lines (const unicode_t *str, int nlines, int len) ZERO_SCROLLBACK (); if (nlines > 0) { - nlines += (screen.cur.row - screen.bscroll); + nlines += screen.cur.row - screen.bscroll; if ((nlines > 0) && (screen.tscroll == 0) && (screen.bscroll == (TermWin.nrow - 1))) @@ -873,7 +865,7 @@ rxvt_term::scr_add_lines (const unicode_t *str, int nlines, int len) // rely on wcwidth to tell us the character width, at least for non-latin1 // do wcwidth before further replacements, as wcwidth says that line-drawing // characters have width -1 (DOH!) on GNU/Linux sometimes. - int width = c < 256 ? 1 : wcwidth (c); + int width = c < 0x100 ? 1 : wcwidth (c); if (charsets[screen.charset] == '0') // DEC SPECIAL { @@ -1294,8 +1286,6 @@ rxvt_term::scr_erase_screen (int mode) return; } - refresh_type |= REFRESH_BOUNDS; - if (selection.op && current_screen == selection.screen && ((selection.beg.row >= row && selection.beg.row <= row + num) || (selection.end.row >= row @@ -1787,7 +1777,7 @@ rxvt_term::scr_expose (int x, int y, int width, int height, bool refresh) fill_text (&drawn_text[i][rc[PART_BEG].col], 0, rc[PART_END].col - rc[PART_BEG].col + 1); if (refresh) - scr_refresh (SLOW_REFRESH | REFRESH_BOUNDS); + scr_refresh (SLOW_REFRESH); } /* ------------------------------------------------------------------------- */ @@ -1832,8 +1822,8 @@ rxvt_term::scr_move_to (int y, int len) int rxvt_term::scr_page (enum page_dirn direction, int nlines) { - int n; - uint16_t oldviewstart; + int n; + uint16_t oldviewstart; D_SCREEN ((stderr, "rxvt_scr_page (%s, %d) view_start:%d", ((direction == UP) ? "UP" : "DN"), nlines, TermWin.view_start)); #ifdef DEBUG_STRICT @@ -1939,9 +1929,7 @@ rxvt_term::scr_printscreen (int fullhist) void rxvt_term::scr_refresh (unsigned char refresh_type) { - unsigned char clearfirst, /* first character writes before cell */ - clearlast, /* last character writes beyond cell */ - must_clear, /* use draw_string not draw_image_string */ + unsigned char must_clear, /* use draw_string not draw_image_string */ rvid, /* reverse video this position */ showcursor; /* show the cursor */ int16_t col, row, /* column/row we're processing */ @@ -1960,18 +1948,12 @@ rxvt_term::scr_refresh (unsigned char refresh_type) /* * A: set up vars */ - clearfirst = clearlast = must_clear = 0; + must_clear = 0; refresh_count = 0; row_offset = TermWin.saveLines - TermWin.view_start; - if ((refresh_type & REFRESH_BOUNDS)) - { - clearfirst = clearlast = 1; - refresh_type &= ~REFRESH_BOUNDS; - } - #ifdef XPM_BACKGROUND must_clear |= (bgPixmap.pixmap != None); #endif @@ -2334,30 +2316,6 @@ rxvt_term::scr_refresh (unsigned char refresh_type) */ scr_reverse_selection (); - /* - * I: other general cleanup - */ -#if 0 - if (clearfirst && TermWin.int_bwidth) - /* - * clear the whole screen height, note that width == 0 is treated - * specially by XClearArea - */ - XClearArea (display->display, TermWin.vt, 0, 0, - (unsigned int)TermWin.int_bwidth, - (unsigned int)TermWin_TotalHeight (), False); - - if (clearlast && TermWin.int_bwidth) - /* - * clear the whole screen height, note that width == 0 is treated - * specially by XClearArea - */ - XClearArea (display->display, TermWin.vt, - TermWin.width + TermWin.int_bwidth, 0, - (unsigned int)TermWin.int_bwidth, - (unsigned int)TermWin_TotalHeight (), False); -#endif - if (refresh_type & SMOOTH_REFRESH) XFlush (display->display); -- 2.34.1