X-Git-Url: http://git.draconx.ca/gitweb/gob-dx.git/blobdiff_plain/2255b3d84eeb947d4c065332f16e410ae4704c63..774037b15064dcc6e4995c0bba3b24abb1bde35f:/src/out.c diff --git a/src/out.c b/src/out.c index ee1d328..3fdf7cf 100644 --- a/src/out.c +++ b/src/out.c @@ -14,8 +14,11 @@ extern char *filename; extern char *filebase; int outline = 1; +static gboolean in_out = TRUE; int outhline = 1; +static gboolean in_outh = TRUE; int outphline = 1; +static gboolean in_outph = TRUE; static int strchrcnt(char *s, char c) @@ -53,13 +56,16 @@ out_printf(FILE *fp,char *format,...) void out_addline_infile(FILE *fp, int line) { - if(fp == out) + if(fp == out) { outline++; - else if(fp == outh) + in_out = FALSE; + } else if(fp == outh) { outhline++; - else if(fp == outph) + in_outh = FALSE; + } else if(fp == outph) { outphline++; - else + in_outph = FALSE; + } else g_assert_not_reached(); fprintf(fp,"#line %d \"%s\"\n",line,filename); @@ -69,18 +75,23 @@ void out_addline_outfile(FILE *fp) { if(fp == out) { + if(in_out) return; outline++; if(!for_cpp) fprintf(fp,"#line %d \"%s.c\"\n",outline,filebase); else fprintf(fp,"#line %d \"%s.cc\"\n",outline,filebase); + in_out = TRUE; } else if(fp == outh) { + if(in_outh) return; outhline++; fprintf(fp,"#line %d \"%s.h\"\n",outhline,filebase); + in_outh = TRUE; } else if(fp == outph) { + if(in_outph) return; outphline++; fprintf(fp,"#line %d \"%s-private.h\"\n",outphline,filebase); + in_outph = TRUE; } else g_assert_not_reached(); - }