Mercurial > hg > xemacs-beta
diff src/specifier.c @ 116:9f59509498e1 r20-1b10
Import from CVS: tag r20-1b10
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:23:06 +0200 |
parents | 6a378aca36af |
children | cca96a509cfe |
line wrap: on
line diff
--- a/src/specifier.c Mon Aug 13 09:21:56 2007 +0200 +++ b/src/specifier.c Mon Aug 13 09:23:06 2007 +0200 @@ -35,6 +35,7 @@ #include "opaque.h" #include "specifier.h" #include "window.h" +#include "glyphs.h" /* for DISP_TABLE_SIZE definition */ Lisp_Object Qspecifierp; Lisp_Object Qprepend, Qappend, Qremove_tag_set_prepend, Qremove_tag_set_append; @@ -2877,6 +2878,30 @@ return (BOOLEAN_SPECIFIERP (object) ? Qt : Qnil); } +/************************************************************************/ +/* Display table specifier type */ +/************************************************************************/ + +DEFINE_SPECIFIER_TYPE (display_table); + +void +display_table_validate(instantiator) +Lisp_Object instantiator; +{ + if (!NILP(instantiator) && + (!VECTORP (instantiator) || + XVECTOR (instantiator)->size != DISP_TABLE_SIZE)) + dead_wrong_type_argument(display_table_specifier_methods->predicate_symbol, instantiator); + return; +} +DEFUN ("display-table-specifier-p", Fdisplay_table_specifier_p, 1, 1, 0, /* +Return non-nil if OBJECT is an display-table specifier. +*/ + (object)) +{ + return (DISPLAYTABLE_SPECIFIERP (object) ? Qt : Qnil); +} + /************************************************************************/ /* Initialization */ @@ -2977,6 +3002,11 @@ INITIALIZE_SPECIFIER_TYPE (boolean, "boolean", "boolean-specifier-p"); SPECIFIER_HAS_METHOD (boolean, validate); + + INITIALIZE_SPECIFIER_TYPE (display_table, "display-table", + "display-table-p"); + + SPECIFIER_HAS_METHOD (display_table, validate); } void