char rotate_font[256];
*get_rotate_fontname(font_name)    char *font_name;{    char *pattern = NULL, *ptr = NULL;    char *fields[CHARSET_ENCODING_FIELD];    char str_pixel[32], str_point[4];    char rotate_font[256];    char *rotate_font_ptr = NULL;    int pixel_size = 0;    int field_num = 0, len = 0;    if(font_name == (char *) NULL || (len = strlen(font_name)) <= 0)	return NULL;    pattern = (char *)Xmalloc(len + 1);    if(!pattern)	return NULL;    strcpy(pattern, font_name);    memset(fields, '\0', sizeof(char *) * 14);    ptr = pattern;    while(isspace(*ptr)) {	ptr++;    }    if(*ptr == '-')	ptr++;    for(field_num = 0 ; field_num < CHARSET_ENCODING_FIELD && ptr && *ptr ;			ptr++, field_num++) {	fields[field_num] = ptr;	if(ptr = strchr(ptr, '-')) {	    *ptr = '\0';	}    }    if(field_num < CHARSET_ENCODING_FIELD)	return NULL;    /* Pixel Size field : fields[6] */    for(ptr = fields[PIXEL_SIZE_FIELD - 1] ; ptr && *ptr; ptr++) {	if(!isdigit(*ptr)) {	    if(*ptr == '['){ /* 960730 */	        strcpy(pattern, font_name);		return(pattern);	    }	    if(pattern)		Xfree(pattern);	    return NULL;	}    }    pixel_size = atoi(fields[PIXEL_SIZE_FIELD - 1]);    sprintf(str_pixel, "[ 0 ~%d %d 0 ]", pixel_size, pixel_size);    fields[6] = str_pixel;    /* Point Size field : fields[7] */    strcpy(str_point, "*");    fields[POINT_SIZE_FIELD - 1] = str_point;    rotate_font[0] = '\0';    for(field_num = 0 ; field_num < CHARSET_ENCODING_FIELD &&			fields[field_num] ; field_num++) {	sprintf(rotate_font, "%s-%s", rotate_font, fields[field_num]);    }    if(pattern)	Xfree(pattern);    rotate_font_ptr = (char *)Xmalloc(strlen(rotate_font) + 1);    if(!rotate_font_ptr)	return NULL;    strcpy(rotate_font_ptr, rotate_font);	    return rotate_font_ptr;}