mirror of
git://xwords.git.sourceforge.net/gitroot/xwords/xwords
synced 2024-12-26 09:58:20 +01:00
fix stubbed dict support
This commit is contained in:
parent
b2b7828dbe
commit
a6e6e2b05c
1 changed files with 16 additions and 9 deletions
|
@ -486,7 +486,7 @@ void
|
||||||
destroy_stubbed_dict( DictionaryCtxt* dict )
|
destroy_stubbed_dict( DictionaryCtxt* dict )
|
||||||
{
|
{
|
||||||
XP_FREE( dict->mpool, dict->countsAndValues );
|
XP_FREE( dict->mpool, dict->countsAndValues );
|
||||||
XP_FREE( dict->mpool, dict->faces16 );
|
XP_FREE( dict->mpool, dict->faces );
|
||||||
XP_FREE( dict->mpool, dict->chars );
|
XP_FREE( dict->mpool, dict->chars );
|
||||||
XP_FREE( dict->mpool, dict->name );
|
XP_FREE( dict->mpool, dict->name );
|
||||||
XP_FREE( dict->mpool, dict->bitmaps );
|
XP_FREE( dict->mpool, dict->bitmaps );
|
||||||
|
@ -499,7 +499,7 @@ make_stubbed_dict( MPFORMAL_NOCOMMA )
|
||||||
DictionaryCtxt* dict = (DictionaryCtxt*)XP_MALLOC( mpool, sizeof(*dict) );
|
DictionaryCtxt* dict = (DictionaryCtxt*)XP_MALLOC( mpool, sizeof(*dict) );
|
||||||
XP_U8* data = stub_english_data;
|
XP_U8* data = stub_english_data;
|
||||||
XP_U16 datasize = sizeof(stub_english_data);
|
XP_U16 datasize = sizeof(stub_english_data);
|
||||||
XP_U16 i;
|
XP_U16 ii;
|
||||||
|
|
||||||
XP_MEMSET( dict, 0, sizeof(*dict) );
|
XP_MEMSET( dict, 0, sizeof(*dict) );
|
||||||
|
|
||||||
|
@ -509,16 +509,23 @@ make_stubbed_dict( MPFORMAL_NOCOMMA )
|
||||||
|
|
||||||
dict->destructor = destroy_stubbed_dict;
|
dict->destructor = destroy_stubbed_dict;
|
||||||
|
|
||||||
dict->faces16 = (XP_CHAR16*)
|
dict->faces = (XP_UCHAR*)
|
||||||
XP_MALLOC( mpool, dict->nFaces * sizeof(dict->faces16[0]) );
|
XP_MALLOC( mpool, 2 * dict->nFaces * sizeof(dict->faces[0]) );
|
||||||
for ( i = 0; i < datasize/3; ++i ) {
|
dict->facePtrs = (XP_UCHAR**)
|
||||||
dict->faces16[i] = (XP_CHAR16)data[(i*3)+2];
|
XP_MALLOC( mpool, dict->nFaces * sizeof(dict->facePtrs[0]) );
|
||||||
|
|
||||||
|
XP_UCHAR* nextChar = dict->faces;
|
||||||
|
XP_UCHAR** nextPtr = dict->facePtrs;
|
||||||
|
for ( ii = 0; ii < datasize/3; ++ii ) {
|
||||||
|
*nextPtr++ = nextChar;
|
||||||
|
*nextChar++ = (XP_UCHAR)data[(ii*3)+2];
|
||||||
|
*nextChar++ = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
dict->countsAndValues = (XP_U8*)XP_MALLOC( mpool, dict->nFaces*2 );
|
dict->countsAndValues = (XP_U8*)XP_MALLOC( mpool, dict->nFaces*2 );
|
||||||
for ( i = 0; i < datasize/3; ++i ) {
|
for ( ii = 0; ii < datasize/3; ++ii ) {
|
||||||
dict->countsAndValues[i*2] = data[(i*3)];
|
dict->countsAndValues[ii*2] = data[(ii*3)];
|
||||||
dict->countsAndValues[(i*2)+1] = data[(i*3)+1];
|
dict->countsAndValues[(ii*2)+1] = data[(ii*3)+1];
|
||||||
}
|
}
|
||||||
|
|
||||||
dict->bitmaps = (SpecialBitmaps*)XP_MALLOC( mpool, sizeof(SpecialBitmaps) );
|
dict->bitmaps = (SpecialBitmaps*)XP_MALLOC( mpool, sizeof(SpecialBitmaps) );
|
||||||
|
|
Loading…
Reference in a new issue