Part of the swftools package.
Copyright (c) 2001 Matthias Kramm <kramm@quiss.org>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
- This file is distributed under the GPL, see file COPYING for details */
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#include "../config.h"
{"e","html"},
{"p","placements"},
{"u","used"},
- {"v","verbose"},
{"V","version"},
{"d","hex"},
{0,0}
fontnum++;
}
+static U8 printable(U8 a)
+{
+ if(a<32 || a==127) return '.';
+ else return a;
+}
void hexdumpTag(TAG*tag, char* prefix)
{
int t;
+ char ascii[32];
printf(" %s-=> ",prefix);
for(t=0;t<tag->len;t++) {
printf("%02x ", tag->data[t]);
+ ascii[t&15] = printable(tag->data[t]);
if((t && ((t&15)==15)) || (t==tag->len-1))
{
+ int s,p=((t-1)&15)+1;
+ ascii[p] = 0;
+ for(s=p;s<16;s++) {
+ printf(" ");
+ }
if(t==tag->len-1)
- printf("\n");
+ printf(" %s\n", ascii);
else
- printf("\n %s-=> ",prefix);
+ printf(" %s\n %s-=> ",ascii,prefix);
}
}
}
char myprefix[128];
if(!name) {
dumperror("Unknown tag:0x%03x", tag->id);
- tag = tag->next;
- continue;
+ //tag = tag->next;
+ //continue;
}
- printf("[%03x] %9ld %s%s", tag->id, tag->len, prefix, swf_TagGetName(tag));
+ if(swf_TagGetName(tag)) {
+ printf("[%03x] %9ld %s%s", tag->id, tag->len, prefix, swf_TagGetName(tag));
+ } else {
+ printf("[%03x] %9ld %sUNKNOWN TAG %03x", tag->id, tag->len, prefix, tag->id);
+ }
if(tag->id == ST_FREECHARACTER) {
U16 id = swf_GetU16(tag);