On 27/02/15 08:04, Will Miles wrote: > This small refactor reduces the number of replications of the local > imeplementation of strndup. >
Typo ^ Fixed and pulled to my patchqueue. > Signed-off-by: Will Miles <wmi...@sgl.com> > --- > src/util/Makefile.am | 4 ++-- > src/util/pacsort.c | 23 +---------------------- > src/util/pactree.c | 24 ++---------------------- > src/util/util-common.c | 1 + > src/util/util-common.h | 1 + > 5 files changed, 7 insertions(+), 46 deletions(-) > create mode 120000 src/util/util-common.c > create mode 120000 src/util/util-common.h > > diff --git a/src/util/Makefile.am b/src/util/Makefile.am > index 25c025b..936d7ff 100644 > --- a/src/util/Makefile.am > +++ b/src/util/Makefile.am > @@ -20,10 +20,10 @@ AM_CFLAGS = -pedantic -D_GNU_SOURCE $(WARNING_CFLAGS) > cleanupdelta_SOURCES = cleanupdelta.c > cleanupdelta_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la > > -pacsort_SOURCES = pacsort.c > +pacsort_SOURCES = pacsort.c util-common.c > pacsort_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la > > -pactree_SOURCES = pactree.c > +pactree_SOURCES = pactree.c util-common.c > pactree_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la > > testpkg_SOURCES = testpkg.c > diff --git a/src/util/pacsort.c b/src/util/pacsort.c > index 02b9084..7081f5a 100644 > --- a/src/util/pacsort.c > +++ b/src/util/pacsort.c > @@ -25,6 +25,7 @@ > #include <string.h> > > #include <alpm.h> > +#include "util-common.h" > > #define DELIM ' ' > > @@ -69,28 +70,6 @@ static struct options_t { > char delim; > } opts; > > -#ifndef HAVE_STRNDUP > -/* A quick and dirty implementation derived from glibc */ > -static size_t strnlen(const char *s, size_t max) > -{ > - register const char *p; > - for(p = s; *p && max--; ++p); > - return (p - s); > -} > - > -char *strndup(const char *s, size_t n) > -{ > - size_t len = strnlen(s, n); > - char *new = (char *) malloc(len + 1); > - > - if(new == NULL) > - return NULL; > - > - new[len] = '\0'; > - return (char *)memcpy(new, s, len); > -} > -#endif > - > static struct buffer_t *buffer_new(size_t initial_size) > { > struct buffer_t *buf; > diff --git a/src/util/pactree.c b/src/util/pactree.c > index 67f456f..11ad7ca 100644 > --- a/src/util/pactree.c > +++ b/src/util/pactree.c > @@ -29,6 +29,8 @@ > #include <langinfo.h> > #endif > > +#include "util-common.h" > + > #define LINE_MAX 512 > > typedef struct tdepth { > @@ -121,28 +123,6 @@ int searchsyncs = 0; > const char *dbpath = DBPATH; > const char *configfile = CONFFILE; > > -#ifndef HAVE_STRNDUP > -/* A quick and dirty implementation derived from glibc */ > -static size_t strnlen(const char *s, size_t max) > -{ > - register const char *p; > - for(p = s; *p && max--; ++p); > - return (p - s); > -} > - > -char *strndup(const char *s, size_t n) > -{ > - size_t len = strnlen(s, n); > - char *new = (char *) malloc(len + 1); > - > - if(new == NULL) > - return NULL; > - > - new[len] = '\0'; > - return (char *)memcpy(new, s, len); > -} > -#endif > - > static size_t strtrim(char *str) > { > char *end, *pch = str; > diff --git a/src/util/util-common.c b/src/util/util-common.c > new file mode 120000 > index 0000000..a2f6c50 > --- /dev/null > +++ b/src/util/util-common.c > @@ -0,0 +1 @@ > +../common/util-common.c > \ No newline at end of file > diff --git a/src/util/util-common.h b/src/util/util-common.h > new file mode 120000 > index 0000000..3f0b982 > --- /dev/null > +++ b/src/util/util-common.h > @@ -0,0 +1 @@ > +../common/util-common.h > \ No newline at end of file >