Sketchy overview of the details:
-- gcc-3.x is probably required to compile this release, g++, too, as it
- has been re-written in C++.
+- gcc-3.x is probably required to compile this release, g++-3.x, too, as it
+ has been re-written in C++ (and a corresponding version of libstdc++).
- the options used in the ./reconf script should work. everything else
- might be broken.
+ might work and might be broken.
- wchar_t MUST be UNICODE or ISO-10646-1 on your system, or various things
will break down. On GNU/Linux, this is true, on Solaris, this is true
only for "@ucs" locales, but you should have plenty of them.
- rxvt will use unicode internally, but does input/output in the current
- locale. so get a utf-8 terminal, use "LC_CTYPE=en_US.UTF-8 rxvt" or
+ locale. so to get a utf-8 terminal, use "LC_CTYPE=en_US.UTF-8 rxvt" or
equivalent.
- you can specify a different locale to be used for your input method
using the imLocale ressource or switch, e.g.:
LC_CTYPE=ja_JP.UTF-8 rxvt -imlocale ja_JP.EUC-JP
+- keyboard input is limited by the selected X locale.
+
- "-fn" commandline switch and *.font ressource accepts a comma
seperated list of fontnames:
- the _first_ font in the list selects the cell width/height. All other
fonts must be smaller or same sized, or they will be ignored or worse.
- xft fonts will automatically be rescaled.
+ xft fonts will automatically be rescaled, x11-fonts, too, if their
+ size is not specified in the XLFD.
- the fonts will be tried in the order given when searching for a font
to display a specific character. if you are e.g. mainly interested in
font first (e.g. "9x15bold") and let rxvt sort it out.
- xft fonts require gobs of memory and generally are slow. try not to
- antialias them ("Font:antialias=false") when possible. Often looks better,
- too.
+ antialias them ("Font:antialias=false") when possible. Often looks
+ better, too, as they then match other fonts in weight.
- src/defaultfont.C lists the fallback fonts that are tried when a
character cannot be displayed with the current list of fonts.
+- using bold fonts for the bold attribute is not supported by xft
+ and will not be supported by rxvt-unicode, either, even for normal x11
+ fonts.
+
+- normal bold text will use reverse video unless the colorBD resource has
+ been set. coloured text will use high-intensity colours for bold.
+
Marc <rxvt@plan9.de>
{
rxvt_fontset *fs = new rxvt_fontset (this);
- if (fs && fs->populate (fontname))
+ if (fs && fs->populate (fontname ? fontname : "fixed"))
{
delete TermWin.fontset;
TermWin.fontset = fs;
TermWin.fheight = fs->base_font ()->height;
TermWin.fbase = fs->base_font ()->ascent;
- // TODO: screen needs to be told about new fonts
-
if (TermWin.parent[0])
{
resize_all_windows (0, 0, 0);
#ifndef SMART_WINDOW_TITLE
XStoreName (display->display, TermWin.parent[0], str);
#else
- char *name;
+ char *name;
if (XFetchName (display->display, TermWin.parent[0], &name) == 0)
name = NULL;
#ifndef SMART_WINDOW_TITLE
XSetIconName (display->display, TermWin.parent[0], str);
#else
- char *name;
+ char *name;
if (XGetIconName (display->display, TermWin.parent[0], &name))
name = NULL;
void
rxvt_term::set_window_color (int idx, const char *color)
{
- rxvt_color xcol;
- int i;
+ rxvt_color xcol;
+ int i;
if (color == NULL || *color == '\0')
return;
rend = GET_ATTR (rend);
- rvid = !! (rend & RS_RVid);
- if (rvid)
- {
- SWAP_IT (fore, back, int);
+ rvid = !!(rend & RS_RVid);
-#ifndef NO_BOLD_UNDERLINE_REVERSE
- if (ISSET_PIXCOLOR (Color_RV)
-# ifndef NO_CURSORCOLOR
- && !ISSET_PIXCOLOR (Color_cursor)
-# endif
- )
- back = Color_RV;
-#endif
-
- }
#ifdef TEXT_BLINK
if (rend & RS_Blink)
{
fore = back;
}
#endif
+
#ifndef NO_BOLD_UNDERLINE_REVERSE
- else if (rend & RS_Bold)
+ if (rend & RS_Bold && fore == Color_fg)
{
if (ISSET_PIXCOLOR (Color_BD))
fore = Color_BD;
- else if (fore == Color_fg)
- fore = Color_White;
+ else
+ rvid = !rvid;
}
- else if (rend & RS_Uline)
+
+ if (rend & RS_Uline)
{
if (ISSET_PIXCOLOR (Color_UL))
fore = Color_UL;
}
#endif
+ if (rvid)
+ {
+ SWAP_IT (fore, back, int);
+
+#ifndef NO_BOLD_UNDERLINE_REVERSE
+ if (ISSET_PIXCOLOR (Color_RV)
+# ifndef NO_CURSORCOLOR
+ && !ISSET_PIXCOLOR (Color_cursor)
+# endif
+ )
+ back = Color_RV;
+#endif
+ }
+
/*
* Actually do the drawing of the string here
*/