Mercurial > hg > xemacs-beta
changeset 4430:d00347ec8289
Fix instantiate_method prototype
This adds the additional no_fallback argument from the previous patch
author | Didier Verna <didier@xemacs.org> |
---|---|
date | Thu, 28 Feb 2008 10:29:08 +0100 |
parents | a883e09e54f7 |
children | dd9030354e14 |
files | src/ChangeLog src/specifier.h |
diffstat | 2 files changed, 15 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Wed Feb 27 08:54:25 2008 -0800 +++ b/src/ChangeLog Thu Feb 28 10:29:08 2008 +0100 @@ -1,3 +1,8 @@ +2008-02-28 Didier Verna <didier@xemacs.org> + + * specifier.h (struct specifier_methods): Fix instantiate_method + prototype to match the changes below. + 2008-02-26 Didier Verna <didier@xemacs.org> * specifier.c (CHECK_INSTANCE_ENTRY): See below.
--- a/src/specifier.h Wed Feb 27 08:54:25 2008 -0800 +++ b/src/specifier.h Thu Feb 28 10:29:08 2008 +0100 @@ -139,7 +139,7 @@ void (*validate_matchspec_method) (Lisp_Object matchspec); /* Instantiate method: Return SPECIFIER instance in DOMAIN, - specified by INSTANTIATOR. MATCHSPEC specifies an additional + specified by INSTANTIATOR. MATCHSPEC specifies additional constraints on the instance value (see the docstring for Fspecifier_matching_instance function). MATCHSPEC is passed Qunbound when no matching constraints are imposed. The method is @@ -152,6 +152,9 @@ name specifier_instance) to avoid creating "external" specification loops. + NO_FALLBACK indicates that the method should not try the fallbacks + (and thus simply return Qunbound) in case of a failure to instantiate. + This method must presume that both INSTANTIATOR and MATCHSPEC are already validated by the corresponding validate_* methods, and may abort if they are invalid. @@ -166,7 +169,8 @@ Lisp_Object matchspec, Lisp_Object domain, Lisp_Object instantiator, - Lisp_Object depth); + Lisp_Object depth, + int no_fallback); /* Going-to-add method: Called when an instantiator is about to be added to a specifier. This function can specify @@ -343,7 +347,7 @@ INITIALIZE_SPECIFIER_TYPE (type, obj_name, pred_sym); \ type##_specifier_methods->extra_data_size = \ sizeof (struct type##_specifier); \ - type##_specifier_methods->extra_description = \ + type##_specifier_methods->extra_description = \ &type##_specifier_description_0; \ } while (0) @@ -573,13 +577,13 @@ font for CHARSET that matches iso10646-1, since we haven't found a font that matches its registry." */ enum font_specifier_matchspec_stages { - initial, + initial, final, - impossible, + impossible, }; Lisp_Object define_specifier_tag(Lisp_Object tag, - Lisp_Object device_predicate, + Lisp_Object device_predicate, Lisp_Object charset_predicate); #endif /* INCLUDED_specifier_h_ */