Skip to content

[FEATURE REQUEST + PATCH] utstring_clone() #161

@silvioprog

Description

@silvioprog

Hi.

It would be nice to provide a macro for list cloning, something like this code below:

#ifdef __GNUC__

#define utstring_clone(src)               \
({                                        \
  UT_string *dst = NULL;                  \
  if ((src)->d != NULL) {                 \
    utstring_new(dst);                    \
    (dst)->n = (src)->n;                  \
    (dst)->i = (src)->i;                  \
    memcpy((dst)->d, (src)->d, (src)->n); \
  }                                       \
  dst;                                    \
})

#else

UT_string *utstring_clone(UT_string *src) {
  UT_string *dst = NULL;
  if (src->d != NULL) {
    utstring_new(dst);
    dst->n = src->n;
    dst->i = src->i;
    memcpy(dst->d, src->d, src->n);
  }
  return dst;
}

#endif

What do you thing? If you agree this code I can create a pull request. :-)

Thank you!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions