[pacman-dev] [PATCH 1/5] util: Use util-common for strndup in pacsort and pactree
Allan McRae
allan at archlinux.org
Fri Feb 27 19:50:56 UTC 2015
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 <wmiles at 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
>
More information about the pacman-dev
mailing list