comparison src/data.c @ 4962:e813cf16c015

merge
author Ben Wing <ben@xemacs.org>
date Mon, 01 Feb 2010 05:29:05 -0600
parents db2db229ee82 9e7f5a77cc84
children 16112448d484
comparison
equal deleted inserted replaced
4961:b90f8cf474e0 4962:e813cf16c015
340 return make_int (XSUBR (subr)->min_args); 340 return make_int (XSUBR (subr)->min_args);
341 } 341 }
342 342
343 DEFUN ("subr-max-args", Fsubr_max_args, 1, 1, 0, /* 343 DEFUN ("subr-max-args", Fsubr_max_args, 1, 1, 0, /*
344 Return maximum number of args built-in function SUBR may be called with, 344 Return maximum number of args built-in function SUBR may be called with,
345 or nil if it takes an arbitrary number of arguments or is a special form. 345 or nil if it takes an arbitrary number of arguments or is a special operator.
346 */ 346 */
347 (subr)) 347 (subr))
348 { 348 {
349 int nargs; 349 int nargs;
350 CHECK_SUBR (subr); 350 CHECK_SUBR (subr);
2626 encode_weak_list_type (XWEAK_LIST (obj)->type), 2626 encode_weak_list_type (XWEAK_LIST (obj)->type),
2627 XWEAK_LIST (obj)->list); 2627 XWEAK_LIST (obj)->list);
2628 } 2628 }
2629 2629
2630 static int 2630 static int
2631 weak_list_equal (Lisp_Object obj1, Lisp_Object obj2, int depth) 2631 weak_list_equal (Lisp_Object obj1, Lisp_Object obj2, int depth, int foldcase)
2632 { 2632 {
2633 struct weak_list *w1 = XWEAK_LIST (obj1); 2633 struct weak_list *w1 = XWEAK_LIST (obj1);
2634 struct weak_list *w2 = XWEAK_LIST (obj2); 2634 struct weak_list *w2 = XWEAK_LIST (obj2);
2635 2635
2636 return ((w1->type == w2->type) && 2636 return ((w1->type == w2->type) &&
2637 internal_equal (w1->list, w2->list, depth + 1)); 2637 internal_equal_0 (w1->list, w2->list, depth + 1, foldcase));
2638 } 2638 }
2639 2639
2640 static Hashcode 2640 static Hashcode
2641 weak_list_hash (Lisp_Object obj, int depth) 2641 weak_list_hash (Lisp_Object obj, int depth)
2642 { 2642 {
3102 printing_unreadable_lcrecord (obj, 0); 3102 printing_unreadable_lcrecord (obj, 0);
3103 write_fmt_string (printcharfun, "#<weak-box>"); /* #### fix */ 3103 write_fmt_string (printcharfun, "#<weak-box>"); /* #### fix */
3104 } 3104 }
3105 3105
3106 static int 3106 static int
3107 weak_box_equal (Lisp_Object obj1, Lisp_Object obj2, int depth) 3107 weak_box_equal (Lisp_Object obj1, Lisp_Object obj2, int depth, int foldcase)
3108 { 3108 {
3109 struct weak_box *wb1 = XWEAK_BOX (obj1); 3109 struct weak_box *wb1 = XWEAK_BOX (obj1);
3110 struct weak_box *wb2 = XWEAK_BOX (obj2); 3110 struct weak_box *wb2 = XWEAK_BOX (obj2);
3111 3111
3112 return (internal_equal (wb1->value, wb2->value, depth + 1)); 3112 return (internal_equal_0 (wb1->value, wb2->value, depth + 1, foldcase));
3113 } 3113 }
3114 3114
3115 static Hashcode 3115 static Hashcode
3116 weak_box_hash (Lisp_Object obj, int depth) 3116 weak_box_hash (Lisp_Object obj, int depth)
3117 { 3117 {
3328 printing_unreadable_lcrecord (obj, 0); 3328 printing_unreadable_lcrecord (obj, 0);
3329 write_fmt_string (printcharfun, "#<ephemeron>"); /* #### fix */ 3329 write_fmt_string (printcharfun, "#<ephemeron>"); /* #### fix */
3330 } 3330 }
3331 3331
3332 static int 3332 static int
3333 ephemeron_equal (Lisp_Object obj1, Lisp_Object obj2, int depth) 3333 ephemeron_equal (Lisp_Object obj1, Lisp_Object obj2, int depth, int foldcase)
3334 { 3334 {
3335 return 3335 return
3336 internal_equal (XEPHEMERON_REF (obj1), XEPHEMERON_REF(obj2), depth + 1); 3336 internal_equal_0 (XEPHEMERON_REF (obj1), XEPHEMERON_REF(obj2), depth + 1,
3337 foldcase);
3337 } 3338 }
3338 3339
3339 static Hashcode 3340 static Hashcode
3340 ephemeron_hash(Lisp_Object obj, int depth) 3341 ephemeron_hash(Lisp_Object obj, int depth)
3341 { 3342 {