diff options
author | George Williams <gww@silcom.com> | 2002-12-24 05:29:26 +0000 |
---|---|---|
committer | George Williams <gww@silcom.com> | 2002-12-24 05:29:26 +0000 |
commit | f5753e1e8e9152b9b9663225ffbe41f7592039bf (patch) | |
tree | 810bc22e0a68b4c1b86e606147d61639977368e6 | |
parent | def46e9cb8ffebf672296094794318fdb31130c6 (diff) |
fondu used to crash when generating afm files.
-rw-r--r-- | fondu.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -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" ); |