message: fix potential bug in format splitting
message: fix potential bug in format splitting

The format for struct parsing is split into 200 byte chunks for
performance reasons (need to re-evaluate that with the fixed race
condition). In some situations, the splitting might result in an invalid
format. For example, a 'c' is always followed by a '0' in the formats we
generate, likewise are 'i'/'I' always followed by a '4'. If one string
now ends with a 'c'/'i'/'I', the next format would start with just the
number. Although the former string will still work, because the struct
parser just assumes sizeof(int)==4, the latter will fail, because the
string will start with something like "<!10" or "<!14", therefore
mistaking the string or integer length identifier for an a alignment
option.

This commit adds special case handling for these cases.

timn/roslua