Mercurial > hg > xemacs-beta
comparison src/eval.c @ 5128:7be849cb8828 ben-lisp-object
merge
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Sun, 07 Mar 2010 02:09:59 -0600 |
parents | a9c41067dd88 47bcef7b0b44 |
children | f965e31a35f0 |
comparison
equal
deleted
inserted
replaced
5127:a9c41067dd88 | 5128:7be849cb8828 |
---|---|
415 #endif | 415 #endif |
416 | 416 |
417 static int warning_will_be_discarded (Lisp_Object level); | 417 static int warning_will_be_discarded (Lisp_Object level); |
418 static Lisp_Object maybe_get_trapping_problems_backtrace (void); | 418 static Lisp_Object maybe_get_trapping_problems_backtrace (void); |
419 | 419 |
420 | |
421 | |
422 /* When parsing keyword arguments; is some element of NARGS | |
423 :allow-other-keys, and is that element followed by a non-nil Lisp | |
424 object? */ | |
425 | |
426 Boolint | |
427 non_nil_allow_other_keys_p (Elemcount offset, int nargs, Lisp_Object *args) | |
428 { | |
429 Lisp_Object key, value; | |
430 while (offset + 1 < nargs) | |
431 { | |
432 key = args[offset++]; | |
433 value = args[offset++]; | |
434 if (EQ (key, Q_allow_other_keys)) | |
435 { | |
436 /* The ANSI Common Lisp standard says the first value for a given | |
437 keyword overrides. */ | |
438 return !NILP (value); | |
439 } | |
440 } | |
441 return 0; | |
442 } | |
420 | 443 |
421 /************************************************************************/ | 444 /************************************************************************/ |
422 /* The subr object type */ | 445 /* The subr object type */ |
423 /************************************************************************/ | 446 /************************************************************************/ |
424 | 447 |
3047 { | 3070 { |
3048 maybe_signal_error (Qinvalid_argument, reason, frob, class_, errb); | 3071 maybe_signal_error (Qinvalid_argument, reason, frob, class_, errb); |
3049 } | 3072 } |
3050 | 3073 |
3051 DOESNT_RETURN | 3074 DOESNT_RETURN |
3075 invalid_keyword_argument (Lisp_Object function, Lisp_Object keyword) | |
3076 { | |
3077 signal_error_1 (Qinvalid_keyword_argument, list2 (function, keyword)); | |
3078 } | |
3079 | |
3080 DOESNT_RETURN | |
3052 invalid_constant (const Ascbyte *reason, Lisp_Object frob) | 3081 invalid_constant (const Ascbyte *reason, Lisp_Object frob) |
3053 { | 3082 { |
3054 signal_error (Qinvalid_constant, reason, frob); | 3083 signal_error (Qinvalid_constant, reason, frob); |
3055 } | 3084 } |
3056 | 3085 |
4577 if (print_readably) | 4606 if (print_readably) |
4578 { | 4607 { |
4579 printing_unreadable_object ("multiple values"); | 4608 printing_unreadable_object ("multiple values"); |
4580 } | 4609 } |
4581 | 4610 |
4582 if (0 == count) | 4611 write_fmt_string (printcharfun, |
4583 { | 4612 "#<INTERNAL OBJECT (XEmacs bug?) %d multiple values," |
4584 write_msg_string (printcharfun, "#<zero-length multiple value>"); | 4613 " data (", count); |
4585 } | |
4586 | 4614 |
4587 for (index = 0; index < count;) | 4615 for (index = 0; index < count;) |
4588 { | 4616 { |
4589 if (index != 0 && | 4617 if (index != 0 && |
4590 (index < first_desired || | 4618 (index < first_desired || |
4601 | 4629 |
4602 ++index; | 4630 ++index; |
4603 | 4631 |
4604 if (count > 1 && index < count) | 4632 if (count > 1 && index < count) |
4605 { | 4633 { |
4606 write_ascstring (printcharfun, " ;\n"); | 4634 write_ascstring (printcharfun, " "); |
4607 } | 4635 } |
4608 } | 4636 } |
4637 | |
4638 write_fmt_string (printcharfun, ") 0x%lx>", (unsigned long) XPNTR (obj)); | |
4609 } | 4639 } |
4610 | 4640 |
4611 static Lisp_Object | 4641 static Lisp_Object |
4612 mark_multiple_value (Lisp_Object obj) | 4642 mark_multiple_value (Lisp_Object obj) |
4613 { | 4643 { |