return new_characts(*c);
}
+html_t *new_html(raw_data_t *rd, int *memopt)
+{
+ html_t *html = xmalloc(sizeof(html_t));
+ html->data = rd;
+ if(memopt)
+ {
+ html->memopt = *memopt;
+ free(memopt);
+ }
+ else
+ html->memopt = WRC_MO_MOVEABLE | WRC_MO_PURE;
+ return html;
+}
+
rcdata_t *new_rcdata(raw_data_t *rd, int *memopt)
{
rcdata_t *rc = (rcdata_t *)xmalloc(sizeof(rcdata_t));
{
type |= FL_SIZEBE | FL_OS2;
}
- else
- yyerror("Invalid bitmap format, bih->biSize = %ld", bih->biSize);
+ else
+ {
+ fprintf(stderr, "bisizel %d bosizel %d b4sizel %d\n", bisizel, bosizel, b4sizel);
+ yyerror("Invalid bitmap format, bih->biSize = %u", bih->biSize);
+ }
switch(type)
{
isprint(rtp->tag[2]) ? rtp->tag[2] : '.',
isprint(rtp->tag[3]) ? rtp->tag[3] : '.');
- /* FIXME: This relies in sizeof(DWORD) == sizeof(pointer_type) */
- if((DWORD)rtp & 1)
+ if((UINT_PTR)rtp & 1)
rtp = SKIP_TAG(rtp,1);
}
}
/* We only go through the RIFF file if we need to swap
* bytes in words/dwords. Else we couldn't care less
* what the file contains. This is consistent with
- * MS' rc.exe, which doesn't complain at all, eventhough
- * the fileformat might not be entirely correct.
+ * MS' rc.exe, which doesn't complain at all, even though
+ * the file format might not be entirely correct.
*/
rtp++; /* Skip the "RIFF" tag */
isprint(rtp->tag[2]) ? rtp->tag[2] : '.',
isprint(rtp->tag[3]) ? rtp->tag[3] : '.');
- /* FIXME: This relies in sizeof(DWORD) == sizeof(pointer_type) */
- if((DWORD)rtp & 1)
+ if((UINT_PTR)rtp & 1)
rtp = SKIP_TAG(rtp,1);
}
for(id = mbp[i].idlo; id <= mbp[i].idhi; id++)
{
if(MSGTAB_BAD_PTR(mep, rd->data, rd->size, mep->length))
- yyerror("Messagetable's data for block %d, ID 0x%08lx is outside of defined data", (int)i, id);
+ yyerror("Messagetable's data for block %d, ID 0x%08x is outside of defined data", (int)i, id);
if(mep->flags == 1) /* Docu says 'flags == 0x0001' for unicode */
{
WORD *wp = (WORD *)&mep[1];
int n;
if(mep->length & 1)
- yyerror("Message 0x%08lx is unicode (block %d), but has odd length (%d)", id, (int)i, mep->length);
+ yyerror("Message 0x%08x is unicode (block %d), but has odd length (%d)", id, (int)i, mep->length);
for(n = 0; n < l; n++)
wp[n] = BYTESWAP_WORD(wp[n]);
mep->flags = BYTESWAP_WORD(mep->flags);
if(MSGTAB_BAD_PTR(mep, rd->data, rd->size, mep->length))
- yyerror("Messagetable's data for block %d, ID 0x%08lx is outside of defined data", (int)i, id);
+ yyerror("Messagetable's data for block %d, ID 0x%08x is outside of defined data", (int)i, id);
if(mep->flags == 1) /* Docu says 'flags == 0x0001' for unicode */
{
WORD *wp = (WORD *)&mep[1];
int n;
if(mep->length & 1)
- yyerror("Message 0x%08lx is unicode (block %d), but has odd length (%d)", id, (int)i, mep->length);
+ yyerror("Message 0x%08x is unicode (block %d), but has odd length (%d)", id, (int)i, mep->length);
for(n = 0; n < l; n++)
wp[n] = BYTESWAP_WORD(wp[n]);