small change to drawtext
08bcf721
1 file(s) · +3 −4
| 551 | 551 | ||
| 552 | 552 | void |
|
| 553 | 553 | drawtext(const char *text, ulong col[ColLast], Bool invert) { |
|
| 554 | - | int x, y, w, h; |
|
| 554 | + | int i, x, y, h; |
|
| 555 | 555 | uint len, olen; |
|
| 556 | 556 | XRectangle r = { dc.x, dc.y, dc.w, dc.h }; |
|
| 557 | 557 | char buf[256]; |
|
| 563 | 563 | olen = strlen(text); |
|
| 564 | 564 | len = MIN(olen, sizeof buf); |
|
| 565 | 565 | memcpy(buf, text, len); |
|
| 566 | - | w = 0; |
|
| 567 | 566 | h = dc.font.ascent + dc.font.descent; |
|
| 568 | 567 | y = dc.y + (dc.h / 2) - (h / 2) + dc.font.ascent; |
|
| 569 | 568 | x = dc.x + (h / 2); |
|
| 570 | 569 | /* shorten text if necessary */ |
|
| 571 | - | for(; len && (w = textnw(buf, len)) > dc.w - h; len--); |
|
| 570 | + | for(; len && (i = textnw(buf, len)) > dc.w - h; len--); |
|
| 572 | 571 | if(!len) |
|
| 573 | 572 | return; |
|
| 574 | 573 | if(len < olen) |
|
| 575 | - | memcpy(&buf[MAX(0, len - 3)], "...", 3); |
|
| 574 | + | for(i = len; i >= MAX(0, len - 3); buf[i--] = '.'); |
|
| 576 | 575 | XSetForeground(dpy, dc.gc, col[invert ? ColBG : ColFG]); |
|
| 577 | 576 | if(dc.font.set) |
|
| 578 | 577 | XmbDrawString(dpy, dc.drawable, dc.font.set, dc.gc, x, y, buf, len); |
|