<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><DIV><BR><DIV><DIV>On Sep 22, 2006, at 10:07 PM, Koen van der Drift wrote:</DIV><BR><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">I am not familiar with GNUStep, but from what you are writing, we need to start using macros for various functions?</DIV></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV>Yes, it looks to be straight forward as most use of CoreFoundation appears to be working with arrays.  So I've created an internal header file with macros like this.</DIV><DIV><BR><BLOCKQUOTE type="cite"></BLOCKQUOTE></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#236E25" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">// Variable declarations</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#683821" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">#define DECLARE_INDEX(variable) CFIndex variable</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#236E25" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">// Range operations</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#683821" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">#define MAKE_RANGE(location, length) \</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#683821" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">     </SPAN></FONT><FONT class="Apple-style-span" color="#683821" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">CFRangeMake( (location), (length) )</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#236E25" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">// Array operations</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#683821" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">#define ARRAY_GET_VALUE_AT_INDEX(array, index) \</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#683821" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">     </SPAN></FONT><FONT class="Apple-style-span" color="#683821" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">CFArrayGetValueAtIndex( (CFMutableArrayRef) (array), (index) )</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#683821" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">#define ARRAY_APPEND_VALUE(array, object) \</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#683821" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">     </SPAN></FONT><FONT class="Apple-style-span" color="#683821" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">CFArrayAppendValue ( (CFMutableArrayRef) (array), (object) )</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#683821" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">#define ARRAY_INSERT_VALUE_AT_INDEX(array, index, object) \</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#683821" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">     </SPAN></FONT><FONT class="Apple-style-span" color="#683821" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">CFArrayInsertValueAtIndex ( (CFMutableArrayRef) (array), (index), (object) )</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#683821" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">#define ARRAY_RANGE_CONTAINS_VALUE(array, range, object) \</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#683821" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">     </SPAN></FONT><FONT class="Apple-style-span" color="#683821" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">CFArrayContainsValue ( (CFArrayRef) (array), (range), (object) )</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#683821" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">#define ARRAY_GET_COUNT(array) \</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#683821" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">     </SPAN></FONT><FONT class="Apple-style-span" color="#683821" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">CFArrayGetCount ( (CFArrayRef) (array) )</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#236E25" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">// Set operations</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#683821" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">#define SET_CONTAINS_VALUE(set, object) \</SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT class="Apple-style-span" color="#683821" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">     </SPAN></FONT><FONT class="Apple-style-span" color="#683821" face="Monaco" size="2"><SPAN class="Apple-style-span" style="font-size: 10px;">CFSetContainsValue( (CFSetRef) (set), (object));</SPAN></FONT></DIV><DIV><BR class="khtml-block-placeholder"></DIV><BR></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>cheers</DIV><DIV>Scott</DIV><DIV><BR class="khtml-block-placeholder"></DIV></BODY></HTML>