diff options
author | Xavier Chantry <shiningxc@gmail.com> | 2008-05-30 08:52:27 +0200 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2008-06-04 23:25:27 +0200 |
commit | 0966c33a72ce172526762ac988ee6edbbba07b52 (patch) | |
tree | afcac95b66d0d9e653afe0c9710888768b2e4442 /lib/libalpm/add.c | |
parent | fe781e4ce4ace4410bbc8bec441140cfc323d262 (diff) | |
download | pacman-0966c33a72ce172526762ac988ee6edbbba07b52.tar.gz pacman-0966c33a72ce172526762ac988ee6edbbba07b52.tar.xz |
Get rid of double / in database paths.
Errors like the following one happen regularly (for unknown reasons...) :
error: could not open file /var/lib/pacman/local//glibc-2.7-9/depends: No
such file or directory
Anyway, every time an user reported an error like that, it always seemed
like he thought the error was caused by the double /, which is obviously
wrong.
Since db->path always include a trailing /, there is no need to add one when
concatenating paths in be_files.c or add.c.
Additionally, some static strings were switched to dynamic.
And the computation of the "dbpath"/"pkgname"-"pkgversion" was refactored
in db_read, db_write and db_remove with a get_pkgpath static function.
Signed-off-by: Xavier Chantry <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'lib/libalpm/add.c')
-rw-r--r-- | lib/libalpm/add.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/libalpm/add.c b/lib/libalpm/add.c index 03698622..6cf865ab 100644 --- a/lib/libalpm/add.c +++ b/lib/libalpm/add.c @@ -289,12 +289,12 @@ static int extract_single_file(struct archive *archive, if(strcmp(entryname, ".INSTALL") == 0) { /* the install script goes inside the db */ - snprintf(filename, PATH_MAX, "%s/%s-%s/install", db->path, + snprintf(filename, PATH_MAX, "%s%s-%s/install", db->path, newpkg->name, newpkg->version); archive_entry_set_mode(entry, 0644); } else if(strcmp(entryname, ".CHANGELOG") == 0) { /* the changelog goes inside the db */ - snprintf(filename, PATH_MAX, "%s/%s-%s/changelog", db->path, + snprintf(filename, PATH_MAX, "%s%s-%s/changelog", db->path, newpkg->name, newpkg->version); archive_entry_set_mode(entry, 0644); } else if(*entryname == '.') { |