X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;ds=inline;f=src%2Fswfdump.c;h=294a3f24d836b2a2eab843fee267346451dcc10d;hb=fb4dfe198650e8ab64eacffc334389d5fe186355;hp=1f038a67245e55f05c43aa4bca37d71455e5ef2f;hpb=e284a69d156751b38ac92e6eb561942c7a8602ed;p=swftools.git
diff --git a/src/swfdump.c b/src/swfdump.c
index 1f038a6..294a3f2 100644
--- a/src/swfdump.c
+++ b/src/swfdump.c
@@ -51,6 +51,7 @@ static char * indent = " ";
static int placements = 0;
static int action = 0;
static int html = 0;
+static int xhtml = 0;
static int xy = 0;
static int showtext = 0;
static int showshapes = 0;
@@ -63,15 +64,16 @@ static struct options_t options[] = {
{"D", "full"},
{"V", "version"},
{"e", "html"},
+{"E", "xhtml"},
{"a", "action"},
{"t", "text"},
{"s", "shapes"},
{"p", "placements"},
+{"b", "bbox"},
{"X", "width"},
{"Y", "height"},
{"r", "rate"},
{"f", "frames"},
-{"b", "bbox"},
{"d", "hex"},
{"u", "used"},
{0,0}
@@ -103,6 +105,11 @@ int args_callback_option(char*name,char*val)
html = 1;
return 0;
}
+ else if(name[0]=='E') {
+ html = 1;
+ xhtml = 1;
+ return 0;
+ }
else if(name[0]=='X') {
xy |= 1;
return 0;
@@ -159,6 +166,7 @@ void args_callback_usage(char *name)
printf("-t , --text Show text fields (like swfstrings).\n");
printf("-s , --shapes Show shape coordinates/styles\n");
printf("-p , --placements Show placement information\n");
+ printf("-b , --bbox Print tag's bounding boxes\n");
printf("-X , --width Prints out a string of the form \"-X width\".\n");
printf("-Y , --height Prints out a string of the form \"-Y height\".\n");
printf("-r , --rate Prints out a string of the form \"-r rate\".\n");
@@ -815,23 +823,34 @@ int main (int argc,char ** argv)
fprintf(stderr, "Fileversion>9\n");
exit(1);
}
- printf("\n", xsize, ysize, fileversions[swf.fileVersion],
- filename, filename, xsize, ysize);
+
+ if(xhtml) {
+ printf("\n\n", filename, xsize, ysize, filename);
+ } else {
+ printf("\n", xsize, ysize, fileversions[swf.fileVersion],
+ filename, filename, xsize, ysize);
+ }
return 0;
}
printf("[HEADER] File version: %d\n", swf.fileVersion);
@@ -915,8 +934,16 @@ int main (int argc,char ** argv)
printf(" object");
printf(" at depth %04d", swf_GetDepth(tag));
+
+ if(tag->data[0]&64) {
+ SWFPLACEOBJECT po;
+ swf_GetPlaceObject(tag, &po);
+ printf(" (clip to %04d)", po.clipdepth);
+ swf_PlaceObjectFree(&po);
+ }
if(swf_GetName(tag))
printf(" name \"%s\"",swf_GetName(tag));
+
}
else if(tag->id == ST_REMOVEOBJECT) {
printf(" removes id %04d from depth %04d", swf_GetPlaceID(tag), swf_GetDepth(tag));