Big Endian Fixes, LCID support (must be paired with LCID-Charset support on the .hhp interpretation side)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31053 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2004-12-18 10:37:12 +00:00
parent fc32cd4a59
commit fbd3562061

View File

@@ -595,7 +595,9 @@ wxChmInputStream::CreateHHPStream()
{
// Read #SYSTEM-Code and length
i->Read(&code, 2);
code = wxUINT16_SWAP_ON_BE( code ) ;
i->Read(&len, 2);
len = wxUINT16_SWAP_ON_BE( len ) ;
// data
buf = malloc(len);
i->Read(buf, len);
@@ -625,7 +627,19 @@ wxChmInputStream::CreateHHPStream()
out->Write( (const void *) tmp, strlen(tmp));
tmp = NULL;
break;
case 4: // STRUCT
case 4: // STRUCT SYSTEM INFO
tmp = NULL ;
if ( len >= 28 )
{
char *structptr = (char*) buf ;
// LCID at position 0
wxUint32 dummy = *((wxUint32 *)(structptr+0)) ;
wxUint32 lcid = wxUINT32_SWAP_ON_BE( dummy ) ;
wxString msg ;
msg.Printf("Language=0x%X\r\n",lcid) ;
out->Write(msg.c_str() , msg.Length() ) ;
}
break ;
default:
tmp=NULL;
}