Move ch>0 check to the top of yxml_parse() And move them out of each state (yxml_isChar()). This decreases the compiled size by about 1k and doesn't seem affect performance by much (it's a tiny bit faster, in fact). The real reason for making this change is to make implementing proper line ending normalization a bit simpler, coming in the next commit.