summaryrefslogtreecommitdiff
path: root/gs/psi/fapiufst.c
diff options
context:
space:
mode:
Diffstat (limited to 'gs/psi/fapiufst.c')
-rw-r--r--gs/psi/fapiufst.c26
1 files changed, 19 insertions, 7 deletions
diff --git a/gs/psi/fapiufst.c b/gs/psi/fapiufst.c
index b10b69fda..a855a7872 100644
--- a/gs/psi/fapiufst.c
+++ b/gs/psi/fapiufst.c
@@ -919,6 +919,18 @@ static void release_glyphs(fapi_ufst_server *r, ufst_common_font_data *d)
}
}
+static FAPI_retcode get_fontmatrix(FAPI_server *I, gs_matrix *m)
+{
+ gs_matrix *base_font_matrix = &I->initial_FontMatrix;
+ m->xx = I->initial_FontMatrix.xx;
+ m->xy = I->initial_FontMatrix.xy;
+ m->yx = I->initial_FontMatrix.yx;
+ m->yy = I->initial_FontMatrix.yy;
+ m->tx = I->initial_FontMatrix.tx;
+ m->ty = I->initial_FontMatrix.ty;
+ return 0;
+}
+
static FAPI_retcode get_char_width(FAPI_server *server, FAPI_font *ff, FAPI_char_ref *c, FAPI_metrics *metrics)
{ fapi_ufst_server *r = If_to_I(server);
UW16 buffer[2];
@@ -961,24 +973,23 @@ static int export_outline(fapi_ufst_server *r, PIFOUTLINE pol, FAPI_path *p)
segment = (LPSB8)((LPSB8)(outchar->loop) + outchar->loop[i].segmt_offset);
points = (PINTRVECTOR)((LPSB8)(outchar->loop) + outchar->loop[i].coord_offset);
for(j=0; j<num_segmts; j++) {
- int code;
if(*segment == 0x00) {
- if ((code = p->moveto(p, points->x, points->y)) != 0)
- return code;
+ if ((p->gs_error = p->moveto(p, points->x, points->y)) != 0)
+ return p->gs_error;
points++;
} else if (*segment == 0x01) {
- if ((code = p->lineto(p, points->x, points->y)) != 0)
- return code;
+ if ((p->gs_error = p->lineto(p, points->x, points->y)) != 0)
+ return p->gs_error;
points++;
} else if (*segment == 0x02) {
points+=2;
return e_invalidfont; /* This must not happen */
} else if (*segment == 0x03) {
- if ((code = p->curveto(p, points[0].x, points[0].y,
+ if ((p->gs_error = p->curveto(p, points[0].x, points[0].y,
points[1].x, points[1].y,
points[2].x, points[2].y)) < 0)
- return code;
+ return p->gs_error;
points+=3;
} else
return e_invalidfont; /* This must not happen */
@@ -1295,6 +1306,7 @@ static const FAPI_server If0 = {
get_font_proportional_feature,
can_retrieve_char_by_name,
can_replace_metrics,
+ get_fontmatrix,
get_char_width,
get_char_raster_metrics,
get_char_raster,