FileName[StrLen (FileName) - 1] = 0;\r
}\r
\r
+ //\r
+ // If file name does not equal to "." or "..", \r
+ // then we trim the leading/trailing blanks and trailing dots\r
+ //\r
+ if (StrCmp (FileName, L".") != 0 && StrCmp (FileName, L"..") != 0) {\r
+ //\r
+ // Trim leading blanks\r
+ //\r
+ Count = 0;\r
+ for (TempFileName = FileName;\r
+ *TempFileName != 0 && *TempFileName == L' ';\r
+ TempFileName++) {\r
+ Count++;\r
+ }\r
+ CutPrefix (FileName, Count);\r
+ //\r
+ // Trim trailing dots and blanks\r
+ //\r
+ for (TempFileName = FileName + StrLen (FileName) - 1; \r
+ TempFileName >= FileName && (*TempFileName == L' ' || *TempFileName == L'.');\r
+ TempFileName--) {\r
+ ;\r
+ }\r
+ *(TempFileName + 1) = 0;\r
+ }\r
+\r
//\r
// Attempt to open the file\r
//\r
StrCat (NewPrivateFile->FileName, FileName + 1);\r
} else {\r
StrCpy (NewPrivateFile->FileName, NewPrivateFile->FilePath);\r
- StrCat (NewPrivateFile->FileName, L"\\");\r
- StrCat (NewPrivateFile->FileName, FileName);\r
+ if (StrCmp (FileName, L"") != 0) {\r
+ //\r
+ // In case the filename becomes empty, especially after trimming dots and blanks\r
+ // \r
+ StrCat (NewPrivateFile->FileName, L"\\");\r
+ StrCat (NewPrivateFile->FileName, FileName);\r
+ }\r
}\r
\r
//\r