X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fmodules%2Fswftext.c;h=e62737d4aff71473725edd01af64c7388e57ac72;hb=f6619bada04df55c15abc144c7aa05dcf4835c11;hp=ee3923ea15dfa1084f7f5ca75c43aa8873945eb7;hpb=644837a3d0f18ac76d55c9ba438246cb5a2927d6;p=swftools.git diff --git a/lib/modules/swftext.c b/lib/modules/swftext.c index ee3923e..e62737d 100644 --- a/lib/modules/swftext.c +++ b/lib/modules/swftext.c @@ -310,7 +310,8 @@ int swf_FontExtract_DefineFont2(int id, SWFFONT * font, TAG * tag) swf_GetSimpleShape(tag, &(font->glyph[t].shape)); } - swf_SetTagPos(tag, offset[glyphcount]+offset_start); + if(glyphcount) + swf_SetTagPos(tag, offset[glyphcount]+offset_start); free(offset); @@ -801,6 +802,7 @@ int swf_FontInitUsage(SWFFONT * f) f->use->is_reduced = 0; f->use->used_glyphs = 0; f->use->chars = (int*)rfx_calloc(sizeof(f->use->chars[0]) * f->numchars); + f->use->glyphs_specified = 0; return 0; } @@ -942,10 +944,11 @@ int swf_FontSetDefine2(TAG * tag, SWFFONT * f) swf_SetU8(tag, 0); //reserved flags if (f->name) { /* font name */ - swf_SetU8(tag, strlen((const char*)f->name)); - swf_SetBlock(tag, f->name, strlen((const char*)f->name)); + swf_SetU8(tag, strlen((const char*)f->name)+1); + swf_SetBlock(tag, f->name, strlen((const char*)f->name)+1); } else { /* font name (="") */ + swf_SetU8(tag, 1); swf_SetU8(tag, 0); } /* number of glyphs */ @@ -1322,7 +1325,7 @@ SRECT swf_TextCalculateBBoxUTF8(SWFFONT * font, U8 * s, int scale) } -SWFFONT *swf_ReadFont(char *filename) +SWFFONT *swf_ReadFont(const char *filename) { int f; SWF swf; @@ -1510,7 +1513,7 @@ void swf_WriteFont(SWFFONT * font, char *filename) } -void swf_SetEditText(TAG * tag, U16 flags, SRECT r, char *text, RGBA * color, int maxlength, U16 font, U16 height, EditTextLayout * layout, char *variable) +void swf_SetEditText(TAG * tag, U16 flags, SRECT r, const char *text, RGBA * color, int maxlength, U16 font, U16 height, EditTextLayout * layout, const char *variable) { swf_SetRect(tag, &r); swf_ResetWriteBits(tag); @@ -1551,7 +1554,7 @@ void swf_SetEditText(TAG * tag, U16 flags, SRECT r, char *text, RGBA * color, in swf_SetString(tag, (U8*)text); } -SRECT swf_SetDefineText(TAG * tag, SWFFONT * font, RGBA * rgb, char *text, int scale) +SRECT swf_SetDefineText(TAG * tag, SWFFONT * font, RGBA * rgb, const char *text, int scale) { SRECT r; U8 gbits, abits; @@ -1674,7 +1677,7 @@ void swf_FontCreateLayout(SWFFONT * f) } } -void swf_DrawText(drawer_t * draw, SWFFONT * font, int size, char *text) +void swf_DrawText(drawer_t * draw, SWFFONT * font, int size, const char *text) { U8 *s = (U8 *) text; int advance = 0;