comparison src/data.c @ 40123:e528f2adeed4

Change doc-string comments to `new style' [w/`doc:' keyword].
author Pavel Jan?k <Pavel@Janik.cz>
date Sun, 21 Oct 2001 12:13:46 +0000
parents 528dd5f565ba
children ae231ad6710d
comparison
equal deleted inserted replaced
40122:4a487543a226 40123:e528f2adeed4
175 } 175 }
176 176
177 /* Data type predicates */ 177 /* Data type predicates */
178 178
179 DEFUN ("eq", Feq, Seq, 2, 2, 0, 179 DEFUN ("eq", Feq, Seq, 2, 2, 0,
180 "Return t if the two args are the same Lisp object.") 180 doc: /* Return t if the two args are the same Lisp object. */)
181 (obj1, obj2) 181 (obj1, obj2)
182 Lisp_Object obj1, obj2; 182 Lisp_Object obj1, obj2;
183 { 183 {
184 if (EQ (obj1, obj2)) 184 if (EQ (obj1, obj2))
185 return Qt; 185 return Qt;
186 return Qnil; 186 return Qnil;
187 } 187 }
188 188
189 DEFUN ("null", Fnull, Snull, 1, 1, 0, "Return t if OBJECT is nil.") 189 DEFUN ("null", Fnull, Snull, 1, 1, 0,
190 (object) 190 doc: /* Return t if OBJECT is nil. */)
191 (object)
191 Lisp_Object object; 192 Lisp_Object object;
192 { 193 {
193 if (NILP (object)) 194 if (NILP (object))
194 return Qt; 195 return Qt;
195 return Qnil; 196 return Qnil;
196 } 197 }
197 198
198 DEFUN ("type-of", Ftype_of, Stype_of, 1, 1, 0, 199 DEFUN ("type-of", Ftype_of, Stype_of, 1, 1, 0,
199 "Return a symbol representing the type of OBJECT.\n\ 200 doc: /* Return a symbol representing the type of OBJECT.
200 The symbol returned names the object's basic type;\n\ 201 The symbol returned names the object's basic type;
201 for example, (type-of 1) returns `integer'.") 202 for example, (type-of 1) returns `integer'. */)
202 (object) 203 (object)
203 Lisp_Object object; 204 Lisp_Object object;
204 { 205 {
205 switch (XGCTYPE (object)) 206 switch (XGCTYPE (object))
206 { 207 {
207 case Lisp_Int: 208 case Lisp_Int:
257 default: 258 default:
258 abort (); 259 abort ();
259 } 260 }
260 } 261 }
261 262
262 DEFUN ("consp", Fconsp, Sconsp, 1, 1, 0, "Return t if OBJECT is a cons cell.") 263 DEFUN ("consp", Fconsp, Sconsp, 1, 1, 0,
263 (object) 264 doc: /* Return t if OBJECT is a cons cell. */)
265 (object)
264 Lisp_Object object; 266 Lisp_Object object;
265 { 267 {
266 if (CONSP (object)) 268 if (CONSP (object))
267 return Qt; 269 return Qt;
268 return Qnil; 270 return Qnil;
269 } 271 }
270 272
271 DEFUN ("atom", Fatom, Satom, 1, 1, 0, 273 DEFUN ("atom", Fatom, Satom, 1, 1, 0,
272 "Return t if OBJECT is not a cons cell. This includes nil.") 274 doc: /* Return t if OBJECT is not a cons cell. This includes nil. */)
273 (object) 275 (object)
274 Lisp_Object object; 276 Lisp_Object object;
275 { 277 {
276 if (CONSP (object)) 278 if (CONSP (object))
277 return Qnil; 279 return Qnil;
278 return Qt; 280 return Qt;
279 } 281 }
280 282
281 DEFUN ("listp", Flistp, Slistp, 1, 1, 0, 283 DEFUN ("listp", Flistp, Slistp, 1, 1, 0,
282 "Return t if OBJECT is a list. This includes nil.") 284 doc: /* Return t if OBJECT is a list. This includes nil. */)
283 (object) 285 (object)
284 Lisp_Object object; 286 Lisp_Object object;
285 { 287 {
286 if (CONSP (object) || NILP (object)) 288 if (CONSP (object) || NILP (object))
287 return Qt; 289 return Qt;
288 return Qnil; 290 return Qnil;
289 } 291 }
290 292
291 DEFUN ("nlistp", Fnlistp, Snlistp, 1, 1, 0, 293 DEFUN ("nlistp", Fnlistp, Snlistp, 1, 1, 0,
292 "Return t if OBJECT is not a list. Lists include nil.") 294 doc: /* Return t if OBJECT is not a list. Lists include nil. */)
293 (object) 295 (object)
294 Lisp_Object object; 296 Lisp_Object object;
295 { 297 {
296 if (CONSP (object) || NILP (object)) 298 if (CONSP (object) || NILP (object))
297 return Qnil; 299 return Qnil;
298 return Qt; 300 return Qt;
299 } 301 }
300 302
301 DEFUN ("symbolp", Fsymbolp, Ssymbolp, 1, 1, 0, 303 DEFUN ("symbolp", Fsymbolp, Ssymbolp, 1, 1, 0,
302 "Return t if OBJECT is a symbol.") 304 doc: /* Return t if OBJECT is a symbol. */)
303 (object) 305 (object)
304 Lisp_Object object; 306 Lisp_Object object;
305 { 307 {
306 if (SYMBOLP (object)) 308 if (SYMBOLP (object))
307 return Qt; 309 return Qt;
308 return Qnil; 310 return Qnil;
309 } 311 }
310 312
311 /* Define this in C to avoid unnecessarily consing up the symbol 313 /* Define this in C to avoid unnecessarily consing up the symbol
312 name. */ 314 name. */
313 DEFUN ("keywordp", Fkeywordp, Skeywordp, 1, 1, 0, 315 DEFUN ("keywordp", Fkeywordp, Skeywordp, 1, 1, 0,
314 "Return t if OBJECT is a keyword.\n\ 316 doc: /* Return t if OBJECT is a keyword.
315 This means that it is a symbol with a print name beginning with `:'\n\ 317 This means that it is a symbol with a print name beginning with `:'
316 interned in the initial obarray.") 318 interned in the initial obarray. */)
317 (object) 319 (object)
318 Lisp_Object object; 320 Lisp_Object object;
319 { 321 {
320 if (SYMBOLP (object) 322 if (SYMBOLP (object)
321 && XSYMBOL (object)->name->data[0] == ':' 323 && XSYMBOL (object)->name->data[0] == ':'
322 && SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P (object)) 324 && SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P (object))
323 return Qt; 325 return Qt;
324 return Qnil; 326 return Qnil;
325 } 327 }
326 328
327 DEFUN ("vectorp", Fvectorp, Svectorp, 1, 1, 0, 329 DEFUN ("vectorp", Fvectorp, Svectorp, 1, 1, 0,
328 "Return t if OBJECT is a vector.") 330 doc: /* Return t if OBJECT is a vector. */)
329 (object) 331 (object)
330 Lisp_Object object; 332 Lisp_Object object;
331 { 333 {
332 if (VECTORP (object)) 334 if (VECTORP (object))
333 return Qt; 335 return Qt;
334 return Qnil; 336 return Qnil;
335 } 337 }
336 338
337 DEFUN ("stringp", Fstringp, Sstringp, 1, 1, 0, 339 DEFUN ("stringp", Fstringp, Sstringp, 1, 1, 0,
338 "Return t if OBJECT is a string.") 340 doc: /* Return t if OBJECT is a string. */)
339 (object) 341 (object)
340 Lisp_Object object; 342 Lisp_Object object;
341 { 343 {
342 if (STRINGP (object)) 344 if (STRINGP (object))
343 return Qt; 345 return Qt;
344 return Qnil; 346 return Qnil;
345 } 347 }
346 348
347 DEFUN ("multibyte-string-p", Fmultibyte_string_p, Smultibyte_string_p, 349 DEFUN ("multibyte-string-p", Fmultibyte_string_p, Smultibyte_string_p,
348 1, 1, 0, "Return t if OBJECT is a multibyte string.") 350 1, 1, 0,
349 (object) 351 doc: /* Return t if OBJECT is a multibyte string. */)
352 (object)
350 Lisp_Object object; 353 Lisp_Object object;
351 { 354 {
352 if (STRINGP (object) && STRING_MULTIBYTE (object)) 355 if (STRINGP (object) && STRING_MULTIBYTE (object))
353 return Qt; 356 return Qt;
354 return Qnil; 357 return Qnil;
355 } 358 }
356 359
357 DEFUN ("char-table-p", Fchar_table_p, Schar_table_p, 1, 1, 0, 360 DEFUN ("char-table-p", Fchar_table_p, Schar_table_p, 1, 1, 0,
358 "Return t if OBJECT is a char-table.") 361 doc: /* Return t if OBJECT is a char-table. */)
359 (object) 362 (object)
360 Lisp_Object object; 363 Lisp_Object object;
361 { 364 {
362 if (CHAR_TABLE_P (object)) 365 if (CHAR_TABLE_P (object))
363 return Qt; 366 return Qt;
364 return Qnil; 367 return Qnil;
365 } 368 }
366 369
367 DEFUN ("vector-or-char-table-p", Fvector_or_char_table_p, 370 DEFUN ("vector-or-char-table-p", Fvector_or_char_table_p,
368 Svector_or_char_table_p, 1, 1, 0, 371 Svector_or_char_table_p, 1, 1, 0,
369 "Return t if OBJECT is a char-table or vector.") 372 doc: /* Return t if OBJECT is a char-table or vector. */)
370 (object) 373 (object)
371 Lisp_Object object; 374 Lisp_Object object;
372 { 375 {
373 if (VECTORP (object) || CHAR_TABLE_P (object)) 376 if (VECTORP (object) || CHAR_TABLE_P (object))
374 return Qt; 377 return Qt;
375 return Qnil; 378 return Qnil;
376 } 379 }
377 380
378 DEFUN ("bool-vector-p", Fbool_vector_p, Sbool_vector_p, 1, 1, 0, "Return t if OBJECT is a bool-vector.") 381 DEFUN ("bool-vector-p", Fbool_vector_p, Sbool_vector_p, 1, 1, 0,
379 (object) 382 doc: /* Return t if OBJECT is a bool-vector. */)
383 (object)
380 Lisp_Object object; 384 Lisp_Object object;
381 { 385 {
382 if (BOOL_VECTOR_P (object)) 386 if (BOOL_VECTOR_P (object))
383 return Qt; 387 return Qt;
384 return Qnil; 388 return Qnil;
385 } 389 }
386 390
387 DEFUN ("arrayp", Farrayp, Sarrayp, 1, 1, 0, "Return t if OBJECT is an array (string or vector).") 391 DEFUN ("arrayp", Farrayp, Sarrayp, 1, 1, 0,
388 (object) 392 doc: /* Return t if OBJECT is an array (string or vector). */)
393 (object)
389 Lisp_Object object; 394 Lisp_Object object;
390 { 395 {
391 if (VECTORP (object) || STRINGP (object) 396 if (VECTORP (object) || STRINGP (object)
392 || CHAR_TABLE_P (object) || BOOL_VECTOR_P (object)) 397 || CHAR_TABLE_P (object) || BOOL_VECTOR_P (object))
393 return Qt; 398 return Qt;
394 return Qnil; 399 return Qnil;
395 } 400 }
396 401
397 DEFUN ("sequencep", Fsequencep, Ssequencep, 1, 1, 0, 402 DEFUN ("sequencep", Fsequencep, Ssequencep, 1, 1, 0,
398 "Return t if OBJECT is a sequence (list or array).") 403 doc: /* Return t if OBJECT is a sequence (list or array). */)
399 (object) 404 (object)
400 register Lisp_Object object; 405 register Lisp_Object object;
401 { 406 {
402 if (CONSP (object) || NILP (object) || VECTORP (object) || STRINGP (object) 407 if (CONSP (object) || NILP (object) || VECTORP (object) || STRINGP (object)
403 || CHAR_TABLE_P (object) || BOOL_VECTOR_P (object)) 408 || CHAR_TABLE_P (object) || BOOL_VECTOR_P (object))
404 return Qt; 409 return Qt;
405 return Qnil; 410 return Qnil;
406 } 411 }
407 412
408 DEFUN ("bufferp", Fbufferp, Sbufferp, 1, 1, 0, "Return t if OBJECT is an editor buffer.") 413 DEFUN ("bufferp", Fbufferp, Sbufferp, 1, 1, 0,
409 (object) 414 doc: /* Return t if OBJECT is an editor buffer. */)
415 (object)
410 Lisp_Object object; 416 Lisp_Object object;
411 { 417 {
412 if (BUFFERP (object)) 418 if (BUFFERP (object))
413 return Qt; 419 return Qt;
414 return Qnil; 420 return Qnil;
415 } 421 }
416 422
417 DEFUN ("markerp", Fmarkerp, Smarkerp, 1, 1, 0, "Return t if OBJECT is a marker (editor pointer).") 423 DEFUN ("markerp", Fmarkerp, Smarkerp, 1, 1, 0,
418 (object) 424 doc: /* Return t if OBJECT is a marker (editor pointer). */)
425 (object)
419 Lisp_Object object; 426 Lisp_Object object;
420 { 427 {
421 if (MARKERP (object)) 428 if (MARKERP (object))
422 return Qt; 429 return Qt;
423 return Qnil; 430 return Qnil;
424 } 431 }
425 432
426 DEFUN ("subrp", Fsubrp, Ssubrp, 1, 1, 0, "Return t if OBJECT is a built-in function.") 433 DEFUN ("subrp", Fsubrp, Ssubrp, 1, 1, 0,
427 (object) 434 doc: /* Return t if OBJECT is a built-in function. */)
435 (object)
428 Lisp_Object object; 436 Lisp_Object object;
429 { 437 {
430 if (SUBRP (object)) 438 if (SUBRP (object))
431 return Qt; 439 return Qt;
432 return Qnil; 440 return Qnil;
433 } 441 }
434 442
435 DEFUN ("byte-code-function-p", Fbyte_code_function_p, Sbyte_code_function_p, 443 DEFUN ("byte-code-function-p", Fbyte_code_function_p, Sbyte_code_function_p,
436 1, 1, 0, "Return t if OBJECT is a byte-compiled function object.") 444 1, 1, 0,
437 (object) 445 doc: /* Return t if OBJECT is a byte-compiled function object. */)
446 (object)
438 Lisp_Object object; 447 Lisp_Object object;
439 { 448 {
440 if (COMPILEDP (object)) 449 if (COMPILEDP (object))
441 return Qt; 450 return Qt;
442 return Qnil; 451 return Qnil;
443 } 452 }
444 453
445 DEFUN ("char-or-string-p", Fchar_or_string_p, Schar_or_string_p, 1, 1, 0, 454 DEFUN ("char-or-string-p", Fchar_or_string_p, Schar_or_string_p, 1, 1, 0,
446 "Return t if OBJECT is a character (an integer) or a string.") 455 doc: /* Return t if OBJECT is a character (an integer) or a string. */)
447 (object) 456 (object)
448 register Lisp_Object object; 457 register Lisp_Object object;
449 { 458 {
450 if (INTEGERP (object) || STRINGP (object)) 459 if (INTEGERP (object) || STRINGP (object))
451 return Qt; 460 return Qt;
452 return Qnil; 461 return Qnil;
453 } 462 }
454 463
455 DEFUN ("integerp", Fintegerp, Sintegerp, 1, 1, 0, "Return t if OBJECT is an integer.") 464 DEFUN ("integerp", Fintegerp, Sintegerp, 1, 1, 0,
456 (object) 465 doc: /* Return t if OBJECT is an integer. */)
466 (object)
457 Lisp_Object object; 467 Lisp_Object object;
458 { 468 {
459 if (INTEGERP (object)) 469 if (INTEGERP (object))
460 return Qt; 470 return Qt;
461 return Qnil; 471 return Qnil;
462 } 472 }
463 473
464 DEFUN ("integer-or-marker-p", Finteger_or_marker_p, Sinteger_or_marker_p, 1, 1, 0, 474 DEFUN ("integer-or-marker-p", Finteger_or_marker_p, Sinteger_or_marker_p, 1, 1, 0,
465 "Return t if OBJECT is an integer or a marker (editor pointer).") 475 doc: /* Return t if OBJECT is an integer or a marker (editor pointer). */)
466 (object) 476 (object)
467 register Lisp_Object object; 477 register Lisp_Object object;
468 { 478 {
469 if (MARKERP (object) || INTEGERP (object)) 479 if (MARKERP (object) || INTEGERP (object))
470 return Qt; 480 return Qt;
471 return Qnil; 481 return Qnil;
472 } 482 }
473 483
474 DEFUN ("natnump", Fnatnump, Snatnump, 1, 1, 0, 484 DEFUN ("natnump", Fnatnump, Snatnump, 1, 1, 0,
475 "Return t if OBJECT is a nonnegative integer.") 485 doc: /* Return t if OBJECT is a nonnegative integer. */)
476 (object) 486 (object)
477 Lisp_Object object; 487 Lisp_Object object;
478 { 488 {
479 if (NATNUMP (object)) 489 if (NATNUMP (object))
480 return Qt; 490 return Qt;
481 return Qnil; 491 return Qnil;
482 } 492 }
483 493
484 DEFUN ("numberp", Fnumberp, Snumberp, 1, 1, 0, 494 DEFUN ("numberp", Fnumberp, Snumberp, 1, 1, 0,
485 "Return t if OBJECT is a number (floating point or integer).") 495 doc: /* Return t if OBJECT is a number (floating point or integer). */)
486 (object) 496 (object)
487 Lisp_Object object; 497 Lisp_Object object;
488 { 498 {
489 if (NUMBERP (object)) 499 if (NUMBERP (object))
490 return Qt; 500 return Qt;
491 else 501 else
492 return Qnil; 502 return Qnil;
493 } 503 }
494 504
495 DEFUN ("number-or-marker-p", Fnumber_or_marker_p, 505 DEFUN ("number-or-marker-p", Fnumber_or_marker_p,
496 Snumber_or_marker_p, 1, 1, 0, 506 Snumber_or_marker_p, 1, 1, 0,
497 "Return t if OBJECT is a number or a marker.") 507 doc: /* Return t if OBJECT is a number or a marker. */)
498 (object) 508 (object)
499 Lisp_Object object; 509 Lisp_Object object;
500 { 510 {
501 if (NUMBERP (object) || MARKERP (object)) 511 if (NUMBERP (object) || MARKERP (object))
502 return Qt; 512 return Qt;
503 return Qnil; 513 return Qnil;
504 } 514 }
505 515
506 DEFUN ("floatp", Ffloatp, Sfloatp, 1, 1, 0, 516 DEFUN ("floatp", Ffloatp, Sfloatp, 1, 1, 0,
507 "Return t if OBJECT is a floating point number.") 517 doc: /* Return t if OBJECT is a floating point number. */)
508 (object) 518 (object)
509 Lisp_Object object; 519 Lisp_Object object;
510 { 520 {
511 if (FLOATP (object)) 521 if (FLOATP (object))
512 return Qt; 522 return Qt;
513 return Qnil; 523 return Qnil;
515 525
516 526
517 /* Extract and set components of lists */ 527 /* Extract and set components of lists */
518 528
519 DEFUN ("car", Fcar, Scar, 1, 1, 0, 529 DEFUN ("car", Fcar, Scar, 1, 1, 0,
520 "Return the car of LIST. If arg is nil, return nil.\n\ 530 doc: /* Return the car of LIST. If arg is nil, return nil.
521 Error if arg is not nil and not a cons cell. See also `car-safe'.") 531 Error if arg is not nil and not a cons cell. See also `car-safe'. */)
522 (list) 532 (list)
523 register Lisp_Object list; 533 register Lisp_Object list;
524 { 534 {
525 while (1) 535 while (1)
526 { 536 {
527 if (CONSP (list)) 537 if (CONSP (list))
532 list = wrong_type_argument (Qlistp, list); 542 list = wrong_type_argument (Qlistp, list);
533 } 543 }
534 } 544 }
535 545
536 DEFUN ("car-safe", Fcar_safe, Scar_safe, 1, 1, 0, 546 DEFUN ("car-safe", Fcar_safe, Scar_safe, 1, 1, 0,
537 "Return the car of OBJECT if it is a cons cell, or else nil.") 547 doc: /* Return the car of OBJECT if it is a cons cell, or else nil. */)
538 (object) 548 (object)
539 Lisp_Object object; 549 Lisp_Object object;
540 { 550 {
541 if (CONSP (object)) 551 if (CONSP (object))
542 return XCAR (object); 552 return XCAR (object);
543 else 553 else
544 return Qnil; 554 return Qnil;
545 } 555 }
546 556
547 DEFUN ("cdr", Fcdr, Scdr, 1, 1, 0, 557 DEFUN ("cdr", Fcdr, Scdr, 1, 1, 0,
548 "Return the cdr of LIST. If arg is nil, return nil.\n\ 558 doc: /* Return the cdr of LIST. If arg is nil, return nil.
549 Error if arg is not nil and not a cons cell. See also `cdr-safe'.") 559 Error if arg is not nil and not a cons cell. See also `cdr-safe'. */)
550 560 (list)
551 (list)
552 register Lisp_Object list; 561 register Lisp_Object list;
553 { 562 {
554 while (1) 563 while (1)
555 { 564 {
556 if (CONSP (list)) 565 if (CONSP (list))
561 list = wrong_type_argument (Qlistp, list); 570 list = wrong_type_argument (Qlistp, list);
562 } 571 }
563 } 572 }
564 573
565 DEFUN ("cdr-safe", Fcdr_safe, Scdr_safe, 1, 1, 0, 574 DEFUN ("cdr-safe", Fcdr_safe, Scdr_safe, 1, 1, 0,
566 "Return the cdr of OBJECT if it is a cons cell, or else nil.") 575 doc: /* Return the cdr of OBJECT if it is a cons cell, or else nil. */)
567 (object) 576 (object)
568 Lisp_Object object; 577 Lisp_Object object;
569 { 578 {
570 if (CONSP (object)) 579 if (CONSP (object))
571 return XCDR (object); 580 return XCDR (object);
572 else 581 else
573 return Qnil; 582 return Qnil;
574 } 583 }
575 584
576 DEFUN ("setcar", Fsetcar, Ssetcar, 2, 2, 0, 585 DEFUN ("setcar", Fsetcar, Ssetcar, 2, 2, 0,
577 "Set the car of CELL to be NEWCAR. Returns NEWCAR.") 586 doc: /* Set the car of CELL to be NEWCAR. Returns NEWCAR. */)
578 (cell, newcar) 587 (cell, newcar)
579 register Lisp_Object cell, newcar; 588 register Lisp_Object cell, newcar;
580 { 589 {
581 if (!CONSP (cell)) 590 if (!CONSP (cell))
582 cell = wrong_type_argument (Qconsp, cell); 591 cell = wrong_type_argument (Qconsp, cell);
583 592
585 XSETCAR (cell, newcar); 594 XSETCAR (cell, newcar);
586 return newcar; 595 return newcar;
587 } 596 }
588 597
589 DEFUN ("setcdr", Fsetcdr, Ssetcdr, 2, 2, 0, 598 DEFUN ("setcdr", Fsetcdr, Ssetcdr, 2, 2, 0,
590 "Set the cdr of CELL to be NEWCDR. Returns NEWCDR.") 599 doc: /* Set the cdr of CELL to be NEWCDR. Returns NEWCDR. */)
591 (cell, newcdr) 600 (cell, newcdr)
592 register Lisp_Object cell, newcdr; 601 register Lisp_Object cell, newcdr;
593 { 602 {
594 if (!CONSP (cell)) 603 if (!CONSP (cell))
595 cell = wrong_type_argument (Qconsp, cell); 604 cell = wrong_type_argument (Qconsp, cell);
596 605
599 return newcdr; 608 return newcdr;
600 } 609 }
601 610
602 /* Extract and set components of symbols */ 611 /* Extract and set components of symbols */
603 612
604 DEFUN ("boundp", Fboundp, Sboundp, 1, 1, 0, "Return t if SYMBOL's value is not void.") 613 DEFUN ("boundp", Fboundp, Sboundp, 1, 1, 0,
605 (symbol) 614 doc: /* Return t if SYMBOL's value is not void. */)
615 (symbol)
606 register Lisp_Object symbol; 616 register Lisp_Object symbol;
607 { 617 {
608 Lisp_Object valcontents; 618 Lisp_Object valcontents;
609 CHECK_SYMBOL (symbol, 0); 619 CHECK_SYMBOL (symbol, 0);
610 620
615 valcontents = swap_in_symval_forwarding (symbol, valcontents); 625 valcontents = swap_in_symval_forwarding (symbol, valcontents);
616 626
617 return (EQ (valcontents, Qunbound) ? Qnil : Qt); 627 return (EQ (valcontents, Qunbound) ? Qnil : Qt);
618 } 628 }
619 629
620 DEFUN ("fboundp", Ffboundp, Sfboundp, 1, 1, 0, "Return t if SYMBOL's function definition is not void.") 630 DEFUN ("fboundp", Ffboundp, Sfboundp, 1, 1, 0,
621 (symbol) 631 doc: /* Return t if SYMBOL's function definition is not void. */)
632 (symbol)
622 register Lisp_Object symbol; 633 register Lisp_Object symbol;
623 { 634 {
624 CHECK_SYMBOL (symbol, 0); 635 CHECK_SYMBOL (symbol, 0);
625 return (EQ (XSYMBOL (symbol)->function, Qunbound) ? Qnil : Qt); 636 return (EQ (XSYMBOL (symbol)->function, Qunbound) ? Qnil : Qt);
626 } 637 }
627 638
628 DEFUN ("makunbound", Fmakunbound, Smakunbound, 1, 1, 0, "Make SYMBOL's value be void.") 639 DEFUN ("makunbound", Fmakunbound, Smakunbound, 1, 1, 0,
629 (symbol) 640 doc: /* Make SYMBOL's value be void. */)
641 (symbol)
630 register Lisp_Object symbol; 642 register Lisp_Object symbol;
631 { 643 {
632 CHECK_SYMBOL (symbol, 0); 644 CHECK_SYMBOL (symbol, 0);
633 if (XSYMBOL (symbol)->constant) 645 if (XSYMBOL (symbol)->constant)
634 return Fsignal (Qsetting_constant, Fcons (symbol, Qnil)); 646 return Fsignal (Qsetting_constant, Fcons (symbol, Qnil));
635 Fset (symbol, Qunbound); 647 Fset (symbol, Qunbound);
636 return symbol; 648 return symbol;
637 } 649 }
638 650
639 DEFUN ("fmakunbound", Ffmakunbound, Sfmakunbound, 1, 1, 0, "Make SYMBOL's function definition be void.") 651 DEFUN ("fmakunbound", Ffmakunbound, Sfmakunbound, 1, 1, 0,
640 (symbol) 652 doc: /* Make SYMBOL's function definition be void. */)
653 (symbol)
641 register Lisp_Object symbol; 654 register Lisp_Object symbol;
642 { 655 {
643 CHECK_SYMBOL (symbol, 0); 656 CHECK_SYMBOL (symbol, 0);
644 if (NILP (symbol) || EQ (symbol, Qt)) 657 if (NILP (symbol) || EQ (symbol, Qt))
645 return Fsignal (Qsetting_constant, Fcons (symbol, Qnil)); 658 return Fsignal (Qsetting_constant, Fcons (symbol, Qnil));
646 XSYMBOL (symbol)->function = Qunbound; 659 XSYMBOL (symbol)->function = Qunbound;
647 return symbol; 660 return symbol;
648 } 661 }
649 662
650 DEFUN ("symbol-function", Fsymbol_function, Ssymbol_function, 1, 1, 0, 663 DEFUN ("symbol-function", Fsymbol_function, Ssymbol_function, 1, 1, 0,
651 "Return SYMBOL's function definition. Error if that is void.") 664 doc: /* Return SYMBOL's function definition. Error if that is void. */)
652 (symbol) 665 (symbol)
653 register Lisp_Object symbol; 666 register Lisp_Object symbol;
654 { 667 {
655 CHECK_SYMBOL (symbol, 0); 668 CHECK_SYMBOL (symbol, 0);
656 if (EQ (XSYMBOL (symbol)->function, Qunbound)) 669 if (EQ (XSYMBOL (symbol)->function, Qunbound))
657 return Fsignal (Qvoid_function, Fcons (symbol, Qnil)); 670 return Fsignal (Qvoid_function, Fcons (symbol, Qnil));
658 return XSYMBOL (symbol)->function; 671 return XSYMBOL (symbol)->function;
659 } 672 }
660 673
661 DEFUN ("symbol-plist", Fsymbol_plist, Ssymbol_plist, 1, 1, 0, "Return SYMBOL's property list.") 674 DEFUN ("symbol-plist", Fsymbol_plist, Ssymbol_plist, 1, 1, 0,
662 (symbol) 675 doc: /* Return SYMBOL's property list. */)
676 (symbol)
663 register Lisp_Object symbol; 677 register Lisp_Object symbol;
664 { 678 {
665 CHECK_SYMBOL (symbol, 0); 679 CHECK_SYMBOL (symbol, 0);
666 return XSYMBOL (symbol)->plist; 680 return XSYMBOL (symbol)->plist;
667 } 681 }
668 682
669 DEFUN ("symbol-name", Fsymbol_name, Ssymbol_name, 1, 1, 0, "Return SYMBOL's name, a string.") 683 DEFUN ("symbol-name", Fsymbol_name, Ssymbol_name, 1, 1, 0,
670 (symbol) 684 doc: /* Return SYMBOL's name, a string. */)
685 (symbol)
671 register Lisp_Object symbol; 686 register Lisp_Object symbol;
672 { 687 {
673 register Lisp_Object name; 688 register Lisp_Object name;
674 689
675 CHECK_SYMBOL (symbol, 0); 690 CHECK_SYMBOL (symbol, 0);
676 XSETSTRING (name, XSYMBOL (symbol)->name); 691 XSETSTRING (name, XSYMBOL (symbol)->name);
677 return name; 692 return name;
678 } 693 }
679 694
680 DEFUN ("fset", Ffset, Sfset, 2, 2, 0, 695 DEFUN ("fset", Ffset, Sfset, 2, 2, 0,
681 "Set SYMBOL's function definition to DEFINITION, and return DEFINITION.") 696 doc: /* Set SYMBOL's function definition to DEFINITION, and return DEFINITION. */)
682 (symbol, definition) 697 (symbol, definition)
683 register Lisp_Object symbol, definition; 698 register Lisp_Object symbol, definition;
684 { 699 {
685 CHECK_SYMBOL (symbol, 0); 700 CHECK_SYMBOL (symbol, 0);
686 if (NILP (symbol) || EQ (symbol, Qt)) 701 if (NILP (symbol) || EQ (symbol, Qt))
687 return Fsignal (Qsetting_constant, Fcons (symbol, Qnil)); 702 return Fsignal (Qsetting_constant, Fcons (symbol, Qnil));
697 } 712 }
698 return definition; 713 return definition;
699 } 714 }
700 715
701 DEFUN ("defalias", Fdefalias, Sdefalias, 2, 2, 0, 716 DEFUN ("defalias", Fdefalias, Sdefalias, 2, 2, 0,
702 "Set SYMBOL's function definition to DEFINITION, and return DEFINITION.\n\ 717 doc: /* Set SYMBOL's function definition to DEFINITION, and return DEFINITION.
703 Associates the function with the current load file, if any.") 718 Associates the function with the current load file, if any. */)
704 (symbol, definition) 719 (symbol, definition)
705 register Lisp_Object symbol, definition; 720 register Lisp_Object symbol, definition;
706 { 721 {
707 definition = Ffset (symbol, definition); 722 definition = Ffset (symbol, definition);
708 LOADHIST_ATTACH (symbol); 723 LOADHIST_ATTACH (symbol);
709 return definition; 724 return definition;
710 } 725 }
711 726
712 DEFUN ("setplist", Fsetplist, Ssetplist, 2, 2, 0, 727 DEFUN ("setplist", Fsetplist, Ssetplist, 2, 2, 0,
713 "Set SYMBOL's property list to NEWVAL, and return NEWVAL.") 728 doc: /* Set SYMBOL's property list to NEWVAL, and return NEWVAL. */)
714 (symbol, newplist) 729 (symbol, newplist)
715 register Lisp_Object symbol, newplist; 730 register Lisp_Object symbol, newplist;
716 { 731 {
717 CHECK_SYMBOL (symbol, 0); 732 CHECK_SYMBOL (symbol, 0);
718 XSYMBOL (symbol)->plist = newplist; 733 XSYMBOL (symbol)->plist = newplist;
719 return newplist; 734 return newplist;
720 } 735 }
721 736
722 DEFUN ("subr-arity", Fsubr_arity, Ssubr_arity, 1, 1, 0, 737 DEFUN ("subr-arity", Fsubr_arity, Ssubr_arity, 1, 1, 0,
723 "Return minimum and maximum number of args allowed for SUBR.\n\ 738 doc: /* Return minimum and maximum number of args allowed for SUBR.
724 SUBR must be a built-in function.\n\ 739 SUBR must be a built-in function.
725 The returned value is a pair (MIN . MAX). MIN is the minimum number\n\ 740 The returned value is a pair (MIN . MAX). MIN is the minimum number
726 of args. MAX is the maximum number or the symbol `many', for a\n\ 741 of args. MAX is the maximum number or the symbol `many', for a
727 function with `&rest' args, or `unevalled' for a special form.") 742 function with `&rest' args, or `unevalled' for a special form. */)
728 (subr) 743 (subr)
729 Lisp_Object subr; 744 Lisp_Object subr;
730 { 745 {
731 short minargs, maxargs; 746 short minargs, maxargs;
732 if (!SUBRP (subr)) 747 if (!SUBRP (subr))
733 wrong_type_argument (Qsubrp, subr); 748 wrong_type_argument (Qsubrp, subr);
740 else 755 else
741 return Fcons (make_number (minargs), make_number (maxargs)); 756 return Fcons (make_number (minargs), make_number (maxargs));
742 } 757 }
743 758
744 DEFUN ("subr-interactive-form", Fsubr_interactive_form, Ssubr_interactive_form, 1, 1, 0, 759 DEFUN ("subr-interactive-form", Fsubr_interactive_form, Ssubr_interactive_form, 1, 1, 0,
745 "Return the interactive form of SUBR or nil if none.\n\ 760 doc: /* Return the interactive form of SUBR or nil if none.
746 SUBR must be a built-in function. Value, if non-nil, is a list\n\ 761 SUBR must be a built-in function. Value, if non-nil, is a list
747 \(interactive SPEC).") 762 \(interactive SPEC). */)
748 (subr) 763 (subr)
749 Lisp_Object subr; 764 Lisp_Object subr;
750 { 765 {
751 if (!SUBRP (subr)) 766 if (!SUBRP (subr))
752 wrong_type_argument (Qsubrp, subr); 767 wrong_type_argument (Qsubrp, subr);
753 if (XSUBR (subr)->prompt) 768 if (XSUBR (subr)->prompt)
788 return hare; 803 return hare;
789 } 804 }
790 805
791 806
792 DEFUN ("indirect-variable", Findirect_variable, Sindirect_variable, 1, 1, 0, 807 DEFUN ("indirect-variable", Findirect_variable, Sindirect_variable, 1, 1, 0,
793 "Return the variable at the end of OBJECT's variable chain.\n\ 808 doc: /* Return the variable at the end of OBJECT's variable chain.
794 If OBJECT is a symbol, follow all variable indirections and return the final\n\ 809 If OBJECT is a symbol, follow all variable indirections and return the final
795 variable. If OBJECT is not a symbol, just return it.\n\ 810 variable. If OBJECT is not a symbol, just return it.
796 Signal a cyclic-variable-indirection error if there is a loop in the\n\ 811 Signal a cyclic-variable-indirection error if there is a loop in the
797 variable chain of symbols.") 812 variable chain of symbols. */)
798 (object) 813 (object)
799 Lisp_Object object; 814 Lisp_Object object;
800 { 815 {
801 if (SYMBOLP (object)) 816 if (SYMBOLP (object))
802 object = indirect_variable (object); 817 object = indirect_variable (object);
803 return object; 818 return object;
1047 1062
1048 return valcontents; 1063 return valcontents;
1049 } 1064 }
1050 1065
1051 DEFUN ("symbol-value", Fsymbol_value, Ssymbol_value, 1, 1, 0, 1066 DEFUN ("symbol-value", Fsymbol_value, Ssymbol_value, 1, 1, 0,
1052 "Return SYMBOL's value. Error if that is void.") 1067 doc: /* Return SYMBOL's value. Error if that is void. */)
1053 (symbol) 1068 (symbol)
1054 Lisp_Object symbol; 1069 Lisp_Object symbol;
1055 { 1070 {
1056 Lisp_Object val; 1071 Lisp_Object val;
1057 1072
1058 val = find_symbol_value (symbol); 1073 val = find_symbol_value (symbol);
1061 else 1076 else
1062 return val; 1077 return val;
1063 } 1078 }
1064 1079
1065 DEFUN ("set", Fset, Sset, 2, 2, 0, 1080 DEFUN ("set", Fset, Sset, 2, 2, 0,
1066 "Set SYMBOL's value to NEWVAL, and return NEWVAL.") 1081 doc: /* Set SYMBOL's value to NEWVAL, and return NEWVAL. */)
1067 (symbol, newval) 1082 (symbol, newval)
1068 register Lisp_Object symbol, newval; 1083 register Lisp_Object symbol, newval;
1069 { 1084 {
1070 return set_internal (symbol, newval, current_buffer, 0); 1085 return set_internal (symbol, newval, current_buffer, 0);
1071 } 1086 }
1072 1087
1292 /* For other variables, get the current value. */ 1307 /* For other variables, get the current value. */
1293 return do_symval_forwarding (valcontents); 1308 return do_symval_forwarding (valcontents);
1294 } 1309 }
1295 1310
1296 DEFUN ("default-boundp", Fdefault_boundp, Sdefault_boundp, 1, 1, 0, 1311 DEFUN ("default-boundp", Fdefault_boundp, Sdefault_boundp, 1, 1, 0,
1297 "Return t if SYMBOL has a non-void default value.\n\ 1312 doc: /* Return t if SYMBOL has a non-void default value.
1298 This is the value that is seen in buffers that do not have their own values\n\ 1313 This is the value that is seen in buffers that do not have their own values
1299 for this variable.") 1314 for this variable. */)
1300 (symbol) 1315 (symbol)
1301 Lisp_Object symbol; 1316 Lisp_Object symbol;
1302 { 1317 {
1303 register Lisp_Object value; 1318 register Lisp_Object value;
1304 1319
1305 value = default_value (symbol); 1320 value = default_value (symbol);
1306 return (EQ (value, Qunbound) ? Qnil : Qt); 1321 return (EQ (value, Qunbound) ? Qnil : Qt);
1307 } 1322 }
1308 1323
1309 DEFUN ("default-value", Fdefault_value, Sdefault_value, 1, 1, 0, 1324 DEFUN ("default-value", Fdefault_value, Sdefault_value, 1, 1, 0,
1310 "Return SYMBOL's default value.\n\ 1325 doc: /* Return SYMBOL's default value.
1311 This is the value that is seen in buffers that do not have their own values\n\ 1326 This is the value that is seen in buffers that do not have their own values
1312 for this variable. The default value is meaningful for variables with\n\ 1327 for this variable. The default value is meaningful for variables with
1313 local bindings in certain buffers.") 1328 local bindings in certain buffers. */)
1314 (symbol) 1329 (symbol)
1315 Lisp_Object symbol; 1330 Lisp_Object symbol;
1316 { 1331 {
1317 register Lisp_Object value; 1332 register Lisp_Object value;
1318 1333
1319 value = default_value (symbol); 1334 value = default_value (symbol);
1321 return Fsignal (Qvoid_variable, Fcons (symbol, Qnil)); 1336 return Fsignal (Qvoid_variable, Fcons (symbol, Qnil));
1322 return value; 1337 return value;
1323 } 1338 }
1324 1339
1325 DEFUN ("set-default", Fset_default, Sset_default, 2, 2, 0, 1340 DEFUN ("set-default", Fset_default, Sset_default, 2, 2, 0,
1326 "Set SYMBOL's default value to VAL. SYMBOL and VAL are evaluated.\n\ 1341 doc: /* Set SYMBOL's default value to VAL. SYMBOL and VAL are evaluated.
1327 The default value is seen in buffers that do not have their own values\n\ 1342 The default value is seen in buffers that do not have their own values
1328 for this variable.") 1343 for this variable. */)
1329 (symbol, value) 1344 (symbol, value)
1330 Lisp_Object symbol, value; 1345 Lisp_Object symbol, value;
1331 { 1346 {
1332 register Lisp_Object valcontents, current_alist_element, alist_element_buffer; 1347 register Lisp_Object valcontents, current_alist_element, alist_element_buffer;
1333 1348
1334 CHECK_SYMBOL (symbol, 0); 1349 CHECK_SYMBOL (symbol, 0);
1375 1390
1376 return value; 1391 return value;
1377 } 1392 }
1378 1393
1379 DEFUN ("setq-default", Fsetq_default, Ssetq_default, 2, UNEVALLED, 0, 1394 DEFUN ("setq-default", Fsetq_default, Ssetq_default, 2, UNEVALLED, 0,
1380 "Set the default value of variable VAR to VALUE.\n\ 1395 doc: /* Set the default value of variable VAR to VALUE.
1381 VAR, the variable name, is literal (not evaluated);\n\ 1396 VAR, the variable name, is literal (not evaluated);
1382 VALUE is an expression and it is evaluated.\n\ 1397 VALUE is an expression and it is evaluated.
1383 The default value of a variable is seen in buffers\n\ 1398 The default value of a variable is seen in buffers
1384 that do not have their own values for the variable.\n\ 1399 that do not have their own values for the variable.
1385 \n\ 1400
1386 More generally, you can use multiple variables and values, as in\n\ 1401 More generally, you can use multiple variables and values, as in
1387 (setq-default SYMBOL VALUE SYMBOL VALUE...)\n\ 1402 (setq-default SYMBOL VALUE SYMBOL VALUE...)
1388 This sets each SYMBOL's default value to the corresponding VALUE.\n\ 1403 This sets each SYMBOL's default value to the corresponding VALUE.
1389 The VALUE for the Nth SYMBOL can refer to the new default values\n\ 1404 The VALUE for the Nth SYMBOL can refer to the new default values
1390 of previous SYMs.") 1405 of previous SYMs. */)
1391 (args) 1406 (args)
1392 Lisp_Object args; 1407 Lisp_Object args;
1393 { 1408 {
1394 register Lisp_Object args_left; 1409 register Lisp_Object args_left;
1395 register Lisp_Object val, symbol; 1410 register Lisp_Object val, symbol;
1396 struct gcpro gcpro1; 1411 struct gcpro gcpro1;
1415 } 1430 }
1416 1431
1417 /* Lisp functions for creating and removing buffer-local variables. */ 1432 /* Lisp functions for creating and removing buffer-local variables. */
1418 1433
1419 DEFUN ("make-variable-buffer-local", Fmake_variable_buffer_local, Smake_variable_buffer_local, 1434 DEFUN ("make-variable-buffer-local", Fmake_variable_buffer_local, Smake_variable_buffer_local,
1420 1, 1, "vMake Variable Buffer Local: ", 1435 1, 1, "vMake Variable Buffer Local: ",
1421 "Make VARIABLE become buffer-local whenever it is set.\n\ 1436 doc: /* Make VARIABLE become buffer-local whenever it is set.
1422 At any time, the value for the current buffer is in effect,\n\ 1437 At any time, the value for the current buffer is in effect,
1423 unless the variable has never been set in this buffer,\n\ 1438 unless the variable has never been set in this buffer,
1424 in which case the default value is in effect.\n\ 1439 in which case the default value is in effect.
1425 Note that binding the variable with `let', or setting it while\n\ 1440 Note that binding the variable with `let', or setting it while
1426 a `let'-style binding made in this buffer is in effect,\n\ 1441 a `let'-style binding made in this buffer is in effect,
1427 does not make the variable buffer-local.\n\ 1442 does not make the variable buffer-local.
1428 \n\ 1443
1429 The function `default-value' gets the default value and `set-default' sets it.") 1444 The function `default-value' gets the default value and `set-default' sets it. */)
1430 (variable) 1445 (variable)
1431 register Lisp_Object variable; 1446 register Lisp_Object variable;
1432 { 1447 {
1433 register Lisp_Object tem, valcontents, newval; 1448 register Lisp_Object tem, valcontents, newval;
1434 1449
1435 CHECK_SYMBOL (variable, 0); 1450 CHECK_SYMBOL (variable, 0);
1461 SET_SYMBOL_VALUE (variable, newval); 1476 SET_SYMBOL_VALUE (variable, newval);
1462 return variable; 1477 return variable;
1463 } 1478 }
1464 1479
1465 DEFUN ("make-local-variable", Fmake_local_variable, Smake_local_variable, 1480 DEFUN ("make-local-variable", Fmake_local_variable, Smake_local_variable,
1466 1, 1, "vMake Local Variable: ", 1481 1, 1, "vMake Local Variable: ",
1467 "Make VARIABLE have a separate value in the current buffer.\n\ 1482 doc: /* Make VARIABLE have a separate value in the current buffer.
1468 Other buffers will continue to share a common default value.\n\ 1483 Other buffers will continue to share a common default value.
1469 \(The buffer-local value of VARIABLE starts out as the same value\n\ 1484 \(The buffer-local value of VARIABLE starts out as the same value
1470 VARIABLE previously had. If VARIABLE was void, it remains void.\)\n\ 1485 VARIABLE previously had. If VARIABLE was void, it remains void.\)
1471 See also `make-variable-buffer-local'.\n\ 1486 See also `make-variable-buffer-local'.
1472 \n\ 1487
1473 If the variable is already arranged to become local when set,\n\ 1488 If the variable is already arranged to become local when set,
1474 this function causes a local value to exist for this buffer,\n\ 1489 this function causes a local value to exist for this buffer,
1475 just as setting the variable would do.\n\ 1490 just as setting the variable would do.
1476 \n\ 1491
1477 This function returns VARIABLE, and therefore\n\ 1492 This function returns VARIABLE, and therefore
1478 (set (make-local-variable 'VARIABLE) VALUE-EXP)\n\ 1493 (set (make-local-variable 'VARIABLE) VALUE-EXP)
1479 works.\n\ 1494 works.
1480 \n\ 1495
1481 Do not use `make-local-variable' to make a hook variable buffer-local.\n\ 1496 Do not use `make-local-variable' to make a hook variable buffer-local.
1482 Use `make-local-hook' instead.") 1497 Use `make-local-hook' instead. */)
1483 (variable) 1498 (variable)
1484 register Lisp_Object variable; 1499 register Lisp_Object variable;
1485 { 1500 {
1486 register Lisp_Object tem, valcontents; 1501 register Lisp_Object tem, valcontents;
1487 1502
1488 CHECK_SYMBOL (variable, 0); 1503 CHECK_SYMBOL (variable, 0);
1554 1569
1555 return variable; 1570 return variable;
1556 } 1571 }
1557 1572
1558 DEFUN ("kill-local-variable", Fkill_local_variable, Skill_local_variable, 1573 DEFUN ("kill-local-variable", Fkill_local_variable, Skill_local_variable,
1559 1, 1, "vKill Local Variable: ", 1574 1, 1, "vKill Local Variable: ",
1560 "Make VARIABLE no longer have a separate value in the current buffer.\n\ 1575 doc: /* Make VARIABLE no longer have a separate value in the current buffer.
1561 From now on the default value will apply in this buffer.") 1576 From now on the default value will apply in this buffer. */)
1562 (variable) 1577 (variable)
1563 register Lisp_Object variable; 1578 register Lisp_Object variable;
1564 { 1579 {
1565 register Lisp_Object tem, valcontents; 1580 register Lisp_Object tem, valcontents;
1566 1581
1567 CHECK_SYMBOL (variable, 0); 1582 CHECK_SYMBOL (variable, 0);
1612 } 1627 }
1613 1628
1614 /* Lisp functions for creating and removing buffer-local variables. */ 1629 /* Lisp functions for creating and removing buffer-local variables. */
1615 1630
1616 DEFUN ("make-variable-frame-local", Fmake_variable_frame_local, Smake_variable_frame_local, 1631 DEFUN ("make-variable-frame-local", Fmake_variable_frame_local, Smake_variable_frame_local,
1617 1, 1, "vMake Variable Frame Local: ", 1632 1, 1, "vMake Variable Frame Local: ",
1618 "Enable VARIABLE to have frame-local bindings.\n\ 1633 doc: /* Enable VARIABLE to have frame-local bindings.
1619 When a frame-local binding exists in the current frame,\n\ 1634 When a frame-local binding exists in the current frame,
1620 it is in effect whenever the current buffer has no buffer-local binding.\n\ 1635 it is in effect whenever the current buffer has no buffer-local binding.
1621 A frame-local binding is actual a frame parameter value;\n\ 1636 A frame-local binding is actual a frame parameter value;
1622 thus, any given frame has a local binding for VARIABLE\n\ 1637 thus, any given frame has a local binding for VARIABLE
1623 if it has a value for the frame parameter named VARIABLE.\n\ 1638 if it has a value for the frame parameter named VARIABLE.
1624 See `modify-frame-parameters'.") 1639 See `modify-frame-parameters'. */)
1625 (variable) 1640 (variable)
1626 register Lisp_Object variable; 1641 register Lisp_Object variable;
1627 { 1642 {
1628 register Lisp_Object tem, valcontents, newval; 1643 register Lisp_Object tem, valcontents, newval;
1629 1644
1630 CHECK_SYMBOL (variable, 0); 1645 CHECK_SYMBOL (variable, 0);
1657 SET_SYMBOL_VALUE (variable, newval); 1672 SET_SYMBOL_VALUE (variable, newval);
1658 return variable; 1673 return variable;
1659 } 1674 }
1660 1675
1661 DEFUN ("local-variable-p", Flocal_variable_p, Slocal_variable_p, 1676 DEFUN ("local-variable-p", Flocal_variable_p, Slocal_variable_p,
1662 1, 2, 0, 1677 1, 2, 0,
1663 "Non-nil if VARIABLE has a local binding in buffer BUFFER.\n\ 1678 doc: /* Non-nil if VARIABLE has a local binding in buffer BUFFER.
1664 BUFFER defaults to the current buffer.") 1679 BUFFER defaults to the current buffer. */)
1665 (variable, buffer) 1680 (variable, buffer)
1666 register Lisp_Object variable, buffer; 1681 register Lisp_Object variable, buffer;
1667 { 1682 {
1668 Lisp_Object valcontents; 1683 Lisp_Object valcontents;
1669 register struct buffer *buf; 1684 register struct buffer *buf;
1670 1685
1701 } 1716 }
1702 return Qnil; 1717 return Qnil;
1703 } 1718 }
1704 1719
1705 DEFUN ("local-variable-if-set-p", Flocal_variable_if_set_p, Slocal_variable_if_set_p, 1720 DEFUN ("local-variable-if-set-p", Flocal_variable_if_set_p, Slocal_variable_if_set_p,
1706 1, 2, 0, 1721 1, 2, 0,
1707 "Non-nil if VARIABLE will be local in buffer BUFFER if it is set there.\n\ 1722 doc: /* Non-nil if VARIABLE will be local in buffer BUFFER if it is set there.
1708 BUFFER defaults to the current buffer.") 1723 BUFFER defaults to the current buffer. */)
1709 (variable, buffer) 1724 (variable, buffer)
1710 register Lisp_Object variable, buffer; 1725 register Lisp_Object variable, buffer;
1711 { 1726 {
1712 Lisp_Object valcontents; 1727 Lisp_Object valcontents;
1713 register struct buffer *buf; 1728 register struct buffer *buf;
1714 1729
1777 1792
1778 return hare; 1793 return hare;
1779 } 1794 }
1780 1795
1781 DEFUN ("indirect-function", Findirect_function, Sindirect_function, 1, 1, 0, 1796 DEFUN ("indirect-function", Findirect_function, Sindirect_function, 1, 1, 0,
1782 "Return the function at the end of OBJECT's function chain.\n\ 1797 doc: /* Return the function at the end of OBJECT's function chain.
1783 If OBJECT is a symbol, follow all function indirections and return the final\n\ 1798 If OBJECT is a symbol, follow all function indirections and return the final
1784 function binding.\n\ 1799 function binding.
1785 If OBJECT is not a symbol, just return it.\n\ 1800 If OBJECT is not a symbol, just return it.
1786 Signal a void-function error if the final symbol is unbound.\n\ 1801 Signal a void-function error if the final symbol is unbound.
1787 Signal a cyclic-function-indirection error if there is a loop in the\n\ 1802 Signal a cyclic-function-indirection error if there is a loop in the
1788 function chain of symbols.") 1803 function chain of symbols. */)
1789 (object) 1804 (object)
1790 register Lisp_Object object; 1805 register Lisp_Object object;
1791 { 1806 {
1792 Lisp_Object result; 1807 Lisp_Object result;
1793 1808
1794 result = indirect_function (object); 1809 result = indirect_function (object);
1795 1810
1799 } 1814 }
1800 1815
1801 /* Extract and set vector and string elements */ 1816 /* Extract and set vector and string elements */
1802 1817
1803 DEFUN ("aref", Faref, Saref, 2, 2, 0, 1818 DEFUN ("aref", Faref, Saref, 2, 2, 0,
1804 "Return the element of ARRAY at index IDX.\n\ 1819 doc: /* Return the element of ARRAY at index IDX.
1805 ARRAY may be a vector, a string, a char-table, a bool-vector,\n\ 1820 ARRAY may be a vector, a string, a char-table, a bool-vector,
1806 or a byte-code object. IDX starts at 0.") 1821 or a byte-code object. IDX starts at 0. */)
1807 (array, idx) 1822 (array, idx)
1808 register Lisp_Object array; 1823 register Lisp_Object array;
1809 Lisp_Object idx; 1824 Lisp_Object idx;
1810 { 1825 {
1811 register int idxval; 1826 register int idxval;
1812 1827
1930 we overflow their stack. The value is the same as what used in 1945 we overflow their stack. The value is the same as what used in
1931 fns.c for base64 handling. */ 1946 fns.c for base64 handling. */
1932 #define MAX_ALLOCA 16*1024 1947 #define MAX_ALLOCA 16*1024
1933 1948
1934 DEFUN ("aset", Faset, Saset, 3, 3, 0, 1949 DEFUN ("aset", Faset, Saset, 3, 3, 0,
1935 "Store into the element of ARRAY at index IDX the value NEWELT.\n\ 1950 doc: /* Store into the element of ARRAY at index IDX the value NEWELT.
1936 ARRAY may be a vector, a string, a char-table or a bool-vector.\n\ 1951 ARRAY may be a vector, a string, a char-table or a bool-vector.
1937 IDX starts at 0.") 1952 IDX starts at 0. */)
1938 (array, idx, newelt) 1953 (array, idx, newelt)
1939 register Lisp_Object array; 1954 register Lisp_Object array;
1940 Lisp_Object idx, newelt; 1955 Lisp_Object idx, newelt;
1941 { 1956 {
1942 register int idxval; 1957 register int idxval;
1943 1958
2150 abort (); 2165 abort ();
2151 } 2166 }
2152 } 2167 }
2153 2168
2154 DEFUN ("=", Feqlsign, Seqlsign, 2, 2, 0, 2169 DEFUN ("=", Feqlsign, Seqlsign, 2, 2, 0,
2155 "Return t if two args, both numbers or markers, are equal.") 2170 doc: /* Return t if two args, both numbers or markers, are equal. */)
2156 (num1, num2) 2171 (num1, num2)
2157 register Lisp_Object num1, num2; 2172 register Lisp_Object num1, num2;
2158 { 2173 {
2159 return arithcompare (num1, num2, equal); 2174 return arithcompare (num1, num2, equal);
2160 } 2175 }
2161 2176
2162 DEFUN ("<", Flss, Slss, 2, 2, 0, 2177 DEFUN ("<", Flss, Slss, 2, 2, 0,
2163 "Return t if first arg is less than second arg. Both must be numbers or markers.") 2178 doc: /* Return t if first arg is less than second arg. Both must be numbers or markers. */)
2164 (num1, num2) 2179 (num1, num2)
2165 register Lisp_Object num1, num2; 2180 register Lisp_Object num1, num2;
2166 { 2181 {
2167 return arithcompare (num1, num2, less); 2182 return arithcompare (num1, num2, less);
2168 } 2183 }
2169 2184
2170 DEFUN (">", Fgtr, Sgtr, 2, 2, 0, 2185 DEFUN (">", Fgtr, Sgtr, 2, 2, 0,
2171 "Return t if first arg is greater than second arg. Both must be numbers or markers.") 2186 doc: /* Return t if first arg is greater than second arg. Both must be numbers or markers. */)
2172 (num1, num2) 2187 (num1, num2)
2173 register Lisp_Object num1, num2; 2188 register Lisp_Object num1, num2;
2174 { 2189 {
2175 return arithcompare (num1, num2, grtr); 2190 return arithcompare (num1, num2, grtr);
2176 } 2191 }
2177 2192
2178 DEFUN ("<=", Fleq, Sleq, 2, 2, 0, 2193 DEFUN ("<=", Fleq, Sleq, 2, 2, 0,
2179 "Return t if first arg is less than or equal to second arg.\n\ 2194 doc: /* Return t if first arg is less than or equal to second arg.
2180 Both must be numbers or markers.") 2195 Both must be numbers or markers. */)
2181 (num1, num2) 2196 (num1, num2)
2182 register Lisp_Object num1, num2; 2197 register Lisp_Object num1, num2;
2183 { 2198 {
2184 return arithcompare (num1, num2, less_or_equal); 2199 return arithcompare (num1, num2, less_or_equal);
2185 } 2200 }
2186 2201
2187 DEFUN (">=", Fgeq, Sgeq, 2, 2, 0, 2202 DEFUN (">=", Fgeq, Sgeq, 2, 2, 0,
2188 "Return t if first arg is greater than or equal to second arg.\n\ 2203 doc: /* Return t if first arg is greater than or equal to second arg.
2189 Both must be numbers or markers.") 2204 Both must be numbers or markers. */)
2190 (num1, num2) 2205 (num1, num2)
2191 register Lisp_Object num1, num2; 2206 register Lisp_Object num1, num2;
2192 { 2207 {
2193 return arithcompare (num1, num2, grtr_or_equal); 2208 return arithcompare (num1, num2, grtr_or_equal);
2194 } 2209 }
2195 2210
2196 DEFUN ("/=", Fneq, Sneq, 2, 2, 0, 2211 DEFUN ("/=", Fneq, Sneq, 2, 2, 0,
2197 "Return t if first arg is not equal to second arg. Both must be numbers or markers.") 2212 doc: /* Return t if first arg is not equal to second arg. Both must be numbers or markers. */)
2198 (num1, num2) 2213 (num1, num2)
2199 register Lisp_Object num1, num2; 2214 register Lisp_Object num1, num2;
2200 { 2215 {
2201 return arithcompare (num1, num2, notequal); 2216 return arithcompare (num1, num2, notequal);
2202 } 2217 }
2203 2218
2204 DEFUN ("zerop", Fzerop, Szerop, 1, 1, 0, "Return t if NUMBER is zero.") 2219 DEFUN ("zerop", Fzerop, Szerop, 1, 1, 0,
2205 (number) 2220 doc: /* Return t if NUMBER is zero. */)
2221 (number)
2206 register Lisp_Object number; 2222 register Lisp_Object number;
2207 { 2223 {
2208 CHECK_NUMBER_OR_FLOAT (number, 0); 2224 CHECK_NUMBER_OR_FLOAT (number, 0);
2209 2225
2210 if (FLOATP (number)) 2226 if (FLOATP (number))
2247 bot = XCAR (bot); 2263 bot = XCAR (bot);
2248 return ((XINT (top) << 16) | XINT (bot)); 2264 return ((XINT (top) << 16) | XINT (bot));
2249 } 2265 }
2250 2266
2251 DEFUN ("number-to-string", Fnumber_to_string, Snumber_to_string, 1, 1, 0, 2267 DEFUN ("number-to-string", Fnumber_to_string, Snumber_to_string, 1, 1, 0,
2252 "Convert NUMBER to a string by printing it in decimal.\n\ 2268 doc: /* Convert NUMBER to a string by printing it in decimal.
2253 Uses a minus sign if negative.\n\ 2269 Uses a minus sign if negative.
2254 NUMBER may be an integer or a floating point number.") 2270 NUMBER may be an integer or a floating point number. */)
2255 (number) 2271 (number)
2256 Lisp_Object number; 2272 Lisp_Object number;
2257 { 2273 {
2258 char buffer[VALBITS]; 2274 char buffer[VALBITS];
2259 2275
2260 CHECK_NUMBER_OR_FLOAT (number, 0); 2276 CHECK_NUMBER_OR_FLOAT (number, 0);
2296 else 2312 else
2297 return digit; 2313 return digit;
2298 } 2314 }
2299 2315
2300 DEFUN ("string-to-number", Fstring_to_number, Sstring_to_number, 1, 2, 0, 2316 DEFUN ("string-to-number", Fstring_to_number, Sstring_to_number, 1, 2, 0,
2301 "Convert STRING to a number by parsing it as a decimal number.\n\ 2317 doc: /* Convert STRING to a number by parsing it as a decimal number.
2302 This parses both integers and floating point numbers.\n\ 2318 This parses both integers and floating point numbers.
2303 It ignores leading spaces and tabs.\n\ 2319 It ignores leading spaces and tabs.
2304 \n\ 2320
2305 If BASE, interpret STRING as a number in that base. If BASE isn't\n\ 2321 If BASE, interpret STRING as a number in that base. If BASE isn't
2306 present, base 10 is used. BASE must be between 2 and 16 (inclusive).\n\ 2322 present, base 10 is used. BASE must be between 2 and 16 (inclusive).
2307 If the base used is not 10, floating point is not recognized.") 2323 If the base used is not 10, floating point is not recognized. */)
2308 (string, base) 2324 (string, base)
2309 register Lisp_Object string, base; 2325 register Lisp_Object string, base;
2310 { 2326 {
2311 register unsigned char *p; 2327 register unsigned char *p;
2312 register int b; 2328 register int b;
2313 int sign = 1; 2329 int sign = 1;
2529 return make_float (accum); 2545 return make_float (accum);
2530 } 2546 }
2531 2547
2532 2548
2533 DEFUN ("+", Fplus, Splus, 0, MANY, 0, 2549 DEFUN ("+", Fplus, Splus, 0, MANY, 0,
2534 "Return sum of any number of arguments, which are numbers or markers. 2550 doc: /* Return sum of any number of arguments, which are numbers or markers.
2535 usage: (+ &rest NUMBERS-OR-MARKERS)") 2551 usage: (+ &rest NUMBERS-OR-MARKERS) */)
2536 (nargs, args) 2552 (nargs, args)
2537 int nargs; 2553 int nargs;
2538 Lisp_Object *args; 2554 Lisp_Object *args;
2539 { 2555 {
2540 return arith_driver (Aadd, nargs, args); 2556 return arith_driver (Aadd, nargs, args);
2541 } 2557 }
2542 2558
2543 DEFUN ("-", Fminus, Sminus, 0, MANY, 0, 2559 DEFUN ("-", Fminus, Sminus, 0, MANY, 0,
2544 "Negate number or subtract numbers or markers.\n\ 2560 doc: /* Negate number or subtract numbers or markers.
2545 With one arg, negates it. With more than one arg,\n\ 2561 With one arg, negates it. With more than one arg,
2546 subtracts all but the first from the first. 2562 subtracts all but the first from the first.
2547 usage: (- &optional NUMBER-OR-MARKER &rest MORE-NUMBERS-OR-MARKERS)") 2563 usage: (- &optional NUMBER-OR-MARKER &rest MORE-NUMBERS-OR-MARKERS) */)
2548 (nargs, args) 2564 (nargs, args)
2549 int nargs; 2565 int nargs;
2550 Lisp_Object *args; 2566 Lisp_Object *args;
2551 { 2567 {
2552 return arith_driver (Asub, nargs, args); 2568 return arith_driver (Asub, nargs, args);
2553 } 2569 }
2554 2570
2555 DEFUN ("*", Ftimes, Stimes, 0, MANY, 0, 2571 DEFUN ("*", Ftimes, Stimes, 0, MANY, 0,
2556 "Returns product of any number of arguments, which are numbers or markers. 2572 doc: /* Returns product of any number of arguments, which are numbers or markers.
2557 usage: (* &rest NUMBERS-OR-MARKERS)") 2573 usage: (* &rest NUMBERS-OR-MARKERS) */)
2558 (nargs, args) 2574 (nargs, args)
2559 int nargs; 2575 int nargs;
2560 Lisp_Object *args; 2576 Lisp_Object *args;
2561 { 2577 {
2562 return arith_driver (Amult, nargs, args); 2578 return arith_driver (Amult, nargs, args);
2563 } 2579 }
2564 2580
2565 DEFUN ("/", Fquo, Squo, 2, MANY, 0, 2581 DEFUN ("/", Fquo, Squo, 2, MANY, 0,
2566 "Returns first argument divided by all the remaining arguments.\n\ 2582 doc: /* Returns first argument divided by all the remaining arguments.
2567 The arguments must be numbers or markers. 2583 The arguments must be numbers or markers.
2568 usage: (/ DIVIDEND DIVISOR &rest DIVISORS)") 2584 usage: (/ DIVIDEND DIVISOR &rest DIVISORS) */)
2569 (nargs, args) 2585 (nargs, args)
2570 int nargs; 2586 int nargs;
2571 Lisp_Object *args; 2587 Lisp_Object *args;
2572 { 2588 {
2573 return arith_driver (Adiv, nargs, args); 2589 return arith_driver (Adiv, nargs, args);
2574 } 2590 }
2575 2591
2576 DEFUN ("%", Frem, Srem, 2, 2, 0, 2592 DEFUN ("%", Frem, Srem, 2, 2, 0,
2577 "Returns remainder of X divided by Y.\n\ 2593 doc: /* Returns remainder of X divided by Y.
2578 Both must be integers or markers.") 2594 Both must be integers or markers. */)
2579 (x, y) 2595 (x, y)
2580 register Lisp_Object x, y; 2596 register Lisp_Object x, y;
2581 { 2597 {
2582 Lisp_Object val; 2598 Lisp_Object val;
2583 2599
2584 CHECK_NUMBER_COERCE_MARKER (x, 0); 2600 CHECK_NUMBER_COERCE_MARKER (x, 0);
2613 return r; 2629 return r;
2614 } 2630 }
2615 #endif /* ! HAVE_FMOD */ 2631 #endif /* ! HAVE_FMOD */
2616 2632
2617 DEFUN ("mod", Fmod, Smod, 2, 2, 0, 2633 DEFUN ("mod", Fmod, Smod, 2, 2, 0,
2618 "Returns X modulo Y.\n\ 2634 doc: /* Returns X modulo Y.
2619 The result falls between zero (inclusive) and Y (exclusive).\n\ 2635 The result falls between zero (inclusive) and Y (exclusive).
2620 Both X and Y must be numbers or markers.") 2636 Both X and Y must be numbers or markers. */)
2621 (x, y) 2637 (x, y)
2622 register Lisp_Object x, y; 2638 register Lisp_Object x, y;
2623 { 2639 {
2624 Lisp_Object val; 2640 Lisp_Object val;
2625 EMACS_INT i1, i2; 2641 EMACS_INT i1, i2;
2626 2642
2645 XSETINT (val, i1); 2661 XSETINT (val, i1);
2646 return val; 2662 return val;
2647 } 2663 }
2648 2664
2649 DEFUN ("max", Fmax, Smax, 1, MANY, 0, 2665 DEFUN ("max", Fmax, Smax, 1, MANY, 0,
2650 "Return largest of all the arguments (which must be numbers or markers).\n\ 2666 doc: /* Return largest of all the arguments (which must be numbers or markers).
2651 The value is always a number; markers are converted to numbers. 2667 The value is always a number; markers are converted to numbers.
2652 usage: (max NUMBER-OR-MARKER &rest NUMBERS-OR-MARKERS)") 2668 usage: (max NUMBER-OR-MARKER &rest NUMBERS-OR-MARKERS) */)
2653 (nargs, args) 2669 (nargs, args)
2654 int nargs; 2670 int nargs;
2655 Lisp_Object *args; 2671 Lisp_Object *args;
2656 { 2672 {
2657 return arith_driver (Amax, nargs, args); 2673 return arith_driver (Amax, nargs, args);
2658 } 2674 }
2659 2675
2660 DEFUN ("min", Fmin, Smin, 1, MANY, 0, 2676 DEFUN ("min", Fmin, Smin, 1, MANY, 0,
2661 "Return smallest of all the arguments (which must be numbers or markers).\n\ 2677 doc: /* Return smallest of all the arguments (which must be numbers or markers).
2662 The value is always a number; markers are converted to numbers. 2678 The value is always a number; markers are converted to numbers.
2663 usage: (min NUMBER-OR-MARKER &rest NUMBERS-OR-MARKERS)") 2679 usage: (min NUMBER-OR-MARKER &rest NUMBERS-OR-MARKERS) */)
2664 (nargs, args) 2680 (nargs, args)
2665 int nargs; 2681 int nargs;
2666 Lisp_Object *args; 2682 Lisp_Object *args;
2667 { 2683 {
2668 return arith_driver (Amin, nargs, args); 2684 return arith_driver (Amin, nargs, args);
2669 } 2685 }
2670 2686
2671 DEFUN ("logand", Flogand, Slogand, 0, MANY, 0, 2687 DEFUN ("logand", Flogand, Slogand, 0, MANY, 0,
2672 "Return bitwise-and of all the arguments.\n\ 2688 doc: /* Return bitwise-and of all the arguments.
2673 Arguments may be integers, or markers converted to integers. 2689 Arguments may be integers, or markers converted to integers.
2674 usage: (logand &rest INTS-OR-MARKERS)") 2690 usage: (logand &rest INTS-OR-MARKERS) */)
2675 (nargs, args) 2691 (nargs, args)
2676 int nargs; 2692 int nargs;
2677 Lisp_Object *args; 2693 Lisp_Object *args;
2678 { 2694 {
2679 return arith_driver (Alogand, nargs, args); 2695 return arith_driver (Alogand, nargs, args);
2680 } 2696 }
2681 2697
2682 DEFUN ("logior", Flogior, Slogior, 0, MANY, 0, 2698 DEFUN ("logior", Flogior, Slogior, 0, MANY, 0,
2683 "Return bitwise-or of all the arguments.\n\ 2699 doc: /* Return bitwise-or of all the arguments.
2684 Arguments may be integers, or markers converted to integers. 2700 Arguments may be integers, or markers converted to integers.
2685 usage: (logior &rest INTS-OR-MARKERS)") 2701 usage: (logior &rest INTS-OR-MARKERS) */)
2686 (nargs, args) 2702 (nargs, args)
2687 int nargs; 2703 int nargs;
2688 Lisp_Object *args; 2704 Lisp_Object *args;
2689 { 2705 {
2690 return arith_driver (Alogior, nargs, args); 2706 return arith_driver (Alogior, nargs, args);
2691 } 2707 }
2692 2708
2693 DEFUN ("logxor", Flogxor, Slogxor, 0, MANY, 0, 2709 DEFUN ("logxor", Flogxor, Slogxor, 0, MANY, 0,
2694 "Return bitwise-exclusive-or of all the arguments.\n\ 2710 doc: /* Return bitwise-exclusive-or of all the arguments.
2695 Arguments may be integers, or markers converted to integers. 2711 Arguments may be integers, or markers converted to integers.
2696 usage: (logxor &rest INTS-OR-MARKERS)") 2712 usage: (logxor &rest INTS-OR-MARKERS) */)
2697 (nargs, args) 2713 (nargs, args)
2698 int nargs; 2714 int nargs;
2699 Lisp_Object *args; 2715 Lisp_Object *args;
2700 { 2716 {
2701 return arith_driver (Alogxor, nargs, args); 2717 return arith_driver (Alogxor, nargs, args);
2702 } 2718 }
2703 2719
2704 DEFUN ("ash", Fash, Sash, 2, 2, 0, 2720 DEFUN ("ash", Fash, Sash, 2, 2, 0,
2705 "Return VALUE with its bits shifted left by COUNT.\n\ 2721 doc: /* Return VALUE with its bits shifted left by COUNT.
2706 If COUNT is negative, shifting is actually to the right.\n\ 2722 If COUNT is negative, shifting is actually to the right.
2707 In this case, the sign bit is duplicated.") 2723 In this case, the sign bit is duplicated. */)
2708 (value, count) 2724 (value, count)
2709 register Lisp_Object value, count; 2725 register Lisp_Object value, count;
2710 { 2726 {
2711 register Lisp_Object val; 2727 register Lisp_Object val;
2712 2728
2713 CHECK_NUMBER (value, 0); 2729 CHECK_NUMBER (value, 0);
2723 XSETINT (val, XINT (value) >> -XINT (count)); 2739 XSETINT (val, XINT (value) >> -XINT (count));
2724 return val; 2740 return val;
2725 } 2741 }
2726 2742
2727 DEFUN ("lsh", Flsh, Slsh, 2, 2, 0, 2743 DEFUN ("lsh", Flsh, Slsh, 2, 2, 0,
2728 "Return VALUE with its bits shifted left by COUNT.\n\ 2744 doc: /* Return VALUE with its bits shifted left by COUNT.
2729 If COUNT is negative, shifting is actually to the right.\n\ 2745 If COUNT is negative, shifting is actually to the right.
2730 In this case, zeros are shifted in on the left.") 2746 In this case, zeros are shifted in on the left. */)
2731 (value, count) 2747 (value, count)
2732 register Lisp_Object value, count; 2748 register Lisp_Object value, count;
2733 { 2749 {
2734 register Lisp_Object val; 2750 register Lisp_Object val;
2735 2751
2736 CHECK_NUMBER (value, 0); 2752 CHECK_NUMBER (value, 0);
2746 XSETINT (val, (EMACS_UINT) XUINT (value) >> -XINT (count)); 2762 XSETINT (val, (EMACS_UINT) XUINT (value) >> -XINT (count));
2747 return val; 2763 return val;
2748 } 2764 }
2749 2765
2750 DEFUN ("1+", Fadd1, Sadd1, 1, 1, 0, 2766 DEFUN ("1+", Fadd1, Sadd1, 1, 1, 0,
2751 "Return NUMBER plus one. NUMBER may be a number or a marker.\n\ 2767 doc: /* Return NUMBER plus one. NUMBER may be a number or a marker.
2752 Markers are converted to integers.") 2768 Markers are converted to integers. */)
2753 (number) 2769 (number)
2754 register Lisp_Object number; 2770 register Lisp_Object number;
2755 { 2771 {
2756 CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (number, 0); 2772 CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (number, 0);
2757 2773
2758 if (FLOATP (number)) 2774 if (FLOATP (number))
2761 XSETINT (number, XINT (number) + 1); 2777 XSETINT (number, XINT (number) + 1);
2762 return number; 2778 return number;
2763 } 2779 }
2764 2780
2765 DEFUN ("1-", Fsub1, Ssub1, 1, 1, 0, 2781 DEFUN ("1-", Fsub1, Ssub1, 1, 1, 0,
2766 "Return NUMBER minus one. NUMBER may be a number or a marker.\n\ 2782 doc: /* Return NUMBER minus one. NUMBER may be a number or a marker.
2767 Markers are converted to integers.") 2783 Markers are converted to integers. */)
2768 (number) 2784 (number)
2769 register Lisp_Object number; 2785 register Lisp_Object number;
2770 { 2786 {
2771 CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (number, 0); 2787 CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (number, 0);
2772 2788
2773 if (FLOATP (number)) 2789 if (FLOATP (number))
2776 XSETINT (number, XINT (number) - 1); 2792 XSETINT (number, XINT (number) - 1);
2777 return number; 2793 return number;
2778 } 2794 }
2779 2795
2780 DEFUN ("lognot", Flognot, Slognot, 1, 1, 0, 2796 DEFUN ("lognot", Flognot, Slognot, 1, 1, 0,
2781 "Return the bitwise complement of NUMBER. NUMBER must be an integer.") 2797 doc: /* Return the bitwise complement of NUMBER. NUMBER must be an integer. */)
2782 (number) 2798 (number)
2783 register Lisp_Object number; 2799 register Lisp_Object number;
2784 { 2800 {
2785 CHECK_NUMBER (number, 0); 2801 CHECK_NUMBER (number, 0);
2786 XSETINT (number, ~XINT (number)); 2802 XSETINT (number, ~XINT (number));
2787 return number; 2803 return number;
3190 defsubr (&Ssubr_arity); 3206 defsubr (&Ssubr_arity);
3191 3207
3192 XSYMBOL (Qwholenump)->function = XSYMBOL (Qnatnump)->function; 3208 XSYMBOL (Qwholenump)->function = XSYMBOL (Qnatnump)->function;
3193 3209
3194 DEFVAR_INT ("most-positive-fixnum", &most_positive_fixnum, 3210 DEFVAR_INT ("most-positive-fixnum", &most_positive_fixnum,
3195 "The largest value that is representable in a Lisp integer."); 3211 doc: /* The largest value that is representable in a Lisp integer. */);
3196 most_positive_fixnum = MOST_POSITIVE_FIXNUM; 3212 most_positive_fixnum = MOST_POSITIVE_FIXNUM;
3197 3213
3198 DEFVAR_INT ("most-negative-fixnum", &most_negative_fixnum, 3214 DEFVAR_INT ("most-negative-fixnum", &most_negative_fixnum,
3199 "The smallest value that is representable in a Lisp integer."); 3215 doc: /* The smallest value that is representable in a Lisp integer. */);
3200 most_negative_fixnum = MOST_NEGATIVE_FIXNUM; 3216 most_negative_fixnum = MOST_NEGATIVE_FIXNUM;
3201 } 3217 }
3202 3218
3203 SIGTYPE 3219 SIGTYPE
3204 arith_error (signo) 3220 arith_error (signo)
3237 3253
3238 #ifdef uts 3254 #ifdef uts
3239 signal (SIGEMT, arith_error); 3255 signal (SIGEMT, arith_error);
3240 #endif /* uts */ 3256 #endif /* uts */
3241 } 3257 }
3242
3243