linux fixes
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
This commit is contained in:
@@ -221,7 +221,7 @@ inline CCryFile::~CCryFile()
|
||||
inline bool CCryFile::Open(const char* filename, const char* mode, int nOpenFlagsEx)
|
||||
{
|
||||
char tempfilename[CRYFILE_MAX_PATH] = "";
|
||||
azstrcpy(tempfilename, filename);
|
||||
azstrcpy(tempfilename, CRYFILE_MAX_PATH, filename);
|
||||
|
||||
#if !defined (_RELEASE)
|
||||
if (gEnv && gEnv->IsEditor() && gEnv->pConsole)
|
||||
@@ -233,7 +233,7 @@ inline bool CCryFile::Open(const char* filename, const char* mode, int nOpenFlag
|
||||
if (lowercasePaths)
|
||||
{
|
||||
const AZStd::string lowerString = PathUtil::ToLower(tempfilename);
|
||||
azstrcpy(tempfilename, lowerString.c_str());
|
||||
azstrcpy(tempfilename, CRYFILE_MAX_PATH, lowerString.c_str());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -242,7 +242,7 @@ inline bool CCryFile::Open(const char* filename, const char* mode, int nOpenFlag
|
||||
{
|
||||
Close();
|
||||
}
|
||||
azstrcpy(m_filename, tempfilename);
|
||||
azstrcpy(m_filename, CRYFILE_MAX_PATH, tempfilename);
|
||||
|
||||
if (m_pIArchive)
|
||||
{
|
||||
@@ -429,7 +429,7 @@ inline const char* CCryFile::GetAdjustedFilename() const
|
||||
// Returns standard path otherwise.
|
||||
if (gameUrl != &szAdjustedFile[0])
|
||||
{
|
||||
azstrcpy(szAdjustedFile, gameUrl);
|
||||
azstrcpy(szAdjustedFile, AZ::IO::IArchive::MaxPath, gameUrl);
|
||||
}
|
||||
return szAdjustedFile;
|
||||
}
|
||||
|
||||
@@ -418,7 +418,7 @@ inline size_t CListenerSet<T>::MemSize() const
|
||||
size += sizeof(typename TAllocatedNameVec::value_type);
|
||||
for (typename TAllocatedNameVec::const_iterator iter(m_allocatedNames.begin()); iter != m_allocatedNames.end(); ++iter)
|
||||
{
|
||||
size += iter->GetAllocatedMemory();
|
||||
size += iter->capacity() * sizeof(char) + sizeof(AZStd::string);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -397,11 +397,11 @@ inline bool CCryName::operator>(const CCryName& n) const
|
||||
|
||||
inline bool operator==(const AZStd::string& s, const CCryName& n)
|
||||
{
|
||||
return s == n;
|
||||
return s == n.c_str();
|
||||
}
|
||||
inline bool operator!=(const AZStd::string& s, const CCryName& n)
|
||||
{
|
||||
return s != n;
|
||||
return s != n.c_str();
|
||||
}
|
||||
|
||||
inline bool operator==(const char* s, const CCryName& n)
|
||||
@@ -545,11 +545,11 @@ inline bool CCryNameCRC::operator>(const CCryNameCRC& n) const
|
||||
|
||||
inline bool operator==(const AZStd::string& s, const CCryNameCRC& n)
|
||||
{
|
||||
return s == n;
|
||||
return n == s.c_str();
|
||||
}
|
||||
inline bool operator!=(const AZStd::string& s, const CCryNameCRC& n)
|
||||
{
|
||||
return s != n;
|
||||
return n != s.c_str();
|
||||
}
|
||||
|
||||
inline bool operator==(const char* s, const CCryNameCRC& n)
|
||||
|
||||
@@ -419,7 +419,7 @@ namespace PathUtil
|
||||
//! Makes a fully specified file path from path and file name.
|
||||
inline stack_string Make(const stack_string& dir, const stack_string& filename, const stack_string& ext)
|
||||
{
|
||||
AZStd::string path = filename;
|
||||
AZStd::string path = filename.c_str();
|
||||
AZ::StringFunc::Path::ReplaceExtension(path, ext.c_str());
|
||||
path = AddSlash(dir.c_str()) + path;
|
||||
return stack_string(path.c_str());
|
||||
|
||||
@@ -387,7 +387,7 @@ public:
|
||||
|
||||
bool ValueChar(const char* name, char* buffer, int len)
|
||||
{
|
||||
string temp;
|
||||
AZStd::string temp;
|
||||
if (IsReading())
|
||||
{
|
||||
Value(name, temp);
|
||||
@@ -400,7 +400,7 @@ public:
|
||||
}
|
||||
else
|
||||
{
|
||||
temp = string(buffer, buffer + len);
|
||||
temp = AZStd::string(buffer, buffer + len);
|
||||
Value(name, temp);
|
||||
}
|
||||
return true;
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
#include <CryAssert.h>
|
||||
#include <dirent.h>
|
||||
#include <vector>
|
||||
#include <AzCore/std/string/string.h>
|
||||
|
||||
/* Memory block identification */
|
||||
#define _FREE_BLOCK 0
|
||||
#define _NORMAL_BLOCK 1
|
||||
@@ -344,7 +346,7 @@ private:
|
||||
char m_DirectoryName[260]; //!< directory name, needed when getting file attributes on the fly
|
||||
char m_ToMatch[260]; //!< pattern to match with
|
||||
DIR* m_Dir; //!< directory handle
|
||||
std::vector<string> m_Entries; //!< all file entries in the current directories
|
||||
std::vector<AZStd::string> m_Entries; //!< all file entries in the current directories
|
||||
public:
|
||||
|
||||
inline __finddata64_t()
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
#include <sys/types.h>
|
||||
#include <fcntl.h>
|
||||
#include <AzCore/IO/SystemFile.h>
|
||||
#include <AzCore/std/string/conversions.h>
|
||||
|
||||
#ifdef APPLE
|
||||
#include <mach/mach.h>
|
||||
@@ -77,8 +78,6 @@ unsigned int g_EnableMultipleAssert = 0;//set to something else than 0 if to ena
|
||||
#include <AzFramework/Utils/SystemUtilsApple.h>
|
||||
#endif
|
||||
|
||||
#include "StringUtils.h"
|
||||
|
||||
#if AZ_TRAIT_COMPILER_DEFINE_FS_ERRNO_TYPE
|
||||
typedef int FS_ERRNO_TYPE;
|
||||
#if AZ_TRAIT_COMPILER_DEFINE_FS_STAT_TYPE
|
||||
@@ -349,23 +348,23 @@ void _makepath(char* path, const char* drive, const char* dir, const char* filen
|
||||
}
|
||||
if (dir && dir[0])
|
||||
{
|
||||
azstrcat(tmp, dir);
|
||||
azstrcat(tmp, MAX_PATH, dir);
|
||||
ch = tmp[strlen(tmp) - 1];
|
||||
if (ch != '/' && ch != '\\')
|
||||
{
|
||||
azstrcat(tmp, "\\");
|
||||
azstrcat(tmp, MAX_PATH, "\\");
|
||||
}
|
||||
}
|
||||
if (filename && filename[0])
|
||||
{
|
||||
azstrcat(tmp, filename);
|
||||
azstrcat(tmp, MAX_PATH, filename);
|
||||
if (ext && ext[0])
|
||||
{
|
||||
if (ext[0] != '.')
|
||||
{
|
||||
azstrcat(tmp, ".");
|
||||
azstrcat(tmp, MAX_PATH, ".");
|
||||
}
|
||||
azstrcat(tmp, ext);
|
||||
azstrcat(tmp, MAX_PATH, ext);
|
||||
}
|
||||
}
|
||||
azstrcpy(path, strlen(tmp) + 1, tmp);
|
||||
@@ -489,9 +488,9 @@ void _splitpath(const char* inpath, char* drv, char* dir, char* fname, char* ext
|
||||
typedef AZStd::fixed_string<AZ_MAX_PATH_LEN> path_stack_string;
|
||||
|
||||
const path_stack_string inPath(inpath);
|
||||
string::size_type s = inPath.rfind('/', inPath.size());//position of last /
|
||||
AZStd::string::size_type s = inPath.rfind('/', inPath.size());//position of last /
|
||||
path_stack_string fName;
|
||||
if (s == string::npos)
|
||||
if (s == AZStd::string::npos)
|
||||
{
|
||||
if (dir)
|
||||
{
|
||||
@@ -503,9 +502,9 @@ void _splitpath(const char* inpath, char* drv, char* dir, char* fname, char* ext
|
||||
{
|
||||
if (dir)
|
||||
{
|
||||
azstrcpy(dir, AZ_MAX_PATH_LEN, (inPath.substr((string::size_type)0, (string::size_type)(s + 1))).c_str()); //assign directory
|
||||
azstrcpy(dir, AZ_MAX_PATH_LEN, (inPath.substr((AZStd::string::size_type)0, (AZStd::string::size_type)(s + 1))).c_str()); //assign directory
|
||||
}
|
||||
fName = inPath.substr((string::size_type)(s + 1)); //assign remaining string as rest
|
||||
fName = inPath.substr((AZStd::string::size_type)(s + 1)); //assign remaining string as rest
|
||||
}
|
||||
if (fName.size() == 0)
|
||||
{
|
||||
@@ -521,8 +520,8 @@ void _splitpath(const char* inpath, char* drv, char* dir, char* fname, char* ext
|
||||
else
|
||||
{
|
||||
//dir and drive are now set
|
||||
s = fName.find(".", (string::size_type)0);//position of first .
|
||||
if (s == string::npos)
|
||||
s = fName.find(".", (AZStd::string::size_type)0);//position of first .
|
||||
if (s == AZStd::string::npos)
|
||||
{
|
||||
if (ext)
|
||||
{
|
||||
@@ -547,7 +546,7 @@ void _splitpath(const char* inpath, char* drv, char* dir, char* fname, char* ext
|
||||
}
|
||||
else
|
||||
{
|
||||
azstrcpy(fname, AZ_MAX_PATH_LEN, (fName.substr((string::size_type)0, s)).c_str()); //assign filename
|
||||
azstrcpy(fname, AZ_MAX_PATH_LEN, (fName.substr((AZStd::string::size_type)0, s)).c_str()); //assign filename
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -779,17 +778,17 @@ BOOL SystemTimeToFileTime(const SYSTEMTIME* syst, LPFILETIME ft)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void adaptFilenameToLinux(string& rAdjustedFilename)
|
||||
void adaptFilenameToLinux(AZStd::string& rAdjustedFilename)
|
||||
{
|
||||
//first replace all \\ by /
|
||||
string::size_type loc = 0;
|
||||
while ((loc = rAdjustedFilename.find("\\", loc)) != string::npos)
|
||||
AZStd::string::size_type loc = 0;
|
||||
while ((loc = rAdjustedFilename.find("\\", loc)) != AZStd::string::npos)
|
||||
{
|
||||
rAdjustedFilename.replace(loc, 1, "/");
|
||||
}
|
||||
loc = 0;
|
||||
//remove /./
|
||||
while ((loc = rAdjustedFilename.find("/./", loc)) != string::npos)
|
||||
while ((loc = rAdjustedFilename.find("/./", loc)) != AZStd::string::npos)
|
||||
{
|
||||
rAdjustedFilename.replace(loc, 3, "/");
|
||||
}
|
||||
@@ -798,16 +797,16 @@ void adaptFilenameToLinux(string& rAdjustedFilename)
|
||||
void replaceDoublePathFilename(char* szFileName)
|
||||
{
|
||||
//replace "\.\" by "\"
|
||||
string s(szFileName);
|
||||
string::size_type loc = 0;
|
||||
AZStd::string s(szFileName);
|
||||
AZStd::string::size_type loc = 0;
|
||||
//remove /./
|
||||
while ((loc = s.find("/./", loc)) != string::npos)
|
||||
while ((loc = s.find("/./", loc)) != AZStd::string::npos)
|
||||
{
|
||||
s.replace(loc, 3, "/");
|
||||
}
|
||||
loc = 0;
|
||||
//remove "\.\"
|
||||
while ((loc = s.find("\\.\\", loc)) != string::npos)
|
||||
while ((loc = s.find("\\.\\", loc)) != AZStd::string::npos)
|
||||
{
|
||||
s.replace(loc, 3, "\\");
|
||||
}
|
||||
@@ -817,8 +816,8 @@ void replaceDoublePathFilename(char* szFileName)
|
||||
const int comparePathNames(const char* cpFirst, const char* cpSecond, unsigned int len)
|
||||
{
|
||||
//create two strings and replace the \\ by / and /./ by /
|
||||
string first(cpFirst);
|
||||
string second(cpSecond);
|
||||
AZStd::string first(cpFirst);
|
||||
AZStd::string second(cpSecond);
|
||||
adaptFilenameToLinux(first);
|
||||
adaptFilenameToLinux(second);
|
||||
if (strlen(cpFirst) < len || strlen(cpSecond) < len)
|
||||
@@ -1618,14 +1617,16 @@ const bool GetFilenameNoCase
|
||||
return true;
|
||||
}
|
||||
|
||||
DWORD GetFileAttributes(LPCSTR lpFileName)
|
||||
DWORD GetFileAttributes(LPCWSTR lpFileNameW)
|
||||
{
|
||||
AZStd::string lpFileName;
|
||||
AZStd::to_string(lpFileName, lpFileNameW);
|
||||
struct stat fileStats;
|
||||
const int success = stat(lpFileName, &fileStats);
|
||||
const int success = stat(lpFileName.c_str(), &fileStats);
|
||||
if (success == -1)
|
||||
{
|
||||
char adjustedFilename[MAX_PATH];
|
||||
GetFilenameNoCase(lpFileName, adjustedFilename);
|
||||
GetFilenameNoCase(lpFileName.c_str(), adjustedFilename);
|
||||
if (stat(adjustedFilename, &fileStats) == -1)
|
||||
{
|
||||
return (DWORD)INVALID_FILE_ATTRIBUTES;
|
||||
@@ -1648,7 +1649,7 @@ DWORD GetFileAttributes(LPCSTR lpFileName)
|
||||
uint32 CryGetFileAttributes(const char* lpFileName)
|
||||
{
|
||||
|
||||
string fn = lpFileName;
|
||||
AZStd::string fn = lpFileName;
|
||||
adaptFilenameToLinux(fn);
|
||||
const char* buffer = fn.c_str();
|
||||
return GetFileAttributes(buffer);
|
||||
|
||||
Reference in New Issue
Block a user