You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stdcxx.apache.org by fa...@apache.org on 2007/09/10 17:32:31 UTC

svn commit: r574283 - /incubator/stdcxx/trunk/etc/config/windows/utilities.js

Author: faridz
Date: Mon Sep 10 08:32:30 2007
New Revision: 574283

URL: http://svn.apache.org/viewvc?rev=574283&view=rev
Log:
2007-09-10 Farid Zaripov <Fa...@epam.com>

	* utilities.js (expandSysMacro): New function to expand
	system macros in string.
	(parseConfig): Expand system macros in config variables.

Modified:
    incubator/stdcxx/trunk/etc/config/windows/utilities.js

Modified: incubator/stdcxx/trunk/etc/config/windows/utilities.js
URL: http://svn.apache.org/viewvc/incubator/stdcxx/trunk/etc/config/windows/utilities.js?rev=574283&r1=574282&r2=574283&view=diff
==============================================================================
--- incubator/stdcxx/trunk/etc/config/windows/utilities.js (original)
+++ incubator/stdcxx/trunk/etc/config/windows/utilities.js Mon Sep 10 08:32:30 2007
@@ -45,6 +45,36 @@
 // timeout for exec utility in seconds
 var EXEC_TIMEOUT = 300;
 
+// expand system macros
+function expandSysMacro(str)
+{
+    var env = null;
+    var pos = 0;
+
+    while (true)
+    {
+        pos = str.indexOf("%", pos);
+        if (0 > pos)
+            break;
+
+        ++pos;
+        var pos2 = str.indexOf("%", pos);
+        if (0 > pos2)
+            break;
+
+        if (null == env)
+            env = WshShell.Environment("PROCESS");
+
+        var macro = str.substring(pos, pos2);
+        pos = pos2 + 1;
+        var value = env.Item(macro);
+        if ("undefined" != typeof(value) && "" != value)
+            str = str.replace("%" + macro + "%", value);
+    }
+
+    return str;
+}
+
 // read and parse compiler configuration file
 // config - name of the compiler configuration
 function parseConfig(config)
@@ -83,6 +113,8 @@
         var arr = rx.exec(line);
         if (null == arr || 0 == arr[2].length)
             continue;
+
+        arr[2] = expandSysMacro(arr[2]);
 
         switch (arr[1])
         {