1 // DefaultName.cpp
2
3 #include "StdAfx.h"
4
5 #include "DefaultName.h"
6
GetDefaultName3(const UString & fileName,const UString & extension,const UString & addSubExtension)7 static UString GetDefaultName3(const UString &fileName,
8 const UString &extension, const UString &addSubExtension)
9 {
10 const unsigned extLen = extension.Len();
11 const unsigned fileNameLen = fileName.Len();
12
13 if (fileNameLen > extLen + 1)
14 {
15 const unsigned dotPos = fileNameLen - (extLen + 1);
16 if (fileName[dotPos] == '.')
17 if (extension.IsEqualTo_NoCase(fileName.Ptr(dotPos + 1)))
18 return fileName.Left(dotPos) + addSubExtension;
19 }
20
21 int dotPos = fileName.ReverseFind_Dot();
22 if (dotPos > 0)
23 return fileName.Left(dotPos) + addSubExtension;
24
25 if (addSubExtension.IsEmpty())
26 return fileName + L'~';
27 else
28 return fileName + addSubExtension;
29 }
30
GetDefaultName2(const UString & fileName,const UString & extension,const UString & addSubExtension)31 UString GetDefaultName2(const UString &fileName,
32 const UString &extension, const UString &addSubExtension)
33 {
34 UString name = GetDefaultName3(fileName, extension, addSubExtension);
35 name.TrimRight();
36 return name;
37 }
38