void _xfputc (char c, char *font, Bool bold) { if (c==12) { clg(); _x_proportional = _y_proportional = 0; return; } if (c==13) { _x_proportional = 0; //_y_proportional += 8; // compact _y_proportional += 9; // normal line spacing return; } if ((_xchar_proportional = _xfindchar( (char) (c - 32), (char *) font)) == -1) return; if (_x_proportional + _xchar_proportional[0] >= DisplayWidth(0, 0)) _xfputc (13, font, bold); putsprite (SPR_OR, _x_proportional, _y_proportional, _xchar_proportional); if (bold) putsprite (SPR_OR, ++_x_proportional, _y_proportional, _xchar_proportional); _x_proportional += _xchar_proportional[0]; }
void XDrawString(Display *display, Drawable win, GC *gc, int x, int y, char *text, int textlen) { struct _XWIN *mywin; mywin = (void *) win; // ======= I have absolutely no idea on why this is necessary ! ======= //gc = *gc; // ==================================================================== #ifdef _DEBUG_ printf (" Drawstring; pick in gc: %u ... ", gc); printf (" Font ptr: %u ", gc->values.font); #endif _x_proportional = mywin->a_x + x; _y_proportional = mywin->a_y + y; for (_X_int1=0; _X_int1<textlen; _xfputc(text[_X_int1++], gc->values.font, False)); }