]> git.saurik.com Git - apt.git/commitdiff
support 'apt build-dep .' (aka: without /)
authorDavid Kalnischkies <david@kalnischkies.de>
Thu, 10 Nov 2016 15:36:04 +0000 (16:36 +0100)
committerDavid Kalnischkies <david@kalnischkies.de>
Thu, 10 Nov 2016 15:39:27 +0000 (16:39 +0100)
Reported-By: Christoph Berg (Myon) on IRC
apt-pkg/sourcelist.cc
test/integration/test-apt-get-build-dep-file

index 0da6878959f9cd6248761822dbc0b945764ab78d..df2e0b46d725c968310916e5d4f244e391000568 100644 (file)
@@ -619,7 +619,7 @@ bool pkgSourceList::AddVolatileFile(std::string const &File)
 void pkgSourceList::AddVolatileFiles(CommandLine &CmdL, std::vector<std::string> * 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<std::string>
 void pkgSourceList::AddVolatileFiles(CommandLine &CmdL, std::vector<const char*> * 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))
         {
index 233aed93460e9335d7963750b317a0dbb3a403ff..ed850fa402a7cac053d1351a55dc71596c46c126 100755 (executable)
@@ -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