fix a small bug in cd, it did make all char lower case. done by me and
Brandon Turner. clean up CD source bit more. Bug fix GetRootPath. it did
not accepted upper case as driver letter. done by me
Modified: trunk/reactos/subsys/system/cmd/internal.c
_____
Modified: trunk/reactos/subsys/system/cmd/internal.c
--- trunk/reactos/subsys/system/cmd/internal.c 2005-08-04 21:55:43 UTC
(rev 17050)
+++ trunk/reactos/subsys/system/cmd/internal.c 2005-08-04 22:08:16 UTC
(rev 17051)
@@ -170,13 +170,8 @@
{
if (InPath[1]==_T(':'))
{
- TCHAR num[2];
INT t=0;
-
- num[1] = _T('\0');
- num[0] = InPath[0];
- _tcslwr(num);
-
+
if ((InPath[0] >= _T('0')) && (InPath[0] <=
_T('9')))
{
t = (InPath[0] - _T('0')) +28;
@@ -185,7 +180,13 @@
if ((InPath[0] >= _T('a')) && (InPath[0] <=
_T('z')))
{
t = (InPath[0] - _T('a')) +1;
+ InPath[0] = t + _T('A') - 1;
}
+
+ if ((InPath[0] >= _T('A')) && (InPath[0] <=
_T('Z')))
+ {
+ t = (InPath[0] - _T('A')) +1;
+ }
if (_tgetdcwd(t,OutPath,size) != NULL)
{
@@ -214,8 +215,10 @@
{
TCHAR oldpath[MAX_PATH];
TCHAR OutPath[MAX_PATH];
+ TCHAR OutPathUpper[MAX_PATH];
BOOL fail;
+
/* Get The current directory path and save it */
fail = GetCurrentDirectory(MAX_PATH,oldpath);
if (!fail)
@@ -225,18 +228,23 @@
if (_tcsncicmp(&InPath[1],_T(":\\"),2)!=0)
{
- if (!GetRootPath(InPath,OutPath,MAX_PATH))
- _tcscpy(OutPath,InPath);
+ if (!GetRootPath(InPath,OutPathUpper,MAX_PATH))
+ _tcscpy(OutPathUpper,InPath);
}
else
{
- _tcscpy(OutPath,InPath);
+ _tcscpy(OutPathUpper,InPath);
}
+ _tcsupr(OutPathUpper);
+ GetLongPathName(OutPathUpper, OutPath, MAX_PATH);
+
fail = SetCurrentDirectory(OutPath);
if (!fail)
return 1;
+
+
SetCurrentDirectory(OutPath);
GetCurrentDirectory(MAX_PATH,OutPath);
_tchdir(OutPath);
@@ -302,7 +310,6 @@
}
ConOutPuts(szCurrent);
return 0;
-
}
/* Get Current Directory */
@@ -376,17 +383,22 @@
else
break;
- _tcscat(szFinalPath,f.cFileName);
+ _tcscat(szFinalPath,f.cFileName);
- if(IsExistingDirectory(szFinalPath))
- {
+ if ((f.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ==
FILE_ATTRIBUTE_DIRECTORY)
+ {
if(!SetRootPath(szFinalPath))
{
/* Change for /D */
if(bChangeDrive)
-
SetCurrentDirectory(szFinalPath);
+ {
+ _tcsupr(szFinalPath);
+ GetLongPathName(szFinalPath, szPath, MAX_PATH);
+ SetCurrentDirectory(szPath);
+ }
return 0;
}
+
}
}while(FindNextFile (hFile, &f));