summaryrefslogtreecommitdiff
path: root/win32/vdir.h
diff options
context:
space:
mode:
authorCharles Bailey <bailey@newman.upenn.edu>2000-10-20 04:44:37 +0000
committerbailey <bailey@newman.upenn.edu>2000-10-20 04:44:37 +0000
commit22d4bb9ccb8701e68f9243547d7e3a3c55f70908 (patch)
treed2e7714cc660a21e8bf2624c99646b0cb001e40c /win32/vdir.h
parent4b19af017623bfa3bb72bb164598a517f586e0d3 (diff)
downloadperl-22d4bb9ccb8701e68f9243547d7e3a3c55f70908.tar.gz
SYN SYN
p4raw-id: //depot/vmsperl@7375
Diffstat (limited to 'win32/vdir.h')
-rw-r--r--win32/vdir.h22
1 files changed, 15 insertions, 7 deletions
diff --git a/win32/vdir.h b/win32/vdir.h
index 0b634a80fc..37cb4a580e 100644
--- a/win32/vdir.h
+++ b/win32/vdir.h
@@ -461,29 +461,37 @@ int VDir::SetCurrentDirectoryA(char *lpBuffer)
}
DWORD VDir::CalculateEnvironmentSpace(void)
-{ /* the current directory environment strings are stored as '=d=d:\path' */
+{ /* the current directory environment strings are stored as '=D:=d:\path' */
int index;
DWORD dwSize = 0;
for (index = 0; index < driveCount; ++index) {
if (dirTableA[index] != NULL) {
- dwSize += strlen(dirTableA[index]) + 4; /* add 1 for trailing NULL and 3 for '=d=' */
+ dwSize += strlen(dirTableA[index]) + 5; /* add 1 for trailing NULL and 4 for '=D:=' */
}
}
return dwSize;
}
LPSTR VDir::BuildEnvironmentSpace(LPSTR lpStr)
-{ /* store the current directory environment strings as '=d=d:\path' */
- int index;
+{ /* store the current directory environment strings as '=D:=d:\path' */
+ int index, length;
LPSTR lpDirStr;
for (index = 0; index < driveCount; ++index) {
lpDirStr = dirTableA[index];
if (lpDirStr != NULL) {
lpStr[0] = '=';
lpStr[1] = lpDirStr[0];
- lpStr[2] = '=';
- strcpy(&lpStr[3], lpDirStr);
- lpStr += strlen(lpDirStr) + 4; /* add 1 for trailing NULL and 3 for '=d=' */
+ lpStr[2] = '\0';
+ CharUpper(&lpStr[1]);
+ lpStr[2] = ':';
+ lpStr[3] = '=';
+ strcpy(&lpStr[4], lpDirStr);
+ length = strlen(lpDirStr);
+ lpStr += length + 5; /* add 1 for trailing NULL and 4 for '=D:=' */
+ if (length > 3 && IsPathSep(lpStr[-2])) {
+ lpStr[-2] = '\0'; /* remove the trailing path separator */
+ --lpStr;
+ }
}
}
return lpStr;