summaryrefslogtreecommitdiff
path: root/Build/source/texk/xdvipdfmx/src/tt_cmap.c
diff options
context:
space:
mode:
authorKhaled Hosny <khaledhosny@eglug.org>2012-12-12 00:06:53 +0000
committerKhaled Hosny <khaledhosny@eglug.org>2012-12-12 00:06:53 +0000
commita64f094828834d432a57434df4f4311dd7c114ac (patch)
tree7eb2b222b8c956e9b6d36c6bfa3aec75a73b9630 /Build/source/texk/xdvipdfmx/src/tt_cmap.c
parentc7a00bf32b0701b32131d5710a7d6ca20b6212b9 (diff)
Fix https://sourceforge.net/p/xetex/bugs/52/
git-svn-id: svn://tug.org/texlive/trunk@28504 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/xdvipdfmx/src/tt_cmap.c')
-rw-r--r--Build/source/texk/xdvipdfmx/src/tt_cmap.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/Build/source/texk/xdvipdfmx/src/tt_cmap.c b/Build/source/texk/xdvipdfmx/src/tt_cmap.c
index 1ac02796e43..04e101c100a 100644
--- a/Build/source/texk/xdvipdfmx/src/tt_cmap.c
+++ b/Build/source/texk/xdvipdfmx/src/tt_cmap.c
@@ -1079,6 +1079,7 @@ otf_create_ToUnicode_stream (const char *font_name,
CMap *cmap_add;
int cmap_add_id;
tt_cmap *ttcmap;
+ char *normalized_font_name;
char *cmap_name;
FILE *fp = NULL;
sfnt *sfont;
@@ -1086,8 +1087,19 @@ otf_create_ToUnicode_stream (const char *font_name,
struct tt_post_table *ttpost = NULL;
int i;
+ /* replace slash in map name with dash to make the output cmap name valid,
+ * happens when XeTeX embeds full font path
+ * https://sourceforge.net/p/xetex/bugs/52/
+ */
+ normalized_font_name = NEW(strlen(font_name), char);
+ strcpy(normalized_font_name, font_name);
+ for (i = 0; i < strlen(font_name); ++i) {
+ if (normalized_font_name[i] == '/')
+ normalized_font_name[i] = '-';
+ }
+
cmap_name = NEW(strlen(font_name)+strlen("-UTF16")+5, char);
- sprintf(cmap_name, "%s,%03d-UTF16", font_name, ttc_index);
+ sprintf(cmap_name, "%s,%03d-UTF16", normalized_font_name, ttc_index);
res_id = pdf_findresource("CMap", cmap_name);
if (res_id >= 0) {