\r
NewSize = StrSize(CleanFilePathStr);\r
NewSize += StrSize(Node->FullName);\r
- NewSize += (Cwd == NULL)? 0 : StrSize(Cwd);\r
+ NewSize += (Cwd == NULL)? 0 : (StrSize(Cwd) + sizeof(CHAR16));\r
if (NewSize > PathSize) {\r
PathSize = NewSize;\r
}\r
//\r
if (Cwd != NULL) {\r
StrCpyS(DestPath, PathSize / sizeof(CHAR16), Cwd);\r
+ StrCatS(DestPath, PathSize / sizeof(CHAR16), L"\\");\r
} else {\r
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_DIR_NF), gShellLevel2HiiHandle, L"cp", CleanFilePathStr); \r
FreePool (CleanFilePathStr);\r
//\r
if (Cwd != NULL) {\r
StrCpyS(DestPath, PathSize/sizeof(CHAR16), Cwd);\r
+ StrCatS(DestPath, PathSize/sizeof(CHAR16), L"\\");\r
} else {\r
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_DIR_NF), gShellLevel2HiiHandle, L"cp", CleanFilePathStr); \r
FreePool(CleanFilePathStr);\r
} else if (StrStr(CleanFilePathStr, L":") == NULL) {\r
if (Cwd != NULL) {\r
StrCpyS(DestPath, PathSize/sizeof(CHAR16), Cwd);\r
+ StrCatS(DestPath, PathSize/sizeof(CHAR16), L"\\");\r
} else {\r
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_DIR_NF), gShellLevel2HiiHandle, L"cp", CleanFilePathStr); \r
FreePool(CleanFilePathStr);\r
BOOLEAN SilentMode;\r
BOOLEAN RecursiveMode;\r
CONST CHAR16 *Cwd;\r
+ CHAR16 *FullCwd;\r
\r
ProblemParam = NULL;\r
ShellStatus = SHELL_SUCCESS;\r
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel2HiiHandle, L"cp", ShellCommandLineGetRawValue(Package, 1)); \r
ShellStatus = SHELL_NOT_FOUND;\r
} else {\r
- ShellStatus = ProcessValidateAndCopyFiles(FileList, Cwd, SilentMode, RecursiveMode);\r
+ FullCwd = AllocateZeroPool(StrSize(Cwd) + sizeof(CHAR16));\r
+ ASSERT (FullCwd != NULL);\r
+ StrCpyS(FullCwd, StrSize(Cwd)/sizeof(CHAR16)+1, Cwd);\r
+ ShellStatus = ProcessValidateAndCopyFiles(FileList, FullCwd, SilentMode, RecursiveMode);\r
+ FreePool(FullCwd);\r
}\r
}\r
\r