James should apparently have been removed from this file years ago. Fix that.
[sgt/halibut] / paper.h
diff --git a/paper.h b/paper.h
index 68da8c2..9bea29d 100644 (file)
--- a/paper.h
+++ b/paper.h
@@ -14,6 +14,7 @@
 
 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;
@@ -51,6 +52,13 @@ struct kern_pair_Tag {
 };
 
 /*
+ * ... 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.
@@ -65,6 +73,15 @@ struct font_info_Tag {
      */
     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.
@@ -79,6 +96,8 @@ struct font_info_Tag {
     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
@@ -354,8 +373,9 @@ struct outline_element_Tag {
  * 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);
 
 
 /*
@@ -367,4 +387,15 @@ void init_std_fonts(void);
 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