32 for ( Walker = Path, LastSlash =
NULL
33 ; Walker !=
NULL && *Walker != CHAR_NULL
37 if ((*Walker == L
'\\') && (*(Walker + 1) != CHAR_NULL)) {
39 }
else if ((*Walker == L
':') && (*(Walker + 1) != L
'\\') && (*(Walker + 1) != CHAR_NULL)) {
44 if (LastSlash !=
NULL) {
45 *LastSlash = CHAR_NULL;
81 for (TempString = Path; *TempString != CHAR_NULL; TempString++) {
82 if (*TempString == L
'/') {
90 while ((TempString =
StrStr (Path, L
"\\\\")) !=
NULL) {
97 while ((TempString =
StrStr (Path, L
"\\.\\")) !=
NULL) {
102 Path[
StrLen (Path) - 1] = CHAR_NULL;
108 while (((TempString =
StrStr (Path, L
"\\..")) !=
NULL) &&
109 ((*(TempString + 3) == L
'\\') || (*(TempString + 3) == CHAR_NULL))
112 *(TempString + 1) = CHAR_NULL;
114 if (*(TempString + 3) != CHAR_NULL) {
UINTN EFIAPI StrSize(IN CONST CHAR16 *String)
INTN EFIAPI StrCmp(IN CONST CHAR16 *FirstString, IN CONST CHAR16 *SecondString)
UINTN EFIAPI StrLen(IN CONST CHAR16 *String)
CHAR16 *EFIAPI StrStr(IN CONST CHAR16 *String, IN CONST CHAR16 *SearchString)
VOID *EFIAPI CopyMem(OUT VOID *DestinationBuffer, IN CONST VOID *SourceBuffer, IN UINTN Length)
CHAR16 *EFIAPI PathCleanUpDirectories(IN CHAR16 *Path)
BOOLEAN EFIAPI PathRemoveLastItem(IN OUT CHAR16 *Path)