+ if (EFI_ERROR(Node2->Status) && StrStr(Node2->FileName, L":") == NULL) {\r
+ //\r
+ // Update the node filename to have full path with file system identifier\r
+ //\r
+ NewSize = StrSize(Node->FullName) + StrSize(Node2->FullName);\r
+ TempName = AllocateZeroPool(NewSize);\r
+ if (TempName == NULL) {\r
+ ShellStatus = SHELL_OUT_OF_RESOURCES;\r
+ } else {\r
+ StrCpyS(TempName, NewSize/sizeof(CHAR16), Node->FullName);\r
+ TempName[StrStr(TempName, L":")+1-TempName] = CHAR_NULL;\r
+ StrCatS(TempName, NewSize/sizeof(CHAR16), Node2->FullName);\r
+ FreePool((VOID*)Node2->FullName);\r
+ Node2->FullName = TempName;\r
+\r
+ //\r
+ // Now try again to open the file\r
+ //\r
+ Node2->Status = gEfiShellProtocol->OpenFileByName (Node2->FullName, &Node2->Handle, EFI_FILE_MODE_READ|EFI_FILE_MODE_WRITE);\r
+ }\r
+ }\r
+ if (!EFI_ERROR(Node2->Status)) {\r
+ ShellStatus = CascadeDelete(Node2, Quiet);\r
+ } else if (ShellStatus == SHELL_SUCCESS) {\r
+ ShellStatus = (SHELL_STATUS)(Node2->Status&(~0x80000000));\r
+ }\r