rem: char *name, buf[512];
add: char *name, buf[64], *slt;
context: xlfdToFc(char *xlfd, char *useFamily, Bool keepXLFD){    str *tokens, *family, *weight, *slant;    char *name, buf[512];    int size, pixelsize;    tokens = getXLFDTokens(xlfd);    if (!tokens)        return wstrdup(DEFAULT_FONT);    family = &(tokens[1]);    weight = &(tokens[2]);    slant  = &(tokens[3]);    if (useFamily) {        name = wstrdup(useFamily);    } else {        if (family->len==0 || family->str[0]=='*')            return wstrdup(DEFAULT_FONT);        sprintf(buf, "%.*s", family->len, family->str);        name = wstrdup(buf);    }    pixelsize = strToInt(&tokens[6]);    size = strToInt(&tokens[7]);    if (size<=0 && pixelsize<=0) {        name = wstrappend(name, ":pixelsize=12");    } else if (pixelsize>0) {        /* if pixelsize is present size will be ignored so we skip it */        sprintf(buf, ":pixelsize=%d", pixelsize);        name = wstrappend(name, buf);    } else {        sprintf(buf, "-%d", size/10);        name = wstrappend(name, buf);    }    if (weight->len>0 && weight->str[0]!='*') {        sprintf(buf, ":weight=%.*s", weight->len, weight->str);        name = wstrappend(name, buf);    }    if (slant->len>0 && slant->str[0]!='*') {        sprintf(buf, ":slant=%s", mapSlantToName(slant));        name = wstrappend(name, buf);    }    if (keepXLFD) {        name = wstrappend(name, ":xlfd=");        name = wstrappend(name, xlfd);    }    return name;}