From ff02180ca8abeec0cc1913abf4ad6697d7b25a36 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 10 Nov 2016 16:36:04 +0100 Subject: support 'apt build-dep .' (aka: without /) Reported-By: Christoph Berg (Myon) on IRC --- apt-pkg/sourcelist.cc | 4 ++-- test/integration/test-apt-get-build-dep-file | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/apt-pkg/sourcelist.cc b/apt-pkg/sourcelist.cc index 0da687895..df2e0b46d 100644 --- a/apt-pkg/sourcelist.cc +++ b/apt-pkg/sourcelist.cc @@ -619,7 +619,7 @@ bool pkgSourceList::AddVolatileFile(std::string const &File) void pkgSourceList::AddVolatileFiles(CommandLine &CmdL, std::vector * const VolatileCmdL)/*{{{*/ { std::remove_if(CmdL.FileList + 1, CmdL.FileList + 1 + CmdL.FileSize(), [&](char const * const I) { - if (I != nullptr && (I[0] == '/' || (I[0] == '.' && ((I[1] == '.' && I[2] == '/') || I[1] == '/')))) + if (I != nullptr && (I[0] == '/' || (I[0] == '.' && (I[1] == '\0' || (I[1] == '.' && (I[2] == '\0' || I[2] == '/')) || I[1] == '/')))) { if (AddVolatileFile(I, VolatileCmdL)) ; @@ -633,7 +633,7 @@ void pkgSourceList::AddVolatileFiles(CommandLine &CmdL, std::vector void pkgSourceList::AddVolatileFiles(CommandLine &CmdL, std::vector * const VolatileCmdL) { std::remove_if(CmdL.FileList + 1, CmdL.FileList + 1 + CmdL.FileSize(), [&](char const * const I) { - if (I != nullptr && (I[0] == '/' || (I[0] == '.' && ((I[1] == '.' && I[2] == '/') || I[1] == '/')))) + if (I != nullptr && (I[0] == '/' || (I[0] == '.' && (I[1] == '\0' || (I[1] == '.' && (I[2] == '\0' || I[2] == '/')) || I[1] == '/')))) { if (AddVolatileFile(I)) { diff --git a/test/integration/test-apt-get-build-dep-file b/test/integration/test-apt-get-build-dep-file index 233aed934..ed850fa40 100755 --- a/test/integration/test-apt-get-build-dep-file +++ b/test/integration/test-apt-get-build-dep-file @@ -141,6 +141,14 @@ cd downloaded testsuccess aptget build-dep --simulate ../foo-1.0 testsuccess aptget build-dep --simulate "$(readlink -f ../foo-1.0)" cd .. +cd foo-1.0 +testsuccess aptget build-dep --simulate './' +testsuccess aptget build-dep --simulate '.' +cd debian +testsuccess aptget build-dep --simulate './../' +testsuccess aptget build-dep --simulate '../' +testsuccess aptget build-dep --simulate '..' +cd ../.. testfailureequal 'E: Must specify at least one package to check builddeps for' aptget build-dep testfailureequal 'E: No architecture information available for armel. See apt.conf(5) APT::Architectures for setup' aptget build-dep --simulate ./foo-1.0 -a armel -- cgit v1.2.3-70-g09d2