diff --git a/SOPE/NGCards/CardElement.h b/SOPE/NGCards/CardElement.h index d4fd0315a..ebd89f1e4 100644 --- a/SOPE/NGCards/CardElement.h +++ b/SOPE/NGCards/CardElement.h @@ -106,4 +106,22 @@ @end +#define IS_EQUAL(a,b,sel) \ + _iCalSafeCompareObjects (a, b, @selector(sel)) + +static __inline__ BOOL _iCalSafeCompareObjects(id a, id b, SEL comparator) +{ + id va = a; + id vb = b; + BOOL (*compm)(id, SEL, id); + + if((!va && vb) || (va && !vb)) + return NO; + else if(va == vb) + return YES; + compm = (BOOL (*)( id, SEL, id)) [va methodForSelector: comparator]; + + return compm(va, comparator, vb); +} + #endif /* CARDELEMENT_H */ diff --git a/SOPE/NGCards/ChangeLog b/SOPE/NGCards/ChangeLog index 75dbaa41c..0d22b7c97 100644 --- a/SOPE/NGCards/ChangeLog +++ b/SOPE/NGCards/ChangeLog @@ -1,5 +1,8 @@ 2007-06-07 Wolfgang Sourdeau + * CardElement.h: moved IS_EQUAL macro from removed module + "common.h". + * CardGroup+iCal.[hm]: removed category module. 2007-04-27 Wolfgang Sourdeau