make GetRootPath bit smarter

svn path=/trunk/; revision=16638
This commit is contained in:
Magnus Olsen 2005-07-19 01:36:54 +00:00
parent 758d835b13
commit 3925d142b0

View file

@ -159,33 +159,44 @@ VOID FreeLastPath (VOID)
INT GetRootPath(TCHAR *InPath,TCHAR *OutPath,INT size) INT GetRootPath(TCHAR *InPath,TCHAR *OutPath,INT size)
{ {
INT retcode = 1; INT retcode = 1;
INT t;
if (_tcslen(InPath)>1) if (_tcslen(InPath)>1)
{ {
if (InPath[1]==_T(':')) if (InPath[1]==_T(':'))
{ {
for (t=0;t<32;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;
}
if ((InPath[0] >= _T('a')) && (InPath[0] <= _T('z')))
{
t = (InPath[0] - _T('a')) +1;
}
if (_tgetdcwd(t,OutPath,size) != NULL) if (_tgetdcwd(t,OutPath,size) != NULL)
{ {
if (_tcsncicmp(InPath,OutPath,2)) return 0;
{
retcode = 0;
return retcode;
}
}
} }
} }
} }
/* fail to getting path devic did not exists */ /* fail */
if (_tcslen(InPath)>1) if (_tcslen(InPath)>1)
{ {
if (InPath[1]==_T(':')) if (InPath[1]==_T(':'))
return 1; return 1;
} }
/* Get current directory */
retcode = GetCurrentDirectory(size,OutPath); retcode = GetCurrentDirectory(size,OutPath);
if (retcode==0) if (retcode==0)
return 1; return 1;
@ -220,6 +231,7 @@ INT cmd_chdir (LPTSTR cmd, LPTSTR param)
nErrorLevel = 0; nErrorLevel = 0;
/* The whole param string is our parameter these days. The only thing we do is eliminating every quotation mark */ /* The whole param string is our parameter these days. The only thing we do is eliminating every quotation mark */
/* Is it safe to change the characters param is pointing to? I presume it is, as there doesn't seem to be any /* Is it safe to change the characters param is pointing to? I presume it is, as there doesn't seem to be any
post-processing of it after the function call (what would that accomplish?) */ post-processing of it after the function call (what would that accomplish?) */