* resres.c (write_res_header): Align header size.
(res_align_file): Calculate alignment correctly.
This commit is contained in:
parent
cf759d3bc0
commit
5f16d8553b
2 changed files with 8 additions and 1 deletions
|
@ -1,5 +1,8 @@
|
||||||
2001-07-16 DJ Delorie <dj@redhat.com>
|
2001-07-16 DJ Delorie <dj@redhat.com>
|
||||||
|
|
||||||
|
* resres.c (write_res_header): Align header size.
|
||||||
|
(res_align_file): Calculate alignment correctly.
|
||||||
|
|
||||||
* rcparse.y (styles): use SUBLANG_SHIFT instead of 8 (or the more
|
* rcparse.y (styles): use SUBLANG_SHIFT instead of 8 (or the more
|
||||||
correct 10).
|
correct 10).
|
||||||
* resrc.c (write_rc_resource): Likewise.
|
* resrc.c (write_rc_resource): Likewise.
|
||||||
|
|
|
@ -387,6 +387,8 @@ write_res_header (datasize, type, name, resinfo)
|
||||||
reshdr.data_size = datasize;
|
reshdr.data_size = datasize;
|
||||||
reshdr.header_size = 24 + get_id_size (type) + get_id_size (name);
|
reshdr.header_size = 24 + get_id_size (type) + get_id_size (name);
|
||||||
|
|
||||||
|
reshdr.header_size = (reshdr.header_size + 3) & ~3;
|
||||||
|
|
||||||
res_align_file ();
|
res_align_file ();
|
||||||
write_res_data (&reshdr, sizeof (reshdr), 1);
|
write_res_data (&reshdr, sizeof (reshdr), 1);
|
||||||
write_res_id (type);
|
write_res_id (type);
|
||||||
|
@ -513,7 +515,9 @@ read_unistring (len)
|
||||||
static void
|
static void
|
||||||
res_align_file (void)
|
res_align_file (void)
|
||||||
{
|
{
|
||||||
if (fseek (fres, ftell (fres) % 4, SEEK_CUR) != 0)
|
int pos = ftell (fres);
|
||||||
|
int skip = ((pos + 3) & ~3) - pos;
|
||||||
|
if (fseek (fres, skip, SEEK_CUR) != 0)
|
||||||
fatal ("%s: %s: unable to align file", program_name, filename);
|
fatal ("%s: %s: unable to align file", program_name, filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue