diff options
author | Allan McRae <allan@archlinux.org> | 2013-01-03 20:49:33 +1000 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2013-01-04 21:49:37 +1000 |
commit | 27d9c25ee2fd6a03fb1ec1afdfbe105048875bae (patch) | |
tree | c5f6739e5f72a153fb358b2702965c39352ef630 /src/pacman | |
parent | 965e1de2174148a7a6c0860a7514d9bb1969bf03 (diff) |
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 'src/pacman')
-rw-r--r-- | src/pacman/Makefile.am | 3 | ||||
l--------- | src/pacman/util-common.c | 1 | ||||
l--------- | src/pacman/util-common.h | 1 | ||||
-rw-r--r-- | src/pacman/util.c | 50 | ||||
-rw-r--r-- | src/pacman/util.h | 8 |
5 files changed, 6 insertions, 57 deletions
diff --git a/src/pacman/Makefile.am b/src/pacman/Makefile.am index 311f7c5b..ed515739 100644 --- a/src/pacman/Makefile.am +++ b/src/pacman/Makefile.am @@ -38,7 +38,8 @@ pacman_SOURCES = \ sync.c \ callback.h callback.c \ upgrade.c \ - util.h util.c + util.h util.c \ + util-common.h util-common.c LDADD = $(LTLIBINTL) $(top_builddir)/lib/libalpm/.libs/libalpm.la diff --git a/src/pacman/util-common.c b/src/pacman/util-common.c new file mode 120000 index 00000000..a2f6c508 --- /dev/null +++ b/src/pacman/util-common.c @@ -0,0 +1 @@ +../common/util-common.c
\ No newline at end of file diff --git a/src/pacman/util-common.h b/src/pacman/util-common.h new file mode 120000 index 00000000..3f0b9826 --- /dev/null +++ b/src/pacman/util-common.h @@ -0,0 +1 @@ +../common/util-common.h
\ No newline at end of file diff --git a/src/pacman/util.c b/src/pacman/util.c index 81eec67d..014be1fc 100644 --- a/src/pacman/util.c +++ b/src/pacman/util.c @@ -210,56 +210,6 @@ int rmrf(const char *path) } } -/** Parse the basename of a program from a path. -* @param path path to parse basename from -* -* @return everything following the final '/' -*/ -const char *mbasename(const char *path) -{ - const char *last = strrchr(path, '/'); - if(last) { - return last + 1; - } - return path; -} - -/** Parse the dirname of a program from a path. -* The path returned should be freed. -* @param path path to parse dirname from -* -* @return everything preceding the final '/' -*/ -char *mdirname(const char *path) -{ - char *ret, *last; - - /* null or empty path */ - if(path == NULL || path == '\0') { - return strdup("."); - } - - if((ret = strdup(path)) == NULL) { - return NULL; - } - - last = strrchr(ret, '/'); - - if(last != NULL) { - /* we found a '/', so terminate our string */ - if(last == ret) { - /* return "/" for root */ - last++; - } - *last = '\0'; - return ret; - } - - /* no slash found */ - free(ret); - return strdup("."); -} - /* output a string, but wrap words properly with a specified indentation */ void indentprint(const char *str, unsigned short indent, unsigned short cols) diff --git a/src/pacman/util.h b/src/pacman/util.h index 0c58a470..c38291a9 100644 --- a/src/pacman/util.h +++ b/src/pacman/util.h @@ -26,6 +26,8 @@ #include <alpm_list.h> +#include "util-common.h" + #ifdef ENABLE_NLS #include <libintl.h> /* here so it doesn't need to be included elsewhere */ /* define _() as shortcut for gettext() */ @@ -49,8 +51,6 @@ int needs_root(void); int check_syncdbs(size_t need_repos, int check_valid); unsigned short getcols(int fd); int rmrf(const char *path); -const char *mbasename(const char *path); -char *mdirname(const char *path); void indentprint(const char *str, unsigned short indent, unsigned short cols); size_t strtrim(char *str); char *strreplace(const char *str, const char *needle, const char *replace); @@ -80,10 +80,6 @@ int pm_asprintf(char **string, const char *format, ...); int pm_vfprintf(FILE *stream, alpm_loglevel_t level, const char *format, va_list args) __attribute__((format(printf,3,0))); int pm_vasprintf(char **string, alpm_loglevel_t level, const char *format, va_list args) __attribute__((format(printf,3,0))); -#ifndef HAVE_STRNDUP -char *strndup(const char *s, size_t n); -#endif - #endif /* _PM_UTIL_H */ /* vim: set ts=2 sw=2 noet: */ |