Code

improve piping
authorishmal <ishmal@users.sourceforge.net>
Wed, 4 Jun 2008 19:41:06 +0000 (19:41 +0000)
committerishmal <ishmal@users.sourceforge.net>
Wed, 4 Jun 2008 19:41:06 +0000 (19:41 +0000)
buildtool.cpp

index 414c8e3fc85e30373c3c445a16437e3a77c0d1cb..471a8194cac220c321b6f9e496377405ea07122a 100644 (file)
@@ -38,7 +38,7 @@
  *
  */
 
-#define BUILDTOOL_VERSION  "BuildTool v0.9.2"
+#define BUILDTOOL_VERSION  "BuildTool v0.9.3"
 
 #include <stdio.h>
 #include <fcntl.h>
@@ -3551,14 +3551,31 @@ void MakeBase::error(const char *fmt, ...)
 void MakeBase::status(const char *fmt, ...)
 {
     va_list args;
-    va_start(args,fmt);
     //fprintf(stdout, " ");
+    va_start(args,fmt);
     vfprintf(stdout, fmt, args);
+    va_end(args);
     fprintf(stdout, "\n");
+    fflush(stdout);
+}
+
+
+/**
+ *  Print a printf()-like formatted trace message
+ */
+void MakeBase::trace(const char *fmt, ...)
+{
+    va_list args;
+    fprintf(stdout, "Make: ");
+    va_start(args,fmt);
+    vfprintf(stdout, fmt, args);
     va_end(args) ;
+    fprintf(stdout, "\n");
+    fflush(stdout);
 }
 
 
+
 /**
  *  Resolve another path relative to this one
  */
@@ -3571,20 +3588,6 @@ String MakeBase::resolve(const String &otherPath)
 }
 
 
-/**
- *  Print a printf()-like formatted trace message
- */
-void MakeBase::trace(const char *fmt, ...)
-{
-    va_list args;
-    va_start(args,fmt);
-    fprintf(stdout, "Make: ");
-    vfprintf(stdout, fmt, args);
-    fprintf(stdout, "\n");
-    va_end(args) ;
-}
-
-
 
 /**
  *  Check if a given string matches a given regex pattern
@@ -4048,8 +4051,10 @@ bool MakeBase::executeCommand(const String &command,
 
 #else //do it unix-style
 
+    String pipeCommand = command;
+    pipeCommand.append("  2>&1");
     String s;
-    FILE *f = popen(command.c_str(), "r");
+    FILE *f = popen(pipeCommand.c_str(), "r");
     int errnum = 0;
     if (f)
         {