1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
#include <X11/Intrinsic.h>
#include <X11/StringDefs.h>
#include "TabString.h"
/*
* Like DrawImageString, except it takes an additional "tabs"
* argument, used to specify what horizontal pixel position to
* move to when tab characters are present in the string. If
* the "tabs" argument is NULL, works exactly like its
* counterpart.
*/
void
XfwfDrawImageString(display, drawable, gc, x, y, string, length, tabs)
Display *display;
Drawable drawable;
GC gc;
int x;
int y;
String string;
int length;
int *tabs;
{
register char *p, *ep;
register int tx, tab;
tab = tx = 0;
for (p = string; length; )
{
ep = strnchr(p, '\t', length);
if (ep && tabs)
{
XDrawImageString(display, drawable, gc, x+tx, y,
p, ep - p);
tx = tabs[tab++];
length -= ep - p + 1;
p = ep + 1;
}
else
{
XDrawImageString(display, drawable, gc, x+tx, y,
p, length);
break;
}
}
}
|