+SCM
+mark_font (SCM font_smob)
+{
+ struct font *font = (struct font *) SCM_SMOB_DATA (font_smob);
+
+ scm_gc_mark (font->filename);
+
+ return SCM_BOOL_F;
+}
+
+size_t
+free_font (SCM font_smob)
+{
+ struct font *font = (struct font *) SCM_SMOB_DATA (font_smob);
+
+ ftglDestroyFont (font->font_address);
+ scm_gc_free (font, sizeof (struct font), "font");
+
+ return 0;
+}
+
+static int
+print_font (SCM font_smob, SCM port, scm_print_state *pstate)
+{
+ struct font *font = (struct font *) SCM_SMOB_DATA (font_smob);
+
+ scm_puts ("#<font \"", port);
+ scm_display (font->filename, port);
+ scm_puts ("\">", port);
+
+ /* non-zero means success */
+ return 1;
+}
+
+