Correction of the Unicode transcription and simplify the UString class
This commit is contained in:
parent
23ca4b1821
commit
199d24a3a4
@ -171,7 +171,7 @@ static struct zip * s_APKArchive = NULL;
|
|||||||
static int32_t s_APKnbFiles = 0;
|
static int32_t s_APKnbFiles = 0;
|
||||||
|
|
||||||
|
|
||||||
static void loadAPK (const etk::UString& apkPath)
|
static void loadAPK(etk::UString& apkPath)
|
||||||
{
|
{
|
||||||
TK_DEBUG("Loading APK \"" << apkPath << "\"");
|
TK_DEBUG("Loading APK \"" << apkPath << "\"");
|
||||||
s_APKArchive = zip_open(apkPath.Utf8Data(), 0, NULL);
|
s_APKArchive = zip_open(apkPath.Utf8Data(), 0, NULL);
|
||||||
@ -235,8 +235,8 @@ void etk::File::SetCompleateName(etk::UString &newFilename, etk::FileType_te typ
|
|||||||
} else {
|
} else {
|
||||||
destFilename = newFilename;
|
destFilename = newFilename;
|
||||||
}
|
}
|
||||||
TK_DEBUG("2 : Get file Name : " << destFilename );
|
TK_DEBUG("2 : Get file Name : " << destFilename << "start with '/'=" << destFilename.StartWith('/'));
|
||||||
if (false == destFilename.StartWith('/')) {
|
if (true == destFilename.StartWith('/')) {
|
||||||
m_type = etk::FILE_TYPE_DIRECT;
|
m_type = etk::FILE_TYPE_DIRECT;
|
||||||
if (type != etk::FILE_TYPE_DIRECT) {
|
if (type != etk::FILE_TYPE_DIRECT) {
|
||||||
TK_DEBUG("Incompatible type with a file=\"" << newFilename << "\" ==> force it in direct mode ...");
|
TK_DEBUG("Incompatible type with a file=\"" << newFilename << "\" ==> force it in direct mode ...");
|
||||||
@ -257,8 +257,6 @@ void etk::File::SetCompleateName(etk::UString &newFilename, etk::FileType_te typ
|
|||||||
destFilename = cCurrentPath;
|
destFilename = cCurrentPath;
|
||||||
destFilename += "/";
|
destFilename += "/";
|
||||||
destFilename += tmpFilename;
|
destFilename += tmpFilename;
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
m_type = type;
|
m_type = type;
|
||||||
}
|
}
|
||||||
|
@ -116,6 +116,14 @@ namespace etk{
|
|||||||
strncat(m_tmpChar, tmp, MAX_LOG_SIZE);
|
strncat(m_tmpChar, tmp, MAX_LOG_SIZE);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
CCout& operator << (bool t) {
|
||||||
|
if (t) {
|
||||||
|
strncat(m_tmpChar, "true", MAX_LOG_SIZE);
|
||||||
|
} else {
|
||||||
|
strncat(m_tmpChar, "false", MAX_LOG_SIZE);
|
||||||
|
}
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
CCout& operator << (CStart ccc) {
|
CCout& operator << (CStart ccc) {
|
||||||
pthread_mutex_lock(&m_mutex);
|
pthread_mutex_lock(&m_mutex);
|
||||||
return *this;
|
return *this;
|
||||||
|
@ -170,6 +170,18 @@ void etk::UString::Set(const uniChar_t * inputData, int32_t len)
|
|||||||
* @return
|
* @return
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
etk::UString::UString(char inputData)
|
||||||
|
{
|
||||||
|
char tmpVal[2];
|
||||||
|
// generate the UString :
|
||||||
|
sprintf(tmpVal, "%c", inputData);
|
||||||
|
// set the internal data :
|
||||||
|
m_data.Clear();
|
||||||
|
m_data.PushBack('\0');
|
||||||
|
Set(tmpVal);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
etk::UString::UString(int inputData)
|
etk::UString::UString(int inputData)
|
||||||
{
|
{
|
||||||
char tmpVal[256];
|
char tmpVal[256];
|
||||||
@ -227,57 +239,6 @@ const etk::UString& etk::UString::operator= (const etk::UString &etkS )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief
|
|
||||||
*
|
|
||||||
* @param[in,out]
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
const etk::UString& etk::UString::operator= (const char * inputData)
|
|
||||||
{
|
|
||||||
m_data.Clear();
|
|
||||||
m_data.PushBack('\0');
|
|
||||||
if (NULL == inputData) {
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
// calculate the size :
|
|
||||||
uint32_t len = strlen(inputData);
|
|
||||||
// check the new size ...
|
|
||||||
if (len > 0 ) {
|
|
||||||
// copy all data :
|
|
||||||
Set(inputData, len);
|
|
||||||
}
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief
|
|
||||||
*
|
|
||||||
* @param[in,out]
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
const etk::UString& etk::UString::operator= (const uniChar_t * inputData)
|
|
||||||
{
|
|
||||||
m_data.Clear();
|
|
||||||
m_data.PushBack('\0');
|
|
||||||
if (NULL == inputData) {
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
// calculate the size :
|
|
||||||
int32_t len = strlen(inputData);
|
|
||||||
// check the new size ...
|
|
||||||
if (len > 0 ) {
|
|
||||||
// copy all data :
|
|
||||||
Set(inputData, len);
|
|
||||||
}
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief
|
* @brief
|
||||||
*
|
*
|
||||||
@ -442,43 +403,6 @@ bool etk::UString::operator== (const etk::UString& etkS) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief
|
|
||||||
*
|
|
||||||
* @param[in,out]
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
bool etk::UString::operator== (const char * inputData) const
|
|
||||||
{
|
|
||||||
etk::UString tmpString(inputData);
|
|
||||||
return *this == tmpString;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief
|
|
||||||
*
|
|
||||||
* @param[in,out]
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
bool etk::UString::operator== (const uniChar_t * inputData) const
|
|
||||||
{
|
|
||||||
// calculate the size :
|
|
||||||
int32_t len = strlen(inputData);
|
|
||||||
if (len+1 != m_data.Size()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
for (int32_t iii= 0; iii<m_data.Size(); iii++) {
|
|
||||||
if (inputData[iii]!= m_data[iii]){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief
|
* @brief
|
||||||
@ -494,20 +418,6 @@ bool etk::UString::operator!= (const etk::UString& etkS) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief
|
|
||||||
*
|
|
||||||
* @param[in,out]
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
bool etk::UString::operator!= (const char * inputData) const
|
|
||||||
{
|
|
||||||
return !(*this == inputData);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief
|
* @brief
|
||||||
*
|
*
|
||||||
@ -533,65 +443,6 @@ const etk::UString& etk::UString::operator+= (const etk::UString &etkS)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief
|
|
||||||
*
|
|
||||||
* @param[in,out]
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
const etk::UString& etk::UString::operator+= (const uniChar_t * inputData)
|
|
||||||
{
|
|
||||||
//TK_INFO(" UString(arg) : \"" << inputData << "\"");
|
|
||||||
//TK_INFO(" UString(direct) : \"" << m_data << "\"");
|
|
||||||
int32_t len = strlen(inputData);
|
|
||||||
|
|
||||||
if (len != 0) {
|
|
||||||
// remove the last '\0'
|
|
||||||
m_data.PopBack();
|
|
||||||
// copy the data ...
|
|
||||||
m_data.PushBack(inputData, len+1 );
|
|
||||||
}
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief
|
|
||||||
*
|
|
||||||
* @param[in,out]
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
const etk::UString& etk::UString::operator+= (const char * inputData)
|
|
||||||
{
|
|
||||||
etk::UString tmpString(inputData);
|
|
||||||
*this += tmpString;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
const etk::UString& etk::UString::operator+= (const char data)
|
|
||||||
{
|
|
||||||
etk::UString tmpString(data);
|
|
||||||
*this += tmpString;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
const etk::UString& etk::UString::operator+= (const int data)
|
|
||||||
{
|
|
||||||
etk::UString tmpString(data);
|
|
||||||
*this += tmpString;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
const etk::UString& etk::UString::operator+= (const unsigned int data)
|
|
||||||
{
|
|
||||||
etk::UString tmpString(data);
|
|
||||||
*this += tmpString;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief
|
* @brief
|
||||||
*
|
*
|
||||||
@ -611,41 +462,6 @@ etk::UString etk::UString::operator+ (const etk::UString &etkS)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief
|
|
||||||
*
|
|
||||||
* @param[in,out]
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
etk::UString etk::UString::operator+ (const char * inputData)
|
|
||||||
{
|
|
||||||
etk::UString temp;
|
|
||||||
//TK_INFO(" UString(arg) : \"" << inputData << "\"");
|
|
||||||
//TK_INFO(" UString(direct) : \"" << m_data << "\"");
|
|
||||||
temp += *this;
|
|
||||||
temp += inputData;
|
|
||||||
return temp;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* @brief
|
|
||||||
*
|
|
||||||
* @param[in,out]
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
etk::UString etk::UString::operator+ (const uniChar_t * inputData)
|
|
||||||
{
|
|
||||||
etk::UString temp;
|
|
||||||
//TK_INFO(" UString(arg) : \"" << inputData << "\"");
|
|
||||||
//TK_INFO(" UString(direct) : \"" << m_data << "\"");
|
|
||||||
temp += *this;
|
|
||||||
temp += inputData;
|
|
||||||
return temp;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -865,31 +681,6 @@ etk::VectorType<uniChar_t> etk::UString::GetVector(void)
|
|||||||
|
|
||||||
|
|
||||||
// Start With ...
|
// Start With ...
|
||||||
bool etk::UString::StartWith(const char* data)
|
|
||||||
{
|
|
||||||
etk::UString tmpString(data);
|
|
||||||
return StartWith(tmpString);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool etk::UString::StartWith(const uniChar_t* data)
|
|
||||||
{
|
|
||||||
if (NULL == data) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
int32_t len = strlen(data);
|
|
||||||
if (len == 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (len > Size()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
for (int32_t iii=0; iii<len; iii++) {
|
|
||||||
if (data[iii] != m_data[iii]) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool etk::UString::StartWith(const etk::UString& data)
|
bool etk::UString::StartWith(const etk::UString& data)
|
||||||
{
|
{
|
||||||
@ -908,35 +699,6 @@ bool etk::UString::StartWith(const etk::UString& data)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool etk::UString::EndWith(const char* data)
|
|
||||||
{
|
|
||||||
etk::UString tmpString(data);
|
|
||||||
return EndWith(tmpString);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool etk::UString::EndWith(const uniChar_t* data)
|
|
||||||
{
|
|
||||||
if (NULL == data) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
int32_t len = strlen(data);
|
|
||||||
if (len == 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (len > Size()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
for( int32_t iii=Size()-1, jjj=len-1;
|
|
||||||
iii>=0 && jjj>=0;
|
|
||||||
iii--, jjj--) {
|
|
||||||
if (data[jjj] != m_data[iii]) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool etk::UString::EndWith(const etk::UString& data)
|
bool etk::UString::EndWith(const etk::UString& data)
|
||||||
{
|
{
|
||||||
if (data.Size() == 0) {
|
if (data.Size() == 0) {
|
||||||
|
@ -40,6 +40,7 @@ namespace etk
|
|||||||
void Set(const uniChar_t* inputData, int32_t len=-1);
|
void Set(const uniChar_t* inputData, int32_t len=-1);
|
||||||
void Set(const char* inputData, int32_t len=-1);
|
void Set(const char* inputData, int32_t len=-1);
|
||||||
// basic convertion integer en string
|
// basic convertion integer en string
|
||||||
|
UString(char inputData);
|
||||||
UString(int inputData);
|
UString(int inputData);
|
||||||
UString(unsigned int inputData);
|
UString(unsigned int inputData);
|
||||||
UString(const etk::UString &etkS);
|
UString(const etk::UString &etkS);
|
||||||
@ -50,22 +51,16 @@ namespace etk
|
|||||||
* = assigment
|
* = assigment
|
||||||
*****************************************************/
|
*****************************************************/
|
||||||
const etk::UString& operator= (const etk::UString &etkS );
|
const etk::UString& operator= (const etk::UString &etkS );
|
||||||
const etk::UString& operator= (const char * inputData);
|
|
||||||
const etk::UString& operator= (const uniChar_t * inputData);
|
|
||||||
const etk::UString& operator= (etk::VectorType<char> inputData);
|
const etk::UString& operator= (etk::VectorType<char> inputData);
|
||||||
const etk::UString& operator= (etk::VectorType<uniChar_t> inputData);
|
const etk::UString& operator= (etk::VectorType<uniChar_t> inputData);
|
||||||
/*****************************************************
|
/*****************************************************
|
||||||
* == operator
|
* == operator
|
||||||
*****************************************************/
|
*****************************************************/
|
||||||
bool operator== (const etk::UString& etkS) const;
|
bool operator== (const etk::UString& etkS) const;
|
||||||
bool operator== (const uniChar_t * inputData) const;
|
|
||||||
bool operator== (const char * inputData) const;
|
|
||||||
/*****************************************************
|
/*****************************************************
|
||||||
* != operator
|
* != operator
|
||||||
*****************************************************/
|
*****************************************************/
|
||||||
bool operator!= (const etk::UString& etkS) const;
|
bool operator!= (const etk::UString& etkS) const;
|
||||||
bool operator!= (const uniChar_t * inputData) const;
|
|
||||||
bool operator!= (const char * inputData) const;
|
|
||||||
/*****************************************************
|
/*****************************************************
|
||||||
* > < >= <= operator
|
* > < >= <= operator
|
||||||
*****************************************************/
|
*****************************************************/
|
||||||
@ -77,17 +72,10 @@ namespace etk
|
|||||||
* += operator
|
* += operator
|
||||||
*****************************************************/
|
*****************************************************/
|
||||||
const etk::UString& operator+= (const etk::UString &etkS);
|
const etk::UString& operator+= (const etk::UString &etkS);
|
||||||
const etk::UString& operator+= (const char data);
|
|
||||||
const etk::UString& operator+= (const int data);
|
|
||||||
const etk::UString& operator+= (const unsigned int data);
|
|
||||||
const etk::UString& operator+= (const char * inputData);
|
|
||||||
const etk::UString& operator+= (const uniChar_t * inputData);
|
|
||||||
/*****************************************************
|
/*****************************************************
|
||||||
* + operator
|
* + operator
|
||||||
*****************************************************/
|
*****************************************************/
|
||||||
etk::UString operator+ (const etk::UString &etkS);
|
etk::UString operator+ (const etk::UString &etkS);
|
||||||
etk::UString operator+ (const char * inputData);
|
|
||||||
etk::UString operator+ (const uniChar_t * inputData);
|
|
||||||
/*****************************************************
|
/*****************************************************
|
||||||
* << operator
|
* << operator
|
||||||
*****************************************************/
|
*****************************************************/
|
||||||
@ -118,12 +106,8 @@ namespace etk
|
|||||||
* toolbox
|
* toolbox
|
||||||
*****************************************************/
|
*****************************************************/
|
||||||
// Start With ...
|
// Start With ...
|
||||||
bool StartWith(const char* data);
|
|
||||||
bool StartWith(const uniChar_t* data);
|
|
||||||
bool StartWith(const etk::UString& data);
|
bool StartWith(const etk::UString& data);
|
||||||
// End With ...
|
// End With ...
|
||||||
bool EndWith(const char* data);
|
|
||||||
bool EndWith(const uniChar_t* data);
|
|
||||||
bool EndWith(const etk::UString& data);
|
bool EndWith(const etk::UString& data);
|
||||||
// Find element
|
// Find element
|
||||||
int32_t FindForward(const char data, int32_t startPos=0);
|
int32_t FindForward(const char data, int32_t startPos=0);
|
||||||
|
@ -238,7 +238,7 @@ int32_t unicode::convertUtf8ToUnicode(etk::VectorType<char>& input_UTF8, etk::Ve
|
|||||||
tmpData[0] = input_UTF8[pos+0];
|
tmpData[0] = input_UTF8[pos+0];
|
||||||
tmpData[1] = input_UTF8[pos+1];
|
tmpData[1] = input_UTF8[pos+1];
|
||||||
tmpData[2] = '\0';
|
tmpData[2] = '\0';
|
||||||
pos += 1;
|
pos += 2;
|
||||||
} else if( 3<=lenMax
|
} else if( 3<=lenMax
|
||||||
&& 0xE0 == (input_UTF8[pos+0] & 0xF0)
|
&& 0xE0 == (input_UTF8[pos+0] & 0xF0)
|
||||||
&& 0x80 == (input_UTF8[pos+1] & 0xC0)
|
&& 0x80 == (input_UTF8[pos+1] & 0xC0)
|
||||||
@ -247,7 +247,7 @@ int32_t unicode::convertUtf8ToUnicode(etk::VectorType<char>& input_UTF8, etk::Ve
|
|||||||
tmpData[1] = input_UTF8[pos+1];
|
tmpData[1] = input_UTF8[pos+1];
|
||||||
tmpData[2] = input_UTF8[pos+2];
|
tmpData[2] = input_UTF8[pos+2];
|
||||||
tmpData[3] = '\0';
|
tmpData[3] = '\0';
|
||||||
pos += 1;
|
pos += 3;
|
||||||
} else if( 4<=lenMax
|
} else if( 4<=lenMax
|
||||||
&& 0xF0 == (input_UTF8[pos+0] & 0xF8)
|
&& 0xF0 == (input_UTF8[pos+0] & 0xF8)
|
||||||
&& 0x80 == (input_UTF8[pos+1] & 0xC0)
|
&& 0x80 == (input_UTF8[pos+1] & 0xC0)
|
||||||
@ -258,7 +258,7 @@ int32_t unicode::convertUtf8ToUnicode(etk::VectorType<char>& input_UTF8, etk::Ve
|
|||||||
tmpData[2] = input_UTF8[pos+2];
|
tmpData[2] = input_UTF8[pos+2];
|
||||||
tmpData[3] = input_UTF8[pos+3];
|
tmpData[3] = input_UTF8[pos+3];
|
||||||
tmpData[4] = '\0';
|
tmpData[4] = '\0';
|
||||||
pos += 1;
|
pos += 4;
|
||||||
} else {
|
} else {
|
||||||
tmpData[0] = '\0';
|
tmpData[0] = '\0';
|
||||||
pos += 1;
|
pos += 1;
|
||||||
@ -293,7 +293,7 @@ int32_t unicode::convertUtf8ToUnicode(char * input_UTF8, etk::VectorType<uniChar
|
|||||||
tmpData[0] = input_UTF8[pos+0];
|
tmpData[0] = input_UTF8[pos+0];
|
||||||
tmpData[1] = input_UTF8[pos+1];
|
tmpData[1] = input_UTF8[pos+1];
|
||||||
tmpData[2] = '\0';
|
tmpData[2] = '\0';
|
||||||
pos += 1;
|
pos += 2;
|
||||||
} else if( 3<=lenMax
|
} else if( 3<=lenMax
|
||||||
&& 0xE0 == (input_UTF8[pos+0] & 0xF0)
|
&& 0xE0 == (input_UTF8[pos+0] & 0xF0)
|
||||||
&& 0x80 == (input_UTF8[pos+1] & 0xC0)
|
&& 0x80 == (input_UTF8[pos+1] & 0xC0)
|
||||||
@ -302,7 +302,7 @@ int32_t unicode::convertUtf8ToUnicode(char * input_UTF8, etk::VectorType<uniChar
|
|||||||
tmpData[1] = input_UTF8[pos+1];
|
tmpData[1] = input_UTF8[pos+1];
|
||||||
tmpData[2] = input_UTF8[pos+2];
|
tmpData[2] = input_UTF8[pos+2];
|
||||||
tmpData[3] = '\0';
|
tmpData[3] = '\0';
|
||||||
pos += 1;
|
pos += 3;
|
||||||
} else if( 4<=lenMax
|
} else if( 4<=lenMax
|
||||||
&& 0xF0 == (input_UTF8[pos+0] & 0xF8)
|
&& 0xF0 == (input_UTF8[pos+0] & 0xF8)
|
||||||
&& 0x80 == (input_UTF8[pos+1] & 0xC0)
|
&& 0x80 == (input_UTF8[pos+1] & 0xC0)
|
||||||
@ -313,7 +313,7 @@ int32_t unicode::convertUtf8ToUnicode(char * input_UTF8, etk::VectorType<uniChar
|
|||||||
tmpData[2] = input_UTF8[pos+2];
|
tmpData[2] = input_UTF8[pos+2];
|
||||||
tmpData[3] = input_UTF8[pos+3];
|
tmpData[3] = input_UTF8[pos+3];
|
||||||
tmpData[4] = '\0';
|
tmpData[4] = '\0';
|
||||||
pos += 1;
|
pos += 4;
|
||||||
} else {
|
} else {
|
||||||
tmpData[0] = '\0';
|
tmpData[0] = '\0';
|
||||||
pos += 1;
|
pos += 1;
|
||||||
|
@ -532,10 +532,13 @@ bool ewol::FileChooser::OnEventAreaExternal(int32_t widgetID, const char * gener
|
|||||||
//==> this is an internal event ...
|
//==> this is an internal event ...
|
||||||
FileChooserFolderList * myListFolder = (FileChooserFolderList *)ewol::widgetManager::Get(m_widgetListFolderId);
|
FileChooserFolderList * myListFolder = (FileChooserFolderList *)ewol::widgetManager::Get(m_widgetListFolderId);
|
||||||
etk::UString tmpString = myListFolder->GetSelectedLine();
|
etk::UString tmpString = myListFolder->GetSelectedLine();
|
||||||
|
EWOL_DEBUG(" old PATH : \"" << m_folder << "\" + \"" << tmpString << "\"");
|
||||||
m_folder = m_folder + tmpString;
|
m_folder = m_folder + tmpString;
|
||||||
char buf[MAX_FILE_NAME];
|
char buf[MAX_FILE_NAME];
|
||||||
memset(buf, 0, MAX_FILE_NAME);
|
memset(buf, 0, MAX_FILE_NAME);
|
||||||
char * ok;
|
char * ok;
|
||||||
|
EWOL_DEBUG("new PATH : \"" << m_folder << "\"");
|
||||||
|
|
||||||
ok = realpath(m_folder.Utf8Data(), buf);
|
ok = realpath(m_folder.Utf8Data(), buf);
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
EWOL_ERROR("Error to get the real path");
|
EWOL_ERROR("Error to get the real path");
|
||||||
@ -585,7 +588,9 @@ void ewol::FileChooser::UpdateCurrentFolder(void)
|
|||||||
|
|
||||||
myEntry->SetValue(m_folder);
|
myEntry->SetValue(m_folder);
|
||||||
myListFolder->AddElement(etk::UString("."));
|
myListFolder->AddElement(etk::UString("."));
|
||||||
|
if (m_folder != "/" ) {
|
||||||
myListFolder->AddElement(etk::UString(".."));
|
myListFolder->AddElement(etk::UString(".."));
|
||||||
|
}
|
||||||
DIR *dir;
|
DIR *dir;
|
||||||
struct dirent *ent;
|
struct dirent *ent;
|
||||||
dir = opendir(m_folder.Utf8Data());
|
dir = opendir(m_folder.Utf8Data());
|
||||||
@ -598,6 +603,7 @@ void ewol::FileChooser::UpdateCurrentFolder(void)
|
|||||||
myListFile->AddElement(tmpString);
|
myListFile->AddElement(tmpString);
|
||||||
}
|
}
|
||||||
} else if (DT_DIR == ent->d_type) {
|
} else if (DT_DIR == ent->d_type) {
|
||||||
|
//EWOL_DEBUG(" find Folder : \"" << tmpString << "\"(" << tmpString.Size() << ") ?= \"" << ent->d_name << "\"(" << strlen(ent->d_name) );
|
||||||
if (tmpString != "." && tmpString != "..") {
|
if (tmpString != "." && tmpString != "..") {
|
||||||
if (false == tmpString.StartWith(".") || true==ShowHidenFile) {
|
if (false == tmpString.StartWith(".") || true==ShowHidenFile) {
|
||||||
myListFolder->AddElement(tmpString);
|
myListFolder->AddElement(tmpString);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user