if (id == fid) {
if (jobs & FEDTJ_PRINT) {
int code = f->glyph2ascii[glyph];
- printf("%c", code);
+ printf("%lc", code);
}
if (jobs & FEDTJ_MODIFY)
f->glyph[glyph].advance = adv * 20; //?
font_freelayout(f);
font_freeglyphnames(f);
+ f->use->used_glyphs= 0;
for (i = 0; i < f->numchars; i++) {
if(!f->use->chars[i]) {
- f->glyph2ascii[i] = 0;
+ if(f->glyph2ascii) {
+ f->glyph2ascii[i] = 0;
+ }
if(f->glyph[i].shape) {
swf_ShapeFree(f->glyph[i].shape);
f->glyph[i].shape = 0;
f->glyph[i].advance = 0;
}
+ f->use->used_glyphs++;
} else {
max_glyph = i+1;
}
}
for (i = 0; i < f->maxascii; i++) {
if(!f->use->chars[f->ascii2glyph[i]]) {
- f->ascii2glyph[i] = -1;
+ if(f->ascii2glyph) {
+ f->ascii2glyph[i] = -1;
+ }
} else {
max_unicode = i+1;
}
int swf_FontUse(SWFFONT * f, U8 * s)
{
- if (!f->use)
- swf_FontInitUsage(f);
if( (!s))
return -1;
while (*s) {
if(*s < f->maxascii && f->ascii2glyph[*s]>=0)
- f->use->chars[f->ascii2glyph[*s]] = 1;
+ swf_FontUseGlyph(f, f->ascii2glyph[*s]);
s++;
}
return 0;
swf_FontInitUsage(f);
if(glyph < 0 || glyph >= f->numchars)
return -1;
+ if(!f->use->chars[glyph])
+ f->use->used_glyphs++;
f->use->chars[glyph] = 1;
return 0;
}
/* font code table */
- if (flags & 4) { /* wide codes */
- for (t = 0; t < f->numchars; t++) {
- swf_SetU16(tag, f->glyph2ascii[t]);
+ for (t = 0; t < f->numchars; t++) {
+ if (flags & 4) { /* wide codes */
+ if(f->glyph2ascii[t]) {
+ swf_SetU16(tag, f->glyph2ascii[t]);
+ } else {
+ swf_SetU16(tag, 0);
+ }
+ } else {
+ if(f->glyph2ascii[t]) {
+ swf_SetU8(tag, f->glyph2ascii[t]);
+ } else {
+ swf_SetU8(tag, 0);
+ }
}
- } else {
- for (t = 0; t < f->numchars; t++)
- swf_SetU8(tag, f->glyph2ascii[t]);
}
+
if (f->layout) {
swf_SetU16(tag, f->layout->ascent);
swf_SetU16(tag, f->layout->descent);
for (i = 0; i < f->numchars; i++) {
if (f->glyph[i].shape) {
- int g2a = f->glyph2ascii[i];
+ int g2a = f->glyph2ascii?f->glyph2ascii[i]:0;
wide ? swf_SetU16(t, g2a) : swf_SetU8(t, g2a);
}
}
swf_TextSetCharRecordUTF8(tag, font, upos, scale * 20, gbits, abits);
upos= next;
-
- printf("%s\n", upos);
}
free(utext);