#include <stdarg.h>
#include <glib.h>
-#include "out.h"
-
-extern FILE *out;
-extern FILE *outh;
-extern FILE *outph;
+#include "main.h"
-extern gboolean for_cpp;
-
-extern char *filename;
-extern char *filebase;
+#include "out.h"
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)
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);
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();
-
}