comparison src/specifier.c @ 16:0293115a14e9 r19-15b91

Import from CVS: tag r19-15b91
author cvs
date Mon, 13 Aug 2007 08:49:20 +0200
parents ac2d302a0011
children 859a2309aef8
comparison
equal deleted inserted replaced
15:ad457d5f7d04 16:0293115a14e9
1085 Lisp_Object opaque = make_opaque_ptr ((void *) 1085 Lisp_Object opaque = make_opaque_ptr ((void *)
1086 meths->validate_method); 1086 meths->validate_method);
1087 struct gcpro gcpro1; 1087 struct gcpro gcpro1;
1088 1088
1089 GCPRO1 (opaque); 1089 GCPRO1 (opaque);
1090 retval = call_with_suspended_errors (call_validate_method, 1090 retval = call_with_suspended_errors
1091 Qnil, 1091 ((lisp_fn_t) call_validate_method,
1092 Qspecifier, errb, 2, 1092 Qnil, Qspecifier, errb, 2, opaque, instantiator);
1093 opaque, instantiator); 1093
1094 free_opaque_ptr (opaque); 1094 free_opaque_ptr (opaque);
1095 UNGCPRO; 1095 UNGCPRO;
1096 } 1096 }
1097 1097
1098 return retval; 1098 return retval;
2071 is equivalent to calling `remove-specifier' for each of the elements 2071 is equivalent to calling `remove-specifier' for each of the elements
2072 in the list. 2072 in the list.
2073 2073
2074 Only instantiators where TAG-SET (a list of zero or more tags) is a 2074 Only instantiators where TAG-SET (a list of zero or more tags) is a
2075 subset of (or possibly equal to) the instantiator's tag set are removed. 2075 subset of (or possibly equal to) the instantiator's tag set are removed.
2076 (The default value of nil is a subset of all tag sets, so in this case 2076 The default value of nil is a subset of all tag sets, so in this case
2077 no instantiators will be screened out.) If EXACT-P is non-nil, however, 2077 no instantiators will be screened out. If EXACT-P is non-nil, however,
2078 TAG-SET must be equal to an instantiator's tag set for the instantiator 2078 TAG-SET must be equal to an instantiator's tag set for the instantiator
2079 to be removed. 2079 to be removed.
2080 */ ) 2080 */ )
2081 (specifier, locale, tag_set, exact_p) 2081 (specifier, locale, tag_set, exact_p)
2082 Lisp_Object specifier, locale, tag_set, exact_p; 2082 Lisp_Object specifier, locale, tag_set, exact_p;
2136 for each of the elements of the list. See `specifier-spec-list' for more 2136 for each of the elements of the list. See `specifier-spec-list' for more
2137 information about LOCALE. 2137 information about LOCALE.
2138 2138
2139 Only instantiators where TAG-SET (a list of zero or more tags) is a 2139 Only instantiators where TAG-SET (a list of zero or more tags) is a
2140 subset of (or possibly equal to) the instantiator's tag set are copied. 2140 subset of (or possibly equal to) the instantiator's tag set are copied.
2141 (The default value of nil is a subset of all tag sets, so in this case 2141 The default value of nil is a subset of all tag sets, so in this case
2142 no instantiators will be screened out.) If EXACT-P is non-nil, however, 2142 no instantiators will be screened out. If EXACT-P is non-nil, however,
2143 TAG-SET must be equal to an instantiator's tag set for the instantiator 2143 TAG-SET must be equal to an instantiator's tag set for the instantiator
2144 to be copied. 2144 to be copied.
2145 2145
2146 Optional argument HOW-TO-ADD specifies what to do with existing 2146 Optional argument HOW-TO-ADD specifies what to do with existing
2147 specifications in DEST. If nil, then whichever locales or locale types 2147 specifications in DEST. If nil, then whichever locales or locale types
2213 Lisp_Object opaque = 2213 Lisp_Object opaque =
2214 make_opaque_ptr ((void *) meths->validate_matchspec_method); 2214 make_opaque_ptr ((void *) meths->validate_matchspec_method);
2215 struct gcpro gcpro1; 2215 struct gcpro gcpro1;
2216 2216
2217 GCPRO1 (opaque); 2217 GCPRO1 (opaque);
2218 retval = call_with_suspended_errors (call_validate_matchspec_method, 2218 retval = call_with_suspended_errors
2219 Qnil, 2219 ((lisp_fn_t) call_validate_matchspec_method,
2220 Qspecifier, errb, 2, 2220 Qnil, Qspecifier, errb, 2, opaque, matchspec);
2221 opaque, matchspec); 2221
2222 free_opaque_ptr (opaque); 2222 free_opaque_ptr (opaque);
2223 UNGCPRO; 2223 UNGCPRO;
2224 } 2224 }
2225 2225
2226 return retval; 2226 return retval;
2345 if (device_matches_specifier_tag_set_p (device, tag_set)) 2345 if (device_matches_specifier_tag_set_p (device, tag_set))
2346 { 2346 {
2347 Lisp_Object val = XCDR (tagged_inst); 2347 Lisp_Object val = XCDR (tagged_inst);
2348 2348
2349 if (HAS_SPECMETH_P (sp, instantiate)) 2349 if (HAS_SPECMETH_P (sp, instantiate))
2350 val = call_with_suspended_errors (RAW_SPECMETH (sp, instantiate), 2350 val = call_with_suspended_errors
2351 Qunbound, Qspecifier, errb, 2351 ((lisp_fn_t) RAW_SPECMETH (sp, instantiate),
2352 5, specifier, matchspec, domain, 2352 Qunbound, Qspecifier, errb, 5, specifier,
2353 XCDR (tagged_inst), 2353 matchspec, domain, XCDR (tagged_inst), depth);
2354 depth);
2355 2354
2356 if (!UNBOUNDP (val)) 2355 if (!UNBOUNDP (val))
2357 { 2356 {
2358 unbind_to (count, Qnil); 2357 unbind_to (count, Qnil);
2359 UNGCPRO; 2358 UNGCPRO;