aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenichi Handa <[email protected]>2008-05-14 01:39:58 +0000
committerKenichi Handa <[email protected]>2008-05-14 01:39:58 +0000
commit2a7b7982aea93d5bac211492b057b78f3c7ba261 (patch)
tree9e0b7430bcab1775dd71326ec6cc25deeedff9b2
parentf85064bdd8157a98cdd96270df5721bade59af68 (diff)
Include font.h.
(print_object): Handle font-related objects.
-rw-r--r--src/print.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/print.c b/src/print.c
index d5453ce74e..82c987a85d 100644
--- a/src/print.c
+++ b/src/print.c
@@ -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;