#define RS_redraw 0x02000000UL
// 5 custom bits for extensions
-#define RS_customCount 32
-#define RS_customMask 0x00f80000UL
+#define RS_customCount 16
+#define RS_customMask 0x00780000UL
#define RS_customShift 19
-// other flags
-#define RS_Careful 0x10000000UL /* be careful when drawing these */
-
-#define RS_fontCount rxvt_fontset::fontCount
-#define RS_fontMask 0xf0000000UL // plenty(?) of fonts, includes RS_Careful
-#define RS_fontShift 28
+// must have space for rxvt_fontset::fontCount * 2 + 2 values
+#define RS_fontMask 0xf8000000UL // includes RS_Careful
+#define RS_fontShift 27
+#define RS_Careful 0x08000000UL /* be careful when drawing these */
#define RS_styleCount 4
#define RS_styleMask (RS_Bold | RS_Italic)
void
rxvt_fontset::push_font (rxvt_font *font)
{
+ // the fontCount index is reserved for the overflow font, it is only
+ // necessary when we get fontCount or more fonts, as they cannot be
+ // represented in the rendition.
if (fonts.size () == fontCount)
{
rxvt_font *f = new rxvt_font_overflow (this);
{
char *fontdesc;
- enum { fontCount = 3 }; // must be power-of-two - 1, also has to match RS_fontMask in rxvt.h
- enum { firstFont = 2 }; // index of first font in set
+ enum { fontCount = 15 }; // must be power-of-two - 1, also has to match RS_fontMask in rxvt.h
+ enum { firstFont = 2 }; // index of first font in set
rxvt_fontset (rxvt_term *term);
~rxvt_fontset ();