valid_char
if (!valid_char(c, has_colon))
if (!valid_char(*loc)) {
if (!valid_char(*loc) && *loc != '%') {
if (!valid_char(*c)) {
if (!valid_char(c))
goto valid_char;
valid_char: