diff --git a/src/core/piinit.cpp b/src/core/piinit.cpp index 59f15fc6..557c069f 100644 --- a/src/core/piinit.cpp +++ b/src/core/piinit.cpp @@ -85,9 +85,7 @@ void android_thread_exit_handler(int sig) { PIInit::PIInit() { PISystemInfo * sinfo = PISystemInfo::instance(); sinfo->execDateTime = PIDateTime::current(); - file_charset = new char[1024]; - memset(file_charset, 0, 1024); - strcpy(file_charset, "UTF-8"); + setFileCharset("UTF-8"); #ifndef ANDROID PISignals::setSlot(__sighandler__); PISignals::grabSignals(PISignals::UserDefined1); @@ -276,6 +274,17 @@ PIInit::~PIInit() { } +void PIInit::setFileCharset(const char *charset) { + if (file_charset) delete file_charset; + file_charset = 0; + if (charset) { + file_charset = new char[1024]; + memset(file_charset, 0, 1024); + strcpy(file_charset, charset); + } +} + + bool PIInit::fileExists(const PIString & p) { FILE * f = fopen(p.data(), "r"); if (f == 0) diff --git a/src/core/piinit.h b/src/core/piinit.h index 3e41d9e8..6e63f05c 100644 --- a/src/core/piinit.h +++ b/src/core/piinit.h @@ -47,6 +47,7 @@ public: ~PIInit(); static PIInit * instance() {return __PIInit_Initializer__::__instance__;} private: + void setFileCharset(const char *charset); bool fileExists(const PIString & p); #ifdef WINDOWS HMODULE ntlib; diff --git a/src/core/pistring.cpp b/src/core/pistring.cpp index bf9b14bf..7a1102cb 100755 --- a/src/core/pistring.cpp +++ b/src/core/pistring.cpp @@ -263,7 +263,7 @@ void PIString::trimsubstr(int &st, int &fn) const { for (int i = length() - 1; i >= 0; --i) if (at(i) != ' ' && at(i) != '\t' && at(i) != '\n' && at(i) != '\r' && at(i) != char(12)) {fn = i; break;} - piCout << "trim" << st << fn; +// piCout << "trim" << st << fn; } diff --git a/src/io/pifile.cpp b/src/io/pifile.cpp index 84e11c46..9a33fdf1 100755 --- a/src/io/pifile.cpp +++ b/src/io/pifile.cpp @@ -412,12 +412,7 @@ const char * PIFile::defaultCharset() { void PIFile::setDefaultCharset(const char * c) { - if (PIInit::instance()->file_charset) delete PIInit::instance()->file_charset; - PIInit::instance()->file_charset = 0; - if (!c) return; - PIInit::instance()->file_charset = new char[1024]; - memset(PIInit::instance()->file_charset, 0, 1024); - strcpy(PIInit::instance()->file_charset, c); + PIInit::instance()->setFileCharset(c); }