From: <bi...@us...> - 2008-07-03 22:31:06
|
Revision: 2642 http://oorexx.svn.sourceforge.net/oorexx/?rev=2642&view=rev Author: bigrixx Date: 2008-07-03 15:31:14 -0700 (Thu, 03 Jul 2008) Log Message: ----------- add support for REXXPATH Modified Paths: -------------- interpreter-3.x/trunk/kernel/platform/unix/SysInterpreterInstance.cpp interpreter-3.x/trunk/kernel/platform/windows/SysInterpreterInstance.cpp interpreter-3.x/trunk/kernel/runtime/MemorySegment.hpp Modified: interpreter-3.x/trunk/kernel/platform/unix/SysInterpreterInstance.cpp =================================================================== --- interpreter-3.x/trunk/kernel/platform/unix/SysInterpreterInstance.cpp 2008-07-03 18:27:55 UTC (rev 2641) +++ interpreter-3.x/trunk/kernel/platform/unix/SysInterpreterInstance.cpp 2008-07-03 22:31:14 UTC (rev 2642) @@ -89,30 +89,53 @@ char temp[4]; // this is just a temp buffer to check component sizes const char *sysPath = getenv("PATH"); - size_t pathSize = strlen(sysPath); + const char *rexxPAth = getenv("REXXPATH"); + size_t sysPathSize = sysPath == NULL ? 0 : strlen(sysPath); + size_t rexxPathSize = rexxPath == NULL ? 0 : strlen(rexxPath); size_t parentSize = parentDir == NULL ? 0 : strlen(parentDir); size_t extensionSize = extensionPath == NULL ? 0 : strlen(extensionPath); // enough room for separators and a terminating null - path = SysAllocateResultMemory(pathSize + parentSize + extensionSize + 8); + path = SysAllocateResultMemory(pathSize + parentSize + extensionSize + 16); *path = '\0'; // add a null character so strcat can work if (parentDir != NULL) { strcpy(path, parentDir); - strcat(path, ";"); + strcat(path, ":"); } // add on the current directory - strcat(path, ".;"); + strcat(path, ".:"); if (extensionPath != NULL) { strcat(path, extensionPath); - strcat(path, ";"); + if (path[strlen(path) - 1] != ':') + { + strcat(path, ":"); + } } - // add on the path at the end - strcat(path, sysPath); + + // the rexxpath + if (rexxPath != NULL) + { + strcat(path, rexxPath); + if (path[strlen(path) - 1] != ':') + { + strcat(path, ":"); + } + } + + // and finally the normal path + if (sysPath != NULL) + { + strcat(path, sysPath); + if (path[strlen(path) - 1] != ':') + { + strcat(path, ":"); + } + } } Modified: interpreter-3.x/trunk/kernel/platform/windows/SysInterpreterInstance.cpp =================================================================== --- interpreter-3.x/trunk/kernel/platform/windows/SysInterpreterInstance.cpp 2008-07-03 18:27:55 UTC (rev 2641) +++ interpreter-3.x/trunk/kernel/platform/windows/SysInterpreterInstance.cpp 2008-07-03 22:31:14 UTC (rev 2642) @@ -82,12 +82,13 @@ char temp[4]; // this is just a temp buffer to check component sizes size_t pathSize = GetEnvironmentVariable("PATH", temp, sizeof(temp)); + size_t rexxPathSize = GetEnvironmentVariable("REXXPATH", temp, sizeof(temp)); size_t parentSize = parentDir == NULL ? 0 : strlen(parentDir); size_t extensionSize = extensionPath == NULL ? 0 : strlen(extensionPath); // enough room for separators and a terminating null - path = (char *)SysAllocateResultMemory(pathSize + parentSize + extensionSize + 8); + path = (char *)SysAllocateResultMemory(pathSize + rexxPathSize + parentSize + extensionSize + 16); *path = '\0'; // add a null character so strcat can work if (parentDir != NULL) { @@ -101,10 +102,24 @@ if (extensionPath != NULL) { strcat(path, extensionPath); + if (path[strlen(path) - 1] != ';') + { + strcat(path, ";"); + } + } + + // add on the Rexx path, then the normal path + GetEnvironmentVariable("REXXPATH", path + strlen(path), (DWORD)pathSize + 1); + if (path[strlen(path) - 1] != ';') + { strcat(path, ";"); } GetEnvironmentVariable("PATH", path + strlen(path), (DWORD)pathSize + 1); + if (path[strlen(path) - 1] != ';') + { + strcat(path, ";"); + } } Modified: interpreter-3.x/trunk/kernel/runtime/MemorySegment.hpp =================================================================== --- interpreter-3.x/trunk/kernel/runtime/MemorySegment.hpp 2008-07-03 18:27:55 UTC (rev 2641) +++ interpreter-3.x/trunk/kernel/runtime/MemorySegment.hpp 2008-07-03 22:31:14 UTC (rev 2642) @@ -66,7 +66,7 @@ /* space available in a larger allocation. */ #define LargeSegmentDeadSpace (LargeSegmentSize - MemorySegmentOverhead) -#define InitialNormalSegmentSpace ((LargeSegmentSize * 2) - MemorySegmentOverhead) +#define InitialNormalSegmentSpace ((LargeSegmentSize * 8) - MemorySegmentOverhead) #define LargestNormalSegmentSize (LargeObjectMinSize - (1024 * 1024) - MemorySegmentOverhead) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |