Mercurial > hg > xemacs-beta
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; |