292 |
292 |
293 return tag; |
293 return tag; |
294 } |
294 } |
295 |
295 |
296 CxList* parse_macos_taglist(const char *buf, size_t length) { |
296 CxList* parse_macos_taglist(const char *buf, size_t length) { |
297 CxList *taglist = cxLinkedListCreate(CX_STORE_POINTERS); |
297 CxList *taglist = cxLinkedListCreateSimple(CX_STORE_POINTERS); |
298 taglist->simple_destructor = (cx_destructor_func)free_dav_tag; |
298 taglist->simple_destructor = (cx_destructor_func)free_dav_tag; |
299 |
299 |
300 CFDataRef data = CFDataCreateWithBytesNoCopy( |
300 CFDataRef data = CFDataCreateWithBytesNoCopy( |
301 kCFAllocatorDefault, |
301 kCFAllocatorDefault, |
302 (const UInt8*)buf, |
302 (const UInt8*)buf, |
324 |
324 |
325 return taglist; |
325 return taglist; |
326 } |
326 } |
327 |
327 |
328 CxBuffer* create_macos_taglist(CxList *tags) { |
328 CxBuffer* create_macos_taglist(CxList *tags) { |
329 size_t count = ucx_list_size(tags); |
329 size_t count = tags->size; |
330 if(count == 0) { |
330 if(count == 0) { |
331 return NULL; |
331 return NULL; |
332 } |
332 } |
333 |
333 |
334 CFStringRef *strings = calloc(sizeof(CFStringRef), count); |
334 CFStringRef *strings = calloc(sizeof(CFStringRef), count); |
335 int i = 0; |
335 int i = 0; |
336 CxIterator i = cxListIterator(tags); |
336 CxIterator iter = cxListIterator(tags); |
337 cx_foreach(DavTag*, tag, i) { |
337 cx_foreach(DavTag*, tag, iter) { |
338 CFStringRef str = NULL; |
338 CFStringRef str = NULL; |
339 if(tag->color) { |
339 if(tag->color) { |
340 sstr_t s = sstrcat(3, sstr(tag->name), S("\n"), sstr(tag->color)); |
340 cxmutstr s = cx_strcat(3, cx_mutstr(tag->name), CX_STR("\n"), cx_str(tag->color)); |
341 str = CFStringCreateWithCString(kCFAllocatorDefault, s.ptr, kCFStringEncodingUTF8); |
341 str = CFStringCreateWithCString(kCFAllocatorDefault, s.ptr, kCFStringEncodingUTF8); |
342 free(s.ptr); |
342 free(s.ptr); |
343 } else { |
343 } else { |
344 str = CFStringCreateWithCString(kCFAllocatorDefault, tag->name, kCFStringEncodingUTF8); |
344 str = CFStringCreateWithCString(kCFAllocatorDefault, tag->name, kCFStringEncodingUTF8); |
345 } |
345 } |