I suggest separating these two things out (label / unicode) - as this is the only place the flags / fontflags are updated now, you can't know what they could have been before:
```
if (MCStringIsEmpty(label))
  flags &= ~F_G_LABEL;
else
  flags |= F_G_LABEL;

if (MCStringIsNative(label))
  m_font_flags &= ~FF_HAS_UNICODE;
else
  m_font_flags |= FF_HAS_UNICODE;