|
Packit |
78deda |
#include <stdio.h>
|
|
Packit |
78deda |
#include <assert.h>
|
|
Packit |
78deda |
|
|
Packit |
78deda |
#include "ppm.h"
|
|
Packit |
78deda |
#include "mallocvar.h"
|
|
Packit |
78deda |
#include "nstring.h"
|
|
Packit |
78deda |
#include "ppmdfont.h"
|
|
Packit |
78deda |
|
|
Packit |
78deda |
|
|
Packit |
78deda |
/* Stroke character definitions
|
|
Packit |
78deda |
|
|
Packit |
78deda |
The following character definitions are derived from the (public
|
|
Packit |
78deda |
domain) Hershey plotter font database, using the single-stroke
|
|
Packit |
78deda |
Roman font.
|
|
Packit |
78deda |
|
|
Packit |
78deda |
Each character definition begins with 3 bytes which specify the
|
|
Packit |
78deda |
number of X, Y plot pairs which follow, the negative of the skip
|
|
Packit |
78deda |
before starting to draw the characters, and the skip after the
|
|
Packit |
78deda |
character. The first plot pair moves the pen to that location and
|
|
Packit |
78deda |
subsequent pairs draw to the location given. A pair of 192, 0
|
|
Packit |
78deda |
raises the pen, moves to the location given by the following pair,
|
|
Packit |
78deda |
and resumes drawing with the pair after that.
|
|
Packit |
78deda |
|
|
Packit |
78deda |
The values in the definition tables are 8-bit two's complement
|
|
Packit |
78deda |
signed numbers. We declare the table as "unsigned char" and
|
|
Packit |
78deda |
manually sign-extend the values because C compilers differ as to
|
|
Packit |
78deda |
whether the type "char" is signed or unsigned, and some compilers
|
|
Packit |
78deda |
don't accept the qualifier "signed" which we would like to use for
|
|
Packit |
78deda |
these items. We specify negative numbers as their unsigned two's
|
|
Packit |
78deda |
complements to avoid complaints from compilers which don't like
|
|
Packit |
78deda |
initialising unsigned data with signed values. Ahhh, portability.
|
|
Packit |
78deda |
*/
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char32[] =
|
|
Packit |
78deda |
{ 0, 0, 21 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char33[] =
|
|
Packit |
78deda |
{ 8, 251, 5,
|
|
Packit |
78deda |
0, 244, 0, 2, 192, 0, 0, 7, 255, 8, 0, 9, 1, 8, 0, 7 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char34[] =
|
|
Packit |
78deda |
{ 17, 253, 15,
|
|
Packit |
78deda |
2, 244, 1, 245, 0, 244, 1, 243, 2, 244, 2, 246, 1,
|
|
Packit |
78deda |
248, 0, 249, 192, 0, 10, 244, 9, 245, 8, 244, 9, 243, 10, 244,
|
|
Packit |
78deda |
10, 246, 9, 248, 8, 249, };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char35[] =
|
|
Packit |
78deda |
{ 11, 246, 11,
|
|
Packit |
78deda |
1, 240, 250, 16, 192, 0, 7, 240, 0, 16, 192, 0, 250,
|
|
Packit |
78deda |
253, 8, 253, 192, 0, 249, 3, 7, 3 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char36[] =
|
|
Packit |
78deda |
{ 26, 246, 10,
|
|
Packit |
78deda |
254, 240, 254, 13, 192, 0, 2, 240, 2, 13, 192, 0, 7,
|
|
Packit |
78deda |
247, 5, 245, 2, 244, 254, 244, 251, 245, 249, 247, 249, 249, 250,
|
|
Packit |
78deda |
251, 251, 252, 253, 253, 3, 255, 5, 0, 6, 1, 7, 3, 7, 6, 5, 8, 2,
|
|
Packit |
78deda |
9, 254, 9, 251, 8, 249, 6 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char37[] =
|
|
Packit |
78deda |
{ 31, 244, 12,
|
|
Packit |
78deda |
9, 244, 247, 9, 192, 0, 252, 244, 254, 246, 254,
|
|
Packit |
78deda |
248, 253, 250, 251, 251, 249, 251, 247, 249, 247, 247, 248, 245,
|
|
Packit |
78deda |
250, 244, 252, 244, 254, 245, 1, 246, 4, 246, 7, 245, 9, 244,
|
|
Packit |
78deda |
192, 0, 5, 2, 3, 3, 2, 5, 2, 7, 4, 9, 6, 9, 8, 8, 9, 6, 9, 4, 7,
|
|
Packit |
78deda |
2, 5, 2 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char38[] =
|
|
Packit |
78deda |
{ 34, 243, 13,
|
|
Packit |
78deda |
10, 253, 10, 252, 9, 251, 8, 251, 7, 252, 6, 254, 4,
|
|
Packit |
78deda |
3, 2, 6, 0, 8, 254, 9, 250, 9, 248, 8, 247, 7, 246, 5, 246, 3,
|
|
Packit |
78deda |
247, 1, 248, 0, 255, 252, 0, 251, 1, 249, 1, 247, 0, 245, 254,
|
|
Packit |
78deda |
244, 252, 245, 251, 247, 251, 249, 252, 252, 254, 255, 3, 6, 5,
|
|
Packit |
78deda |
8, 7, 9, 9, 9, 10, 8, 10, 7 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char39[] =
|
|
Packit |
78deda |
{ 7, 251, 5,
|
|
Packit |
78deda |
0, 246, 255, 245, 0, 244, 1, 245, 1, 247, 0, 249, 255,
|
|
Packit |
78deda |
250 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char40[] =
|
|
Packit |
78deda |
{ 10, 249, 7,
|
|
Packit |
78deda |
4, 240, 2, 242, 0, 245, 254, 249, 253, 254, 253, 2,
|
|
Packit |
78deda |
254, 7, 0, 11, 2, 14, 4, 16 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char41[] =
|
|
Packit |
78deda |
{ 10, 249, 7,
|
|
Packit |
78deda |
252, 240, 254, 242, 0, 245, 2, 249, 3, 254, 3, 2, 2,
|
|
Packit |
78deda |
7, 0, 11, 254, 14, 252, 16 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char42[] =
|
|
Packit |
78deda |
{ 8, 248, 8,
|
|
Packit |
78deda |
0, 250, 0, 6, 192, 0, 251, 253, 5, 3, 192, 0, 5, 253,
|
|
Packit |
78deda |
251, 3 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char43[] =
|
|
Packit |
78deda |
{ 5, 243, 13,
|
|
Packit |
78deda |
0, 247, 0, 9, 192, 0, 247, 0, 9, 0 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char44[] =
|
|
Packit |
78deda |
{ 8, 251, 5,
|
|
Packit |
78deda |
1, 8, 0, 9, 255, 8, 0, 7, 1, 8, 1, 10, 0, 12, 255, 13
|
|
Packit |
78deda |
};
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char45[] =
|
|
Packit |
78deda |
{ 2, 243, 13,
|
|
Packit |
78deda |
247, 0, 9, 0 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char46[] =
|
|
Packit |
78deda |
{ 5, 251, 5,
|
|
Packit |
78deda |
0, 7, 255, 8, 0, 9, 1, 8, 0, 7 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char47[] =
|
|
Packit |
78deda |
{ 2, 245, 11,
|
|
Packit |
78deda |
9, 240, 247, 16 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char48[] =
|
|
Packit |
78deda |
{ 17, 246, 10,
|
|
Packit |
78deda |
255, 244, 252, 245, 250, 248, 249, 253, 249, 0, 250,
|
|
Packit |
78deda |
5, 252, 8, 255, 9, 1, 9, 4, 8, 6, 5, 7, 0, 7, 253, 6, 248, 4,
|
|
Packit |
78deda |
245, 1, 244, 255, 244 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char49[] =
|
|
Packit |
78deda |
{ 4, 246, 10,
|
|
Packit |
78deda |
252, 248, 254, 247, 1, 244, 1, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char50[] =
|
|
Packit |
78deda |
{ 14, 246, 10,
|
|
Packit |
78deda |
250, 249, 250, 248, 251, 246, 252, 245, 254, 244, 2,
|
|
Packit |
78deda |
244, 4, 245, 5, 246, 6, 248, 6, 250, 5, 252, 3, 255, 249, 9, 7, 9
|
|
Packit |
78deda |
};
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char51[] =
|
|
Packit |
78deda |
{ 15, 246, 10,
|
|
Packit |
78deda |
251, 244, 6, 244, 0, 252, 3, 252, 5, 253, 6, 254, 7,
|
|
Packit |
78deda |
1, 7, 3, 6, 6, 4, 8, 1, 9, 254, 9, 251, 8, 250, 7, 249, 5 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char52[] =
|
|
Packit |
78deda |
{ 6, 246, 10,
|
|
Packit |
78deda |
3, 244, 249, 2, 8, 2, 192, 0, 3, 244, 3, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char53[] =
|
|
Packit |
78deda |
{ 17, 246, 10,
|
|
Packit |
78deda |
5, 244, 251, 244, 250, 253, 251, 252, 254, 251, 1,
|
|
Packit |
78deda |
251, 4, 252, 6, 254, 7, 1, 7, 3, 6, 6, 4, 8, 1, 9, 254, 9, 251,
|
|
Packit |
78deda |
8, 250, 7, 249, 5 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char54[] =
|
|
Packit |
78deda |
{ 23, 246, 10,
|
|
Packit |
78deda |
6, 247, 5, 245, 2, 244, 0, 244, 253, 245, 251, 248,
|
|
Packit |
78deda |
250, 253, 250, 2, 251, 6, 253, 8, 0, 9, 1, 9, 4, 8, 6, 6, 7, 3,
|
|
Packit |
78deda |
7, 2, 6, 255, 4, 253, 1, 252, 0, 252, 253, 253, 251, 255, 250, 2
|
|
Packit |
78deda |
};
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char55[] =
|
|
Packit |
78deda |
{ 5, 246, 10,
|
|
Packit |
78deda |
7, 244, 253, 9, 192, 0, 249, 244, 7, 244 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char56[] =
|
|
Packit |
78deda |
{ 29, 246, 10,
|
|
Packit |
78deda |
254, 244, 251, 245, 250, 247, 250, 249, 251, 251,
|
|
Packit |
78deda |
253, 252, 1, 253, 4, 254, 6, 0, 7, 2, 7, 5, 6, 7, 5, 8, 2, 9,
|
|
Packit |
78deda |
254, 9, 251, 8, 250, 7, 249, 5, 249, 2, 250, 0, 252, 254, 255,
|
|
Packit |
78deda |
253, 3, 252, 5, 251, 6, 249, 6, 247, 5, 245, 2, 244, 254, 244 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char57[] =
|
|
Packit |
78deda |
{ 23, 246, 10,
|
|
Packit |
78deda |
6, 251, 5, 254, 3, 0, 0, 1, 255, 1, 252, 0, 250,
|
|
Packit |
78deda |
254, 249, 251, 249, 250, 250, 247, 252, 245, 255, 244, 0, 244, 3,
|
|
Packit |
78deda |
245, 5, 247, 6, 251, 6, 0, 5, 5, 3, 8, 0, 9, 254, 9, 251, 8, 250,
|
|
Packit |
78deda |
6 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char58[] =
|
|
Packit |
78deda |
{ 11, 251, 5,
|
|
Packit |
78deda |
0, 251, 255, 252, 0, 253, 1, 252, 0, 251, 192, 0, 0,
|
|
Packit |
78deda |
7, 255, 8, 0, 9, 1, 8, 0, 7 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char59[] =
|
|
Packit |
78deda |
{ 14, 251, 5,
|
|
Packit |
78deda |
0, 251, 255, 252, 0, 253, 1, 252, 0, 251, 192, 0, 1,
|
|
Packit |
78deda |
8, 0, 9, 255, 8, 0, 7, 1, 8, 1, 10, 0, 12, 255, 13 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char60[] =
|
|
Packit |
78deda |
{ 3, 244, 12,
|
|
Packit |
78deda |
8, 247, 248, 0, 8, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char61[] =
|
|
Packit |
78deda |
{ 5, 243, 13,
|
|
Packit |
78deda |
247, 253, 9, 253, 192, 0, 247, 3, 9, 3 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char62[] =
|
|
Packit |
78deda |
{ 3, 244, 12,
|
|
Packit |
78deda |
248, 247, 8, 0, 248, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char63[] =
|
|
Packit |
78deda |
{ 20, 247, 9,
|
|
Packit |
78deda |
250, 249, 250, 248, 251, 246, 252, 245, 254, 244, 2,
|
|
Packit |
78deda |
244, 4, 245, 5, 246, 6, 248, 6, 250, 5, 252, 4, 253, 0, 255, 0,
|
|
Packit |
78deda |
2, 192, 0, 0, 7, 255, 8, 0, 9, 1, 8, 0, 7 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char64[] =
|
|
Packit |
78deda |
{ 55, 243, 14,
|
|
Packit |
78deda |
5, 252, 4, 250, 2, 249, 255, 249, 253, 250, 252,
|
|
Packit |
78deda |
251, 251, 254, 251, 1, 252, 3, 254, 4, 1, 4, 3, 3, 4, 1, 192, 0,
|
|
Packit |
78deda |
255, 249, 253, 251, 252, 254, 252, 1, 253, 3, 254, 4, 192, 0, 5,
|
|
Packit |
78deda |
249, 4, 1, 4, 3, 6, 4, 8, 4, 10, 2, 11, 255, 11, 253, 10, 250, 9,
|
|
Packit |
78deda |
248, 7, 246, 5, 245, 2, 244, 255, 244, 252, 245, 250, 246, 248,
|
|
Packit |
78deda |
248, 247, 250, 246, 253, 246, 0, 247, 3, 248, 5, 250, 7, 252, 8,
|
|
Packit |
78deda |
255, 9, 2, 9, 5, 8, 7, 7, 8, 6, 192, 0, 6, 249, 5, 1, 5, 3, 6, 4
|
|
Packit |
78deda |
};
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char65[] =
|
|
Packit |
78deda |
{ 8, 247, 9,
|
|
Packit |
78deda |
0, 244, 248, 9, 192, 0, 0, 244, 8, 9, 192, 0, 251, 2,
|
|
Packit |
78deda |
5, 2 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char66[] =
|
|
Packit |
78deda |
{ 23, 245, 10,
|
|
Packit |
78deda |
249, 244, 249, 9, 192, 0, 249, 244, 2, 244, 5, 245,
|
|
Packit |
78deda |
6, 246, 7, 248, 7, 250, 6, 252, 5, 253, 2, 254, 192, 0, 249, 254,
|
|
Packit |
78deda |
2, 254, 5, 255, 6, 0, 7, 2, 7, 5, 6, 7, 5, 8, 2, 9, 249, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char67[] =
|
|
Packit |
78deda |
{ 18, 246, 11,
|
|
Packit |
78deda |
8, 249, 7, 247, 5, 245, 3, 244, 255, 244, 253, 245,
|
|
Packit |
78deda |
251, 247, 250, 249, 249, 252, 249, 1, 250, 4, 251, 6, 253, 8,
|
|
Packit |
78deda |
255, 9, 3, 9, 5, 8, 7, 6, 8, 4 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char68[] =
|
|
Packit |
78deda |
{ 15, 245, 10,
|
|
Packit |
78deda |
249, 244, 249, 9, 192, 0, 249, 244, 0, 244, 3, 245,
|
|
Packit |
78deda |
5, 247, 6, 249, 7, 252, 7, 1, 6, 4, 5, 6, 3, 8, 0, 9, 249, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char69[] =
|
|
Packit |
78deda |
{ 11, 246, 9,
|
|
Packit |
78deda |
250, 244, 250, 9, 192, 0, 250, 244, 7, 244, 192, 0,
|
|
Packit |
78deda |
250, 254, 2, 254, 192, 0, 250, 9, 7, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char70[] =
|
|
Packit |
78deda |
{ 8, 246, 8,
|
|
Packit |
78deda |
250, 244, 250, 9, 192, 0, 250, 244, 7, 244, 192, 0,
|
|
Packit |
78deda |
250, 254, 2, 254 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char71[] =
|
|
Packit |
78deda |
{ 22, 246, 11,
|
|
Packit |
78deda |
8, 249, 7, 247, 5, 245, 3, 244, 255, 244, 253, 245,
|
|
Packit |
78deda |
251, 247, 250, 249, 249, 252, 249, 1, 250, 4, 251, 6, 253, 8,
|
|
Packit |
78deda |
255, 9, 3, 9, 5, 8, 7, 6, 8, 4, 8, 1, 192, 0, 3, 1, 8, 1 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char72[] =
|
|
Packit |
78deda |
{ 8, 245, 11,
|
|
Packit |
78deda |
249, 244, 249, 9, 192, 0, 7, 244, 7, 9, 192, 0, 249,
|
|
Packit |
78deda |
254, 7, 254 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char73[] =
|
|
Packit |
78deda |
{ 2, 252, 4,
|
|
Packit |
78deda |
0, 244, 0, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char74[] =
|
|
Packit |
78deda |
{ 10, 248, 8,
|
|
Packit |
78deda |
4, 244, 4, 4, 3, 7, 2, 8, 0, 9, 254, 9, 252, 8, 251,
|
|
Packit |
78deda |
7, 250, 4, 250, 2 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char75[] =
|
|
Packit |
78deda |
{ 8, 245, 10,
|
|
Packit |
78deda |
249, 244, 249, 9, 192, 0, 7, 244, 249, 2, 192, 0,
|
|
Packit |
78deda |
254, 253, 7, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char76[] =
|
|
Packit |
78deda |
{ 3, 246, 7,
|
|
Packit |
78deda |
250, 244, 250, 9, 6, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char77[] =
|
|
Packit |
78deda |
{ 11, 244, 12,
|
|
Packit |
78deda |
248, 244, 248, 9, 192, 0, 248, 244, 0, 9, 192, 0, 8,
|
|
Packit |
78deda |
244, 0, 9, 192, 0, 8, 244, 8, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char78[] =
|
|
Packit |
78deda |
{ 8, 245, 11,
|
|
Packit |
78deda |
249, 244, 249, 9, 192, 0, 249, 244, 7, 9, 192, 0, 7,
|
|
Packit |
78deda |
244, 7, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char79[] =
|
|
Packit |
78deda |
{ 21, 245, 11,
|
|
Packit |
78deda |
254, 244, 252, 245, 250, 247, 249, 249, 248, 252,
|
|
Packit |
78deda |
248, 1, 249, 4, 250, 6, 252, 8, 254, 9, 2, 9, 4, 8, 6, 6, 7, 4,
|
|
Packit |
78deda |
8, 1, 8, 252, 7, 249, 6, 247, 4, 245, 2, 244, 254, 244 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char80[] =
|
|
Packit |
78deda |
{ 13, 245, 10,
|
|
Packit |
78deda |
249, 244, 249, 9, 192, 0, 249, 244, 2, 244, 5, 245,
|
|
Packit |
78deda |
6, 246, 7, 248, 7, 251, 6, 253, 5, 254, 2, 255, 249, 255 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char81[] =
|
|
Packit |
78deda |
{ 24, 245, 11,
|
|
Packit |
78deda |
254, 244, 252, 245, 250, 247, 249, 249, 248, 252,
|
|
Packit |
78deda |
248, 1, 249, 4, 250, 6, 252, 8, 254, 9, 2, 9, 4, 8, 6, 6, 7, 4,
|
|
Packit |
78deda |
8, 1, 8, 252, 7, 249, 6, 247, 4, 245, 2, 244, 254, 244, 192, 0,
|
|
Packit |
78deda |
1, 5, 7, 11 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char82[] =
|
|
Packit |
78deda |
{ 16, 245, 10,
|
|
Packit |
78deda |
249, 244, 249, 9, 192, 0, 249, 244, 2, 244, 5, 245,
|
|
Packit |
78deda |
6, 246, 7, 248, 7, 250, 6, 252, 5, 253, 2, 254, 249, 254, 192, 0,
|
|
Packit |
78deda |
0, 254, 7, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char83[] =
|
|
Packit |
78deda |
{ 20, 246, 10,
|
|
Packit |
78deda |
7, 247, 5, 245, 2, 244, 254, 244, 251, 245, 249,
|
|
Packit |
78deda |
247, 249, 249, 250, 251, 251, 252, 253, 253, 3, 255, 5, 0, 6, 1,
|
|
Packit |
78deda |
7, 3, 7, 6, 5, 8, 2, 9, 254, 9, 251, 8, 249, 6 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char84[] =
|
|
Packit |
78deda |
{ 5, 248, 8,
|
|
Packit |
78deda |
0, 244, 0, 9, 192, 0, 249, 244, 7, 244 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char85[] =
|
|
Packit |
78deda |
{ 10, 245, 11,
|
|
Packit |
78deda |
249, 244, 249, 3, 250, 6, 252, 8, 255, 9, 1, 9, 4,
|
|
Packit |
78deda |
8, 6, 6, 7, 3, 7, 244 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char86[] =
|
|
Packit |
78deda |
{ 5, 247, 9,
|
|
Packit |
78deda |
248, 244, 0, 9, 192, 0, 8, 244, 0, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char87[] =
|
|
Packit |
78deda |
{ 11, 244, 12,
|
|
Packit |
78deda |
246, 244, 251, 9, 192, 0, 0, 244, 251, 9, 192, 0, 0,
|
|
Packit |
78deda |
244, 5, 9, 192, 0, 10, 244, 5, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char88[] =
|
|
Packit |
78deda |
{ 5, 246, 10,
|
|
Packit |
78deda |
249, 244, 7, 9, 192, 0, 7, 244, 249, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char89[] =
|
|
Packit |
78deda |
{ 6, 247, 9,
|
|
Packit |
78deda |
248, 244, 0, 254, 0, 9, 192, 0, 8, 244, 0, 254 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char90[] =
|
|
Packit |
78deda |
{ 8, 246, 10,
|
|
Packit |
78deda |
7, 244, 249, 9, 192, 0, 249, 244, 7, 244, 192, 0,
|
|
Packit |
78deda |
249, 9, 7, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char91[] =
|
|
Packit |
78deda |
{ 11, 249, 7,
|
|
Packit |
78deda |
253, 240, 253, 16, 192, 0, 254, 240, 254, 16, 192, 0,
|
|
Packit |
78deda |
253, 240, 4, 240, 192, 0, 253, 16, 4, 16 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char92[] =
|
|
Packit |
78deda |
{ 2, 245, 11,
|
|
Packit |
78deda |
9, 16, 247, 240 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char93[] =
|
|
Packit |
78deda |
{ 11, 249, 7,
|
|
Packit |
78deda |
2, 240, 2, 16, 192, 0, 3, 240, 3, 16, 192, 0, 252,
|
|
Packit |
78deda |
240, 3, 240, 192, 0, 252, 16, 3, 16 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char94[] =
|
|
Packit |
78deda |
{ 7, 245, 11,
|
|
Packit |
78deda |
248, 2, 0, 253, 8, 2, 192, 0, 248, 2, 0, 254, 8, 2 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char95[] =
|
|
Packit |
78deda |
{ 2, 253, 22,
|
|
Packit |
78deda |
0, 9, 20, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char96[] =
|
|
Packit |
78deda |
{ 7, 251, 5,
|
|
Packit |
78deda |
1, 244, 0, 245, 255, 247, 255, 249, 0, 250, 1, 249, 0, 248 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char97[] =
|
|
Packit |
78deda |
{ 17, 247, 10,
|
|
Packit |
78deda |
6, 251, 6, 9, 192, 0, 6, 254, 4, 252, 2, 251, 255,
|
|
Packit |
78deda |
251, 253, 252, 251, 254, 250, 1, 250, 3, 251, 6, 253, 8, 255, 9,
|
|
Packit |
78deda |
2, 9, 4, 8, 6, 6 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char98[] =
|
|
Packit |
78deda |
{ 17, 246, 9,
|
|
Packit |
78deda |
250, 244, 250, 9, 192, 0, 250, 254, 252, 252, 254,
|
|
Packit |
78deda |
251, 1, 251, 3, 252, 5, 254, 6, 1, 6, 3, 5, 6, 3, 8, 1, 9, 254,
|
|
Packit |
78deda |
9, 252, 8, 250, 6 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char99[] =
|
|
Packit |
78deda |
{ 14, 247, 9,
|
|
Packit |
78deda |
6, 254, 4, 252, 2, 251, 255, 251, 253, 252, 251, 254,
|
|
Packit |
78deda |
250, 1, 250, 3, 251, 6, 253, 8, 255, 9, 2, 9, 4, 8, 6, 6 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char100[] =
|
|
Packit |
78deda |
{ 17, 247, 10,
|
|
Packit |
78deda |
6, 244, 6, 9, 192, 0, 6, 254, 4, 252, 2, 251, 255,
|
|
Packit |
78deda |
251, 253, 252, 251, 254, 250, 1, 250, 3, 251, 6, 253, 8, 255, 9,
|
|
Packit |
78deda |
2, 9, 4, 8, 6, 6 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char101[] =
|
|
Packit |
78deda |
{ 17, 247, 9,
|
|
Packit |
78deda |
250, 1, 6, 1, 6, 255, 5, 253, 4, 252, 2, 251, 255,
|
|
Packit |
78deda |
251, 253, 252, 251, 254, 250, 1, 250, 3, 251, 6, 253, 8, 255, 9,
|
|
Packit |
78deda |
2, 9, 4, 8, 6, 6 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char102[] =
|
|
Packit |
78deda |
{ 8, 251, 7,
|
|
Packit |
78deda |
5, 244, 3, 244, 1, 245, 0, 248, 0, 9, 192, 0, 253,
|
|
Packit |
78deda |
251, 4, 251 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char103[] =
|
|
Packit |
78deda |
{ 22, 247, 10,
|
|
Packit |
78deda |
6, 251, 6, 11, 5, 14, 4, 15, 2, 16, 255, 16, 253,
|
|
Packit |
78deda |
15, 192, 0, 6, 254, 4, 252, 2, 251, 255, 251, 253, 252, 251,
|
|
Packit |
78deda |
254, 250, 1, 250, 3, 251, 6, 253, 8, 255, 9, 2, 9, 4, 8, 6, 6 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char104[] =
|
|
Packit |
78deda |
{ 10, 247, 10,
|
|
Packit |
78deda |
251, 244, 251, 9, 192, 0, 251, 255, 254, 252, 0,
|
|
Packit |
78deda |
251, 3, 251, 5, 252, 6, 255, 6, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char105[] =
|
|
Packit |
78deda |
{ 8, 252, 4,
|
|
Packit |
78deda |
255, 244, 0, 245, 1, 244, 0, 243, 255, 244, 192, 0,
|
|
Packit |
78deda |
0, 251, 0, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char106[] =
|
|
Packit |
78deda |
{ 11, 251, 5,
|
|
Packit |
78deda |
0, 244, 1, 245, 2, 244, 1, 243, 0, 244, 192, 0, 1,
|
|
Packit |
78deda |
251, 1, 12, 0, 15, 254, 16, 252, 16 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char107[] =
|
|
Packit |
78deda |
{ 8, 247, 8,
|
|
Packit |
78deda |
251, 244, 251, 9, 192, 0, 5, 251, 251, 5, 192, 0, 255, 1, 6, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char108[] =
|
|
Packit |
78deda |
{ 2, 252, 4,
|
|
Packit |
78deda |
0, 244, 0, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char109[] =
|
|
Packit |
78deda |
{ 18, 241, 15,
|
|
Packit |
78deda |
245, 251, 245, 9, 192, 0, 245, 255, 248, 252, 250,
|
|
Packit |
78deda |
251, 253, 251, 255, 252, 0, 255, 0, 9, 192, 0, 0, 255, 3, 252,
|
|
Packit |
78deda |
5, 251, 8, 251, 10, 252, 11, 255, 11, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char110[] =
|
|
Packit |
78deda |
{ 10, 247, 10,
|
|
Packit |
78deda |
251, 251, 251, 9, 192, 0, 251, 255, 254, 252, 0,
|
|
Packit |
78deda |
251, 3, 251, 5, 252, 6, 255, 6, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char111[] =
|
|
Packit |
78deda |
{ 17, 247, 10,
|
|
Packit |
78deda |
255, 251, 253, 252, 251, 254, 250, 1, 250, 3, 251,
|
|
Packit |
78deda |
6, 253, 8, 255, 9, 2, 9, 4, 8, 6, 6, 7, 3, 7, 1, 6, 254, 4, 252,
|
|
Packit |
78deda |
2, 251, 255, 251 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char112[] =
|
|
Packit |
78deda |
{ 17, 246, 9,
|
|
Packit |
78deda |
250, 251, 250, 16, 192, 0, 250, 254, 252, 252, 254,
|
|
Packit |
78deda |
251, 1, 251, 3, 252, 5, 254, 6, 1, 6, 3, 5, 6, 3, 8, 1, 9, 254,
|
|
Packit |
78deda |
9, 252, 8, 250, 6 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char113[] =
|
|
Packit |
78deda |
{ 17, 247, 10,
|
|
Packit |
78deda |
6, 251, 6, 16, 192, 0, 6, 254, 4, 252, 2, 251, 255,
|
|
Packit |
78deda |
251, 253, 252, 251, 254, 250, 1, 250, 3, 251, 6, 253, 8, 255, 9,
|
|
Packit |
78deda |
2, 9, 4, 8, 6, 6 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char114[] =
|
|
Packit |
78deda |
{ 8, 249, 6,
|
|
Packit |
78deda |
253, 251, 253, 9, 192, 0, 253, 1, 254, 254, 0, 252,
|
|
Packit |
78deda |
2, 251, 5, 251 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char115[] =
|
|
Packit |
78deda |
{ 17, 248, 9,
|
|
Packit |
78deda |
6, 254, 5, 252, 2, 251, 255, 251, 252, 252, 251,
|
|
Packit |
78deda |
254, 252, 0, 254, 1, 3, 2, 5, 3, 6, 5, 6, 6, 5, 8, 2, 9, 255, 9,
|
|
Packit |
78deda |
252, 8, 251, 6 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char116[] =
|
|
Packit |
78deda |
{ 8, 251, 7,
|
|
Packit |
78deda |
0, 244, 0, 5, 1, 8, 3, 9, 5, 9, 192, 0, 253, 251, 4, 251 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char117[] =
|
|
Packit |
78deda |
{ 10, 247, 10,
|
|
Packit |
78deda |
251, 251, 251, 5, 252, 8, 254, 9, 1, 9, 3, 8, 6, 5,
|
|
Packit |
78deda |
192, 0, 6, 251, 6, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char118[] =
|
|
Packit |
78deda |
{ 5, 248, 8,
|
|
Packit |
78deda |
250, 251, 0, 9, 192, 0, 6, 251, 0, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char119[] =
|
|
Packit |
78deda |
{ 11, 245, 11,
|
|
Packit |
78deda |
248, 251, 252, 9, 192, 0, 0, 251, 252, 9, 192, 0,
|
|
Packit |
78deda |
0, 251, 4, 9, 192, 0, 8, 251, 4, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char120[] =
|
|
Packit |
78deda |
{ 5, 248, 9,
|
|
Packit |
78deda |
251, 251, 6, 9, 192, 0, 6, 251, 251, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char121[] =
|
|
Packit |
78deda |
{ 9, 248, 8,
|
|
Packit |
78deda |
250, 251, 0, 9, 192, 0, 6, 251, 0, 9, 254, 13, 252,
|
|
Packit |
78deda |
15, 250, 16, 249, 16 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char122[] =
|
|
Packit |
78deda |
{ 8, 248, 9,
|
|
Packit |
78deda |
6, 251, 251, 9, 192, 0, 251, 251, 6, 251, 192, 0,
|
|
Packit |
78deda |
251, 9, 6, 9 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char123[] =
|
|
Packit |
78deda |
{ 39, 249, 7,
|
|
Packit |
78deda |
2, 240, 0, 241, 255, 242, 254, 244, 254, 246, 255,
|
|
Packit |
78deda |
248, 0, 249, 1, 251, 1, 253, 255, 255, 192, 0, 0, 241, 255, 243,
|
|
Packit |
78deda |
255, 245, 0, 247, 1, 248, 2, 250, 2, 252, 1, 254, 253, 0, 1, 2,
|
|
Packit |
78deda |
2, 4, 2, 6, 1, 8, 0, 9, 255, 11, 255, 13, 0, 15, 192, 0, 255, 1,
|
|
Packit |
78deda |
1, 3, 1, 5, 0, 7, 255, 8, 254, 10, 254, 12, 255, 14, 0, 15, 2, 16 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char124[] =
|
|
Packit |
78deda |
{ 2, 252, 4,
|
|
Packit |
78deda |
0, 240, 0, 16 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char125[] =
|
|
Packit |
78deda |
{ 39, 249, 7,
|
|
Packit |
78deda |
254, 240, 0, 241, 1, 242, 2, 244, 2, 246, 1, 248, 0,
|
|
Packit |
78deda |
249, 255, 251, 255, 253, 1, 255, 192, 0, 0, 241, 1, 243, 1, 245,
|
|
Packit |
78deda |
0, 247, 255, 248, 254, 250, 254, 252, 255, 254, 3, 0, 255, 2,
|
|
Packit |
78deda |
254, 4, 254, 6, 255, 8, 0, 9, 1, 11, 1, 13, 0, 15, 192, 0, 1, 1,
|
|
Packit |
78deda |
255, 3, 255, 5, 0, 7, 1, 8, 2, 10, 2, 12, 1, 14, 0, 15, 254, 16 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char char126[] =
|
|
Packit |
78deda |
{ 23, 255, 21,
|
|
Packit |
78deda |
2, 1, 0, 255, 1, 253, 3, 251, 5, 251, 7, 252,
|
|
Packit |
78deda |
11, 255, 13, 0, 15, 0, 17, 255, 18, 254, 192, 0, 2, 0, 1,
|
|
Packit |
78deda |
254, 3, 253, 5, 253, 7, 254, 11, 1, 13, 2, 15, 2, 17, 1, 18,
|
|
Packit |
78deda |
255, 18, 252 };
|
|
Packit |
78deda |
|
|
Packit |
78deda |
/* Pointers to character definition tables. */
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static unsigned char * fontData[] = {
|
|
Packit |
78deda |
char32, char33, char34, char35, char36, char37, char38, char39, char40,
|
|
Packit |
78deda |
char41, char42, char43, char44, char45, char46, char47, char48, char49,
|
|
Packit |
78deda |
char50, char51, char52, char53, char54, char55, char56, char57, char58,
|
|
Packit |
78deda |
char59, char60, char61, char62, char63, char64, char65, char66, char67,
|
|
Packit |
78deda |
char68, char69, char70, char71, char72, char73, char74, char75, char76,
|
|
Packit |
78deda |
char77, char78, char79, char80, char81, char82, char83, char84, char85,
|
|
Packit |
78deda |
char86, char87, char88, char89, char90, char91, char92, char93, char94,
|
|
Packit |
78deda |
char95, char96, char97, char98, char99, char100, char101, char102,
|
|
Packit |
78deda |
char103, char104, char105, char106, char107, char108, char109, char110,
|
|
Packit |
78deda |
char111, char112, char113, char114, char115, char116, char117, char118,
|
|
Packit |
78deda |
char119, char120, char121, char122, char123, char124, char125, char126
|
|
Packit |
78deda |
};
|
|
Packit |
78deda |
|
|
Packit |
78deda |
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static void
|
|
Packit |
78deda |
writeGlyphCommand(FILE * const ofP,
|
|
Packit |
78deda |
struct ppmd_glyphCommand const glyphCommand) {
|
|
Packit |
78deda |
|
|
Packit |
78deda |
fputc(glyphCommand.verb, ofP);
|
|
Packit |
78deda |
fputc(glyphCommand.x, ofP);
|
|
Packit |
78deda |
fputc(glyphCommand.y, ofP);
|
|
Packit |
78deda |
}
|
|
Packit |
78deda |
|
|
Packit |
78deda |
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static void
|
|
Packit |
78deda |
writeMovePen(FILE * const ofP,
|
|
Packit |
78deda |
const unsigned char * const glyphData) {
|
|
Packit |
78deda |
|
|
Packit |
78deda |
struct ppmd_glyphCommand glyphCommand;
|
|
Packit |
78deda |
|
|
Packit |
78deda |
glyphCommand.verb = CMD_MOVEPEN;
|
|
Packit |
78deda |
glyphCommand.x = glyphData[0];
|
|
Packit |
78deda |
glyphCommand.y = glyphData[1];
|
|
Packit |
78deda |
|
|
Packit |
78deda |
writeGlyphCommand(ofP, glyphCommand);
|
|
Packit |
78deda |
}
|
|
Packit |
78deda |
|
|
Packit |
78deda |
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static void
|
|
Packit |
78deda |
writeMovePenNoop(FILE * const ofP,
|
|
Packit |
78deda |
const unsigned char * const glyphData) {
|
|
Packit |
78deda |
|
|
Packit |
78deda |
struct ppmd_glyphCommand glyphCommand;
|
|
Packit |
78deda |
|
|
Packit |
78deda |
glyphCommand.verb = CMD_MOVEPEN;
|
|
Packit |
78deda |
glyphCommand.x = glyphData[0];
|
|
Packit |
78deda |
glyphCommand.y = glyphData[1];
|
|
Packit |
78deda |
|
|
Packit |
78deda |
writeGlyphCommand(ofP, glyphCommand);
|
|
Packit |
78deda |
|
|
Packit |
78deda |
glyphCommand.verb = CMD_NOOP;
|
|
Packit |
78deda |
glyphCommand.x = 0;
|
|
Packit |
78deda |
glyphCommand.y = 0;
|
|
Packit |
78deda |
|
|
Packit |
78deda |
writeGlyphCommand(ofP, glyphCommand);
|
|
Packit |
78deda |
}
|
|
Packit |
78deda |
|
|
Packit |
78deda |
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static void
|
|
Packit |
78deda |
writeDrawLine(FILE * const ofP,
|
|
Packit |
78deda |
const unsigned char * const glyphData) {
|
|
Packit |
78deda |
|
|
Packit |
78deda |
struct ppmd_glyphCommand glyphCommand;
|
|
Packit |
78deda |
|
|
Packit |
78deda |
glyphCommand.verb = CMD_DRAWLINE;
|
|
Packit |
78deda |
glyphCommand.x = glyphData[0];
|
|
Packit |
78deda |
glyphCommand.y = glyphData[1];
|
|
Packit |
78deda |
|
|
Packit |
78deda |
writeGlyphCommand(ofP, glyphCommand);
|
|
Packit |
78deda |
}
|
|
Packit |
78deda |
|
|
Packit |
78deda |
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static void
|
|
Packit |
78deda |
writeGlyphHeader(FILE * const ofP,
|
|
Packit |
78deda |
struct ppmd_glyphHeader const glyphHeader) {
|
|
Packit |
78deda |
|
|
Packit |
78deda |
fputc(glyphHeader.commandCount, ofP);
|
|
Packit |
78deda |
fputc(glyphHeader.skipBefore, ofP);
|
|
Packit |
78deda |
fputc(glyphHeader.skipAfter, ofP);
|
|
Packit |
78deda |
}
|
|
Packit |
78deda |
|
|
Packit |
78deda |
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static void
|
|
Packit |
78deda |
writeBuiltinCharacter(FILE * const ofP,
|
|
Packit |
78deda |
unsigned int const relativeCodePoint) {
|
|
Packit |
78deda |
|
|
Packit |
78deda |
const unsigned char * const glyphData = fontData[relativeCodePoint];
|
|
Packit |
78deda |
|
|
Packit |
78deda |
struct ppmd_glyphHeader glyphHeader;
|
|
Packit |
78deda |
unsigned int commandNum;
|
|
Packit |
78deda |
|
|
Packit |
78deda |
glyphHeader.commandCount = glyphData[0];
|
|
Packit |
78deda |
glyphHeader.skipBefore = glyphData[1];
|
|
Packit |
78deda |
glyphHeader.skipAfter = glyphData[2];
|
|
Packit |
78deda |
|
|
Packit |
78deda |
writeGlyphHeader(ofP, glyphHeader);
|
|
Packit |
78deda |
|
|
Packit |
78deda |
commandNum = 0;
|
|
Packit |
78deda |
|
|
Packit |
78deda |
while (commandNum < glyphHeader.commandCount) {
|
|
Packit |
78deda |
|
|
Packit |
78deda |
if (commandNum == 0) {
|
|
Packit |
78deda |
writeMovePen(ofP, &glyphData[3 + commandNum * 2]);
|
|
Packit |
78deda |
commandNum += 1;
|
|
Packit |
78deda |
} else if (glyphData[3 + commandNum*2] == 192) {
|
|
Packit |
78deda |
|
|
Packit |
78deda |
assert(commandNum + 1 < glyphHeader.commandCount);
|
|
Packit |
78deda |
|
|
Packit |
78deda |
writeMovePenNoop(ofP, &glyphData[3 + (commandNum + 1) * 2]);
|
|
Packit |
78deda |
|
|
Packit |
78deda |
commandNum += 2;
|
|
Packit |
78deda |
} else {
|
|
Packit |
78deda |
writeDrawLine(ofP, &glyphData[3 + commandNum * 2]);
|
|
Packit |
78deda |
commandNum += 1;
|
|
Packit |
78deda |
}
|
|
Packit |
78deda |
}
|
|
Packit |
78deda |
}
|
|
Packit |
78deda |
|
|
Packit |
78deda |
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static void
|
|
Packit |
78deda |
writeFontHeader(FILE * const ofP,
|
|
Packit |
78deda |
struct ppmd_fontHeader const fontHeader) {
|
|
Packit |
78deda |
|
|
Packit |
78deda |
fwrite(fontHeader.signature, 1, sizeof(fontHeader.signature), ofP);
|
|
Packit |
78deda |
fputc(fontHeader.format, ofP);
|
|
Packit |
78deda |
fputc(fontHeader.characterCount, ofP);
|
|
Packit |
78deda |
fputc(fontHeader.firstCodePoint, ofP);
|
|
Packit |
78deda |
}
|
|
Packit |
78deda |
|
|
Packit |
78deda |
|
|
Packit |
78deda |
|
|
Packit |
78deda |
static void
|
|
Packit |
78deda |
writeBuiltinFont(FILE * const ofP) {
|
|
Packit |
78deda |
|
|
Packit |
78deda |
unsigned int relativeCodePoint;
|
|
Packit |
78deda |
|
|
Packit |
78deda |
struct ppmd_fontHeader fontHeader;
|
|
Packit |
78deda |
|
|
Packit |
78deda |
memcpy(fontHeader.signature, "ppmdfont", sizeof(fontHeader.signature));
|
|
Packit |
78deda |
fontHeader.format = 0x01;
|
|
Packit |
78deda |
fontHeader.characterCount = 95;
|
|
Packit |
78deda |
fontHeader.firstCodePoint = 32;
|
|
Packit |
78deda |
|
|
Packit |
78deda |
writeFontHeader(ofP, fontHeader);
|
|
Packit |
78deda |
|
|
Packit |
78deda |
for (relativeCodePoint = 0;
|
|
Packit |
78deda |
relativeCodePoint < fontHeader.characterCount;
|
|
Packit |
78deda |
++relativeCodePoint) {
|
|
Packit |
78deda |
|
|
Packit |
78deda |
writeBuiltinCharacter(ofP,relativeCodePoint);
|
|
Packit |
78deda |
}
|
|
Packit |
78deda |
}
|
|
Packit |
78deda |
|
|
Packit |
78deda |
|
|
Packit |
78deda |
|
|
Packit |
78deda |
int
|
|
Packit |
78deda |
main(int argc, char **argv) {
|
|
Packit |
78deda |
|
|
Packit |
78deda |
ppm_init(&argc, argv);
|
|
Packit |
78deda |
|
|
Packit |
78deda |
writeBuiltinFont(stdout);
|
|
Packit |
78deda |
|
|
Packit |
78deda |
return 0;
|
|
Packit |
78deda |
}
|