mirror of
https://git.freebsd.org/ports.git
synced 2025-06-21 04:30:37 -04:00
While there, run make makepatch on affected ports, and rename patches accordingly. Sponsored by: Absolight
41 lines
1.4 KiB
C
41 lines
1.4 KiB
C
--- 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;
|