Mercurial > pidgin
view libpurple/protocols/zephyr/ZFmtList.c @ 25355:ba8f51cb3691
Support XEP-0084 (User Avatar) v1.1 alongside v0.12
Publish avatars to both namespaces and support receiving metadata
notifications from either one. The fetching of our own avatars needs to be
fixed to fetch the metdata for both namespaces.
Closes #7732.
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Mon, 26 Jan 2009 03:52:05 +0000 |
parents | 5fe8042783c1 |
children | a8cc50c2279f |
line wrap: on
line source
/* This file is part of the Project Athena Zephyr Notification System. * It contains source for the ZFormatNoticeList function. * * Created by: Robert French * * Copyright (c) 1987,1991 by the Massachusetts Institute of Technology. * For copying and distribution information, see the file * "mit-copyright.h". */ #include "internal.h" Code_t ZFormatNoticeList(notice, list, nitems, buffer, ret_len, cert_routine) ZNotice_t *notice; register char **list; int nitems; char **buffer; int *ret_len; Z_AuthProc cert_routine; { char header[Z_MAXHEADERLEN]; register int i; int hdrlen, size; char *ptr; Code_t retval; if ((retval = Z_FormatHeader(notice, header, sizeof(header), &hdrlen, cert_routine)) != ZERR_NONE) return (retval); size = 0; for (i=0;i<nitems;i++) size += strlen(list[i])+1; *ret_len = hdrlen+size; /* *ret_len can never be zero here, no need to worry about malloc(0). */ if (!(*buffer = (char *) malloc((unsigned)*ret_len))) return (ENOMEM); (void) memcpy(*buffer, header, hdrlen); ptr = *buffer+hdrlen; for (;nitems;nitems--, list++) { i = strlen(*list)+1; (void) memcpy(ptr, *list, i); ptr += i; } return (ZERR_NONE); }