]> git.draconx.ca Git - gob-dx.git/blobdiff - src/out.c
Replace gnulib patch with new common helper macro.
[gob-dx.git] / src / out.c
index 56fe45969146c1d9f1b9f36276225349555f816d..effa4d3a6757b19fc9a4ebb9cb177540c8d01099 100644 (file)
--- a/src/out.c
+++ b/src/out.c
@@ -1,3 +1,28 @@
+/*
+ * GOB C Preprocessor
+ * Copyright (C) 1999,2000 the Free Software Foundation.
+ * Copyright (C) 2000 Eazel, Inc.
+ * Copyright (C) 2001-2011 George (Jiri) Lebl
+ *
+ * Author: George (Jiri) Lebl
+ *
+ * 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 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>
 #include <stdio.h>
 #include <stdarg.h>
 #include <glib.h>
@@ -13,6 +38,8 @@ static gboolean in_outh = TRUE;
 int outphline = 1;
 static gboolean in_outph = TRUE;
 
+extern char file_sep;
+
 static int
 strchrcnt(char *s, char c)
 {
@@ -29,6 +56,9 @@ out_printf(FILE *fp, const char *format,...)
        va_list ap;
        char *s;
 
+       if (no_write)
+               return;
+
        va_start(ap, format);
        s = g_strdup_vprintf(format, ap);
        va_end(ap);
@@ -49,7 +79,7 @@ out_printf(FILE *fp, const char *format,...)
 void
 out_addline_infile(FILE *fp, int line)
 {
-       if(no_lines)
+       if(no_lines || no_write)
                return;
 
        if(fp == out) {
@@ -70,7 +100,7 @@ out_addline_infile(FILE *fp, int line)
 void
 out_addline_outfile(FILE *fp)
 {
-       if(no_lines)
+       if(no_lines || no_write)
                return;
 
        if(fp == out) {
@@ -87,9 +117,12 @@ out_addline_outfile(FILE *fp)
                fprintf(fp,"#line %d \"%s.h\"\n",outhline,filebase);
                in_outh = TRUE;
        } else if(fp == outph) {
+               char sep[2] = {0,0};
                if(in_outph) return;
                outphline++;
-               fprintf(fp,"#line %d \"%s-private.h\"\n",outphline,filebase);
+               if (file_sep != 0)
+                       sep[0] = file_sep;
+               fprintf(fp,"#line %d \"%s%sprivate.h\"\n",outphline,filebase,sep);
                in_outph = TRUE;
        } else
                g_assert_not_reached();