Author: hyperion
Date: Sun Jan 28 04:00:24 2007
New Revision: 25654
URL: 
http://svn.reactos.org/svn/reactos?rev=25654&view=rev
Log:
Fixed buildtime, re-enabled in build scripts
Modified:
    trunk/tools/RosBE/Build-Multi.cmd
    trunk/tools/RosBE/Build.cmd
    trunk/tools/RosBE/Tools/buildtime.c
Modified: trunk/tools/RosBE/Build-Multi.cmd
URL:
http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/Build-Multi.cmd?rev=25…
==============================================================================
--- trunk/tools/RosBE/Build-Multi.cmd (original)
+++ trunk/tools/RosBE/Build-Multi.cmd Sun Jan 28 04:00:24 2007
@@ -46,7 +46,7 @@
 :: Now use mingw32-make to build ReactOS, passing along options, if any.
 ::
 if "%1" == "" (
-    "%_MINGWMAKE%" -j %CPUCOUNT% 2>&1 |
"%ROSBEBASEDIR%\Tools\tee.exe"
"%_ROSBELOGDIR%\BuildLog-%_MINGWVERSION%-%DATENAME%-%TIMENAME%.txt"
+    "%ROSBEBASEDIR%\Tools\buildtime.exe" "%_MINGWMAKE%" -j %CPUCOUNT%
2>&1 | "%ROSBEBASEDIR%\Tools\tee.exe"
"%_ROSBELOGDIR%\BuildLog-%_MINGWVERSION%-%DATENAME%-%TIMENAME%.txt"
 ) else (
-    "%_MINGWMAKE%" -j %CPUCOUNT% %* 2>&1 |
"%ROSBEBASEDIR%\Tools\tee.exe"
"%_ROSBELOGDIR%\BuildLog-%_MINGWVERSION%-%DATENAME%-%TIMENAME%.txt"
+    "%ROSBEBASEDIR%\Tools\buildtime.exe" "%_MINGWMAKE%" -j %CPUCOUNT%
%* 2>&1 | "%ROSBEBASEDIR%\Tools\tee.exe"
"%_ROSBELOGDIR%\BuildLog-%_MINGWVERSION%-%DATENAME%-%TIMENAME%.txt"
 )
Modified: trunk/tools/RosBE/Build.cmd
URL:
http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/Build.cmd?rev=25654&am…
==============================================================================
--- trunk/tools/RosBE/Build.cmd (original)
+++ trunk/tools/RosBE/Build.cmd Sun Jan 28 04:00:24 2007
@@ -30,7 +30,7 @@
 :: Now use mingw32-make to build ReactOS, passing along options, if any.
 ::
 if "%1" == "" (
-    "%_MINGWMAKE%" 2>&1 | "%ROSBEBASEDIR%\Tools\tee.exe"
"%_ROSBELOGDIR%\BuildLog-%_MINGWVERSION%-%DATENAME%-%TIMENAME%.txt"
+    "%ROSBEBASEDIR%\Tools\buildtime.exe" "%_MINGWMAKE%" 2>&1 |
"%ROSBEBASEDIR%\Tools\tee.exe"
"%_ROSBELOGDIR%\BuildLog-%_MINGWVERSION%-%DATENAME%-%TIMENAME%.txt"
 ) else (
-    "%_MINGWMAKE%" %* 2>&1 | "%ROSBEBASEDIR%\Tools\tee.exe"
"%_ROSBELOGDIR%\BuildLog-%_MINGWVERSION%-%DATENAME%-%TIMENAME%.txt"
+    "%ROSBEBASEDIR%\Tools\buildtime.exe" "%_MINGWMAKE%" %*
2>&1 | "%ROSBEBASEDIR%\Tools\tee.exe"
"%_ROSBELOGDIR%\BuildLog-%_MINGWVERSION%-%DATENAME%-%TIMENAME%.txt"
 )
Modified: trunk/tools/RosBE/Tools/buildtime.c
URL:
http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/Tools/buildtime.c?rev=…
==============================================================================
--- trunk/tools/RosBE/Tools/buildtime.c (original)
+++ trunk/tools/RosBE/Tools/buildtime.c Sun Jan 28 04:00:24 2007
@@ -3,37 +3,78 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <ctype.h>
+#include <wctype.h>
+#include <tchar.h>
-int main(int argc, char* argv[])
+static LPTSTR SkipSelfArgument(LPTSTR lpszCommandLine)
+{
+       LPTSTR p = lpszCommandLine;
+       int quote = 0;
+
+       // Skip leading whitespace
+       while(*p != 0 && _istspace(*p))
+               ++ p;
+
+       if(*p == 0)
+               return p;
+
+       // Skip argument 0
+       // BUGBUG: the assumption is that argument 0 never contains escaped quotes
+       do
+       {
+               if(*p == TEXT('\"'))
+               {
+                       quote = !quote;
+                       ++ p;
+                       continue;
+               }
+
+               ++ p;
+       }
+       while(*p != 0 && (quote || !_istspace(*p)));
+
+       // Skip trailing whitespace
+       while(*p != 0 && _istspace(*p))
+               ++ p;
+
+       return p;
+}
+
+int main()
 {
     LPTSTR CommandLine, FullCommandLine, CommandLineBuffer;
     time_t StartTime, FinishTime;
-    float TotalTime;
+    double TotalTime;
     int Hour, Minute, Second;
-
-    //
-    // If nothing is on the command-line exit
-    //
-    if (argc == 1)
-    {
-        printf("Required parameter not specified. Exiting.\n");
-        return 1;
-    }
+       int ret;
     //
     // Get the command line to pass on.
     //
     FullCommandLine = GetCommandLine();
-    CommandLine = &FullCommandLine[strlen(argv[0]) + 1];
-    CommandLineBuffer = (LPTSTR) malloc((strlen(CommandLine) + 3));
+    CommandLine = SkipSelfArgument(FullCommandLine);
+
+    //
+    // If nothing is on the command-line exit
+    //
+    if (CommandLine[0] == 0)
+    {
+               fprintf(stderr, "buildtime: required parameter not
specified\n");
+        return 1;
+    }
+
+    CommandLineBuffer = malloc((strlen(CommandLine) + 2 + 1));
     if (!CommandLineBuffer)
     {
-        printf("Unable to allocate memory. Exiting.\n");
+               fprintf(stderr, "buildtime: unable to allocate memory\n");
         return 1;
     }
-    strcpy(CommandLineBuffer, "\"");
+
+       CommandLineBuffer[0] = 0;
+    //strcat(CommandLineBuffer, "\"");
     strcat(CommandLineBuffer, CommandLine);
-    strcat(CommandLineBuffer, "\"");
+    //strcat(CommandLineBuffer, "\"");
     //
     // Grab the starting timestamp.
@@ -43,7 +84,7 @@
     //
     // Run the program (Status is 1 on failure).
     //
-    system(CommandLineBuffer);
+    ret = system(CommandLineBuffer);
     //
     // Grab the finishing timestamp.
@@ -73,5 +114,5 @@
     //
     free(CommandLineBuffer);
-    return 0;
+    return ret;
 }