while (isspace(*p)) p++; while (*p) { if (isspace(*p)) break; if (*p == ':') {  char *dot = p, *dotname = name; *name++ = *p++; while (isdigit(*p)) *name++ = *p++; if (*p != ':') {  p = dot; name = dotname; } if (*p == '\0') return NULL; p++; break; } *name++ = *p++;
while (isspace(*p)) p++; while (*p) { if (isspace(*p)) break; if (*p == ':') {	 char *dot = p, *dotname = name; *name++ = *p++; while (isdigit(*p)) *name++ = *p++; if (*p != ':') {	 p = dot; name = dotname; } if (*p == '\0') return NULL; p++; break;
static char *get_name(char *name, char *p){	while (isspace(*p)) p++; 	while (*p) { 		if (isspace(*p)) 			break; 		if (*p == ':') { /* could be an alias */ 			char *dot = p, *dotname = name; 			*name++ = *p++; 			while (isdigit(*p))				*name++ = *p++; 			if (*p != ':') { /* it wasn't, backup */ 				p = dot; 				name = dotname; 			} 			if (*p == '\0') return NULL; 			p++;			break; 		}		*name++ = *p++; 	}	*name++ = '\0';	return p; } 