summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/pdftexdir/mapfile.c
diff options
context:
space:
mode:
authorMartin Schröder <martin@oneiros.de>2007-01-01 17:20:03 +0000
committerMartin Schröder <martin@oneiros.de>2007-01-01 17:20:03 +0000
commit508fb2acb6235eb461f0f5614e5466b843c33263 (patch)
tree4b43cc875bb66d8d6895a44945d252bde6d0be84 /Build/source/texk/web2c/pdftexdir/mapfile.c
parentc3ef295937d604389c1ce7f325138611b2c7e653 (diff)
pdftex 1.40.0
git-svn-id: svn://tug.org/texlive/trunk@3089 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/pdftexdir/mapfile.c')
-rw-r--r--Build/source/texk/web2c/pdftexdir/mapfile.c25
1 files changed, 12 insertions, 13 deletions
diff --git a/Build/source/texk/web2c/pdftexdir/mapfile.c b/Build/source/texk/web2c/pdftexdir/mapfile.c
index 296eb57e92a..42eeaaaa025 100644
--- a/Build/source/texk/web2c/pdftexdir/mapfile.c
+++ b/Build/source/texk/web2c/pdftexdir/mapfile.c
@@ -18,7 +18,6 @@ along with pdfTeX; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
$Id: mapfile.c,v 1.1 2006/12/14 01:21:33 hahe Exp hahe $
-
*/
#include <math.h>
@@ -52,7 +51,7 @@ static const char nontfm[] = "<nontfm>";
#define read_field(r, q, buf) do { \
q = buf; \
- while (*r != ' ' && *r != '\0') \
+ while (*r != ' ' && *r != '<' && *r != '"' && *r != '\0') \
*q++ = *r++; \
*q = '\0'; \
skip (r, ' '); \
@@ -117,7 +116,6 @@ static fm_entry *dummy_fm_entry()
return (fm_entry *) & const_fm_entry;
}
-
/**********************************************************************/
struct avl_table *tfm_tree = NULL;
@@ -430,16 +428,17 @@ static void fm_scan_line()
fm = new_fm_entry();
read_field(r, q, buf);
set_field(tfm_name);
- p = r;
- read_field(r, q, buf);
- if (*buf != '<' && *buf != '"')
+ if (!isdigit(*r)) { /* 2nd field ps_name may not start with a digit */
+ read_field(r, q, buf);
set_field(ps_name);
- else
- r = p; /* unget the field */
- if (isdigit(*r)) { /* font descriptor /Flags given */
- fm->fd_flags = atoi(r);
- while (isdigit(*r))
- r++;
+ }
+ if (isdigit(*r)) { /* font descriptor /Flags given? */
+ for (s = r; isdigit(*s); s++);
+ if (*s == ' ' || *s == '"' || *s == '<' || *s == '\0') { /* not e. g. 8r.enc */
+ fm->fd_flags = atoi(r);
+ while (isdigit(*r))
+ r++;
+ }
}
while (1) { /* loop through "specials", encoding, font file */
skip(r, ' ');
@@ -621,8 +620,8 @@ boolean hasfmentry(internalfontnumber f)
return pdffontmap[f] != (fmentryptr) dummy_fm_entry();
}
-
/* check whether a map entry is valid for font replacement */
+
static boolean fm_valid_for_font_replacement(fm_entry * fm)
{
ff_entry *ff;