Sema: Cleanup and improve string-plus-char checking.

Patch by Anders Rönnholm