WISH: tabbed windows (hey, just use screen...)
WISH: just for fun, do shade and tint with XRender.
+5.4 Mon Apr 18 00:33:31 CEST 2005
+ - match modifier state exactly in custom keyboard code.
+ this is necessary because it has no knowledge about
+ built-in mappings and so will overwrite them. the priority-code
+ will be re-enabled when this has changed, so watch out.
+ - cursor blinking now depends on frills.
+ - underline cursor mode (frills, -uc).
+ - implement special value (*g*) for pointerBlankDelay
+ to disble it.
+
5.3 Sun Mar 13 00:20:44 CET 2005
- fix a bug that allowed to overflow a buffer via a long
escape sequence, which is probably exploitable (fix by
representation of wchar_t. This is, of course, completely fine with
respect to standards.
- However, "__STDC_ISO_10646__" is the only sane way to support
- multi-language apps in an OS, as using a locale-dependent (and
- non-standardized) representation of wchar_t makes it impossible to
- convert between wchar_t (as used by X11 and your applications) and
- any other encoding without implementing OS-specific-wrappers for
- each and every locale. There simply are no APIs to convert wchar_t
- into anything except the current locale encoding.
+ However, that means rxvt-unicode only works in "POSIX", "ISO-8859-1"
+ and "UTF-8" locales under FreeBSD (which all use Unicode as wchar_t.
+
+ "__STDC_ISO_10646__" is the only sane way to support multi-language
+ apps in an OS, as using a locale-dependent (and non-standardized)
+ representation of wchar_t makes it impossible to convert between
+ wchar_t (as used by X11 and your applications) and any other
+ encoding without implementing OS-specific-wrappers for each and
+ every locale. There simply are no APIs to convert wchar_t into
+ anything except the current locale encoding.
Some applications (such as the formidable mlterm) work around this
by carrying their own replacement functions for character set
fonts can be set manually or automatically.
--with-codesets=NAME,...
- Compile in support for additional codeset (encoding) groups (eu, vn
- are always compiled in, which includes most 8-bit character sets).
- These codeset tables are currently only used for driving X11 core
- fonts, they are not required for Xft fonts. Compiling them in will
- make your binary bigger (together about 700kB), but it doesn't
- increase memory usage unless you use an X11 font requiring one of
- these encodings.
+ Compile in support for additional codeset (encoding) groups ("eu",
+ "vn" are always compiled in, which includes most 8-bit character
+ sets). These codeset tables are used for driving X11 core fonts,
+ they are not required for Xft fonts, although having them compiled
+ in lets rxvt-unicode choose replacement fonts more intelligently.
+ Compiling them in will make your binary bigger (all of together cost
+ about 700kB), but it doesn't increase memory usage unless you use a
+ font requiring one of these encodings.
all all available codeset groups
zh common chinese encodings
tripleclickwords
settable insecure mode
keysym remapping support
+ cursor blinking and underline cursor
-embed and -pty-fd options
--enable-iso14755
hot keys. This should keep in a fixed position the rxvt corner which
is closest to a corner of the screen.
- --enable-cursor-blink
- Add support for a blinking cursor.
-
--enable-pointer-blank
Add support to have the pointer disappear when typing or inactive.
support_utmp=no
support_wtmp=no
support_lastlog=no
-support_cursor_blink=no
support_text_blink=no
support_pointer_blank=no
support_scroll_rxvt=no
support_menubar=yes
support_mousewheel=yes
support_mouseslipwheel=yes
- support_cursor_blink=yes
support_text_blink=yes
support_pointer_blank=yes
support_scroll_rxvt=yes
AC_DEFINE(SMART_RESIZE, 1, Define to use "smart" resize behavior)
fi])
-AC_ARG_ENABLE(cursor-blink,
- [ --enable-cursor-blink enable blinking cursor],
- [if test x$enableval = xyes -o x$enableval = xno; then
- support_cursor_blink=$enableval
- fi])
-
AC_ARG_ENABLE(text-blink,
[ --enable-text-blink enable blinking text],
[if test x$enableval = xyes -o x$enableval = xno; then
if test x$support_pointer_blank = xyes; then
AC_DEFINE(POINTER_BLANK, 1, Define if you want hide the pointer while typing)
fi
-if test x$support_cursor_blink = xyes; then
- AC_DEFINE(CURSOR_BLINK, 1, Define if you want blinking cursor support)
-fi
if test x$support_text_blink = xyes; then
AC_DEFINE(TEXT_BLINK, 1, Define if you want blinking text support)
fi
-# Reconstructed via infocmp from file: /etc/terminfo/r/rxvt-unicode
+# Reconstructed via infocmp from file: /usr/share/terminfo/r/rxvt-unicode
# (untranslatable capabilities removed to fit entry within 1023 bytes)
rxvt-unicode|rxvt-unicode terminal (X Window System):\
:am:bw:eo:km:mi:ms:xn:xo:\
:co#80:it#8:li#24:lm#0:\
:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
:K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\
- :RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ae=^O:al=\E[L:\
- :as=^N:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:\
- :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\
- :ec=\E[%dX:ei=\E[4l:ho=\E[H:i1=\E[?47l\E=\E[?1l:ic=\E[@:\
- :im=\E[4h:is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l:\
+ :RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ae=\E(B:al=\E[L:\
+ :as=\E(0:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\
+ :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\
+ :dl=\E[M:do=^J:ec=\E[%dX:ei=\E[4l:ho=\E[H:\
+ :i1=\E[?47l\E=\E[?1l:ic=\E[@:im=\E[4h:\
+ :is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l:\
:k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\
:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\E[3~:\
:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:kd=\EOB:ke=\E[?1l\E>:\
</p>
<hr />
<h1><a name="description">DESCRIPTION</a></h1>
-<p><strong>rxvt-unicode</strong>, version <strong>5.2</strong>, is a colour vt102 terminal
+<p><strong>rxvt-unicode</strong>, version <strong>5.3</strong>, is a colour vt102 terminal
emulator intended as an <em>xterm</em>(1) replacement for users who do not
require features such as Tektronix 4014 emulation and toolkit-style
configurability. As a result, <strong>rxvt-unicode</strong> uses much less swap space --
<dt><strong><a name="item_pointerblankdelay_3a_number"><strong>pointerBlankDelay:</strong> <em>number</em></a></strong><br />
</dt>
<dd>
-Specifies number of seconds before blanking the pointer [default 2].
+Specifies number of seconds before blanking the pointer [default 2]. Use a
+large number (e.g. <code>987654321</code>) to effectively disable the timeout.
</dd>
<p></p>
<dt><strong><a name="item_backspacekey_3a_string"><strong>backspacekey:</strong> <em>string</em></a></strong><br />
.\" ========================================================================
.\"
.IX Title "rxvt 1"
-.TH rxvt 1 "2005-02-19" "5.2" "RXVT-UNICODE"
+.TH rxvt 1 "2005-04-17" "5.3" "RXVT-UNICODE"
.SH "NAME"
rxvt\-unicode (ouR XVT, unicode) \- (a VT102 emulator for the X window system)
.SH "SYNOPSIS"
Mouse pointer background colour.
.IP "\fBpointerBlankDelay:\fR \fInumber\fR" 4
.IX Item "pointerBlankDelay: number"
-Specifies number of seconds before blanking the pointer [default 2].
+Specifies number of seconds before blanking the pointer [default 2]. Use a
+large number (e.g. \f(CW987654321\fR) to effectively disable the timeout.
.IP "\fBbackspacekey:\fR \fIstring\fR" 4
.IX Item "backspacekey: string"
The string to send when the backspace key is pressed. If set to \fB\s-1DEC\s0\fR
=item B<pointerBlankDelay:> I<number>
-Specifies number of seconds before blanking the pointer [default 2].
+Specifies number of seconds before blanking the pointer [default 2]. Use a
+large number (e.g. C<987654321>) to effectively disable the timeout.
=item B<backspacekey:> I<string>
rxvt [options] [-e command [ args ]]
DESCRIPTION
- rxvt-unicode, version 5.2, is a colour vt102 terminal emulator intended
+ rxvt-unicode, version 5.3, is a colour vt102 terminal emulator intended
as an *xterm*(1) replacement for users who do not require features such
as Tektronix 4014 emulation and toolkit-style configurability. As a
result, rxvt-unicode uses much less swap space -- a significant
pointerBlankDelay: *number*
Specifies number of seconds before blanking the pointer [default 2].
+ Use a large number (e.g. 987654321) to effectively disable the
+ timeout.
backspacekey: *string*
The string to send when the backspace key is pressed. If set to DEC
<strong>wchar_t</strong>. This is, of course, completely fine with respect to standards.</p>
</dd>
<dd>
-<p>However, <code>__STDC_ISO_10646__</code> is the only sane way to support
-multi-language apps in an OS, as using a locale-dependent (and
-non-standardized) representation of <strong>wchar_t</strong> makes it impossible to
-convert between <strong>wchar_t</strong> (as used by X11 and your applications) and any
-other encoding without implementing OS-specific-wrappers for each and
-every locale. There simply are no APIs to convert <strong>wchar_t</strong> into anything
-except the current locale encoding.</p>
+<p>However, that means rxvt-unicode only works in <code>POSIX</code>, <code>ISO-8859-1</code> and
+<code>UTF-8</code> locales under FreeBSD (which all use Unicode as <strong>wchar_t</strong>.</p>
+</dd>
+<dd>
+<p><code>__STDC_ISO_10646__</code> is the only sane way to support multi-language
+apps in an OS, as using a locale-dependent (and non-standardized)
+representation of <strong>wchar_t</strong> makes it impossible to convert between
+<strong>wchar_t</strong> (as used by X11 and your applications) and any other encoding
+without implementing OS-specific-wrappers for each and every locale. There
+simply are no APIs to convert <strong>wchar_t</strong> into anything except the current
+locale encoding.</p>
</dd>
<dd>
<p>Some applications (such as the formidable <strong>mlterm</strong>) work around this
<dt><strong><a name="item__2d_2dwith_2dcodesets_3dname_2c_2e_2e_2e">--with-codesets=NAME,...</a></strong><br />
</dt>
<dd>
-Compile in support for additional codeset (encoding) groups (eu, vn are
-always compiled in, which includes most 8-bit character sets). These
-codeset tables are currently only used for driving X11 core fonts, they
-are not required for Xft fonts. Compiling them in will make your binary
-bigger (together about 700kB), but it doesn't increase memory usage unless
-you use an X11 font requiring one of these encodings.
+Compile in support for additional codeset (encoding) groups (<code>eu</code>, <code>vn</code>
+are always compiled in, which includes most 8-bit character sets). These
+codeset tables are used for driving X11 core fonts, they are not required
+for Xft fonts, although having them compiled in lets rxvt-unicode choose
+replacement fonts more intelligently. Compiling them in will make your
+binary bigger (all of together cost about 700kB), but it doesn't increase
+memory usage unless you use a font requiring one of these encodings.
</dd>
<table>
<tr><td>all</td><td>all available codeset groups</td></tr>
tripleclickwords
settable insecure mode
keysym remapping support
+ cursor blinking and underline cursor
-embed and -pty-fd options</pre>
</dd>
<p></p>
closest to a corner of the screen.
</dd>
<p></p>
-<dt><strong><a name="item__2d_2denable_2dcursor_2dblink">--enable-cursor-blink</a></strong><br />
-</dt>
-<dd>
-Add support for a blinking cursor.
-</dd>
-<p></p>
<dt><strong><a name="item__2d_2denable_2dpointer_2dblank">--enable-pointer-blank</a></strong><br />
</dt>
<dd>
.\" ========================================================================
.\"
.IX Title "rxvt 7"
-.TH rxvt 7 "2005-02-21" "5.2" "RXVT-UNICODE"
+.TH rxvt 7 "2005-04-17" "5.3" "RXVT-UNICODE"
.SH "NAME"
RXVT REFERENCE \- FAQ, command sequences and other background information
.SH "SYNOPSIS"
does it support it. Instead, it uses it's own internal representation of
\&\fBwchar_t\fR. This is, of course, completely fine with respect to standards.
.Sp
-However, \f(CW\*(C`_\|_STDC_ISO_10646_\|_\*(C'\fR is the only sane way to support
-multi-language apps in an \s-1OS\s0, as using a locale-dependent (and
-non\-standardized) representation of \fBwchar_t\fR makes it impossible to
-convert between \fBwchar_t\fR (as used by X11 and your applications) and any
-other encoding without implementing OS-specific-wrappers for each and
-every locale. There simply are no APIs to convert \fBwchar_t\fR into anything
-except the current locale encoding.
+However, that means rxvt-unicode only works in \f(CW\*(C`POSIX\*(C'\fR, \f(CW\*(C`ISO\-8859\-1\*(C'\fR and
+\&\f(CW\*(C`UTF\-8\*(C'\fR locales under FreeBSD (which all use Unicode as \fBwchar_t\fR.
+.Sp
+\&\f(CW\*(C`_\|_STDC_ISO_10646_\|_\*(C'\fR is the only sane way to support multi-language
+apps in an \s-1OS\s0, as using a locale-dependent (and non\-standardized)
+representation of \fBwchar_t\fR makes it impossible to convert between
+\&\fBwchar_t\fR (as used by X11 and your applications) and any other encoding
+without implementing OS-specific-wrappers for each and every locale. There
+simply are no APIs to convert \fBwchar_t\fR into anything except the current
+locale encoding.
.Sp
Some applications (such as the formidable \fBmlterm\fR) work around this
by carrying their own replacement functions for character set handling
styles. The fonts can be set manually or automatically.
.IP "\-\-with\-codesets=NAME,..." 4
.IX Item "--with-codesets=NAME,..."
-Compile in support for additional codeset (encoding) groups (eu, vn are
-always compiled in, which includes most 8\-bit character sets). These
-codeset tables are currently only used for driving X11 core fonts, they
-are not required for Xft fonts. Compiling them in will make your binary
-bigger (together about 700kB), but it doesn't increase memory usage unless
-you use an X11 font requiring one of these encodings.
+Compile in support for additional codeset (encoding) groups (\f(CW\*(C`eu\*(C'\fR, \f(CW\*(C`vn\*(C'\fR
+are always compiled in, which includes most 8\-bit character sets). These
+codeset tables are used for driving X11 core fonts, they are not required
+for Xft fonts, although having them compiled in lets rxvt-unicode choose
+replacement fonts more intelligently. Compiling them in will make your
+binary bigger (all of together cost about 700kB), but it doesn't increase
+memory usage unless you use a font requiring one of these encodings.
.TS
l l .
all all available codeset groups
A non-exhaustive list of features enabled by \f(CW\*(C`\-\-enable\-frills\*(C'\fR (possibly
in combination with other switches) is:
.Sp
-.Vb 12
+.Vb 13
\& MWM-hints
\& EWMH-hints (pid, utf8 names) and protocols (ping)
\& seperate underline colour
\& tripleclickwords
\& settable insecure mode
\& keysym remapping support
+\& cursor blinking and underline cursor
\& -embed and -pty-fd options
.Ve
.IP "\-\-enable\-iso14755" 4
Add smart growth/shrink behaviour when changing font size via from hot
keys. This should keep in a fixed position the rxvt corner which is
closest to a corner of the screen.
-.IP "\-\-enable\-cursor\-blink" 4
-.IX Item "--enable-cursor-blink"
-Add support for a blinking cursor.
.IP "\-\-enable\-pointer\-blank" 4
.IX Item "--enable-pointer-blank"
Add support to have the pointer disappear when typing or inactive.
=item --with-codesets=NAME,...
-Compile in support for additional codeset (encoding) groups (eu, vn are
-always compiled in, which includes most 8-bit character sets). These
-codeset tables are currently only used for driving X11 core fonts, they
-are not required for Xft fonts. Compiling them in will make your binary
-bigger (together about 700kB), but it doesn't increase memory usage unless
-you use an X11 font requiring one of these encodings.
+Compile in support for additional codeset (encoding) groups (C<eu>, C<vn>
+are always compiled in, which includes most 8-bit character sets). These
+codeset tables are used for driving X11 core fonts, they are not required
+for Xft fonts, although having them compiled in lets rxvt-unicode choose
+replacement fonts more intelligently. Compiling them in will make your
+binary bigger (all of together cost about 700kB), but it doesn't increase
+memory usage unless you use a font requiring one of these encodings.
=begin table
tripleclickwords
settable insecure mode
keysym remapping support
+ cursor blinking and underline cursor
-embed and -pty-fd options
=item --enable-iso14755
keys. This should keep in a fixed position the rxvt corner which is
closest to a corner of the screen.
-=item --enable-cursor-blink
-
-Add support for a blinking cursor.
-
=item --enable-pointer-blank
Add support to have the pointer disappear when typing or inactive.
representation of wchar_t. This is, of course, completely fine with
respect to standards.
- However, "__STDC_ISO_10646__" is the only sane way to support
- multi-language apps in an OS, as using a locale-dependent (and
- non-standardized) representation of wchar_t makes it impossible to
- convert between wchar_t (as used by X11 and your applications) and
- any other encoding without implementing OS-specific-wrappers for
- each and every locale. There simply are no APIs to convert wchar_t
- into anything except the current locale encoding.
+ However, that means rxvt-unicode only works in "POSIX", "ISO-8859-1"
+ and "UTF-8" locales under FreeBSD (which all use Unicode as wchar_t.
+
+ "__STDC_ISO_10646__" is the only sane way to support multi-language
+ apps in an OS, as using a locale-dependent (and non-standardized)
+ representation of wchar_t makes it impossible to convert between
+ wchar_t (as used by X11 and your applications) and any other
+ encoding without implementing OS-specific-wrappers for each and
+ every locale. There simply are no APIs to convert wchar_t into
+ anything except the current locale encoding.
Some applications (such as the formidable mlterm) work around this
by carrying their own replacement functions for character set
fonts can be set manually or automatically.
--with-codesets=NAME,...
- Compile in support for additional codeset (encoding) groups (eu, vn
- are always compiled in, which includes most 8-bit character sets).
- These codeset tables are currently only used for driving X11 core
- fonts, they are not required for Xft fonts. Compiling them in will
- make your binary bigger (together about 700kB), but it doesn't
- increase memory usage unless you use an X11 font requiring one of
- these encodings.
+ Compile in support for additional codeset (encoding) groups ("eu",
+ "vn" are always compiled in, which includes most 8-bit character
+ sets). These codeset tables are used for driving X11 core fonts,
+ they are not required for Xft fonts, although having them compiled
+ in lets rxvt-unicode choose replacement fonts more intelligently.
+ Compiling them in will make your binary bigger (all of together cost
+ about 700kB), but it doesn't increase memory usage unless you use a
+ font requiring one of these encodings.
all all available codeset groups
zh common chinese encodings
tripleclickwords
settable insecure mode
keysym remapping support
+ cursor blinking and underline cursor
-embed and -pty-fd options
--enable-iso14755
hot keys. This should keep in a fixed position the rxvt corner which
is closest to a corner of the screen.
- --enable-cursor-blink
- Add support for a blinking cursor.
-
--enable-pointer-blank
Add support to have the pointer disappear when typing or inactive.
--disable-keepscrolling --enable-xft --enable-mousewheel \
--with-name=rxvt --enable-selectionscrolling --enable-pointer-blank \
--enable-frills --enable-swapscreen --enable-transparency --enable-slipwheeling \
- --with-codesets=zh,jp,kr --enable-menubar --enable-tinting \
- --enable-cursor-blink --enable-text-blink --enable-fading \
+ --with-codesets=all --enable-menubar --enable-tinting \
+ --enable-text-blink --enable-fading \
--enable-plain-scroll --enable-rxvt-scroll --enable-combining --enable-iso14755 \
--enable-font-styles --enable-xpm-background --enable-xgetdefault \
--enable-next-scroll --enable-xterm-scroll \
keysym_t *key = keymap [index];
if (key->keysym <= keysym && keysym < key->keysym + key->range
+#if 0 // disabled because the custom ekymap does not know the builtin keymap
// match only the specified bits in state and ignore others
- && (key->state & state) == key->state)
+ && (key->state & state) == key->state
+#else // re-enable this part once the builtin keymap is handled here, too
+ && key->state == state
+#endif
+ )
return index;
}
#if ENABLE_FRILLS
# define ENABLE_XEMBED 1
# define ENABLE_EWMH 1
+# define CURSOR_BLINK 1
#endif
/*
Rs_borderLess,
Rs_lineSpace,
Rs_pty_fd,
+ Rs_cursorUnderline,
+#endif
+#if CURSOR_BLINK
+ Rs_cursorBlink,
#endif
#if ENABLE_XEMBED
Rs_embed,
Rs_answerbackstring,
Rs_tripleclickwords,
Rs_insecure,
- Rs_cursorBlink,
Rs_pointerBlank,
Rs_pointerBlankDelay,
Rs_imLocale,
void scr_refresh (unsigned char refresh_type);
bool scr_refresh_rend (rend_t mask, rend_t value);
void scr_erase_screen (int mode);
+#if ENABLE_FRILLS
void scr_erase_savelines ();
+ void scr_backindex ();
+ void scr_forwardindex ();
+#endif
void scr_touch (bool refresh);
void scr_expose (int x, int y, int width, int height, bool refresh);
rxvt_fontset *scr_find_fontset (rend_t r = DEFAULT_RSTYLE);
void scr_add_lines (const unicode_t *str, int nlines, int len);
void scr_backspace ();
void scr_tab (int count, bool ht = false);
- void scr_backindex ();
- void scr_forwardindex ();
void scr_gotorc (int row, int col, int relative);
void scr_index (enum page_dirn direction);
void scr_erase_line (int mode);
{ CS_UNICODE, "-*-*-*-r-*-*-*-*-*-*-c-*-iso10646-1" },
{ CS_UNICODE, "-*-*-*-r-*-*-*-*-*-*-m-*-iso10646-1" },
#if XFT
- { CS_UNICODE, "xft:Bitstream Vera Sans Mono:antialias=false:autohint=true"},
- { CS_UNICODE, "xft:Courier New:antialias=false:autohint=true" },
- { CS_UNICODE, "xft:Andale Mono:antialias=false" },
- { CS_UNICODE, "xft:Arial Unicode MS:antialias=false" },
+ { CS_UNICODE, "xft:Bitstream Vera Sans Mono:antialias=false:autohint=true" },
+ { CS_UNICODE, "xft:Courier New:antialias=false:autohint=true" },
+ { CS_UNICODE, "xft:Andale Mono:antialias=false:autohint=false" },
+ { CS_UNICODE, "xft:Arial Unicode MS:antialias=false:autohint=false" },
// FreeMono is usually uglier than x fonts, so try last only.
{ CS_UNICODE, "xft:FreeMono:autohint=true" },
# define Opt_borderLess 0
#endif
#define Opt_pastableTabs (1UL<<25)
+#define Opt_cursorUnderline (1UL<<26)
/* place holder used for parsing command-line options */
#define Opt_Reverse (1UL<<30)
#define Opt_Boolean (1UL<<31)
* drawn_text/drawn_rend contain the screen information before the update.
* screen.text/screen.rend contain what the screen will change to.
*/
-
-#define FONT_WIDTH(X, Y) \
- (X)->per_char[ (Y) - (X)->min_char_or_byte2].width
-#define FONT_RBEAR(X, Y) \
- (X)->per_char[ (Y) - (X)->min_char_or_byte2].rbearing
-#define FONT_LBEAR(X, Y) \
- (X)->per_char[ (Y) - (X)->min_char_or_byte2].lbearing
-#define IS_FONT_CHAR(X, Y) \
- ((Y) >= (X)->min_char_or_byte2 && (Y) <= (X)->max_char_or_byte2)
-
void
rxvt_term::scr_refresh (unsigned char refresh_type)
{
row_offset = TermWin.saveLines - TermWin.view_start;
#if XPM_BACKGROUND
- must_clear |= (bgPixmap.pixmap != None);
+ must_clear |= bgPixmap.pixmap != None;
#endif
#if TRANSPARENT
- must_clear |= ((options & Opt_transparent) && am_transparent);
+ must_clear |= (options & Opt_transparent) && am_transparent;
#endif
ocrow = oldcursor.row; /* is there an old outline cursor on screen? */
if (showcursor && TermWin.focus)
{
- *crp ^= RS_RVid;
-#ifndef NO_CURSORCOLOR
- cc1 = *crp & (RS_fgMask | RS_bgMask);
- if (ISSET_PIXCOLOR (Color_cursor))
- ccol1 = Color_cursor;
+ if (options & Opt_cursorUnderline)
+ *crp ^= RS_Uline;
else
+ {
+ *crp ^= RS_RVid;
+
+#ifndef NO_CURSORCOLOR
+ cc1 = *crp & (RS_fgMask | RS_bgMask);
+ if (ISSET_PIXCOLOR (Color_cursor))
+ ccol1 = Color_cursor;
+ else
#ifdef CURSOR_COLOR_IS_RENDITION_COLOR
- ccol1 = GET_FGCOLOR (rstyle);
+ ccol1 = GET_FGCOLOR (rstyle);
#else
- ccol1 = Color_fg;
+ ccol1 = Color_fg;
#endif
- if (ISSET_PIXCOLOR (Color_cursor2))
- ccol2 = Color_cursor2;
- else
+ if (ISSET_PIXCOLOR (Color_cursor2))
+ ccol2 = Color_cursor2;
+ else
#ifdef CURSOR_COLOR_IS_RENDITION_COLOR
- ccol2 = GET_BGCOLOR (rstyle);
+ ccol2 = GET_BGCOLOR (rstyle);
#else
- ccol2 = Color_bg;
+ ccol2 = Color_bg;
#endif
- *crp = SET_FGCOLOR (*crp, ccol1);
- *crp = SET_BGCOLOR (*crp, ccol2);
+ *crp = SET_FGCOLOR (*crp, ccol1);
+ *crp = SET_BGCOLOR (*crp, ccol2);
#endif
+ }
}
}
{
if (TermWin.focus)
{
- *crp ^= RS_RVid;
+ if (options & Opt_cursorUnderline)
+ *crp ^= RS_Uline;
+ else
+ {
+ *crp ^= RS_RVid;
#ifndef NO_CURSORCOLOR
- *crp = (*crp & ~ (RS_fgMask | RS_bgMask)) | cc1;
+ *crp = (*crp & ~ (RS_fgMask | RS_bgMask)) | cc1;
#endif
+ }
}
else if (oldcursor.row >= 0)
{
// VERSION _must_ be \d.\d+
-#define VERSION "5.3"
-#define DATE "2005-03-13"
+#define VERSION "5.4"
+#define DATE "2005-04-18"
#if ENABLE_FRILLS
BOOL (Rs_tripleclickwords, "tripleclickwords", "tcw", Opt_tripleclickwords, "triple click word selection"),
BOOL (Rs_insecure, "insecure", "insecure", Opt_insecure, "enable possibly insecure escape sequences"),
+ BOOL (Rs_cursorUnderline, "cursorUnderline", "uc", Opt_cursorUnderline, "underline cursor"),
#endif
-#ifdef CURSOR_BLINK
+#if CURSOR_BLINK
BOOL (Rs_cursorBlink, "cursorBlink", "bc", Opt_cursorBlink, "blinking cursor"),
#endif
#ifdef POINTER_BLANK