summaryrefslogtreecommitdiff
path: root/chars.c
diff options
context:
space:
mode:
Diffstat (limited to 'chars.c')
-rw-r--r--chars.c126
1 files changed, 61 insertions, 65 deletions
diff --git a/chars.c b/chars.c
index 3eef537..e97a804 100644
--- a/chars.c
+++ b/chars.c
@@ -67,16 +67,15 @@ in this Software without prior written authorization from The Open Group.
:(nBytes) == 8 ? ((((bits) + 63) >> 3) & ~7) /* pad to 8 bytes */\
: 0)
-
static void
EmitBitmap(FILE *outFile,
- FSXFontInfoHeader *fontHeader,
- FSXCharInfo *charInfo,
- unsigned int encoding,
- int bpr,
- unsigned char *data)
+ FSXFontInfoHeader *fontHeader,
+ FSXCharInfo *charInfo,
+ unsigned int encoding,
+ int bpr,
+ unsigned char *data)
{
- char *glyphName;
+ char *glyphName;
unsigned int row;
/*-
@@ -98,65 +97,62 @@ EmitBitmap(FILE *outFile,
fprintf(outFile, "STARTCHAR ");
glyphName = XKeysymToString((KeySym) encoding);
if (glyphName)
- fputs(glyphName, outFile);
+ fputs(glyphName, outFile);
else
- fprintf(outFile, (fontHeader->char_range.min_char.low > 0 ?
- "C%06o" : "C%03o"), encoding);
+ fprintf(outFile, (fontHeader->char_range.min_char.low > 0 ?
+ "C%06o" : "C%03o"), encoding);
fputc('\n', outFile);
fprintf(outFile, "ENCODING %u\n", encoding);
fprintf(outFile, "SWIDTH %ld 0\n",
- (((long) charInfo->width) * 72000L) /
- (pointSize * yResolution));
+ (((long) charInfo->width) * 72000L) / (pointSize * yResolution));
fprintf(outFile, "DWIDTH %d 0\n", charInfo->width);
fprintf(outFile, "BBX %d %d %d %d\n",
- charInfo->right - charInfo->left,
- charInfo->ascent + charInfo->descent,
- charInfo->left,
- -charInfo->descent);
+ charInfo->right - charInfo->left,
+ charInfo->ascent + charInfo->descent,
+ charInfo->left,
+ -charInfo->descent);
if (charInfo->attributes)
- fprintf(outFile, "ATTRIBUTES %04x\n", charInfo->attributes);
+ fprintf(outFile, "ATTRIBUTES %04x\n", charInfo->attributes);
/*
* emit the bitmap
*/
fprintf(outFile, "BITMAP\n");
for (row = 0; row < (charInfo->ascent + charInfo->descent); row++) {
- unsigned byte;
- unsigned bit;
-
- static unsigned maskTab[] =
- {
- (1 << 7), (1 << 6), (1 << 5), (1 << 4),
- (1 << 3), (1 << 2), (1 << 1), (1 << 0),
- };
-
- byte = 0;
- for (bit = 0; bit < (charInfo->right - charInfo->left); bit++) {
- byte |= maskTab[bit & 7] & data[bit >> 3];
- if ((bit & 7) == 7) {
- fprintf(outFile, "%02x", byte);
- byte = 0;
- }
- }
- if ((bit & 7) != 0)
- fprintf(outFile, "%02x", byte);
- fputc('\n', outFile);
- data += bpr;
+ unsigned byte;
+ unsigned bit;
+
+ static unsigned maskTab[] = {
+ (1 << 7), (1 << 6), (1 << 5), (1 << 4),
+ (1 << 3), (1 << 2), (1 << 1), (1 << 0),
+ };
+
+ byte = 0;
+ for (bit = 0; bit < (charInfo->right - charInfo->left); bit++) {
+ byte |= maskTab[bit & 7] & data[bit >> 3];
+ if ((bit & 7) == 7) {
+ fprintf(outFile, "%02x", byte);
+ byte = 0;
+ }
+ }
+ if ((bit & 7) != 0)
+ fprintf(outFile, "%02x", byte);
+ fputc('\n', outFile);
+ data += bpr;
}
fprintf(outFile, "ENDCHAR\n");
}
-
Bool
EmitCharacters(FILE *outFile,
- FSServer *fontServer,
- FSXFontInfoHeader *fontHeader,
- Font fontID)
+ FSServer *fontServer,
+ FSXFontInfoHeader *fontHeader,
+ Font fontID)
{
FSXCharInfo *extents;
FSXCharInfo *charInfo;
unsigned int encoding;
- FSOffset *offsets;
+ FSOffset *offsets;
unsigned char *glyph;
unsigned char *glyphs;
unsigned int nChars;
@@ -170,26 +166,25 @@ EmitCharacters(FILE *outFile,
nChars = 0;
- format = BYTE_ORDER | BIT_ORDER | SCANLINE_UNIT |
- SCANLINE_PAD | EXTENTS;
+ format = BYTE_ORDER | BIT_ORDER | SCANLINE_UNIT | SCANLINE_PAD | EXTENTS;
firstCharLow = fontHeader->char_range.min_char.low;
firstCharHigh = fontHeader->char_range.min_char.high;
lastCharLow = fontHeader->char_range.max_char.low;
lastCharHigh = fontHeader->char_range.max_char.high;
(void) FSQueryXExtents16(fontServer, fontID, True, (FSChar2b *) 0, 0,
- &extents);
+ &extents);
(void) FSQueryXBitmaps16(fontServer, fontID, format, True, (FSChar2b *) 0,
- 0, &offsets, &glyphs);
+ 0, &offsets, &glyphs);
charInfo = extents;
/* calculate the actual number of chars */
- for (chHigh = 0; chHigh <= (lastCharHigh-firstCharHigh); chHigh++) {
- for (chLow = 0; chLow <= (lastCharLow-firstCharLow); chLow++) {
- if ((charInfo->width != 0) || (charInfo->left != charInfo->right))
- nChars++;
- charInfo++;
- }
+ for (chHigh = 0; chHigh <= (lastCharHigh - firstCharHigh); chHigh++) {
+ for (chLow = 0; chLow <= (lastCharLow - firstCharLow); chLow++) {
+ if ((charInfo->width != 0) || (charInfo->left != charInfo->right))
+ nChars++;
+ charInfo++;
+ }
}
fprintf(outFile, "CHARS %u\n", nChars);
@@ -200,18 +195,19 @@ EmitCharacters(FILE *outFile,
charInfo = extents;
glyph = glyphs;
for (chHigh = firstCharHigh; chHigh <= lastCharHigh; chHigh++) {
- for (chLow = firstCharLow; chLow <= lastCharLow; chLow++) {
- int bpr;
-
- bpr = GLWIDTHBYTESPADDED((charInfo->right - charInfo->left),
- SCANLINE_PAD_BYTES);
- encoding=(chHigh << 8)+chLow;
- if ((charInfo->width != 0) || (charInfo->right != charInfo->left))
- EmitBitmap(outFile, fontHeader, charInfo, encoding, bpr, glyph);
- glyph = glyphs +
- offsets[encoding-((firstCharHigh << 8)+firstCharLow) + 1].position;
- charInfo++;
- }
+ for (chLow = firstCharLow; chLow <= lastCharLow; chLow++) {
+ int bpr;
+
+ bpr = GLWIDTHBYTESPADDED((charInfo->right - charInfo->left),
+ SCANLINE_PAD_BYTES);
+ encoding = (chHigh << 8) + chLow;
+ if ((charInfo->width != 0) || (charInfo->right != charInfo->left))
+ EmitBitmap(outFile, fontHeader, charInfo, encoding, bpr, glyph);
+ glyph = glyphs +
+ offsets[encoding - ((firstCharHigh << 8) + firstCharLow) +
+ 1].position;
+ charInfo++;
+ }
}
FSFree((char *) extents);
FSFree((char *) glyphs);