diff options
Diffstat (limited to 'Build/source/texk/dvipdfm-x/spc_pdfm.c')
-rw-r--r-- | Build/source/texk/dvipdfm-x/spc_pdfm.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/Build/source/texk/dvipdfm-x/spc_pdfm.c b/Build/source/texk/dvipdfm-x/spc_pdfm.c index 5d8d827d072..7317f5d3aad 100644 --- a/Build/source/texk/dvipdfm-x/spc_pdfm.c +++ b/Build/source/texk/dvipdfm-x/spc_pdfm.c @@ -1800,6 +1800,8 @@ spc_handler_pdfm_mapline (struct spc_env *spe, struct spc_arg *ap) fontmap_rec *mrec; char *map_name, opchr; int error = 0; + static char buffer[1024]; + char *p, *q; skip_white(&ap->curptr, ap->endptr); if (ap->curptr >= ap->endptr) { @@ -1825,9 +1827,14 @@ spc_handler_pdfm_mapline (struct spc_env *spe, struct spc_arg *ap) } break; case '+': + p = (char *)ap->curptr; + q = buffer; + while (p < ap->endptr) + *q++ = *p++; + *q = '\0'; mrec = NEW(1, fontmap_rec); pdf_init_fontmap_record(mrec); - error = pdf_read_fontmap_line(mrec, ap->curptr, (long) (ap->endptr - ap->curptr), is_pdfm_mapline(ap->curptr)); + error = pdf_read_fontmap_line(mrec, buffer, (long) (ap->endptr - ap->curptr), is_pdfm_mapline(buffer)); if (error) spc_warn(spe, "Invalid fontmap line."); else { @@ -1837,9 +1844,14 @@ spc_handler_pdfm_mapline (struct spc_env *spe, struct spc_arg *ap) RELEASE(mrec); break; default: + p = (char *)ap->curptr; + q = buffer; + while (p < ap->endptr) + *q++ = *p++; + *q = '\0'; mrec = NEW(1, fontmap_rec); pdf_init_fontmap_record(mrec); - error = pdf_read_fontmap_line(mrec, ap->curptr, (long) (ap->endptr - ap->curptr), is_pdfm_mapline(ap->curptr)); + error = pdf_read_fontmap_line(mrec, buffer, (long) (ap->endptr - ap->curptr), is_pdfm_mapline(buffer)); if (error) spc_warn(spe, "Invalid fontmap line."); else { |