move a function to the correct library.
added "ren" as an alias for "mv" git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11537 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@ -1545,3 +1545,51 @@ ChopLastSlash(
|
||||
return (FALSE);
|
||||
}
|
||||
|
||||
/**
|
||||
Function to clean up paths. Removes the following items:
|
||||
single periods in the path (no need for the current directory tag)
|
||||
double periods in the path and removes a single parent directory.
|
||||
|
||||
This will be done inline and the resultant string may be be 'too big'.
|
||||
|
||||
@param[in] PathToReturn The pointer to the string containing the path.
|
||||
|
||||
@return PathToReturn is always returned.
|
||||
**/
|
||||
CHAR16*
|
||||
EFIAPI
|
||||
CleanPath(
|
||||
IN CHAR16 *PathToReturn
|
||||
)
|
||||
{
|
||||
CHAR16 *TempString;
|
||||
UINTN TempSize;
|
||||
if (PathToReturn==NULL) {
|
||||
return(NULL);
|
||||
}
|
||||
//
|
||||
// Fix up the directory name
|
||||
//
|
||||
while ((TempString = StrStr(PathToReturn, L"\\..\\")) != NULL) {
|
||||
*TempString = CHAR_NULL;
|
||||
TempString += 4;
|
||||
ChopLastSlash(PathToReturn);
|
||||
TempSize = StrSize(TempString);
|
||||
CopyMem(PathToReturn+StrLen(PathToReturn), TempString, TempSize);
|
||||
}
|
||||
if ((TempString = StrStr(PathToReturn, L"\\..")) != NULL && *(TempString + 3) == CHAR_NULL) {
|
||||
*TempString = CHAR_NULL;
|
||||
ChopLastSlash(PathToReturn);
|
||||
}
|
||||
while ((TempString = StrStr(PathToReturn, L"\\.\\")) != NULL) {
|
||||
*TempString = CHAR_NULL;
|
||||
TempString += 2;
|
||||
TempSize = StrSize(TempString);
|
||||
CopyMem(PathToReturn+StrLen(PathToReturn), TempString, TempSize);
|
||||
}
|
||||
if ((TempString = StrStr(PathToReturn, L"\\.")) != NULL && *(TempString + 2) == CHAR_NULL) {
|
||||
*TempString = CHAR_NULL;
|
||||
}
|
||||
return (PathToReturn);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user