Include font.h.
authorKenichi Handa <handa@m17n.org>
Wed, 14 May 2008 01:39:58 +0000 (01:39 +0000)
committerKenichi Handa <handa@m17n.org>
Wed, 14 May 2008 01:39:58 +0000 (01:39 +0000)
(print_object): Handle font-related objects.

src/print.c

index d5453ce..82c987a 100644 (file)
@@ -36,6 +36,7 @@ Boston, MA 02110-1301, USA.  */
 #include "intervals.h"
 #include "blockinput.h"
 #include "termhooks.h"         /* For struct terminal.  */
+#include "font.h"
 
 Lisp_Object Vstandard_output, Qstandard_output;
 
@@ -2129,6 +2130,34 @@ print_object (obj, printcharfun, escapeflag)
          strout (buf, -1, -1, printcharfun, 0);
          PRINTCHAR ('>');
        }
+      else if (FONTP (obj))
+       {
+         EMACS_INT i;
+
+         if (! FONT_OBJECT_P (obj))
+           {
+             if (FONT_SPEC_P (obj))
+               strout ("#<font-spec", -1, -1, printcharfun, 0);
+             else
+               strout ("#<font-entity", -1, -1, printcharfun, 0);
+             for (i = 0; i < FONT_SPEC_MAX; i++)
+               {
+                 PRINTCHAR (' ');
+                 if (i < FONT_WEIGHT_INDEX || i > FONT_WIDTH_INDEX)
+                   print_object (AREF (obj, i), printcharfun, escapeflag);
+                 else
+                   print_object (font_style_symbolic (obj, i, 0),
+                                 printcharfun, escapeflag);
+               }
+           }
+         else
+           {
+             strout ("#<font-object ", -1, -1, printcharfun, 0);
+             print_object (AREF (obj, FONT_NAME_INDEX), printcharfun,
+                           escapeflag);
+           }
+         PRINTCHAR ('>');
+       }
       else
        {
          EMACS_INT size = XVECTOR (obj)->size;