diff -r -b -u src-orig/binutils/rcparse.y src/binutils/rcparse.y --- src-orig/binutils/rcparse.y Sat Nov 17 23:17:36 2001 +++ src/binutils/rcparse.y Sat Nov 17 23:57:12 2001 @@ -332,7 +332,7 @@ dialog.y = $6; dialog.width = $7; dialog.height = $8; - dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU; + dialog.style = WS_POPUP; dialog.exstyle = $4; dialog.menu.named = 1; dialog.class.named = 1; @@ -353,7 +353,7 @@ dialog.y = $6; dialog.width = $7; dialog.height = $8; - dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU; + dialog.style = WS_POPUP; dialog.exstyle = $4; dialog.menu.named = 1; dialog.class.named = 1; @@ -376,7 +376,7 @@ dialog.y = $6; dialog.width = $7; dialog.height = $8; - dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU; + dialog.style = WS_POPUP; dialog.exstyle = $4; dialog.menu.named = 1; dialog.class.named = 1; @@ -409,6 +409,7 @@ /* empty */ | styles CAPTION QUOTEDSTRING { + dialog.style |= WS_CAPTION; unicode_from_ascii ((int *) NULL, &dialog.caption, $3); } | styles CLASS id @@ -416,10 +417,10 @@ dialog.class = $3; } | styles STYLE - { style = dialog.style; } + { style = dialog.style & ~WS_POPUP; } styleexpr { - dialog.style = style; + dialog.style |= style; } | styles EXSTYLE numexpr { @@ -431,7 +432,7 @@ dialog.pointsize = $3; unicode_from_ascii ((int *) NULL, &dialog.font, $5); } - | styles FONT numexpr ',' QUOTEDSTRING cnumexpr cnumexpr + | styles FONT numexpr ',' QUOTEDSTRING cnumexpr cnumexpr cnumexpr { dialog.style |= DS_SETFONT; dialog.pointsize = $3; @@ -442,6 +443,7 @@ { dialog.ex->weight = $6; dialog.ex->italic = $7; + dialog.ex->charset = $8; } } | styles MENU id diff -r -b -u src-orig/binutils/resbin.c src/binutils/resbin.c --- src-orig/binutils/resbin.c Sat Nov 17 23:17:36 2001 +++ src/binutils/resbin.c Sat Nov 17 23:57:12 2001 @@ -30,6 +30,7 @@ /* Macros to swap in values. */ +#define get_8(s) (*((unsigned char *)(s))) #define get_16(be, s) ((be) ? bfd_getb16 (s) : bfd_getl16 (s)) #define get_32(be, s) ((be) ? bfd_getb32 (s) : bfd_getl32 (s)) @@ -523,6 +524,7 @@ { d->ex->weight = 0; d->ex->italic = 0; + d->ex->charset = 1; /* default charset */ } } else @@ -538,7 +540,8 @@ if (length < off + 4) toosmall (_("dialogex font information")); d->ex->weight = get_16 (big_endian, data + off); - d->ex->italic = get_16 (big_endian, data + off + 2); + d->ex->italic = get_8 (data + off + 2); + d->ex->charset = get_8 (data + off + 3); off += 4; } @@ -1252,6 +1255,7 @@ /* Macros to swap out values. */ +#define put_8(v, s) (*((unsigned char *)(s)) = (unsigned char)(v)) #define put_16(be, v, s) ((be) ? bfd_putb16 ((v), (s)) : bfd_putl16 ((v), (s))) #define put_32(be, v, s) ((be) ? bfd_putb32 ((v), (s)) : bfd_putl32 ((v), (s))) @@ -1621,12 +1625,14 @@ if (dialog->ex == NULL) { put_16 (big_endian, 0, d->data + 2); - put_16 (big_endian, 0, d->data + 4); + put_8 (0, d->data + 4); + put_8 (1, d->data + 5); } else { put_16 (big_endian, dialog->ex->weight, d->data + 2); - put_16 (big_endian, dialog->ex->italic, d->data + 4); + put_8 (dialog->ex->italic, d->data + 4); + put_8 (dialog->ex->charset, d->data + 5); } } diff -r -b -u src-orig/binutils/windres.h src/binutils/windres.h --- src-orig/binutils/windres.h Sat Nov 17 23:17:36 2001 +++ src/binutils/windres.h Sat Nov 17 23:57:12 2001 @@ -315,7 +315,9 @@ /* Font weight. */ unsigned short weight; /* Whether the font is italic. */ - unsigned short italic; + unsigned char italic; + /* Character set. */ + unsigned char charset; }; /* Window style flags, from the winsup Defines.h header file. These