utf8towc() has to be in lib.c if strlower() is going to use it, because scripts/*.c builds against lib.c but not linestack.c.