- while(len && (w = textnw(&b->font, buf, len)) > b->w - h)
- buf[--len] = 0;
-
- if(w > b->w)
- return; /* too long */
-
- gcv.foreground = b->fg;
- gcv.background = b->bg;
- if(b->font.set) {
- XChangeGC(dpy, b->gc, GCForeground | GCBackground, &gcv);
- XmbDrawImageString(dpy, b->drawable, b->font.set, b->gc,
- x, y, buf, len);
- }
- else {
- gcv.font = b->font.xfont->fid;
- XChangeGC(dpy, b->gc, GCForeground | GCBackground | GCFont, &gcv);
- XDrawImageString(dpy, b->drawable, b->gc, x, y, buf, len);
- }
-}
-
-static unsigned long
-xloadcolors(Display *dpy, Colormap cmap, const char *colstr)
-{
- XColor color;
- XAllocNamedColor(dpy, cmap, colstr, &color, &color);
- return color.pixel;
+ for(len = MIN(olen, sizeof buf); len && textnw(text, len) > dc.w - h; len--);
+ if(!len)
+ return;
+ memcpy(buf, text, len);
+ if(len < olen)
+ for(i = len; i && i > len - 3; buf[--i] = '.');
+ XSetForeground(dpy, dc.gc, col[ColFG]);
+ if(dc.font.set)
+ XmbDrawString(dpy, dc.drawable, dc.font.set, dc.gc, x, y, buf, len);
+ else
+ XDrawString(dpy, dc.drawable, dc.gc, x, y, buf, len);