diff options
author | Charles Bailey <bailey@newman.upenn.edu> | 2000-10-20 04:44:37 +0000 |
---|---|---|
committer | bailey <bailey@newman.upenn.edu> | 2000-10-20 04:44:37 +0000 |
commit | 22d4bb9ccb8701e68f9243547d7e3a3c55f70908 (patch) | |
tree | d2e7714cc660a21e8bf2624c99646b0cb001e40c /win32/vdir.h | |
parent | 4b19af017623bfa3bb72bb164598a517f586e0d3 (diff) | |
download | perl-22d4bb9ccb8701e68f9243547d7e3a3c55f70908.tar.gz |
SYN SYN
p4raw-id: //depot/vmsperl@7375
Diffstat (limited to 'win32/vdir.h')
-rw-r--r-- | win32/vdir.h | 22 |
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; |