Mercurial > emacs
comparison src/data.c @ 9966:d64bdd958254
(Farray_length): Delete this obsolete function.
(Faref, Faset): If object is a string, use XSTRING, not XVECTOR.
author | Karl Heuer <kwzh@gnu.org> |
---|---|
date | Wed, 16 Nov 1994 03:41:56 +0000 |
parents | 18b408b05189 |
children | f0637b2f1671 |
comparison
equal
deleted
inserted
replaced
9965:f68eab303ddb | 9966:d64bdd958254 |
---|---|
1332 { | 1332 { |
1333 register int idxval; | 1333 register int idxval; |
1334 | 1334 |
1335 CHECK_NUMBER (idx, 1); | 1335 CHECK_NUMBER (idx, 1); |
1336 idxval = XINT (idx); | 1336 idxval = XINT (idx); |
1337 if (!VECTORP (array) && !STRINGP (array) && !COMPILEDP (array)) | |
1338 array = wrong_type_argument (Qarrayp, array); | |
1339 if (idxval < 0 || idxval >= XVECTOR (array)->size) | |
1340 args_out_of_range (array, idx); | |
1341 if (STRINGP (array)) | 1337 if (STRINGP (array)) |
1342 { | 1338 { |
1343 Lisp_Object val; | 1339 Lisp_Object val; |
1340 if (idxval < 0 || idxval >= XSTRING (array)->size) | |
1341 args_out_of_range (array, idx); | |
1344 XSETFASTINT (val, (unsigned char) XSTRING (array)->data[idxval]); | 1342 XSETFASTINT (val, (unsigned char) XSTRING (array)->data[idxval]); |
1345 return val; | 1343 return val; |
1346 } | 1344 } |
1347 else | 1345 else |
1348 return XVECTOR (array)->contents[idxval]; | 1346 { |
1347 if (!VECTORP (array) && !COMPILEDP (array)) | |
1348 array = wrong_type_argument (Qarrayp, array); | |
1349 if (idxval < 0 || idxval >= XVECTOR (array)->size) | |
1350 args_out_of_range (array, idx); | |
1351 return XVECTOR (array)->contents[idxval]; | |
1352 } | |
1349 } | 1353 } |
1350 | 1354 |
1351 DEFUN ("aset", Faset, Saset, 3, 3, 0, | 1355 DEFUN ("aset", Faset, Saset, 3, 3, 0, |
1352 "Store into the element of ARRAY at index IDX the value NEWELT.\n\ | 1356 "Store into the element of ARRAY at index IDX the value NEWELT.\n\ |
1353 ARRAY may be a vector or a string. IDX starts at 0.") | 1357 ARRAY may be a vector or a string. IDX starts at 0.") |
1359 | 1363 |
1360 CHECK_NUMBER (idx, 1); | 1364 CHECK_NUMBER (idx, 1); |
1361 idxval = XINT (idx); | 1365 idxval = XINT (idx); |
1362 if (!VECTORP (array) && !STRINGP (array)) | 1366 if (!VECTORP (array) && !STRINGP (array)) |
1363 array = wrong_type_argument (Qarrayp, array); | 1367 array = wrong_type_argument (Qarrayp, array); |
1364 if (idxval < 0 || idxval >= XVECTOR (array)->size) | |
1365 args_out_of_range (array, idx); | |
1366 CHECK_IMPURE (array); | 1368 CHECK_IMPURE (array); |
1367 | 1369 |
1368 if (VECTORP (array)) | 1370 if (VECTORP (array)) |
1369 XVECTOR (array)->contents[idxval] = newelt; | 1371 { |
1372 if (idxval < 0 || idxval >= XVECTOR (array)->size) | |
1373 args_out_of_range (array, idx); | |
1374 XVECTOR (array)->contents[idxval] = newelt; | |
1375 } | |
1370 else | 1376 else |
1371 { | 1377 { |
1378 if (idxval < 0 || idxval >= XSTRING (array)->size) | |
1379 args_out_of_range (array, idx); | |
1372 CHECK_NUMBER (newelt, 2); | 1380 CHECK_NUMBER (newelt, 2); |
1373 XSTRING (array)->data[idxval] = XINT (newelt); | 1381 XSTRING (array)->data[idxval] = XINT (newelt); |
1374 } | 1382 } |
1375 | 1383 |
1376 return newelt; | 1384 return newelt; |
1377 } | |
1378 | |
1379 Lisp_Object | |
1380 Farray_length (array) | |
1381 register Lisp_Object array; | |
1382 { | |
1383 register Lisp_Object size; | |
1384 if (!VECTORP (array) && !STRINGP (array) && !COMPILEDP (array)) | |
1385 array = wrong_type_argument (Qarrayp, array); | |
1386 XSETFASTINT (size, XVECTOR (array)->size); | |
1387 return size; | |
1388 } | 1385 } |
1389 | 1386 |
1390 /* Arithmetic functions */ | 1387 /* Arithmetic functions */ |
1391 | 1388 |
1392 enum comparison { equal, notequal, less, grtr, less_or_equal, grtr_or_equal }; | 1389 enum comparison { equal, notequal, less, grtr, less_or_equal, grtr_or_equal }; |