| Server IP : 82.208.35.60 / Your IP : 216.73.216.89 Web Server : Apache/2.4.55 (FreeBSD) OpenSSL/1.1.1q-freebsd PHP/7.3.31 System : FreeBSD server7.d2m.cz 12.4-RELEASE-p9 FreeBSD 12.4-RELEASE-p9 GENERIC amd64 User : studiokobylisy_cz ( 1008) PHP Version : 7.3.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /usr/ports/print/ghostscript7-x11/files/ |
Upload File : |
--- src/gdevpdfs.c.orig 2003-01-17 00:49:01 UTC
+++ src/gdevpdfs.c
@@ -481,15 +481,21 @@ scan_cmap_text(gs_text_enum_t *pte, gs_f
if (cid < pfd->chars_count) {
int index = cid >> 3, mask = 0x80 >> (cid & 7);
+ int gid;
+
+ if (!(pfd->chars_used.data[index] & mask) ||
+ !(psubf->widths_known[index] & mask)) {
- if (!(pfd->chars_used.data[index] & mask)) {
- pfd->chars_used.data[index] |= mask;
if (psubf->CIDToGIDMap) {
gs_font_cid2 *const subfont2 =
(gs_font_cid2 *)subfont;
- int gid =
- subfont2->cidata.CIDMap_proc(subfont2, glyph);
+ gid = subfont2->cidata.CIDMap_proc(subfont2, glyph);
+ }
+ }
+ if (!(pfd->chars_used.data[index] & mask)) {
+ pfd->chars_used.data[index] |= mask;
+ if (psubf->CIDToGIDMap) {
if (gid >= 0) {
psubf->CIDToGIDMap[cid] = gid;
mark_glyphs_used(subfont, gid + gs_min_cid_glyph,
@@ -500,7 +506,11 @@ scan_cmap_text(gs_text_enum_t *pte, gs_f
if (!(psubf->widths_known[index] & mask)) {
int width;
- code = pdf_glyph_width(psubf, glyph, subfont, &width);
+ if (psubf->CIDToGIDMap)
+ code = pdf_glyph_width(psubf, gid + gs_min_cid_glyph,
+ subfont, &width);
+ else
+ code = pdf_glyph_width(psubf, glyph, subfont, &width);
if (code == 0) {
psubf->Widths[cid] = width;
psubf->widths_known[index] |= mask;