static int * get_encodings( char **font_name_list, int *ranges, int nb_font) { int *font_encoding_list; int i; i = 0; font_encoding_list = (int *) malloc(sizeof(int) * nb_font); while (i < nb_font) { char *ptr; int ec; ptr = font_name_list[i]; ec = 0; font_encoding_list[i] = -1; ranges[i * 2] = 0; ranges[i * 2 + 1] = 0xFFFF; if (ptr && strstr(ptr, "fontspecific")) { font_encoding_list[i] = font_spec_enc(ptr); ptr = NULL; } while (ptr && *ptr) { if (*ptr == '-') { ec++; if (ec == 13) { font_encoding_list[i] = encoding_number(ptr + 1); if (font_encoding_list[i] == 0) { get_range(ptr + 1, ranges + i * 2, ranges + i * 2 + 1); } break; } } ptr++; } if (font_encoding_list[i] < 0) font_encoding_list[i] = 1; i++; } return font_encoding_list; }
static int font_spec_enc( char *font) { int ret; char *enc; char *end; enc = font; while (*enc != '-') enc++; enc++; while (*enc != '-') enc++; enc++; end = enc; while (*end != '-') end++; *end = '\0'; ret = encoding_number(enc); *end = '-'; return ret; }
int ps_encoding_number (string name) { int ret = encoding_number (encoding, name); return ret; }