WISH: http://www120.pair.com/mccarthy/nextstep/intro.htmld/Workspace.html is the correct nextstep look.
DUMB: support tex fonts
- - SYNCCVS: compared to rxvt-cvs 2006-01-28, no relevant changes.
- - fix version report (DA) (which was unfortunately broken).
- - changed version number report again, now to emulate xterm closer.
- - added the OSC sequence 702 to detect the urxvt version number.
- - small configure updates.
- - overhauled color management: smaller codesize, alpha support.
- - support rgba:rrrr/gggg/bbbb/aaaa, #argb, #aarrggbb and
- #aaaarrrrggggbbbb (yes, it did hurt) colour "names".
- - try to work around Xft and Xrender forcing everything to be 100%
- transparent. Long Live Xft!
- - do not include X11/Intrinsic.h anymore, directly use
- Xlib/Xutil/Xresource directly.
- - further improve the careful mode detection, and font width
+ - further improvements to the careful mode detection, and font width
detection:
- fully double-wide fonts will now be correctly treated,
- overlap detection was improved.
might get used for other encodings which really need it, later.
- remove spacing=100 from all default fonts, as this creates totally
weird spacing (5 times normal) with xft.
+ - removed iso10646 fallback, as xorgs iso10646 encoded fonts are mostly
+ broken.
+ - removed gnu unifont fallback, all combining characters are broken.
- replace named colours by xorg's rgb.txt equivalents, to
reduce round trip time on startup, and short-cut allocation
of rgb:rr/gg/bb.
+ - overhauled color management: smaller codesize, alpha support.
+ - support rgba:rrrr/gggg/bbbb/aaaa, #argb, #aarrggbb and
+ #aaaarrrrggggbbbb (yes, it did hurt) colour "names".
+ - try to work around Xft and Xrender forcing everything to be 100%
+ transparent. Long Live Xft!
+ - do not include X11/Intrinsic.h anymore, directly use
+ Xlib/Xutil/Xresource directly.
+ - SYNCCVS: compared to rxvt-cvs 2006-01-28, no relevant changes.
+ - fix version report (DA) (which was unfortunately broken).
+ - changed version number report again, now to emulate xterm closer.
+ - added the OSC sequence 702 to detect the urxvt version number.
+ - small configure updates.
- further RTT optimisations.
7.4 Sat Jan 28 15:26:27 CET 2006
# endif
#endif
- // generic font fallback
{ CS_UNICODE, "-*-lucidatypewriter-*-*-*-*-*-*-*-*-m-*-iso10646-1" },
- { CS_UNICODE, "-*-unifont-*-*-*-*-*-*-*-*-c-*-iso10646-1" },
- { CS_UNICODE, "-*-*-*-r-*-*-*-*-*-*-c-*-iso10646-1" },
- { CS_UNICODE, "-*-*-*-r-*-*-*-*-*-*-m-*-iso10646-1" },
+ //{ CS_UNICODE, "-*-unifont-*-*-*-*-*-*-*-*-c-*-iso10646-1" }, // this gem of a font has actual dotted circles within the combining character glyphs.
#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:autohint=false" },
{ CS_UNICODE, "xft:Arial Unicode MS:antialias=false:autohint=false" },
- // FreeMono is usually uglier than x fonts, so try last only.
+ // FreeMono is usually uglier than x fonts, so try after the others
{ CS_UNICODE, "xft:FreeMono:autohint=true" },
#endif
+ // generic font fallback, put this last, as many iso10646 fonts have extents
+ // specified for all glyphs in the range they cover, but most are simply empty
+ //{ CS_UNICODE, "-*-*-*-r-*-*-*-*-*-*-c-*-iso10646-1" },
+ //{ CS_UNICODE, "-*-*-*-r-*-*-*-*-*-*-m-*-iso10646-1" },
{ CS_UNKNOWN, 0 }
};
int dir_ret, asc_ret, des_ret;
XTextExtents16 (f, &ch, 1, &dir_ret, &asc_ret, &des_ret, &g);
- int wcw = WCWIDTH (*t); if (wcw > 0) g.width = (g.width + wcw - 1) / wcw;
+ int wcw = WCWIDTH (*t);
+ if (wcw > 0) g.width = (g.width + wcw - 1) / wcw;
if (width < g.width) width = g.width;
}
// check wether character overlaps previous/next character
int w = xcs->rbearing - xcs->lbearing;
- int wcw = WCWIDTH (unicode);
+ int wcw = max (WCWIDTH (unicode), 1);
careful = xcs->lbearing < 0 || xcs->rbearing > prop->width * wcw;
XftTextExtents32 (term->xdisp, f, &ch, 1, &g);
int w = g.width - g.x;
- int wcw = WCWIDTH (unicode);
+ int wcw = max (WCWIDTH (unicode), 1);
careful = g.x > 0 || w > prop->width * wcw;