# HG changeset patch # User zybi # Date 998649991 0 # Node ID 1bf2c3dbc36e932fe93370928781e17dbd8b63b5 # Parent 1f3030b34f5c837a881d8d21287ee24f124833e1 Resolved endianess issues. diff -r 1f3030b34f5c -r 1bf2c3dbc36e TOOLS/subfont-c/Makefile --- a/TOOLS/subfont-c/Makefile Fri Aug 24 10:05:46 2001 +0000 +++ b/TOOLS/subfont-c/Makefile Fri Aug 24 10:46:31 2001 +0000 @@ -12,10 +12,10 @@ subfont: subfont.o -subfont.o: subfont.c Makefile +subfont.o: subfont.c Makefile ../../bswap.h -subfont.S: subfont.c - $(CC) $(CFLAGS) -S $^ -o $@ +subfont.S: subfont.c Makefile ../../bswap.h + $(CC) $(CFLAGS) -S $< -o $@ clean: rm -f subfont subfont.o core diff -r 1f3030b34f5c -r 1bf2c3dbc36e TOOLS/subfont-c/README --- a/TOOLS/subfont-c/README Fri Aug 24 10:05:46 2001 +0000 +++ b/TOOLS/subfont-c/README Fri Aug 24 10:46:31 2001 +0000 @@ -100,8 +100,6 @@ + Starting x position of each character and the bitmap width is aligned to multiple of 8 (required by mplayer). - + Currently subfont won't work on big-endian systems. I need help. - + My development platform is RedHat 7.1. FreeType versions tested are 2.0.1 through 2.0.4. diff -r 1f3030b34f5c -r 1bf2c3dbc36e TOOLS/subfont-c/subfont.c --- a/TOOLS/subfont-c/subfont.c Fri Aug 24 10:05:46 2001 +0000 +++ b/TOOLS/subfont-c/subfont.c Fri Aug 24 10:46:31 2001 +0000 @@ -17,17 +17,17 @@ #ifndef OLD_FREETYPE2 - #include #include FT_FREETYPE_H #include FT_GLYPH_H - #else /* freetype 2.0.1 */ - #include #include +#endif -#endif + +#include "../../bswap.h" + #ifndef DEBUG #define DEBUG 0 @@ -418,14 +418,12 @@ int outbytesleft = sizeof(FT_ULong); size_t count = iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft); -// if (count==-1) o = 0; // not OK, at least my iconv() returns E2BIG for all - if (outbytesleft!=0) o = 0; - /* convert unicode BE -> LE */ - o = ((o>>24)&0xff) - | ((o>>8)&0xff00) - | ((o&0xff00)<<8) - | ((o&0xff)<<24); + /* convert unicode BigEndian -> MachineEndian */ + o = be2me_32(o); + + // if (count==-1) o = 0; // not OK, at least my iconv() returns E2BIG for all + if (outbytesleft!=0) o = 0; /* we don't want control characters */ if (o>=0x7f && o<0xa0) o = 0;