File xrdb-traditional-cpp.diff of Package xorg-x11

--- xrdb.c.orig	2010-06-25 12:46:40.000000000 +0200
+++ xrdb.c	2010-06-25 14:13:12.000000000 +0200
@@ -142,6 +142,7 @@
 static Display *dpy;
 static Buffer buffer;
 static Entries newDB;
+static int cpp_option_in_use=0;
 
 static void fatal(char *, ...);
 static void addstring ( String *arg, const char *s );
@@ -807,6 +808,7 @@
 	    } else if (isabbreviation ("-cpp", arg, 2)) {
 		if (++i >= argc) Syntax ();
 		cpp_program = argv[i];
+		cpp_option_in_use=1;
 		continue;
 	    } else if (!strcmp ("-n", arg)) {
 		dont_execute = True;
@@ -1166,12 +1168,17 @@
 	    fclose(input);
 	    (void) mktemp(tmpname3);
 	    if((cmd = (char *)
-		malloc(strlen(cpp_program) + strlen(includes.val) +
+		malloc(strlen(cpp_program) + strlen(includes.val) + strlen(" -traditional-cpp ") +
 		       1 + strlen(tmpname2) + 3 + strlen(tmpname3) + 1)) ==
 	       NULL)
 		fatal("%s: Out of memory\n", ProgramName);
-	    sprintf(cmd, "%s%s %s > %s", cpp_program, includes.val,
+	    if (cpp_option_in_use)) {
+	        sprintf(cmd, "%s%s %s > %s", cpp_program, includes.val,
 		    tmpname2, tmpname3);
+	    } else {
+	        sprintf(cmd, "%s -traditional-cpp %s %s > %s", cpp_program, includes.val,
+		    tmpname2, tmpname3);
+	    }
 	    if (system(cmd) < 0)
 		fatal("%s: cannot run '%s'\n", ProgramName, cmd);
 	    free(cmd);
@@ -1185,10 +1192,14 @@
 	    fflush(stdin);
 	    fseek(stdin, 0, 0);
 	    if((cmd = (char *)
-		malloc(strlen(cpp_program) + strlen(includes.val) + 1)) ==
+		malloc(strlen(cpp_program) + strlen(" -traditional-cpp ") + strlen(includes.val) + 1)) ==
 	       NULL)
 		fatal("%s: Out of memory\n", ProgramName);
-	    sprintf(cmd, "%s%s", cpp_program, includes.val);
+	    if (cpp_option_in_use) {
+	       sprintf(cmd, "%s%s", cpp_program, includes.val);
+	    } else {
+	       sprintf(cmd, "%s -traditional-cpp %s", cpp_program, includes.val);
+	    }
 	    if (!(input = popen(cmd, "r")))
 		fatal("%s: cannot run '%s'\n", ProgramName, cmd);
 	    free(cmd);
@@ -1203,15 +1214,21 @@
 #ifdef WIN32
 	    (void) mktemp(tmpname3);
 	    if((cmd = (char *)
-		malloc(strlen(cpp_program) + strlen(includes.val) +
+		malloc(strlen(cpp_program) + strlen(" -traditional-cpp ") + strlen(includes.val) +
 		       1 + strlen(defines.val) + 1 +
 		       strlen(filename ? filename : "") + 3 +
 		       strlen(tmpname3) + 1)) ==
 	       NULL)
 		fatal("%s: Out of memory\n", ProgramName);
-	    sprintf(cmd, "%s%s %s %s > %s", cpp_program,
-		    includes.val, defines.val,
-		    filename ? filename : "", tmpname3);
+	    if (cpp_option_in_use) {
+	       sprintf(cmd, "%s%s %s %s > %s", cpp_program,
+		       includes.val, defines.val,
+		       filename ? filename : "", tmpname3);
+	    } else {
+	       sprintf(cmd, "%s -traditional-cpp %s %s %s > %s", cpp_program,
+		       includes.val, defines.val,
+		       filename ? filename : "", tmpname3);
+	    }
 	    if (system(cmd) < 0)
 		fatal("%s: cannot run '%s'\n", ProgramName, cmd);
 	    free(cmd);
@@ -1219,14 +1236,20 @@
 		fatal("%s: can't open file '%s'\n", ProgramName, tmpname3);
 #else
 	    if((cmd = (char *)
-		malloc(strlen(cpp_program) + strlen(includes.val) + 1 +
+		malloc(strlen(cpp_program) + strlen(" -traditional-cpp ") + strlen(includes.val) + 1 +
 		       strlen(defines.val) + 1 +
 		       strlen(filename ? filename : "") + 1)) ==
 	       NULL)
 		fatal("%s: Out of memory\n", ProgramName);
-	    sprintf(cmd, "%s%s %s %s", cpp_program,
-		    includes.val, defines.val,
-		    filename ? filename : "");
+	    if (cpp_option_in_use) {
+	       sprintf(cmd, "%s%s %s %s", cpp_program,
+		       includes.val, defines.val,
+		       filename ? filename : "");
+	    } else {
+	       sprintf(cmd, "%s -traditional-cpp %s %s %s", cpp_program,
+		       includes.val, defines.val,
+		       filename ? filename : "");
+	    }
 	    if (!(input = popen(cmd, "r")))
 		fatal("%s: cannot run '%s'\n", ProgramName, cmd);
 	    free(cmd);
openSUSE Build Service is sponsored by