X-Git-Url: http://git.draconx.ca/gitweb/gob-dx.git/blobdiff_plain/6e77e91bbb048a0ee1a072715c0ce808c169ab38..8cb6370effd9f2dacc6dc9b662a43ea19ee637ac:/src/main.c diff --git a/src/main.c b/src/main.c index 1b2b19c..d706cef 100644 --- a/src/main.c +++ b/src/main.c @@ -21,7 +21,9 @@ #include "config.h" #include +#if 0 #include +#endif #include #include #include @@ -31,7 +33,7 @@ #include "out.h" #include "main.h" -char *filename = "stdin"; +char *filename = NULL; int yyparse(void); @@ -527,15 +529,17 @@ add_get_type(void) } static void -add_overrides(Class *c, char *oname) +add_overrides(Class *c, char *oname, gboolean did_gtk_obj) { GList *li; GHashTable *done; char *s; done = g_hash_table_new(g_str_hash,g_str_equal); - s = g_strdup("GtkObject"); /* This was already done */ - g_hash_table_insert(done,s,s); + if(did_gtk_obj) { + s = g_strdup("GtkObject"); /* This was already done */ + g_hash_table_insert(done,s,s); + } for(li=c->nodes;li;li=g_list_next(li)) { Node *n = li->data; char *f; @@ -737,8 +741,7 @@ add_inits(Class *c) out_addline_outfile(out); out_printf(out,"{\n"); if(signals>0 || - arguments>0 || - overrides>0) + arguments>0) out_printf(out, "\tGtkObjectClass *" "gtk_object_class = " @@ -747,7 +750,8 @@ add_inits(Class *c) if(overrides>0) add_overrides(c, - ((FuncArg *)m->args->data)->name); + ((FuncArg *)m->args->data)->name, + (signals>0 || arguments>0)); out_printf(out,"\n\tparent_class = " "gtk_type_class (%s_get_type ());\n", @@ -1270,13 +1274,15 @@ generate_outfiles(void) if(node->type == CCODE_NODE) { CCode *cc = (CCode *)node; FILE *fp; - if(cc->header) + if(cc->header) { fp = outh; - else { + out_printf(fp,"\n"); + } else { fp = out; + out_printf(fp,"\n"); out_addline_infile(fp,cc->line_no); } - out_printf(fp,"\n%s\n",cc->cbuf->str); + out_printf(fp,"%s\n",cc->cbuf->str); if(!cc->header) out_addline_outfile(fp); } else if(node->type == CLASS_NODE) { @@ -1389,6 +1395,7 @@ generate_outfiles(void) "#endif"); } +#if 0 static void usage(poptContext optCon, int exitcode, char *error, char *addl) { @@ -1396,11 +1403,80 @@ usage(poptContext optCon, int exitcode, char *error, char *addl) if (error) fprintf(stderr, "%s: %s", error, addl); exit(exitcode); } +#endif +static void +print_help(void) +{ + fprintf(stderr,"Gob version %s\n\n",VERSION); + fprintf(stderr,"Options:\n" + "\t--help,-h,-? Display this help\n" + "\t--exit-on-warn,-w Exit with an error on warnings\n" + "\t--no-exit-on-warn Don't exit on warnings [default]\n"); +} + +static void +parse_options(int argc, char *argv[]) +{ + int i; + int got_file = FALSE; + int no_opts = FALSE; + + filename = NULL; + + for(i=1;i