Mercurial > emacs
comparison src/data.c @ 10725:24958130d147
Rename arg OBJ to OBJECT in all type predicates.
(Ftype_of): New function.
| author | Richard M. Stallman <rms@gnu.org> |
|---|---|
| date | Mon, 13 Feb 1995 05:28:47 +0000 |
| parents | 4eeb2d49d841 |
| children | 6a8b6db450dc |
comparison
equal
deleted
inserted
replaced
| 10724:1bc137a2c4eb | 10725:24958130d147 |
|---|---|
| 71 Lisp_Object Qintegerp, Qnatnump, Qwholenump, Qsymbolp, Qlistp, Qconsp; | 71 Lisp_Object Qintegerp, Qnatnump, Qwholenump, Qsymbolp, Qlistp, Qconsp; |
| 72 Lisp_Object Qstringp, Qarrayp, Qsequencep, Qbufferp; | 72 Lisp_Object Qstringp, Qarrayp, Qsequencep, Qbufferp; |
| 73 Lisp_Object Qchar_or_string_p, Qmarkerp, Qinteger_or_marker_p, Qvectorp; | 73 Lisp_Object Qchar_or_string_p, Qmarkerp, Qinteger_or_marker_p, Qvectorp; |
| 74 Lisp_Object Qbuffer_or_string_p; | 74 Lisp_Object Qbuffer_or_string_p; |
| 75 Lisp_Object Qboundp, Qfboundp; | 75 Lisp_Object Qboundp, Qfboundp; |
| 76 | |
| 76 Lisp_Object Qcdr; | 77 Lisp_Object Qcdr; |
| 77 Lisp_Object Qad_advice_info, Qad_activate; | 78 Lisp_Object Qad_advice_info, Qad_activate; |
| 78 | 79 |
| 79 Lisp_Object Qrange_error, Qdomain_error, Qsingularity_error; | 80 Lisp_Object Qrange_error, Qdomain_error, Qsingularity_error; |
| 80 Lisp_Object Qoverflow_error, Qunderflow_error; | 81 Lisp_Object Qoverflow_error, Qunderflow_error; |
| 81 | 82 |
| 82 #ifdef LISP_FLOAT_TYPE | 83 #ifdef LISP_FLOAT_TYPE |
| 83 Lisp_Object Qfloatp; | 84 Lisp_Object Qfloatp; |
| 84 Lisp_Object Qnumberp, Qnumber_or_marker_p; | 85 Lisp_Object Qnumberp, Qnumber_or_marker_p; |
| 85 #endif | 86 #endif |
| 87 | |
| 88 static Lisp_Object Qinteger, Qsymbol, Qstring, Qcons, Qmarker, Qoverlay; | |
| 89 static Lisp_Object Qfloat, Qwindow_configuration, Qprocess, Qwindow; | |
| 90 static Lisp_Object Qcompiled_function, Qbuffer, Qframe, Qvector; | |
| 86 | 91 |
| 87 static Lisp_Object swap_in_symval_forwarding (); | 92 static Lisp_Object swap_in_symval_forwarding (); |
| 88 | 93 |
| 89 Lisp_Object | 94 Lisp_Object |
| 90 wrong_type_argument (predicate, value) | 95 wrong_type_argument (predicate, value) |
| 172 return Qt; | 177 return Qt; |
| 173 return Qnil; | 178 return Qnil; |
| 174 } | 179 } |
| 175 | 180 |
| 176 DEFUN ("null", Fnull, Snull, 1, 1, 0, "T if OBJECT is nil.") | 181 DEFUN ("null", Fnull, Snull, 1, 1, 0, "T if OBJECT is nil.") |
| 177 (obj) | 182 (object) |
| 178 Lisp_Object obj; | 183 Lisp_Object object; |
| 179 { | 184 { |
| 180 if (NILP (obj)) | 185 if (NILP (object)) |
| 181 return Qt; | 186 return Qt; |
| 182 return Qnil; | 187 return Qnil; |
| 183 } | 188 } |
| 184 | 189 |
| 190 DEFUN ("type-of", Ftype_of, Stype_of, 1, 1, 0, | |
| 191 "Return a symbol representing the type of OBJECT.\n\ | |
| 192 The symbol returned names the object's basic type;\n\ | |
| 193 for example, (type-of 1) returns `integer'.") | |
| 194 (object) | |
| 195 Lisp_Object object; | |
| 196 { | |
| 197 switch (XGCTYPE (object)) | |
| 198 { | |
| 199 case Lisp_Int: | |
| 200 return Qinteger; | |
| 201 | |
| 202 case Lisp_Symbol: | |
| 203 return Qsymbol; | |
| 204 | |
| 205 case Lisp_String: | |
| 206 return Qstring; | |
| 207 | |
| 208 case Lisp_Cons: | |
| 209 return Qcons; | |
| 210 | |
| 211 case Lisp_Misc: | |
| 212 switch (XMISC (object)->type) | |
| 213 { | |
| 214 case Lisp_Misc_Marker: | |
| 215 return Qmarker; | |
| 216 case Lisp_Misc_Overlay: | |
| 217 return Qoverlay; | |
| 218 case Lisp_Misc_Float: | |
| 219 return Qfloat; | |
| 220 } | |
| 221 abort (); | |
| 222 | |
| 223 case Lisp_Vectorlike: | |
| 224 if (GC_WINDOW_CONFIGURATIONP (object)) | |
| 225 return Qwindow_configuration; | |
| 226 if (GC_PROCESSP (object)) | |
| 227 return Qprocess; | |
| 228 if (GC_WINDOWP (object)) | |
| 229 return Qwindow; | |
| 230 if (GC_SUBRP (object)) | |
| 231 return Qsubr; | |
| 232 if (GC_COMPILEDP (object)) | |
| 233 return Qcompiled_function; | |
| 234 if (GC_BUFFERP (object)) | |
| 235 return Qbuffer; | |
| 236 | |
| 237 #ifdef MULTI_FRAME | |
| 238 if (GC_FRAMEP (object)) | |
| 239 return Qframe; | |
| 240 #endif | |
| 241 return Qvector; | |
| 242 | |
| 243 #ifdef LISP_FLOAT_TYPE | |
| 244 case Lisp_Float: | |
| 245 return Qfloat; | |
| 246 #endif | |
| 247 | |
| 248 default: | |
| 249 abort (); | |
| 250 } | |
| 251 } | |
| 252 | |
| 185 DEFUN ("consp", Fconsp, Sconsp, 1, 1, 0, "T if OBJECT is a cons cell.") | 253 DEFUN ("consp", Fconsp, Sconsp, 1, 1, 0, "T if OBJECT is a cons cell.") |
| 186 (obj) | 254 (object) |
| 187 Lisp_Object obj; | 255 Lisp_Object object; |
| 188 { | 256 { |
| 189 if (CONSP (obj)) | 257 if (CONSP (object)) |
| 190 return Qt; | 258 return Qt; |
| 191 return Qnil; | 259 return Qnil; |
| 192 } | 260 } |
| 193 | 261 |
| 194 DEFUN ("atom", Fatom, Satom, 1, 1, 0, "T if OBJECT is not a cons cell. This includes nil.") | 262 DEFUN ("atom", Fatom, Satom, 1, 1, 0, "T if OBJECT is not a cons cell. This includes nil.") |
| 195 (obj) | 263 (object) |
| 196 Lisp_Object obj; | 264 Lisp_Object object; |
| 197 { | 265 { |
| 198 if (CONSP (obj)) | 266 if (CONSP (object)) |
| 199 return Qnil; | 267 return Qnil; |
| 200 return Qt; | 268 return Qt; |
| 201 } | 269 } |
| 202 | 270 |
| 203 DEFUN ("listp", Flistp, Slistp, 1, 1, 0, "T if OBJECT is a list. This includes nil.") | 271 DEFUN ("listp", Flistp, Slistp, 1, 1, 0, "T if OBJECT is a list. This includes nil.") |
| 204 (obj) | 272 (object) |
| 205 Lisp_Object obj; | 273 Lisp_Object object; |
| 206 { | 274 { |
| 207 if (CONSP (obj) || NILP (obj)) | 275 if (CONSP (object) || NILP (object)) |
| 208 return Qt; | 276 return Qt; |
| 209 return Qnil; | 277 return Qnil; |
| 210 } | 278 } |
| 211 | 279 |
| 212 DEFUN ("nlistp", Fnlistp, Snlistp, 1, 1, 0, "T if OBJECT is not a list. Lists include nil.") | 280 DEFUN ("nlistp", Fnlistp, Snlistp, 1, 1, 0, "T if OBJECT is not a list. Lists include nil.") |
| 213 (obj) | 281 (object) |
| 214 Lisp_Object obj; | 282 Lisp_Object object; |
| 215 { | 283 { |
| 216 if (CONSP (obj) || NILP (obj)) | 284 if (CONSP (object) || NILP (object)) |
| 217 return Qnil; | 285 return Qnil; |
| 218 return Qt; | 286 return Qt; |
| 219 } | 287 } |
| 220 | 288 |
| 221 DEFUN ("symbolp", Fsymbolp, Ssymbolp, 1, 1, 0, "T if OBJECT is a symbol.") | 289 DEFUN ("symbolp", Fsymbolp, Ssymbolp, 1, 1, 0, "T if OBJECT is a symbol.") |
| 222 (obj) | 290 (object) |
| 223 Lisp_Object obj; | 291 Lisp_Object object; |
| 224 { | 292 { |
| 225 if (SYMBOLP (obj)) | 293 if (SYMBOLP (object)) |
| 226 return Qt; | 294 return Qt; |
| 227 return Qnil; | 295 return Qnil; |
| 228 } | 296 } |
| 229 | 297 |
| 230 DEFUN ("vectorp", Fvectorp, Svectorp, 1, 1, 0, "T if OBJECT is a vector.") | 298 DEFUN ("vectorp", Fvectorp, Svectorp, 1, 1, 0, "T if OBJECT is a vector.") |
| 231 (obj) | 299 (object) |
| 232 Lisp_Object obj; | 300 Lisp_Object object; |
| 233 { | 301 { |
| 234 if (VECTORP (obj)) | 302 if (VECTORP (object)) |
| 235 return Qt; | 303 return Qt; |
| 236 return Qnil; | 304 return Qnil; |
| 237 } | 305 } |
| 238 | 306 |
| 239 DEFUN ("stringp", Fstringp, Sstringp, 1, 1, 0, "T if OBJECT is a string.") | 307 DEFUN ("stringp", Fstringp, Sstringp, 1, 1, 0, "T if OBJECT is a string.") |
| 240 (obj) | 308 (object) |
| 241 Lisp_Object obj; | 309 Lisp_Object object; |
| 242 { | 310 { |
| 243 if (STRINGP (obj)) | 311 if (STRINGP (object)) |
| 244 return Qt; | 312 return Qt; |
| 245 return Qnil; | 313 return Qnil; |
| 246 } | 314 } |
| 247 | 315 |
| 248 DEFUN ("arrayp", Farrayp, Sarrayp, 1, 1, 0, "T if OBJECT is an array (string or vector).") | 316 DEFUN ("arrayp", Farrayp, Sarrayp, 1, 1, 0, "T if OBJECT is an array (string or vector).") |
| 249 (obj) | 317 (object) |
| 250 Lisp_Object obj; | 318 Lisp_Object object; |
| 251 { | 319 { |
| 252 if (VECTORP (obj) || STRINGP (obj)) | 320 if (VECTORP (object) || STRINGP (object)) |
| 253 return Qt; | 321 return Qt; |
| 254 return Qnil; | 322 return Qnil; |
| 255 } | 323 } |
| 256 | 324 |
| 257 DEFUN ("sequencep", Fsequencep, Ssequencep, 1, 1, 0, | 325 DEFUN ("sequencep", Fsequencep, Ssequencep, 1, 1, 0, |
| 258 "T if OBJECT is a sequence (list or array).") | 326 "T if OBJECT is a sequence (list or array).") |
| 259 (obj) | 327 (object) |
| 260 register Lisp_Object obj; | 328 register Lisp_Object object; |
| 261 { | 329 { |
| 262 if (CONSP (obj) || NILP (obj) || VECTORP (obj) || STRINGP (obj)) | 330 if (CONSP (object) || NILP (object) || VECTORP (object) || STRINGP (object)) |
| 263 return Qt; | 331 return Qt; |
| 264 return Qnil; | 332 return Qnil; |
| 265 } | 333 } |
| 266 | 334 |
| 267 DEFUN ("bufferp", Fbufferp, Sbufferp, 1, 1, 0, "T if OBJECT is an editor buffer.") | 335 DEFUN ("bufferp", Fbufferp, Sbufferp, 1, 1, 0, "T if OBJECT is an editor buffer.") |
| 268 (obj) | 336 (object) |
| 269 Lisp_Object obj; | 337 Lisp_Object object; |
| 270 { | 338 { |
| 271 if (BUFFERP (obj)) | 339 if (BUFFERP (object)) |
| 272 return Qt; | 340 return Qt; |
| 273 return Qnil; | 341 return Qnil; |
| 274 } | 342 } |
| 275 | 343 |
| 276 DEFUN ("markerp", Fmarkerp, Smarkerp, 1, 1, 0, "T if OBJECT is a marker (editor pointer).") | 344 DEFUN ("markerp", Fmarkerp, Smarkerp, 1, 1, 0, "T if OBJECT is a marker (editor pointer).") |
| 277 (obj) | 345 (object) |
| 278 Lisp_Object obj; | 346 Lisp_Object object; |
| 279 { | 347 { |
| 280 if (MARKERP (obj)) | 348 if (MARKERP (object)) |
| 281 return Qt; | 349 return Qt; |
| 282 return Qnil; | 350 return Qnil; |
| 283 } | 351 } |
| 284 | 352 |
| 285 DEFUN ("subrp", Fsubrp, Ssubrp, 1, 1, 0, "T if OBJECT is a built-in function.") | 353 DEFUN ("subrp", Fsubrp, Ssubrp, 1, 1, 0, "T if OBJECT is a built-in function.") |
| 286 (obj) | 354 (object) |
| 287 Lisp_Object obj; | 355 Lisp_Object object; |
| 288 { | 356 { |
| 289 if (SUBRP (obj)) | 357 if (SUBRP (object)) |
| 290 return Qt; | 358 return Qt; |
| 291 return Qnil; | 359 return Qnil; |
| 292 } | 360 } |
| 293 | 361 |
| 294 DEFUN ("byte-code-function-p", Fbyte_code_function_p, Sbyte_code_function_p, | 362 DEFUN ("byte-code-function-p", Fbyte_code_function_p, Sbyte_code_function_p, |
| 295 1, 1, 0, "T if OBJECT is a byte-compiled function object.") | 363 1, 1, 0, "T if OBJECT is a byte-compiled function object.") |
| 296 (obj) | 364 (object) |
| 297 Lisp_Object obj; | 365 Lisp_Object object; |
| 298 { | 366 { |
| 299 if (COMPILEDP (obj)) | 367 if (COMPILEDP (object)) |
| 300 return Qt; | 368 return Qt; |
| 301 return Qnil; | 369 return Qnil; |
| 302 } | 370 } |
| 303 | 371 |
| 304 DEFUN ("char-or-string-p", Fchar_or_string_p, Schar_or_string_p, 1, 1, 0, | 372 DEFUN ("char-or-string-p", Fchar_or_string_p, Schar_or_string_p, 1, 1, 0, |
| 305 "T if OBJECT is a character (an integer) or a string.") | 373 "T if OBJECT is a character (an integer) or a string.") |
| 306 (obj) | 374 (object) |
| 307 register Lisp_Object obj; | 375 register Lisp_Object object; |
| 308 { | 376 { |
| 309 if (INTEGERP (obj) || STRINGP (obj)) | 377 if (INTEGERP (object) || STRINGP (object)) |
| 310 return Qt; | 378 return Qt; |
| 311 return Qnil; | 379 return Qnil; |
| 312 } | 380 } |
| 313 | 381 |
| 314 DEFUN ("integerp", Fintegerp, Sintegerp, 1, 1, 0, "T if OBJECT is an integer.") | 382 DEFUN ("integerp", Fintegerp, Sintegerp, 1, 1, 0, "T if OBJECT is an integer.") |
| 315 (obj) | 383 (object) |
| 316 Lisp_Object obj; | 384 Lisp_Object object; |
| 317 { | 385 { |
| 318 if (INTEGERP (obj)) | 386 if (INTEGERP (object)) |
| 319 return Qt; | 387 return Qt; |
| 320 return Qnil; | 388 return Qnil; |
| 321 } | 389 } |
| 322 | 390 |
| 323 DEFUN ("integer-or-marker-p", Finteger_or_marker_p, Sinteger_or_marker_p, 1, 1, 0, | 391 DEFUN ("integer-or-marker-p", Finteger_or_marker_p, Sinteger_or_marker_p, 1, 1, 0, |
| 324 "T if OBJECT is an integer or a marker (editor pointer).") | 392 "T if OBJECT is an integer or a marker (editor pointer).") |
| 325 (obj) | 393 (object) |
| 326 register Lisp_Object obj; | 394 register Lisp_Object object; |
| 327 { | 395 { |
| 328 if (MARKERP (obj) || INTEGERP (obj)) | 396 if (MARKERP (object) || INTEGERP (object)) |
| 329 return Qt; | 397 return Qt; |
| 330 return Qnil; | 398 return Qnil; |
| 331 } | 399 } |
| 332 | 400 |
| 333 DEFUN ("natnump", Fnatnump, Snatnump, 1, 1, 0, | 401 DEFUN ("natnump", Fnatnump, Snatnump, 1, 1, 0, |
| 334 "T if OBJECT is a nonnegative integer.") | 402 "T if OBJECT is a nonnegative integer.") |
| 335 (obj) | 403 (object) |
| 336 Lisp_Object obj; | 404 Lisp_Object object; |
| 337 { | 405 { |
| 338 if (NATNUMP (obj)) | 406 if (NATNUMP (object)) |
| 339 return Qt; | 407 return Qt; |
| 340 return Qnil; | 408 return Qnil; |
| 341 } | 409 } |
| 342 | 410 |
| 343 DEFUN ("numberp", Fnumberp, Snumberp, 1, 1, 0, | 411 DEFUN ("numberp", Fnumberp, Snumberp, 1, 1, 0, |
| 344 "T if OBJECT is a number (floating point or integer).") | 412 "T if OBJECT is a number (floating point or integer).") |
| 345 (obj) | 413 (object) |
| 346 Lisp_Object obj; | 414 Lisp_Object object; |
| 347 { | 415 { |
| 348 if (NUMBERP (obj)) | 416 if (NUMBERP (object)) |
| 349 return Qt; | 417 return Qt; |
| 350 else | 418 else |
| 351 return Qnil; | 419 return Qnil; |
| 352 } | 420 } |
| 353 | 421 |
| 354 DEFUN ("number-or-marker-p", Fnumber_or_marker_p, | 422 DEFUN ("number-or-marker-p", Fnumber_or_marker_p, |
| 355 Snumber_or_marker_p, 1, 1, 0, | 423 Snumber_or_marker_p, 1, 1, 0, |
| 356 "T if OBJECT is a number or a marker.") | 424 "T if OBJECT is a number or a marker.") |
| 357 (obj) | 425 (object) |
| 358 Lisp_Object obj; | 426 Lisp_Object object; |
| 359 { | 427 { |
| 360 if (NUMBERP (obj) || MARKERP (obj)) | 428 if (NUMBERP (object) || MARKERP (object)) |
| 361 return Qt; | 429 return Qt; |
| 362 return Qnil; | 430 return Qnil; |
| 363 } | 431 } |
| 364 | 432 |
| 365 #ifdef LISP_FLOAT_TYPE | 433 #ifdef LISP_FLOAT_TYPE |
| 366 DEFUN ("floatp", Ffloatp, Sfloatp, 1, 1, 0, | 434 DEFUN ("floatp", Ffloatp, Sfloatp, 1, 1, 0, |
| 367 "T if OBJECT is a floating point number.") | 435 "T if OBJECT is a floating point number.") |
| 368 (obj) | 436 (object) |
| 369 Lisp_Object obj; | 437 Lisp_Object object; |
| 370 { | 438 { |
| 371 if (FLOATP (obj)) | 439 if (FLOATP (object)) |
| 372 return Qt; | 440 return Qt; |
| 373 return Qnil; | 441 return Qnil; |
| 374 } | 442 } |
| 375 #endif /* LISP_FLOAT_TYPE */ | 443 #endif /* LISP_FLOAT_TYPE */ |
| 376 | 444 |
| 2277 staticpro (&Qfboundp); | 2345 staticpro (&Qfboundp); |
| 2278 staticpro (&Qcdr); | 2346 staticpro (&Qcdr); |
| 2279 staticpro (&Qad_advice_info); | 2347 staticpro (&Qad_advice_info); |
| 2280 staticpro (&Qad_activate); | 2348 staticpro (&Qad_activate); |
| 2281 | 2349 |
| 2350 /* Types that type-of returns. */ | |
| 2351 Qinteger = intern ("integer"); | |
| 2352 Qsymbol = intern ("symbol"); | |
| 2353 Qstring = intern ("string"); | |
| 2354 Qcons = intern ("cons"); | |
| 2355 Qmarker = intern ("marker"); | |
| 2356 Qoverlay = intern ("overlay"); | |
| 2357 Qfloat = intern ("float"); | |
| 2358 Qwindow_configuration = intern ("window-configuration"); | |
| 2359 Qprocess = intern ("process"); | |
| 2360 Qwindow = intern ("window"); | |
| 2361 /* Qsubr = intern ("subr"); */ | |
| 2362 Qcompiled_function = intern ("compiled-function"); | |
| 2363 Qbuffer = intern ("buffer"); | |
| 2364 Qframe = intern ("frame"); | |
| 2365 Qvector = intern ("vector"); | |
| 2366 | |
| 2367 staticpro (&Qinteger); | |
| 2368 staticpro (&Qsymbol); | |
| 2369 staticpro (&Qstring); | |
| 2370 staticpro (&Qcons); | |
| 2371 staticpro (&Qmarker); | |
| 2372 staticpro (&Qoverlay); | |
| 2373 staticpro (&Qfloat); | |
| 2374 staticpro (&Qwindow_configuration); | |
| 2375 staticpro (&Qprocess); | |
| 2376 staticpro (&Qwindow); | |
| 2377 /* staticpro (&Qsubr); */ | |
| 2378 staticpro (&Qcompiled_function); | |
| 2379 staticpro (&Qbuffer); | |
| 2380 staticpro (&Qframe); | |
| 2381 staticpro (&Qvector); | |
| 2382 | |
| 2282 defsubr (&Seq); | 2383 defsubr (&Seq); |
| 2283 defsubr (&Snull); | 2384 defsubr (&Snull); |
| 2385 defsubr (&Stype_of); | |
| 2284 defsubr (&Slistp); | 2386 defsubr (&Slistp); |
| 2285 defsubr (&Snlistp); | 2387 defsubr (&Snlistp); |
| 2286 defsubr (&Sconsp); | 2388 defsubr (&Sconsp); |
| 2287 defsubr (&Satom); | 2389 defsubr (&Satom); |
| 2288 defsubr (&Sintegerp); | 2390 defsubr (&Sintegerp); |
