X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fswfdump.c;h=a4d9c5e2893f693024f6890c0e74c3b1e2a673a1;hb=64a243ac0abed2a4607a1ed7cfd147ea4aade891;hp=c7500952412d9a436b81da30082b5c403a5eb821;hpb=9c52a1d32d8dd3cdf346696db56962f5451d3968;p=swftools.git diff --git a/src/swfdump.c b/src/swfdump.c index c750095..a4d9c5e 100644 --- a/src/swfdump.c +++ b/src/swfdump.c @@ -393,6 +393,22 @@ void fontcallback2(U16 id,U8 * name) fontnum++; } +void hexdumpTag(TAG*tag, char* prefix) +{ + int t; + printf(" %s-=> ",prefix); + for(t=0;tlen;t++) { + printf("%02x ", tag->data[t]); + if((t && ((t&15)==15)) || (t==tag->len-1)) + { + if(t==tag->len-1) + printf("\n"); + else + printf("\n %s-=> ",prefix); + } + } +} + void dumperror(const char* format, ...) { char buf[1024]; @@ -402,7 +418,8 @@ void dumperror(const char* format, ...) vsprintf(buf, format, arglist); va_end(arglist); - printf("==== Error: %s ====\n", buf); + if(!html && !xy) + printf("==== Error: %s ====\n", buf); } int main (int argc,char ** argv) @@ -582,6 +599,9 @@ int main (int argc,char ** argv) else if(tag->id == ST_REMOVEOBJECT2) { printf(" removes object from depth %04d", swf_GetDepth(tag)); } + else if(tag->id == ST_FREECHARACTER) { + printf(" frees object %04d", swf_GetPlaceID(tag)); + } else if(tag->id == ST_STARTSOUND) { printf(" starts id %04d", swf_GetPlaceID(tag)); } @@ -689,7 +709,7 @@ int main (int argc,char ** argv) swf_GetUsedIDs(tag, used); printf("%s%suses IDs: ", indent, prefix); for(t=0;tpos = used[t]; + swf_SetTagPos(tag, used[t]); printf("%d%s", swf_GetU16(tag), tlen && hex) { - int t; - printf(" %s-=> ",prefix); - for(t=0;tlen;t++) { - printf("%02x ", tag->data[t]); - if((t && ((t&15)==15)) || (t==tag->len-1)) - { - if(t==tag->len-1) - printf("\n"); - else - printf("\n %s-=> ",prefix); - } - } + hexdumpTag(tag, prefix); } tag = tag->next; fflush(stdout);