diff options
author | scuri <scuri> | 2009-06-23 20:55:28 +0000 |
---|---|---|
committer | scuri <scuri> | 2009-06-23 20:55:28 +0000 |
commit | f658209d25477c490bf1892e68a0fd1384c1dded (patch) | |
tree | 1d4a2a1088db5ad62acaa3f97f13ccc8906c33b1 /src/drv/cdps.c | |
parent | 0610dd4f3064220a2e8fb1d8dc120044eb6c64a8 (diff) |
*** empty log message ***
Diffstat (limited to 'src/drv/cdps.c')
-rw-r--r-- | src/drv/cdps.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/drv/cdps.c b/src/drv/cdps.c index 0d23608..d5d62fe 100644 --- a/src/drv/cdps.c +++ b/src/drv/cdps.c @@ -871,9 +871,9 @@ static void cdfchord(cdCtxCanvas *ctxcanvas, double xc, double yc, double w, dou static void cdtransform(cdCtxCanvas *ctxcanvas, const double* matrix); -static void cdtext(cdCtxCanvas *ctxcanvas, int x, int y, const char *s) +static void cdtext(cdCtxCanvas *ctxcanvas, int x, int y, const char *s, int len) { - int i, length; + int i; int ascent, height, baseline; update_fill(ctxcanvas, 0); @@ -889,7 +889,7 @@ static void cdtext(cdCtxCanvas *ctxcanvas, int x, int y, const char *s) fprintf(ctxcanvas->file, "N 0 0 M\n"); putc('(', ctxcanvas->file); - for (length = (int)strlen(s), i=0; i<length; i++) + for (i=0; i<len; i++) { if (s[i]=='(' || s[i]==')') putc('\\', ctxcanvas->file); @@ -975,7 +975,9 @@ static void cdtext(cdCtxCanvas *ctxcanvas, int x, int y, const char *s) if (ctxcanvas->eps) { int xmin, xmax, ymin, ymax; + s = cdStrDupN(s, len); cdCanvasGetTextBox(ctxcanvas->canvas, x, y, s, &xmin, &xmax, &ymin, &ymax); + free((char*)s); bbox(ctxcanvas, xmin, ymin); bbox(ctxcanvas, xmax, ymax); } |