Skip to content

Commit 72b3f2b

Browse files
committed
include base glyphs of dot sufficed variants in the g2u dict (MP)
git-svn-id: svn://tug.org/texlive/trunk/Build/source@77608 c570f23f-e606-0410-a88d-b1316a301751
1 parent 90211c6 commit 72b3f2b

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

texk/xdvipsk/writet1.c

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -414,12 +414,12 @@ unsigned int *get_glname_tounicode(const char *glyph_name, const char *font_name
414414
{
415415
strcat(full_glyph_name, prefix);
416416
strncat(full_glyph_name, font_name, TEX_NAME_LEN);
417-
full_glyph_name[TEX_NAME_LEN + 4] = 0; /* strlen("pfb:") */
417+
full_glyph_name[TEX_NAME_LEN + 4] = '\0'; /* strlen("pfb:") */
418418
strcat(full_glyph_name, "/");
419419
strlwr(full_glyph_name);
420420
}
421421
strncat(full_glyph_name, glyph_name, GLYPH_NAME_LEN);
422-
full_glyph_name[FULL_GLYPH_NAME_LEN] = 0;
422+
full_glyph_name[FULL_GLYPH_NAME_LEN] = '\0';
423423

424424
lua_getglobal(L, "get_glname_tounicode");
425425
lua_pushstring(L, full_glyph_name);
@@ -472,12 +472,12 @@ char *get_glname_substitute(const char *glyph_name, const char *font_name, const
472472
{
473473
strcat(full_glyph_name, prefix);
474474
strncat(full_glyph_name, font_name, TEX_NAME_LEN);
475-
full_glyph_name[TEX_NAME_LEN + 4] = 0; /* strlen("pfb:") */
475+
full_glyph_name[TEX_NAME_LEN + 4] = '\0'; /* strlen("pfb:") */
476476
strcat(full_glyph_name, "/");
477477
strlwr(full_glyph_name);
478478
}
479479
strncat(full_glyph_name, glyph_name, GLYPH_NAME_LEN);
480-
full_glyph_name[FULL_GLYPH_NAME_LEN] = 0;
480+
full_glyph_name[FULL_GLYPH_NAME_LEN] = '\0';
481481

482482
lua_getglobal(L, "get_glname_subst");
483483
lua_pushstring(L, full_glyph_name);
@@ -1492,6 +1492,8 @@ static void t1_scan_keys(boolean encoding_only)
14921492
char *pfb_full_name = NULL;
14931493
int charcode;
14941494
const char *glyph_name = NULL;
1495+
char glyph_name_buf[GLYPH_NAME_LEN + 1];
1496+
char *glyph_name_ptr;
14951497
charusetype_ref *cu_ref = NULL;
14961498
charusetype_entry *cu_head = NULL;
14971499
charusetype_entry *cu_entry;
@@ -1507,7 +1509,6 @@ static void t1_scan_keys(boolean encoding_only)
15071509
FT_Error ft_error = FT_Err_Ok;
15081510
FT_Face ft_face = NULL;
15091511
FT_Long gid;
1510-
char glyph_name_buf[GLYPH_NAME_LEN + 1];
15111512

15121513
if (t1_line_array && (strstr(t1_line_array, FONTINFO_KEY) == t1_line_array)) // "/FontInfo 9 dict dup begin"
15131514
{
@@ -1588,7 +1589,18 @@ static void t1_scan_keys(boolean encoding_only)
15881589
{
15891590
glyph_name = enc[charcode];
15901591
if (glyph_name && (IS_USED_CHAR(usedchars, charcode)))
1592+
{
1593+
/* Acrobat Distiller needs base glyphs of dot sufficed variants included as well */
1594+
strncpy(glyph_name_buf, glyph_name, GLYPH_NAME_LEN);
1595+
glyph_name_buf[GLYPH_NAME_LEN] = '\0';
1596+
glyph_name_ptr = strchr(glyph_name_buf, '.');
1597+
if (glyph_name_ptr)
1598+
{
1599+
*glyph_name_ptr = '\0';
1600+
append_glyph_to_g2u_map_buf(ps_name, pfb_name, glyph_name_buf, &empty_g2u, &g2u_buf_ptr, &g2u_buf_len);
1601+
}
15911602
append_glyph_to_g2u_map_buf(ps_name, pfb_name, glyph_name, &empty_g2u, &g2u_buf_ptr, &g2u_buf_len);
1603+
}
15921604
}
15931605
cu_entry = cu_entry->next;
15941606
}

0 commit comments

Comments
 (0)