typedef struct document_Tag document;
typedef struct kern_pair_Tag kern_pair;
+typedef struct ligature_Tag ligature;
typedef struct font_info_Tag font_info;
typedef struct font_data_Tag font_data;
typedef struct font_encoding_Tag font_encoding;
};
/*
+ * ... and this one represents a ligature.
+ */
+struct ligature_Tag {
+ unsigned short left, right, lig;
+};
+
+/*
* This data structure holds static information about a font that doesn't
* depend on the particular document. It gets generated when the font's
* metrics are read in.
*/
const char *name;
/*
+ * The file containing this font, if any.
+ */
+ FILE *fp;
+ filepos pos;
+ /*
+ * Lengths of the unencrypted and encrypted portions of the font.
+ */
+ long length1, length2;
+ /*
* An array of pointers to the available glyph names, and their
* corresponding character widths. These two arrays have
* parallel indices.
unsigned short *glyphsbyname;
/* A tree of kern_pairs */
tree234 *kerns;
+ /* ... and one of ligatures */
+ tree234 *ligs;
/*
* For reasonably speedy lookup, we set up a 65536-element
* table representing the Unicode BMP (I can conveniently
* Functions exported from bk_paper.c
*/
int kern_cmp(void *, void *); /* use when setting up kern_pairs */
+int lig_cmp(void *, void *); /* use when setting up ligatures */
void font_index_glyphs(font_info *fi);
-int find_glyph(font_info *fi, char const *name);
+int find_glyph(font_info const *fi, char const *name);
/*
const int *ps_std_font_widths(char const *fontname);
const kern_pair *ps_std_font_kerns(char const *fontname);
+/*
+ * Function from bk_pdf.c borrowed by bk_ps.c
+ */
+char *pdf_outline_convert(wchar_t *s, int *len);
+
+/*
+ * Backend functions exported by in_pf.c
+ */
+void pf_part1(font_info *fi, char **bufp, size_t *lenp);
+void pf_part2(font_info *fi, char **bufp, size_t *lenp);
+
#endif