mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-07 08:38:02 +02:00
type1-subset: if font name is prefixed with a subset tag, strip it off
This commit is contained in:
parent
a6d955fcc4
commit
8886220b50
1 changed files with 11 additions and 0 deletions
|
|
@ -381,6 +381,7 @@ cairo_type1_font_subset_get_fontname (cairo_type1_font_subset_t *font)
|
|||
{
|
||||
const char *start, *end, *segment_end;
|
||||
char *s;
|
||||
int i;
|
||||
|
||||
segment_end = font->header_segment + font->header_segment_size;
|
||||
start = find_token (font->header_segment, segment_end, "/FontName");
|
||||
|
|
@ -406,6 +407,16 @@ cairo_type1_font_subset_get_fontname (cairo_type1_font_subset_t *font)
|
|||
return CAIRO_INT_STATUS_UNSUPPORTED;
|
||||
}
|
||||
|
||||
/* If font name is prefixed with a subset tag, strip it off. */
|
||||
if (strlen(start) > 7 && start[6] == '+') {
|
||||
for (i = 0; i < 6; i++) {
|
||||
if (start[i] < 'A' || start[i] > 'Z')
|
||||
break;
|
||||
}
|
||||
if (i == 6)
|
||||
start += 7;
|
||||
}
|
||||
|
||||
font->base.base_font = strdup (start);
|
||||
free (s);
|
||||
if (unlikely (font->base.base_font == NULL))
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue