[DEBUG] corect init of home folder and basei double / in path
This commit is contained in:
parent
056734e5fe
commit
21601649df
@ -36,7 +36,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#define TK_DBG_MODE TK_VERBOSE
|
||||
//#define TK_DBG_MODE TK_DEBUG
|
||||
//#define TK_DBG_MODE TK_WARNING
|
||||
|
||||
ETK_DECLARE_TYPE(etk::FSNode);
|
||||
|
||||
@ -317,7 +317,7 @@ etk::String etk::FSNodeGetApplicationPath() {
|
||||
}
|
||||
|
||||
etk::String etk::FSNodeGetHomePath() {
|
||||
return baseFolderHome;
|
||||
return etk::getUserHomeFolder();
|
||||
}
|
||||
|
||||
#ifdef HAVE_ZIP_DATA
|
||||
@ -503,11 +503,12 @@ etk::String getApplicationPath() {
|
||||
return binaryName;
|
||||
}
|
||||
|
||||
void etk::initDefaultFolder(const char* _applName) {
|
||||
baseApplName = _applName;
|
||||
char cCurrentPath[FILENAME_MAX];
|
||||
static bool initHomeFolder() {
|
||||
static bool isInit = false;
|
||||
if (isInit == false) {
|
||||
TK_DBG_MODE("Real Ini Home folder:");
|
||||
char * basicPath = getenv("HOME");
|
||||
if (null == basicPath) {
|
||||
if (basicPath == null) {
|
||||
TK_WARNING("ERROR while trying to get the path of the home folder");
|
||||
#if defined(__TARGET_OS__Windows)
|
||||
baseFolderHome = "c:/";
|
||||
@ -519,6 +520,16 @@ void etk::initDefaultFolder(const char* _applName) {
|
||||
} else {
|
||||
baseFolderHome = basicPath;
|
||||
}
|
||||
TK_DBG_MODE(" home=:" << baseFolderHome);
|
||||
isInit = true;
|
||||
}
|
||||
return isInit;
|
||||
}
|
||||
|
||||
void etk::initDefaultFolder(const char* _applName) {
|
||||
baseApplName = _applName;
|
||||
char cCurrentPath[FILENAME_MAX];
|
||||
initHomeFolder();
|
||||
if (!getcwd(cCurrentPath, FILENAME_MAX)) {
|
||||
baseRunPath = ".";
|
||||
baseRunPathInHome = ".";
|
||||
@ -662,6 +673,7 @@ void etk::initDefaultFolder(const char* _applName) {
|
||||
}
|
||||
|
||||
etk::String etk::getUserHomeFolder() {
|
||||
initHomeFolder();
|
||||
return baseFolderHome;
|
||||
}
|
||||
|
||||
@ -1085,8 +1097,13 @@ void etk::FSNode::generateFileSystemPath() {
|
||||
&& m_systemFileName[m_systemFileName.size()-1] != '/') {
|
||||
m_systemFileName += '/';
|
||||
}
|
||||
if ( m_userFileName.size()>0
|
||||
&& m_userFileName[0] == '/') {
|
||||
m_systemFileName += &m_userFileName[1];
|
||||
} else {
|
||||
m_systemFileName += m_userFileName;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -11,6 +11,25 @@
|
||||
#include <etk/os/FSNode.hpp>
|
||||
#define NAME "FSNode"
|
||||
|
||||
TEST(TestEtkFSNode, checkHomePath) {
|
||||
etk::String homePath = etk::FSNodeGetHomePath();
|
||||
EXPECT_EQ(homePath, "/home/heero");
|
||||
etk::FSNode myNodeTest1("HOME:filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest1.getNameFile(), "filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest1.getFileSystemName(), homePath + "/filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest1.getNameFolder(), "/home/heero");
|
||||
etk::FSNode myNodeTest2("HOME:/filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest2.getNameFile(), "filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest2.getFileSystemName(), homePath + "/filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest2.getNameFolder(), "/home/heero");
|
||||
etk::FSNode myNodeTest3("~/filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest3.getNameFile(), "filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest3.getFileSystemName(), homePath + "/filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest3.getNameFolder(), "/home/heero");
|
||||
}
|
||||
|
||||
|
||||
|
||||
TEST(TestEtkFSNode, checkDATAFilePresent) {
|
||||
etk::String fileName("DATA:filePresent.txt");
|
||||
etk::FSNode myNodeTest1(fileName);
|
||||
|
Loading…
x
Reference in New Issue
Block a user