@@ -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