}
pos = run_command (depth, rule->cmd_ids[i], from, to, ctx);
if (pos < 0)
- MERROR (MERROR_DRAW, -1);
+ return pos;
consumed = pos > from;
if (consumed)
from = pos;
break;
}
if (pos < 0)
- MERROR (MERROR_DRAW, -1);
+ return pos;
if (MDEBUG_FLAG () > 2)
MDEBUG_PRINT (")");
return (pos);
MFLTGlyph *g = GREF (ctx->out, from_idx + i);
SET_MEASURED (g, 1);
- if (a->xadv || a->yadv)
+ if (a->advance_is_absolute)
{
- if (a->advance_is_absolute)
- {
- g->xadv = a->xadv;
- g->yadv = a->yadv;
- }
- else
- {
- g->xadv += a->xadv;
- g->yadv += a->yadv;
- }
+ g->xadv = a->xadv;
+ g->yadv = a->yadv;
+ }
+ else if (a->xadv || a->yadv)
+ {
+ g->xadv += a->xadv;
+ g->yadv += a->yadv;
}
if (a->xoff || a->yoff)
{
to = run_cond (depth, &cmd->body.cond, from, to, ctx);
else if (cmd->type == FontLayoutCmdTypeOTF)
to = run_otf (depth, &cmd->body.otf, from, to, ctx);
- if (to < 0)
- MERROR (MERROR_FLT, -1);
return to;
}