comparison src/fns.c @ 211:78478c60bfcd r20-4b4

Import from CVS: tag r20-4b4
author cvs
date Mon, 13 Aug 2007 10:05:51 +0200
parents 41ff10fd062f
children 262b8bb4a523
comparison
equal deleted inserted replaced
210:49f55ca3ba57 211:78478c60bfcd
2736 else if (STRINGP (object)) 2736 else if (STRINGP (object))
2737 val = string_getprop (XSTRING (object), propname, default_); 2737 val = string_getprop (XSTRING (object), propname, default_);
2738 else if (LRECORDP (object)) 2738 else if (LRECORDP (object))
2739 { 2739 {
2740 CONST struct lrecord_implementation 2740 CONST struct lrecord_implementation
2741 *imp = XRECORD_LHEADER (object)->implementation; 2741 *imp = XRECORD_LHEADER_IMPLEMENTATION (object);
2742 if (imp->getprop) 2742 if (imp->getprop)
2743 { 2743 {
2744 val = (imp->getprop) (object, propname); 2744 val = (imp->getprop) (object, propname);
2745 if (UNBOUNDP (val)) 2745 if (UNBOUNDP (val))
2746 val = default_; 2746 val = default_;
2778 else if (STRINGP (object)) 2778 else if (STRINGP (object))
2779 string_putprop (XSTRING (object), propname, value); 2779 string_putprop (XSTRING (object), propname, value);
2780 else if (LRECORDP (object)) 2780 else if (LRECORDP (object))
2781 { 2781 {
2782 CONST struct lrecord_implementation 2782 CONST struct lrecord_implementation
2783 *imp = XRECORD_LHEADER (object)->implementation; 2783 *imp = XRECORD_LHEADER_IMPLEMENTATION (object);
2784 if (imp->putprop) 2784 if (imp->putprop)
2785 { 2785 {
2786 if (! (imp->putprop) (object, propname, value)) 2786 if (! (imp->putprop) (object, propname, value))
2787 signal_simple_error ("Can't set property on object", propname); 2787 signal_simple_error ("Can't set property on object", propname);
2788 } 2788 }
2823 else if (STRINGP (object)) 2823 else if (STRINGP (object))
2824 retval = string_remprop (XSTRING (object), propname); 2824 retval = string_remprop (XSTRING (object), propname);
2825 else if (LRECORDP (object)) 2825 else if (LRECORDP (object))
2826 { 2826 {
2827 CONST struct lrecord_implementation 2827 CONST struct lrecord_implementation
2828 *imp = XRECORD_LHEADER (object)->implementation; 2828 *imp = XRECORD_LHEADER_IMPLEMENTATION (object);
2829 if (imp->remprop) 2829 if (imp->remprop)
2830 { 2830 {
2831 retval = (imp->remprop) (object, propname); 2831 retval = (imp->remprop) (object, propname);
2832 if (retval == -1) 2832 if (retval == -1)
2833 signal_simple_error ("Can't remove property from object", 2833 signal_simple_error ("Can't remove property from object",
2859 else if (STRINGP (object)) 2859 else if (STRINGP (object))
2860 return string_plist (XSTRING (object)); 2860 return string_plist (XSTRING (object));
2861 else if (LRECORDP (object)) 2861 else if (LRECORDP (object))
2862 { 2862 {
2863 CONST struct lrecord_implementation 2863 CONST struct lrecord_implementation
2864 *imp = XRECORD_LHEADER (object)->implementation; 2864 *imp = XRECORD_LHEADER_IMPLEMENTATION (object);
2865 if (imp->plist) 2865 if (imp->plist)
2866 return (imp->plist) (object); 2866 return (imp->plist) (object);
2867 else 2867 else
2868 signal_simple_error ("Object type has no properties", object); 2868 signal_simple_error ("Object type has no properties", object);
2869 } 2869 }
2926 } 2926 }
2927 #endif 2927 #endif
2928 else if (LRECORDP (o1)) 2928 else if (LRECORDP (o1))
2929 { 2929 {
2930 CONST struct lrecord_implementation 2930 CONST struct lrecord_implementation
2931 *imp1 = XRECORD_LHEADER (o1)->implementation, 2931 *imp1 = XRECORD_LHEADER_IMPLEMENTATION (o1),
2932 *imp2 = XRECORD_LHEADER (o2)->implementation; 2932 *imp2 = XRECORD_LHEADER_IMPLEMENTATION (o2);
2933 if (imp1 != imp2) 2933 if (imp1 != imp2)
2934 return 0; 2934 return 0;
2935 else if (imp1->equal == 0) 2935 else if (imp1->equal == 0)
2936 /* EQ-ness of the objects was noticed above */ 2936 /* EQ-ness of the objects was noticed above */
2937 return 0; 2937 return 0;
2998 } 2998 }
2999 #endif 2999 #endif
3000 else if (LRECORDP (o1)) 3000 else if (LRECORDP (o1))
3001 { 3001 {
3002 CONST struct lrecord_implementation 3002 CONST struct lrecord_implementation
3003 *imp1 = XRECORD_LHEADER (o1)->implementation, 3003 *imp1 = XRECORD_LHEADER_IMPLEMENTATION (o1),
3004 *imp2 = XRECORD_LHEADER (o2)->implementation; 3004 *imp2 = XRECORD_LHEADER_IMPLEMENTATION (o2);
3005 if (imp1 != imp2) 3005 if (imp1 != imp2)
3006 return 0; 3006 return 0;
3007 else if (imp1->equal == 0) 3007 else if (imp1->equal == 0)
3008 /* EQ-ness of the objects was noticed above */ 3008 /* EQ-ness of the objects was noticed above */
3009 return 0; 3009 return 0;