-/* Copy a single mb_datagroup_t and append it to another list. */
-static int datagroup_copy (mb_datagroup_t **dst, const mb_datagroup_t *src) /* {{{ */
-{
- mb_datagroup_t *tmp;
- int status;
-
- if ((dst == NULL) || (src == NULL))
- return (EINVAL);
-
- tmp = malloc (sizeof (*tmp));
- if (tmp == NULL)
- return (ENOMEM);
- memcpy (tmp, src, sizeof (*tmp));
- tmp->name = NULL;
- tmp->next = NULL;
-
- tmp->name = strdup (src->name);
- if (tmp->name == NULL)
- {
- sfree (tmp);
- return (ENOMEM);
- }
-
- status = datagroup_append (dst, tmp);
- if (status != 0)
- {
- sfree (tmp->name);
- sfree (tmp);
- return (status);
- }
-
- return (0);
-} /* }}} int datagroup_copy */
-