Mercurial > hg > xemacs-beta
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 { |