Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(371)

Side by Side Diff: third_party/lzma/v4_65/files/CPP/Common/ListFileUtils.cpp

Issue 624713003: Keep only base/extractor.[cc|h]. (Closed) Base URL: https://chromium.googlesource.com/external/omaha.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Common/ListFileUtils.cpp
2
3 #include "StdAfx.h"
4
5 #include "MyWindows.h"
6 #include "../Windows/FileIO.h"
7
8 #include "ListFileUtils.h"
9 #include "StringConvert.h"
10 #include "UTFConvert.h"
11
12 static const char kQuoteChar = '\"';
13 static void RemoveQuote(UString &s)
14 {
15 if (s.Length() >= 2)
16 if (s[0] == kQuoteChar && s[s.Length() - 1] == kQuoteChar)
17 s = s.Mid(1, s.Length() - 2);
18 }
19
20 bool ReadNamesFromListFile(LPCWSTR fileName, UStringVector &resultStrings, UINT codePage)
21 {
22 NWindows::NFile::NIO::CInFile file;
23 if (!file.Open(fileName))
24 return false;
25 UInt64 length;
26 if (!file.GetLength(length))
27 return false;
28 if (length > ((UInt32)1 << 31))
29 return false;
30 AString s;
31 char *p = s.GetBuffer((int)length + 1);
32 UInt32 processed;
33 if (!file.Read(p, (UInt32)length, processed))
34 return false;
35 p[(UInt32)length] = 0;
36 s.ReleaseBuffer();
37 file.Close();
38
39 UString u;
40 #ifdef CP_UTF8
41 if (codePage == CP_UTF8)
42 {
43 if (!ConvertUTF8ToUnicode(s, u))
44 return false;
45 }
46 else
47 #endif
48 u = MultiByteToUnicodeString(s, codePage);
49 if (!u.IsEmpty())
50 {
51 if (u[0] == 0xFEFF)
52 u.Delete(0);
53 }
54
55 UString t;
56 for (int i = 0; i < u.Length(); i++)
57 {
58 wchar_t c = u[i];
59 if (c == L'\n' || c == 0xD)
60 {
61 t.Trim();
62 RemoveQuote(t);
63 if (!t.IsEmpty())
64 resultStrings.Add(t);
65 t.Empty();
66 }
67 else
68 t += c;
69 }
70 t.Trim();
71 RemoveQuote(t);
72 if (!t.IsEmpty())
73 resultStrings.Add(t);
74 return true;
75 }
OLDNEW
« no previous file with comments | « third_party/lzma/v4_65/files/CPP/Common/ListFileUtils.h ('k') | third_party/lzma/v4_65/files/CPP/Common/MyCom.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698