while (*q && isspace(*q))
while (*q && isspace((unsigned char)*q))
void provide_xrm_string(char *string){    char *p, *q, *key;    struct xrm_string *xrms, *ret;    p = q = strchr(string, ':');    if (!q) {	fprintf(stderr, "pterm: expected a colon in resource string"		" \"%s\"\n", string);	return;    }    q++;    while (p > string && p[-1] != '.' && p[-1] != '*')	p--;    xrms = smalloc(sizeof(struct xrm_string));    key = smalloc(q-p);    memcpy(key, p, q-p);    key[q-p-1] = '\0';    xrms->key = key;    while (*q && isspace(*q))	q++;    xrms->value = dupstr(q);    if (!xrmtree)	xrmtree = newtree234(xrmcmp);    ret = add234(xrmtree, xrms);    if (ret) {	/* Override an existing string. */	del234(xrmtree, ret);	add234(xrmtree, xrms);    }}