X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fas3%2Fmain.c;h=2835556f78358f3cf4d8ed98b2880cd38f5b220f;hb=8a7da6f65154bb96d47695cbcbf42684cccb0aad;hp=6a664a348624d89c59e78430ece5c7bc0c9de871;hpb=ff7bd81590dc66a135f8ac513d0fb9d5c4c95bf9;p=swftools.git diff --git a/lib/as3/main.c b/lib/as3/main.c index 6a664a3..2835556 100644 --- a/lib/as3/main.c +++ b/lib/as3/main.c @@ -27,6 +27,7 @@ #include "../rfxswf.h" #include "../os.h" #include "files.h" +#include "common.h" #include "tokenizer.h" #include "parser.tab.h" #include "parser.h" @@ -35,7 +36,7 @@ void test_lexer(char*filename) { - char*fullfilename = find_file(filename); + char*fullfilename = find_file(filename, 1); enter_file(filename, fullfilename, 0); FILE*fi = fopen(fullfilename, "rb"); as3_file_input(fi); @@ -51,6 +52,7 @@ void test_lexer(char*filename) } } +extern int a3_debug; int main(int argn, char*argv[]) { char*filename = 0; @@ -61,35 +63,57 @@ int main(int argn, char*argv[]) exit(1); } filename=argv[argn-1]; + + //a3_debug = 1; //if bison was called with -t as3_add_include_dir(getcwd(buf, 512)); + registry_init(); + int t=0; + char*mainclass = 0; for(t=1;tdata, m->len); //memfile_close(m); - as3_parse_file(filename); + if(!strcmp(filename, ".")) { + as3_parse_directory("."); + } else { + as3_parse_file(filename); + } void*code = as3_getcode(); @@ -103,11 +127,14 @@ int main(int argn, char*argv[]) TAG*tag = swf.firstTag = swf_InsertTag(0, ST_DOABC); swf_WriteABC(tag, code); - if(as3_getglobalclass()) { + if(!mainclass) + mainclass = as3_getglobalclass(); + + if(mainclass) { tag = swf_InsertTag(tag, ST_SYMBOLCLASS); swf_SetU16(tag, 1); swf_SetU16(tag, 0); - swf_SetString(tag, as3_getglobalclass()); + swf_SetString(tag, mainclass); } else { printf("Warning: no global public MovieClip subclass\n"); }