git-svn-id: svn://db.shs.com.ru/pip@555 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
@@ -700,7 +700,13 @@ bool TileInput::keyEvent(PIKbdListener::KeyEvent key) {
|
|||||||
case PIKbdListener::F12:
|
case PIKbdListener::F12:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
text.insert(cur, PIChar(key.key));
|
PIChar tc
|
||||||
|
#ifdef WINDOWS
|
||||||
|
= PIChar(key.key);
|
||||||
|
#else
|
||||||
|
= PIChar::fromUTF8((char *)&(key.key));
|
||||||
|
#endif
|
||||||
|
text.insert(cur, tc);
|
||||||
cur++;
|
cur++;
|
||||||
oo++;
|
oo++;
|
||||||
if (cur - offset >= lwid - osp) offset += oo;
|
if (cur - offset >= lwid - osp) offset += oo;
|
||||||
|
|||||||
@@ -20,8 +20,7 @@
|
|||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <iostream>
|
#include "piincludes_p.h"
|
||||||
#include <string.h>
|
|
||||||
#include "pibytearray.h"
|
#include "pibytearray.h"
|
||||||
#ifdef PIP_ICU
|
#ifdef PIP_ICU
|
||||||
# include "unicode/ucnv.h"
|
# include "unicode/ucnv.h"
|
||||||
@@ -115,9 +114,13 @@ PIChar PIChar::fromUTF8(const char * c) {
|
|||||||
#endif
|
#endif
|
||||||
//#ifdef ANDROID
|
//#ifdef ANDROID
|
||||||
wchar_t wc(0);
|
wchar_t wc(0);
|
||||||
mbstate_t s;
|
mbtowc(0, 0, 0); // reset mbtowc
|
||||||
mbrtowc(&wc, c, 4, &s);
|
//mbstate_t s;
|
||||||
ret.ch = wc;
|
//mbrtowc(&wc, c, 4, &s);
|
||||||
|
int sz = 0;
|
||||||
|
sz = mbtowc(&wc, c, sizeof(ushort));
|
||||||
|
if (sz < 1 || sz > (int)sizeof(ushort)) ret.ch = 0;
|
||||||
|
else ret.ch = wc;
|
||||||
return ret;
|
return ret;
|
||||||
//#endif
|
//#endif
|
||||||
// ret.ch = *(ushort*)c;
|
// ret.ch = *(ushort*)c;
|
||||||
|
|||||||
@@ -214,13 +214,12 @@ void PIString::appendFromChars(const char * c, int s, const char * cp) {
|
|||||||
#endif
|
#endif
|
||||||
int sz;
|
int sz;
|
||||||
wchar_t wc;
|
wchar_t wc;
|
||||||
for (int i = 0; i < s; ++i) {
|
mbtowc(0,0,0); // reset mbtowc
|
||||||
if (/*isascii(c[i])*/c[i] >= 0) {
|
while (s>0) {
|
||||||
push_back(PIChar(c[i]));
|
sz = mbtowc(&wc, c, s);
|
||||||
continue;
|
if (sz < 1) break;
|
||||||
}
|
|
||||||
sz = mbtowc(&wc, &(c[i]), 4);
|
|
||||||
push_back(PIChar(int(wc)));
|
push_back(PIChar(int(wc)));
|
||||||
|
c += sz; s -= sz;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -330,8 +329,10 @@ void PIString::buildData(const char * cp) const {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
wchar_t wc;
|
wchar_t wc;
|
||||||
char tc[4];
|
char tc[8];
|
||||||
mbstate_t s;
|
// mbstate_t s;
|
||||||
|
// mbrlen(0,0,&s);
|
||||||
|
wctomb(0, 0);
|
||||||
int sz(0);
|
int sz(0);
|
||||||
//printf("PIString::data %d\n", size_s());
|
//printf("PIString::data %d\n", size_s());
|
||||||
for (int i = 0; i < size_s(); ++i) {
|
for (int i = 0; i < size_s(); ++i) {
|
||||||
@@ -340,7 +341,8 @@ void PIString::buildData(const char * cp) const {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
wc = at(i).toWChar();
|
wc = at(i).toWChar();
|
||||||
sz = piClampi(wcrtomb(tc, wc, &s), 0, 4);
|
// sz = piClampi(wcrtomb(tc, wc, &s), 0, 4);
|
||||||
|
sz = wctomb(tc, wc);
|
||||||
for (int b = 0; b < sz; ++b)
|
for (int b = 0; b < sz; ++b)
|
||||||
data_.push_back(uchar(tc[b]));
|
data_.push_back(uchar(tc[b]));
|
||||||
//printf("__%d_%d\n", i, wc);
|
//printf("__%d_%d\n", i, wc);
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
#define PIP_VERSION_MAJOR 1
|
#define PIP_VERSION_MAJOR 1
|
||||||
#define PIP_VERSION_MINOR 1
|
#define PIP_VERSION_MINOR 1
|
||||||
#define PIP_VERSION_REVISION 0
|
#define PIP_VERSION_REVISION 1
|
||||||
#define PIP_VERSION_SUFFIX ""
|
#define PIP_VERSION_SUFFIX ""
|
||||||
|
|
||||||
#endif // PIVERSION_H
|
#endif // PIVERSION_H
|
||||||
|
|||||||
Reference in New Issue
Block a user