While a typedef can be specified in message files for the messages following
with the `MessageIdTypedef` directive, only the last typedef was honored by
windmc. This corrects this behavior, matching mc.exe functionality.
* windmc.h (struct mc_node): Add id_typecast field.
* mcparse.y (message): Initialise the id_typecast field.
* windmc.c (write_dbg): Use the id_typecast field as a parameter
when calling write_dbg_define.
(write_header): Likewise.
+2020-06-03 Joel Anderson <joelanderson333@gmail.com>
+
+ * windmc.h (struct mc_node): Add id_typecast field.
+ * mcparse.y (message): Initialise the id_typecast field.
+ * windmc.c (write_dbg): Use the id_typecast field as a parameter
+ when calling write_dbg_define.
+ (write_header): Likewise.
+
2020-06-03 Alan Modra <amodra@gmail.com>
PR 26069
cur_node->severity = mc_cur_severity;
cur_node->id = ($1 & 0xffffUL);
cur_node->vid = ($1 & 0xffffUL) | mc_sefa_val;
+ cur_node->id_typecast = mcset_msg_id_typedef;
mc_last_id = $1;
}
lang_entities
while (h != NULL)
{
if (h->symbol)
- write_dbg_define (fp, h->symbol, mcset_msg_id_typedef);
+ write_dbg_define (fp, h->symbol, h->id_typecast);
h = h->next;
}
fprintf (fp, " { (");
fprintf (fp, "%s", s);
}
if (h->symbol)
- write_header_define (fp, h->symbol, h->vid, mcset_msg_id_typedef, h->sub);
+ write_header_define (fp, h->symbol, h->vid, h->id_typecast, h->sub);
h = h->next;
}
}
unichar *symbol;
rc_uint_type id;
rc_uint_type vid;
+ unichar *id_typecast;
mc_node_lang *sub;
} mc_node;