+define xfontset
+ xgetptr $
+ set $tbl = (struct Lisp_Char_Table *) $ptr
+ print $tbl
+ xgetint $tbl->extras[0]
+ printf " ID:%d", $int
+ xgettype $tbl->extras[1]
+ xgetptr $tbl->extras[1]
+ if $type == Lisp_String
+ set $ptr = (struct Lisp_String *) $ptr
+ printf " Name:"
+ xprintstr $ptr
+ else
+ xgetptr $tbl->extras[2]
+ set $ptr = (struct Lisp_Char_Table *) $ptr
+ xgetptr $ptr->extras[1]
+ set $ptr = (struct Lisp_String *) $ptr
+ printf " Realized from:"
+ xprintstr $ptr
+ end
+ echo \n
+end
+
+define xfont
+ xgetptr $
+ set $size = (((struct Lisp_Vector *) $ptr)->size & 0x1FF)
+ if $size == FONT_SPEC_MAX
+ print (struct font_spec *) $ptr
+ else
+ if $size == FONT_ENTITY_MAX
+ print (struct font_entity *) $ptr
+ else
+ print (struct font *) $ptr
+ end
+ end
+end
+document xfont
+Print $ assuming it is a list font (font-spec, font-entity, or font-object).
+end
+