diff -r 0135e64c6c66 -r c4fd2813b127 misc/libphysfs/lzma/CPP/Common/ListFileUtils.cpp --- a/misc/libphysfs/lzma/CPP/Common/ListFileUtils.cpp Wed May 16 18:22:28 2018 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,74 +0,0 @@ -// Common/ListFileUtils.cpp - -#include "StdAfx.h" - -#include "../Windows/FileIO.h" - -#include "ListFileUtils.h" -#include "StringConvert.h" -#include "UTFConvert.h" - -static const char kQuoteChar = '\"'; -static void RemoveQuote(UString &s) -{ - if (s.Length() >= 2) - if (s[0] == kQuoteChar && s[s.Length() - 1] == kQuoteChar) - s = s.Mid(1, s.Length() - 2); -} - -bool ReadNamesFromListFile(LPCWSTR fileName, UStringVector &resultStrings, UINT codePage) -{ - NWindows::NFile::NIO::CInFile file; - if (!file.Open(fileName)) - return false; - UInt64 length; - if (!file.GetLength(length)) - return false; - if (length > ((UInt32)1 << 31)) - return false; - AString s; - char *p = s.GetBuffer((int)length + 1); - UInt32 processed; - if (!file.Read(p, (UInt32)length, processed)) - return false; - p[(UInt32)length] = 0; - s.ReleaseBuffer(); - file.Close(); - - UString u; - #ifdef CP_UTF8 - if (codePage == CP_UTF8) - { - if (!ConvertUTF8ToUnicode(s, u)) - return false; - } - else - #endif - u = MultiByteToUnicodeString(s, codePage); - if (!u.IsEmpty()) - { - if (u[0] == 0xFEFF) - u.Delete(0); - } - - UString t; - for(int i = 0; i < u.Length(); i++) - { - wchar_t c = u[i]; - if (c == L'\n' || c == 0xD) - { - t.Trim(); - RemoveQuote(t); - if (!t.IsEmpty()) - resultStrings.Add(t); - t.Empty(); - } - else - t += c; - } - t.Trim(); - RemoveQuote(t); - if (!t.IsEmpty()) - resultStrings.Add(t); - return true; -}