git.asbjorn.biz
/
swftools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added avifile_initialized flag.
[swftools.git]
/
lib
/
modules
/
swftext.c
diff --git
a/lib/modules/swftext.c
b/lib/modules/swftext.c
index
7d8c79a
..
a01e10b
100644
(file)
--- a/
lib/modules/swftext.c
+++ b/
lib/modules/swftext.c
@@
-312,6
+312,8
@@
int swf_FontExtract_DefineFont2(int id, SWFFONT * font, TAG * tag)
if (glyphcount) /* this _if_ is not in the specs */
swf_GetU16(tag); // fontcodeoffset
}
if (glyphcount) /* this _if_ is not in the specs */
swf_GetU16(tag); // fontcodeoffset
}
+ /* TODO: we should use the offset positions, not just
+ blindly read in shapes */
for (t = 0; t < glyphcount; t++)
swf_GetSimpleShape(tag, &(font->glyph[t].shape));
for (t = 0; t < glyphcount; t++)
swf_GetSimpleShape(tag, &(font->glyph[t].shape));
@@
-835,7
+837,7
@@
int swf_FontSetDefine2(TAG * tag, SWFFONT * f)
swf_SetBlock(tag, f->name, strlen(f->name));
} else {
/* font name (="") */
swf_SetBlock(tag, f->name, strlen(f->name));
} else {
/* font name (="") */
- swf_SetU8(tag, 0); /*placeholder */
+ swf_SetU8(tag, 0);
}
/* number of glyphs */
swf_SetU16(tag, f->numchars);
}
/* number of glyphs */
swf_SetU16(tag, f->numchars);
@@
-866,8
+868,7
@@
int swf_FontSetDefine2(TAG * tag, SWFFONT * f)
if(f->glyph[t].shape) {
swf_SetSimpleShape(tag, f->glyph[t].shape);
} else {
if(f->glyph[t].shape) {
swf_SetSimpleShape(tag, f->glyph[t].shape);
} else {
- swf_SetU8(tag, 0);
- swf_SetU8(tag, 0);
+ swf_SetU8(tag, 0); //non-edge(1) + edge flags(5)
}
}
}
}
}
}
@@
-1019,10
+1020,16
@@
int swf_TextSetInfoRecord(TAG * t, SWFFONT * font, U16 size, RGBA * color, int d
else
swf_SetRGB(t, color);
}
else
swf_SetRGB(t, color);
}
- if (dx)
+ if (dx) {
+ if(dx>32767 || dx<-32768)
+ fprintf(stderr, "Warning: Horizontal char position overflow: %d\n", dx);
swf_SetS16(t, dx);
swf_SetS16(t, dx);
- if (dy)
+ }
+ if (dy) {
+ if(dy>32767 || dy<-32768)
+ fprintf(stderr, "Warning: Vertical char position overflow: %d\n", dy);
swf_SetS16(t, dy);
swf_SetS16(t, dy);
+ }
if (font)
swf_SetU16(t, size);
if (font)
swf_SetU16(t, size);