Mercurial > hg > xemacs-beta
diff src/specifier.c @ 371:cc15677e0335 r21-2b1
Import from CVS: tag r21-2b1
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:03:08 +0200 |
parents | 7347b34c275b |
children | 8626e4521993 |
line wrap: on
line diff
--- a/src/specifier.c Mon Aug 13 11:01:58 2007 +0200 +++ b/src/specifier.c Mon Aug 13 11:03:08 2007 +0200 @@ -37,8 +37,7 @@ #include "opaque.h" #include "specifier.h" #include "window.h" -#include "chartab.h" -#include "rangetab.h" +#include "glyphs.h" /* for DISP_TABLE_SIZE definition */ Lisp_Object Qspecifierp; Lisp_Object Qprepend, Qappend, Qremove_tag_set_prepend, Qremove_tag_set_append; @@ -2995,38 +2994,14 @@ DEFINE_SPECIFIER_TYPE (display_table); -#define VALID_SINGLE_DISPTABLE_INSTANTIATOR_P(instantiator) \ - (VECTORP (instantiator) \ - || (CHAR_TABLEP (instantiator) \ - && (XCHAR_TABLE_TYPE (instantiator) == CHAR_TABLE_TYPE_CHAR \ - || XCHAR_TABLE_TYPE (instantiator) == CHAR_TABLE_TYPE_GENERIC)) \ - || RANGE_TABLEP (instantiator)) - static void display_table_validate (Lisp_Object instantiator) { - if (NILP (instantiator)) - /* OK */ - ; - else if (CONSP (instantiator)) - { - Lisp_Object tail; - EXTERNAL_LIST_LOOP (tail, instantiator) - { - Lisp_Object car = XCAR (tail); - if (!VALID_SINGLE_DISPTABLE_INSTANTIATOR_P (car)) - goto lose; - } - } - else - { - if (!VALID_SINGLE_DISPTABLE_INSTANTIATOR_P (instantiator)) - { - lose: - dead_wrong_type_argument (display_table_specifier_methods->predicate_symbol, - instantiator); - } - } + if (!NILP(instantiator) && + (!VECTORP (instantiator) || + XVECTOR_LENGTH (instantiator) != DISP_TABLE_SIZE)) + dead_wrong_type_argument (display_table_specifier_methods->predicate_symbol, + instantiator); } DEFUN ("display-table-specifier-p", Fdisplay_table_specifier_p, 1, 1, 0, /*