xref: /aosp_15_r20/external/lzma/CPP/7zip/UI/FileManager/StringUtils.cpp (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // StringUtils.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 "StringUtils.h"
6*f6dc9357SAndroid Build Coastguard Worker 
SplitStringToTwoStrings(const UString & src,UString & dest1,UString & dest2)7*f6dc9357SAndroid Build Coastguard Worker void SplitStringToTwoStrings(const UString &src, UString &dest1, UString &dest2)
8*f6dc9357SAndroid Build Coastguard Worker {
9*f6dc9357SAndroid Build Coastguard Worker   dest1.Empty();
10*f6dc9357SAndroid Build Coastguard Worker   dest2.Empty();
11*f6dc9357SAndroid Build Coastguard Worker   bool quoteMode = false;
12*f6dc9357SAndroid Build Coastguard Worker   for (unsigned i = 0; i < src.Len(); i++)
13*f6dc9357SAndroid Build Coastguard Worker   {
14*f6dc9357SAndroid Build Coastguard Worker     const wchar_t c = src[i];
15*f6dc9357SAndroid Build Coastguard Worker     if (c == '\"')
16*f6dc9357SAndroid Build Coastguard Worker       quoteMode = !quoteMode;
17*f6dc9357SAndroid Build Coastguard Worker     else if (c == ' ' && !quoteMode)
18*f6dc9357SAndroid Build Coastguard Worker     {
19*f6dc9357SAndroid Build Coastguard Worker       dest2 = src.Ptr(i + 1);
20*f6dc9357SAndroid Build Coastguard Worker       return;
21*f6dc9357SAndroid Build Coastguard Worker     }
22*f6dc9357SAndroid Build Coastguard Worker     else
23*f6dc9357SAndroid Build Coastguard Worker       dest1 += c;
24*f6dc9357SAndroid Build Coastguard Worker   }
25*f6dc9357SAndroid Build Coastguard Worker }
26*f6dc9357SAndroid Build Coastguard Worker 
27*f6dc9357SAndroid Build Coastguard Worker /*
28*f6dc9357SAndroid Build Coastguard Worker UString JoinStrings(const UStringVector &srcStrings)
29*f6dc9357SAndroid Build Coastguard Worker {
30*f6dc9357SAndroid Build Coastguard Worker   UString s;
31*f6dc9357SAndroid Build Coastguard Worker   FOR_VECTOR (i, srcStrings)
32*f6dc9357SAndroid Build Coastguard Worker   {
33*f6dc9357SAndroid Build Coastguard Worker     if (i != 0)
34*f6dc9357SAndroid Build Coastguard Worker       s.Add_Space();
35*f6dc9357SAndroid Build Coastguard Worker     s += srcStrings[i];
36*f6dc9357SAndroid Build Coastguard Worker   }
37*f6dc9357SAndroid Build Coastguard Worker   return s;
38*f6dc9357SAndroid Build Coastguard Worker }
39*f6dc9357SAndroid Build Coastguard Worker */
40