diff options
author | Allan McRae <allan@archlinux.org> | 2013-01-03 11:49:33 +0100 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2013-01-04 12:49:37 +0100 |
commit | 27d9c25ee2fd6a03fb1ec1afdfbe105048875bae (patch) | |
tree | c5f6739e5f72a153fb358b2702965c39352ef630 /lib | |
parent | 965e1de2174148a7a6c0860a7514d9bb1969bf03 (diff) | |
download | pacman-27d9c25ee2fd6a03fb1ec1afdfbe105048875bae.tar.gz pacman-27d9c25ee2fd6a03fb1ec1afdfbe105048875bae.tar.xz |
Split common utility functions for libalpm and pacman
There is duplicated code in the util.c files in the libalpm and pacman
source code. Split this into a separate file so that it can be shared
via a symlink. This prevents code divergence between the two code bases.
Also, move mbasename and mdirname from pacman/util.c into util-common.c
in preparation for the following patch that uses them to add an extension
to pacsave files.
Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libalpm/Makefile.am | 1 | ||||
l--------- | lib/libalpm/util-common.c | 1 | ||||
l--------- | lib/libalpm/util-common.h | 1 | ||||
-rw-r--r-- | lib/libalpm/util.c | 33 | ||||
-rw-r--r-- | lib/libalpm/util.h | 5 |
5 files changed, 4 insertions, 37 deletions
diff --git a/lib/libalpm/Makefile.am b/lib/libalpm/Makefile.am index c935e2db..5cf66b91 100644 --- a/lib/libalpm/Makefile.am +++ b/lib/libalpm/Makefile.am @@ -53,6 +53,7 @@ libalpm_la_SOURCES = \ sync.h sync.c \ trans.h trans.c \ util.h util.c \ + util-common.h util-common.c \ version.c if !HAVE_LIBSSL diff --git a/lib/libalpm/util-common.c b/lib/libalpm/util-common.c new file mode 120000 index 00000000..cf965176 --- /dev/null +++ b/lib/libalpm/util-common.c @@ -0,0 +1 @@ +../../src/common/util-common.c
\ No newline at end of file diff --git a/lib/libalpm/util-common.h b/lib/libalpm/util-common.h new file mode 120000 index 00000000..988c2acc --- /dev/null +++ b/lib/libalpm/util-common.h @@ -0,0 +1 @@ +../../src/common/util-common.h
\ No newline at end of file diff --git a/lib/libalpm/util.c b/lib/libalpm/util.c index c33e32a3..f6e66321 100644 --- a/lib/libalpm/util.c +++ b/lib/libalpm/util.c @@ -1256,37 +1256,4 @@ void _alpm_alloc_fail(size_t size) fprintf(stderr, "alloc failure: could not allocate %zd bytes\n", size); } -#ifndef HAVE_STRNDUP -/* A quick and dirty implementation derived from glibc */ -/** Determines the length of a fixed-size string. - * @param s string to be measured - * @param max maximum number of characters to search for the string end - * @return length of s or max, whichever is smaller - */ -static size_t strnlen(const char *s, size_t max) -{ - register const char *p; - for(p = s; *p && max--; ++p); - return (p - s); -} - -/** Copies a string. - * Returned string needs to be freed - * @param s string to be copied - * @param n maximum number of characters to copy - * @return pointer to the new string on success, NULL on error - */ -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 - /* vim: set ts=2 sw=2 noet: */ diff --git a/lib/libalpm/util.h b/lib/libalpm/util.h index 734e0e5f..3a6b14af 100644 --- a/lib/libalpm/util.h +++ b/lib/libalpm/util.h @@ -28,6 +28,7 @@ #include "alpm.h" #include "package.h" /* alpm_pkg_t */ #include "handle.h" /* alpm_handle_t */ +#include "util-common.h" #include <stdio.h> #include <string.h> @@ -142,10 +143,6 @@ int _alpm_fnmatch(const void *pattern, const void *string); char *strsep(char **, const char *); #endif -#ifndef HAVE_STRNDUP -char *strndup(const char *s, size_t n); -#endif - /* check exported library symbols with: nm -C -D <lib> */ #define SYMEXPORT __attribute__((visibility("default"))) #define SYMHIDDEN __attribute__((visibility("internal"))) |