comparison src/specifier.c @ 2159:3ceb3622efa3

[xemacs-hg @ 2004-07-01 14:44:43 by james] Make sure spec-lists and inst-lists are valid lists.
author james
date Thu, 01 Jul 2004 14:44:48 +0000
parents ec2d1e636272
children 04bc9d2f42c7
comparison
equal deleted inserted replaced
2158:64fe99818e40 2159:3ceb3622efa3
1231 1231
1232 static Lisp_Object 1232 static Lisp_Object
1233 check_valid_inst_list (Lisp_Object inst_list, struct specifier_methods *meths, 1233 check_valid_inst_list (Lisp_Object inst_list, struct specifier_methods *meths,
1234 Error_Behavior errb) 1234 Error_Behavior errb)
1235 { 1235 {
1236 Lisp_Object rest; 1236 EXTERNAL_LIST_LOOP_2 (inst_pair, inst_list)
1237 1237 {
1238 LIST_LOOP (rest, inst_list) 1238 Lisp_Object tag_set;
1239 { 1239
1240 Lisp_Object inst_pair, tag_set; 1240 if (!CONSP (inst_pair))
1241
1242 if (!CONSP (rest))
1243 {
1244 maybe_sferror (
1245 "Invalid instantiator list", inst_list,
1246 Qspecifier, errb);
1247 return Qnil;
1248 }
1249 if (!CONSP (inst_pair = XCAR (rest)))
1250 { 1241 {
1251 maybe_sferror ( 1242 maybe_sferror (
1252 "Invalid instantiator pair", inst_pair, 1243 "Invalid instantiator pair", inst_pair,
1253 Qspecifier, errb); 1244 Qspecifier, errb);
1254 return Qnil; 1245 return Qnil;
1290 1281
1291 static Lisp_Object 1282 static Lisp_Object
1292 check_valid_spec_list (Lisp_Object spec_list, struct specifier_methods *meths, 1283 check_valid_spec_list (Lisp_Object spec_list, struct specifier_methods *meths,
1293 Error_Behavior errb) 1284 Error_Behavior errb)
1294 { 1285 {
1295 Lisp_Object rest; 1286 EXTERNAL_LIST_LOOP_2 (spec, spec_list)
1296 1287 {
1297 LIST_LOOP (rest, spec_list) 1288 Lisp_Object locale;
1298 { 1289 if (!CONSP (spec))
1299 Lisp_Object spec, locale;
1300 if (!CONSP (rest) || !CONSP (spec = XCAR (rest)))
1301 { 1290 {
1302 maybe_sferror ( 1291 maybe_sferror (
1303 "Invalid specification list", spec_list, 1292 "Invalid specification list", spec_list,
1304 Qspecifier, errb); 1293 Qspecifier, errb);
1305 return Qnil; 1294 return Qnil;