X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fswfextract.c;h=4eeca601e3fdfd71686a138028bd3a6ad92cb7cc;hb=275179c87d277416cfcc0d7a346ed60c4545ba31;hp=f66dd83ffae1660a6d5ef4d5f88a46455ff78872;hpb=cccb7ad998a2f0c6677fffabbb1c849e837b9eb6;p=swftools.git diff --git a/src/swfextract.c b/src/swfextract.c index f66dd83..4eeca60 100644 --- a/src/swfextract.c +++ b/src/swfextract.c @@ -483,7 +483,7 @@ int isOfType(int t, TAG*tag) if(t == 4 && (tag->id == ST_DEFINESOUND)) { show = 1; } - if(t == 5 && (tag->id == ST_DEFINEFONT || tag->id == ST_DEFINEFONT2)) { + if(t == 5 && (tag->id == ST_DEFINEFONT || tag->id == ST_DEFINEFONT2 || tag->id == ST_DEFINEFONT3)) { show = 1; } return show; @@ -586,8 +586,6 @@ void handlefont(SWF*swf, TAG*tag) printf("Couldn't extract font %d\n", id); return; } - if(!f->layout) - swf_FontCreateLayout(f); swf_WriteFont(f, filename); swf_FontFree(f); @@ -675,13 +673,17 @@ void handlejpeg(TAG*tag) else if(tag->id == ST_DEFINEBITSJPEG3 && tag->len>6) { U32 end = GET32(&tag->data[2])+6; int pos = findjpegboundary(&tag->data[6], tag->len-6); - if(pos<0) - return; - pos+=6; - fi = save_fopen(filename, "wb"); - fwrite(&tag->data[6], pos-6, 1, fi); - fwrite(&tag->data[pos+4], end-(pos+4), 1, fi); - fclose(fi); + if(pos<0) { + fi = save_fopen(filename, "wb"); + fwrite(&tag->data[6], end-6, 1, fi); + fclose(fi); + } else { + pos+=6; + fi = save_fopen(filename, "wb"); + fwrite(&tag->data[6], pos-6, 1, fi); + fwrite(&tag->data[pos+4], end-(pos+4), 1, fi); + fclose(fi); + } } else { int id = GET16(tag->data);