summaryrefslogtreecommitdiff
path: root/src/cairo-cff-subset.c
diff options
context:
space:
mode:
authorAdrian Johnson <ajohnson@redneon.com>2011-09-15 21:52:26 +0930
committerAdrian Johnson <ajohnson@redneon.com>2011-09-15 22:05:22 +0930
commit47e16d0e565fcb579148285394bafd45b53ecaff (patch)
tree1178dd94f045002175d1782c567623b245c87e6e /src/cairo-cff-subset.c
parent1e67fb4490c19085def6f7d77314cc66449288b5 (diff)
downloadcairo-47e16d0e565fcb579148285394bafd45b53ecaff.tar.gz
subsetting: Support unicode fontnames
Most fonts use Window platform specific encoded font names since they allow unicode names. - Make _cairo_truetype_read_font_name() read the Windows platform names first. If this fails, fallback to reading he the Mac platform MacRoman encoded name. - Use the PDF method of encoding non ASCII PS font names. Poppler will correctly extract the unicode name. - Make PDF embed the font family name as AsciiHex if the name is not ASCII.
Diffstat (limited to 'src/cairo-cff-subset.c')
-rw-r--r--src/cairo-cff-subset.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/cairo-cff-subset.c b/src/cairo-cff-subset.c
index 3ee3ef39a..c011cfcce 100644
--- a/src/cairo-cff-subset.c
+++ b/src/cairo-cff-subset.c
@@ -2837,13 +2837,13 @@ _cairo_cff_subset_init (cairo_cff_subset_t *cff_subset,
}
if (font->font_name) {
- cff_subset->font_name = strdup (font->font_name);
- if (cff_subset->font_name == NULL) {
+ cff_subset->family_name_utf8 = strdup (font->font_name);
+ if (cff_subset->family_name_utf8 == NULL) {
status = _cairo_error (CAIRO_STATUS_NO_MEMORY);
goto fail2;
}
} else {
- cff_subset->font_name = NULL;
+ cff_subset->family_name_utf8 = NULL;
}
cff_subset->widths = calloc (sizeof (double), font->scaled_font_subset->num_glyphs);
@@ -2877,7 +2877,7 @@ _cairo_cff_subset_init (cairo_cff_subset_t *cff_subset,
fail4:
free (cff_subset->widths);
fail3:
- free (cff_subset->font_name);
+ free (cff_subset->family_name_utf8);
fail2:
free (cff_subset->ps_name);
fail1:
@@ -2890,7 +2890,7 @@ void
_cairo_cff_subset_fini (cairo_cff_subset_t *subset)
{
free (subset->ps_name);
- free (subset->font_name);
+ free (subset->family_name_utf8);
free (subset->widths);
free (subset->data);
}
@@ -3249,7 +3249,7 @@ _cairo_cff_fallback_init (cairo_cff_subset_t *cff_subset,
if (unlikely (status))
goto fail2;
- cff_subset->font_name = NULL;
+ cff_subset->family_name_utf8 = NULL;
cff_subset->ps_name = strdup (font->ps_name);
if (unlikely (cff_subset->ps_name == NULL)) {
status = _cairo_error (CAIRO_STATUS_NO_MEMORY);