comparison src/eval.c @ 5095:cb4f2e1bacc4

merge
author Ben Wing <ben@xemacs.org>
date Thu, 04 Mar 2010 02:46:38 -0600
parents 47bcef7b0b44
children 7be849cb8828
comparison
equal deleted inserted replaced
5094:ebee7d1e58bd 5095:cb4f2e1bacc4
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
3048 { 3071 {
3049 maybe_signal_error (Qinvalid_argument, reason, frob, class_, errb); 3072 maybe_signal_error (Qinvalid_argument, reason, frob, class_, errb);
3050 } 3073 }
3051 3074
3052 DOESNT_RETURN 3075 DOESNT_RETURN
3076 invalid_keyword_argument (Lisp_Object function, Lisp_Object keyword)
3077 {
3078 signal_error_1 (Qinvalid_keyword_argument, list2 (function, keyword));
3079 }
3080
3081 DOESNT_RETURN
3053 invalid_constant (const Ascbyte *reason, Lisp_Object frob) 3082 invalid_constant (const Ascbyte *reason, Lisp_Object frob)
3054 { 3083 {
3055 signal_error (Qinvalid_constant, reason, frob); 3084 signal_error (Qinvalid_constant, reason, frob);
3056 } 3085 }
3057 3086
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 {