if (!isalpha(*c++)) { return (-1); } while (isalnum(*c) || *c == '+' || *c == '-' || *c == '.') { c++; }
if(!isalpha(*c)) { return (-1); }  while (isalnum(*c) || *c == '+' || *c == '-' || *c == '.') { c++; }
static int scheme(uri *u, char *str){	char *c = str;	int  len;	/*	 RFC 2396, 3.1: Scheme Component	 scheme        = alpha *( alpha | digit | "+" | "-" | "." )	 */	if (!isalpha(*c++)) { return (-1); }	while (isalnum(*c) || *c == '+' || *c == '-' || *c == '.') { c++; }	len = c - str;	/* bad scheme */	if (*c != ':') { return (-1); }	u->scheme = (char *)malloc(len+1);	strncpy(u->scheme, str, len);	return (len + 1);}