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