summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorWill Miles <wmiles@sgl.com>2015-02-27 20:43:23 +0100
committerAllan McRae <allan@archlinux.org>2015-03-03 07:54:17 +0100
commitbb94729c098f21ae850044a9201c1d5b92baea1f (patch)
tree2f0ffe7f158bf4a8c458ebc78cc3cf35f7f63d4d /src
parent8f92fe47a7c4d999271bc28ffbbeeea50d686813 (diff)
downloadpacman-bb94729c098f21ae850044a9201c1d5b92baea1f.tar.gz
pacman-bb94729c098f21ae850044a9201c1d5b92baea1f.tar.xz
util: Use util-common for strndup in pacsort and pactree
This small refactor reduces the number of replications of the local imeplementation of strndup. Signed-off-by: Will Miles <wmiles@sgl.com> Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'src')
-rw-r--r--src/util/Makefile.am4
-rw-r--r--src/util/pacsort.c23
-rw-r--r--src/util/pactree.c24
l---------src/util/util-common.c1
l---------src/util/util-common.h1
5 files changed, 7 insertions, 46 deletions
diff --git a/src/util/Makefile.am b/src/util/Makefile.am
index 25c025b5..936d7ffb 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 d864fdb9..9d248fad 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 67f456fe..11ad7cae 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 00000000..a2f6c508
--- /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 00000000..3f0b9826
--- /dev/null
+++ b/src/util/util-common.h
@@ -0,0 +1 @@
+../common/util-common.h \ No newline at end of file