X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fmodules%2Fswfaction.c;h=736583a4115fb54b6e3710bb1606c3473f69513f;hb=51c19ac56edb61ae987df0488bb8cd0f8884b37e;hp=d70d6778933740c3a3e7398504ac51f1bdccb7a3;hpb=939dce305129b17c7207d5fa606e7e5ebd8bad60;p=swftools.git diff --git a/lib/modules/swfaction.c b/lib/modules/swfaction.c index d70d677..736583a 100644 --- a/lib/modules/swfaction.c +++ b/lib/modules/swfaction.c @@ -288,24 +288,27 @@ void swf_DumpActions(ActionTAG*atag, char*prefix) if(type == 0) { printf(" String:\"%s\"", value); } else if (type == 1) { - printf(" Float:\"%f\"", *(float*)value); + printf(" Float:%f", *(float*)value); } else if (type == 2) { printf(" NULL"); } else if (type == 4) { printf(" register:%d", *value); } else if (type == 5) { - printf(" %s", *value?"true":"false"); + printf(" bool:%s", *value?"true":"false"); } else if (type == 6) { - printf(" %f", *(double*)value); + printf(" float:%f", *(double*)value); } else if (type == 7) { - printf(" %d", *(int*)value); + printf(" int:%d", *(int*)value); } else if (type == 8) { printf(" Lookup:%d", *value); + } else { + printf(" UNKNOWN[%02x]",type); } } break; } data += OpAdvance(*cp, data); - if(*cp!='c' || !poollen) + if((*cp!='c' || !poollen) && + (*cp!='p' || !(data<&atag->data[atag->len]))) cp++; if(poollen) poollen--; @@ -315,14 +318,14 @@ void swf_DumpActions(ActionTAG*atag, char*prefix) { int nl = ((atag->data+atag->len)-data); int t; - printf(" remainder of %d bytes:\"", nl); + printf(" (remainder of %d bytes:\"", nl); for(t=0;tnext; @@ -745,8 +748,8 @@ void action_GetUrl(char* url, char* label) int l2= strlen(label); char*ptr = malloc(l1+l2+2); strcpy(ptr, url); - strcat(&ptr[l2+1], label); - swf_AddActionTAG(ACTION_GOTOLABEL, ptr, strlen(ptr)); + strcpy(&ptr[l1+1], label); + swf_AddActionTAG(ACTION_GETURL, ptr, l1+l2+2); } //TODO: void action_DefineFunction(U8*data, int len) {}