diff options
Diffstat (limited to 'app-i18n/zhcon/files/zhcon-0.2.6-amd64.patch')
-rw-r--r-- | app-i18n/zhcon/files/zhcon-0.2.6-amd64.patch | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/app-i18n/zhcon/files/zhcon-0.2.6-amd64.patch b/app-i18n/zhcon/files/zhcon-0.2.6-amd64.patch new file mode 100644 index 000000000000..58da5e99766a --- /dev/null +++ b/app-i18n/zhcon/files/zhcon-0.2.6-amd64.patch @@ -0,0 +1,77 @@ +diff --git a/src/winime.cpp b/src/winime.cpp +index 0c52393..85729a3 100644 +--- a/src/winime.cpp ++++ b/src/winime.cpp +@@ -56,10 +56,10 @@ mCandilistBufLen(0) + + memcpy(&mHead, mpBuf, sizeof(mHead)); + int len = strlen(mHead.mCodeSet); +- mpIndex1 = (char **) (mpBuf + sizeof(mHead)); +- mpIndex2 = (char **) (mpBuf + sizeof(mHead) + len * sizeof(char *)); +- mpText = mpBuf + sizeof(mHead) + len * sizeof(char *) + +- len * len * sizeof(char *); ++ mpIndex1 = (int *) (mpBuf + sizeof(mHead)); ++ mpIndex2 = (int *) (mpBuf + sizeof(mHead) + len * sizeof(int)); ++ mpText = mpBuf + sizeof(mHead) + len * sizeof(int) + ++ len * len * sizeof(int); + } + + WinIme::~WinIme() { +@@ -246,32 +246,33 @@ int WinIme::Search(char c) { + // p = *t; + } + else +- p = mpIndex1[Index(c)]; ++ p = (char *)mpIndex1[Index(c)]; + + if (p == (char *) 0xffffffff) + found = false; +- p = (unsigned int) p + mpText; ++ p = (unsigned long) p + mpText; + } //2nd level index + else if (mNum == 1) { + int l = strlen(mHead.mCodeSet); + if (c == mHead.mWildChar) { + char **t; + t = +- find_if(mpIndex2 + Index(mInput[0]) * l, +- mpIndex2 + (Index(mInput[0]) + 1) * l, ++ find_if((char **)(mpIndex2 + Index(mInput[0]) * l), ++ (char **)(mpIndex2 + (Index(mInput[0]) + 1) * l), + bind2nd(not_equal_to < char *>(), + (char *) 0xffffffff)); +- if (t == mpIndex2 + (Index(mInput[0]) + 1) * l) ++ if (t == ((char **)mpIndex2) + (Index(mInput[0]) + 1) * l) + p = (char *) 0xffffffff; + else + p = *t; +- } else +- p = mpIndex2[Index(mInput[0]) * l + Index(c)]; ++ } else { ++ int dd = Index(mInput[0]) * l + Index(c); ++ p = (char *)(mpIndex2[Index(mInput[0]) * l + Index(c)]); ++ } + + if (p == (char *) 0xffffffff) + found = false; +- +- p = (unsigned int) p + mpText; ++ p = (unsigned long) p + mpText; + } else if (mNum < mHead.mMaxCodes) { + p = mpOffset[mNum - 1]; + if (p == (char *) 0xffffffff) +diff --git a/src/winime.h b/src/winime.h +index c2f51ab..816a270 100644 +--- a/src/winime.h ++++ b/src/winime.h +@@ -83,8 +83,8 @@ class WinIme { + char* mpOffset[12]; + int mFd; + char* mpBuf; +- char** mpIndex1; +- char** mpIndex2; ++ int *mpIndex1; ++ int *mpIndex2; + char* mpText; + char* mpCur; //current search position + unsigned int mBufSize; |