X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fmodules%2Fswftext.c;h=a01e10b737448876545f7c2fc10a3b57c9d8e067;hb=359c111aa91dbbe9245a1bba2413692c63afdf73;hp=7d8c79a0fcb35aa9c93e8bb3a793973333c3c08c;hpb=bc22161af24c31b2b9ad2732d61146c625d70989;p=swftools.git diff --git a/lib/modules/swftext.c b/lib/modules/swftext.c index 7d8c79a..a01e10b 100644 --- a/lib/modules/swftext.c +++ b/lib/modules/swftext.c @@ -312,6 +312,8 @@ int swf_FontExtract_DefineFont2(int id, SWFFONT * font, TAG * tag) if (glyphcount) /* this _if_ is not in the specs */ swf_GetU16(tag); // fontcodeoffset } + /* TODO: we should use the offset positions, not just + blindly read in shapes */ for (t = 0; t < glyphcount; t++) swf_GetSimpleShape(tag, &(font->glyph[t].shape)); @@ -835,7 +837,7 @@ int swf_FontSetDefine2(TAG * tag, SWFFONT * f) swf_SetBlock(tag, f->name, strlen(f->name)); } else { /* font name (="") */ - swf_SetU8(tag, 0); /*placeholder */ + swf_SetU8(tag, 0); } /* number of glyphs */ swf_SetU16(tag, f->numchars); @@ -866,8 +868,7 @@ int swf_FontSetDefine2(TAG * tag, SWFFONT * f) if(f->glyph[t].shape) { swf_SetSimpleShape(tag, f->glyph[t].shape); } else { - swf_SetU8(tag, 0); - swf_SetU8(tag, 0); + swf_SetU8(tag, 0); //non-edge(1) + edge flags(5) } } } @@ -1019,10 +1020,16 @@ int swf_TextSetInfoRecord(TAG * t, SWFFONT * font, U16 size, RGBA * color, int d else swf_SetRGB(t, color); } - if (dx) + if (dx) { + if(dx>32767 || dx<-32768) + fprintf(stderr, "Warning: Horizontal char position overflow: %d\n", dx); swf_SetS16(t, dx); - if (dy) + } + if (dy) { + if(dy>32767 || dy<-32768) + fprintf(stderr, "Warning: Vertical char position overflow: %d\n", dy); swf_SetS16(t, dy); + } if (font) swf_SetU16(t, size);