When loading a Type 1 font, remember to terminate the linked list we load
[sgt/halibut] / paper.h
diff --git a/paper.h b/paper.h
index bab9e4f..0f45b89 100644 (file)
--- a/paper.h
+++ b/paper.h
@@ -87,14 +87,10 @@ struct font_info_Tag {
      */
     const char *name;
     /*
-     * The file containing this font, if any.
+     * Pointer to data about the file containing the font, if any.
      */
-    FILE *fp;
-    filepos pos;
-    /*
-     * Lengths of the unencrypted and encrypted portions of the font.
-     */
-    long length1, length2;
+    void *fontfile;
+    enum { TYPE1, TRUETYPE } filetype;
     /* A tree of glyph_widths */
     tree234 *widths;
     /* A tree of kern_pairs */
@@ -225,6 +221,11 @@ struct para_data_Tag {
        JUST, LEFT, RIGHT
     } justification;
     /*
+     * Sometimes (in code paragraphs) we want to override the flags
+     * passed to render_string().
+     */
+    unsigned extraflags;
+    /*
      * For constructing the page outline.
      */
     int outline_level;                /* 0=title 1=C 2=H 3=S 4=S2... */
@@ -384,8 +385,9 @@ int find_width(font_data *, glyph);
  */
 glyph glyph_intern(char const *);
 char const *glyph_extern(glyph);
-wchar_t ps_glyph_to_unicode(char const *glyph);
+wchar_t ps_glyph_to_unicode(glyph);
 extern const char *const ps_std_glyphs[];
+extern glyph const tt_std_glyphs[];
 void init_std_fonts(void);
 const int *ps_std_font_widths(char const *fontname);
 const kern_pair *ps_std_font_kerns(char const *fontname);
@@ -400,5 +402,11 @@ char *pdf_outline_convert(wchar_t *s, int *len);
  */
 void pf_part1(font_info *fi, char **bufp, size_t *lenp);
 void pf_part2(font_info *fi, char **bufp, size_t *lenp);
+void pf_writeps(font_info const *fi, FILE *ofp);
+
+/*
+ * Backend functions exported by in_sfnt.c
+ */
+void sfnt_writeps(font_info const *fi, FILE *ofp);
 
 #endif