summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Williams <gww@silcom.com>2002-12-24 05:29:26 +0000
committerGeorge Williams <gww@silcom.com>2002-12-24 05:29:26 +0000
commitf5753e1e8e9152b9b9663225ffbe41f7592039bf (patch)
tree810bc22e0a68b4c1b86e606147d61639977368e6
parentdef46e9cb8ffebf672296094794318fdb31130c6 (diff)
fondu used to crash when generating afm files.
-rw-r--r--fondu.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/fondu.c b/fondu.c
index 1fcf552..ca5bcd1 100644
--- a/fondu.c
+++ b/fondu.c
@@ -141,10 +141,11 @@ static FILE *CreateAfmFile(FILE *f,FOND *fond,long styleoff,int style,
}
strcpy(familyname,strings[0]);
strcpy(fontname,familyname);
- if ( index!=0 ) {
+ if ( index>1 && index-1<cnt ) {
char *ctl = strings[index-1];
while ( *ctl ) {
- strcat(fontname,strings[*ctl-1]);
+ if ( *ctl-1<cnt )
+ strcat(fontname,strings[*ctl-1]);
++ctl;
}
}
@@ -222,12 +223,14 @@ static void MakeAfmFiles(FOND *fond,FILE *f, int styleoff, int isfixed) {
sprintf( buffer, "char%04x", kp->ch1 );
name1 = buffer;
}
+ if ( name1==NULL ) name1 = ".notdef";
if ( kp->ch2<=256 )
name2 = macnames[kp->ch2];
else {
sprintf( fontname, "char%04x", kp->ch2 );
name2 = fontname;
}
+ if ( name2==NULL ) name2 = ".notdef";
fprintf( afm, "KPX %s %s %d\n", name1, name2, (kp->offset*1000+(1<<11))>>12 );
}
fprintf( afm, "EndKernPairs\nEndKernData\nEndFontMetrics\n" );