Kaynağa Gözat

print from their the visit came from

David Kalnischkies 15 yıl önce
ebeveyn
işleme
3b8d17737d
2 değiştirilmiş dosya ile 14 ekleme ve 12 silme
  1. 11 11
      apt-pkg/orderlist.cc
  2. 3 1
      apt-pkg/orderlist.h

+ 11 - 11
apt-pkg/orderlist.cc

@@ -152,7 +152,7 @@ bool pkgOrderList::DoRun()
    iterator OldEnd = End;
    iterator OldEnd = End;
    End = NList;
    End = NList;
    for (iterator I = List; I != OldEnd; ++I)
    for (iterator I = List; I != OldEnd; ++I)
-      if (VisitNode(PkgIterator(Cache,*I)) == false)
+      if (VisitNode(PkgIterator(Cache,*I), "DoRun") == false)
       {
       {
 	 End = OldEnd;
 	 End = OldEnd;
 	 return false;
 	 return false;
@@ -519,7 +519,7 @@ bool pkgOrderList::VisitProvides(DepIterator D,bool Critical)
       if (Critical == false && IsMissing(D.ParentPkg()) == true)
       if (Critical == false && IsMissing(D.ParentPkg()) == true)
 	 continue;
 	 continue;
 
 
-      if (VisitNode(Pkg) == false)
+      if (VisitNode(Pkg, "Provides") == false)
 	 return false;
 	 return false;
    }
    }
    return true;
    return true;
@@ -530,7 +530,7 @@ bool pkgOrderList::VisitProvides(DepIterator D,bool Critical)
 /* This is the core ordering routine. It calls the set dependency
 /* This is the core ordering routine. It calls the set dependency
    consideration functions which then potentialy call this again. Finite
    consideration functions which then potentialy call this again. Finite
    depth is achived through the colouring mechinism. */
    depth is achived through the colouring mechinism. */
-bool pkgOrderList::VisitNode(PkgIterator Pkg)
+bool pkgOrderList::VisitNode(PkgIterator Pkg, char const* from)
 {
 {
    // Looping or irrelevent.
    // Looping or irrelevent.
    // This should probably trancend not installed packages
    // This should probably trancend not installed packages
@@ -541,7 +541,7 @@ bool pkgOrderList::VisitNode(PkgIterator Pkg)
    if (Debug == true)
    if (Debug == true)
    {
    {
       for (int j = 0; j != Depth; j++) clog << ' ';
       for (int j = 0; j != Depth; j++) clog << ' ';
-      clog << "Visit " << Pkg.FullName() << endl;
+      clog << "Visit " << Pkg.FullName() << " from " << from << endl;
    }
    }
    
    
    Depth++;
    Depth++;
@@ -636,7 +636,7 @@ bool pkgOrderList::DepUnPackCrit(DepIterator D)
 	 if (CheckDep(D) == true)
 	 if (CheckDep(D) == true)
 	    continue;
 	    continue;
 
 
-	 if (VisitNode(D.ParentPkg()) == false)
+	 if (VisitNode(D.ParentPkg(), "UnPackCrit") == false)
 	    return false;
 	    return false;
       }
       }
       else
       else
@@ -811,7 +811,7 @@ bool pkgOrderList::DepUnPackDep(DepIterator D)
 	    if (IsMissing(D.ParentPkg()) == true)
 	    if (IsMissing(D.ParentPkg()) == true)
 	       continue;
 	       continue;
 	    
 	    
-	    if (VisitNode(D.ParentPkg()) == false)
+	    if (VisitNode(D.ParentPkg(), "UnPackDep-Parent") == false)
 	       return false;
 	       return false;
 	 }
 	 }
 	 else
 	 else
@@ -825,7 +825,7 @@ bool pkgOrderList::DepUnPackDep(DepIterator D)
 	       if (CheckDep(D) == true)
 	       if (CheckDep(D) == true)
 		 continue;
 		 continue;
 
 
-	       if (VisitNode(D.TargetPkg()) == false)
+	       if (VisitNode(D.TargetPkg(), "UnPackDep-Target") == false)
 		 return false;
 		 return false;
 	    }
 	    }
 	 }
 	 }
@@ -924,7 +924,7 @@ bool pkgOrderList::DepRemove(DepIterator D)
 			if (IsFlag(P, InList) == true &&
 			if (IsFlag(P, InList) == true &&
 			    IsFlag(P, AddPending) == false &&
 			    IsFlag(P, AddPending) == false &&
 			    Cache[P].InstallVer != 0 &&
 			    Cache[P].InstallVer != 0 &&
-			    VisitNode(P) == true)
+			    VisitNode(P, "Remove-P") == true)
 			{
 			{
 			   Flag(P, Immediate);
 			   Flag(P, Immediate);
 			   tryFixDeps = false;
 			   tryFixDeps = false;
@@ -960,7 +960,7 @@ bool pkgOrderList::DepRemove(DepIterator D)
 		  if (IsFlag(F.TargetPkg(), InList) == true &&
 		  if (IsFlag(F.TargetPkg(), InList) == true &&
 		      IsFlag(F.TargetPkg(), AddPending) == false &&
 		      IsFlag(F.TargetPkg(), AddPending) == false &&
 		      Cache[F.TargetPkg()].InstallVer != 0 &&
 		      Cache[F.TargetPkg()].InstallVer != 0 &&
-		      VisitNode(F.TargetPkg()) == true)
+		      VisitNode(F.TargetPkg(), "Remove-Target") == true)
 		  {
 		  {
 		     Flag(F.TargetPkg(), Immediate);
 		     Flag(F.TargetPkg(), Immediate);
 		     tryFixDeps = false;
 		     tryFixDeps = false;
@@ -974,7 +974,7 @@ bool pkgOrderList::DepRemove(DepIterator D)
 			if (IsFlag(Prv.OwnerPkg(), InList) == true &&
 			if (IsFlag(Prv.OwnerPkg(), InList) == true &&
 			    IsFlag(Prv.OwnerPkg(), AddPending) == false &&
 			    IsFlag(Prv.OwnerPkg(), AddPending) == false &&
 			    Cache[Prv.OwnerPkg()].InstallVer != 0 &&
 			    Cache[Prv.OwnerPkg()].InstallVer != 0 &&
-			    VisitNode(Prv.OwnerPkg()) == true)
+			    VisitNode(Prv.OwnerPkg(), "Remove-Owner") == true)
 			{
 			{
 			   Flag(Prv.OwnerPkg(), Immediate);
 			   Flag(Prv.OwnerPkg(), Immediate);
 			   tryFixDeps = false;
 			   tryFixDeps = false;
@@ -994,7 +994,7 @@ bool pkgOrderList::DepRemove(DepIterator D)
 	 if (IsMissing(D.ParentPkg()) == true)
 	 if (IsMissing(D.ParentPkg()) == true)
 	    continue;
 	    continue;
 	 
 	 
-	 if (VisitNode(D.ParentPkg()) == false)
+	 if (VisitNode(D.ParentPkg(), "Remove-Parent") == false)
 	    return false;
 	    return false;
       }
       }
    
    

+ 3 - 1
apt-pkg/orderlist.h

@@ -18,6 +18,7 @@
 
 
 
 
 #include <apt-pkg/pkgcache.h>
 #include <apt-pkg/pkgcache.h>
+#include <apt-pkg/macros.h>
 
 
 class pkgDepCache;
 class pkgDepCache;
 class pkgOrderList : protected pkgCache::Namespace
 class pkgOrderList : protected pkgCache::Namespace
@@ -45,7 +46,8 @@ class pkgOrderList : protected pkgCache::Namespace
    bool Debug;
    bool Debug;
    
    
    // Main visit function
    // Main visit function
-   bool VisitNode(PkgIterator Pkg);
+   __deprecated bool VisitNode(PkgIterator Pkg) { return VisitNode(Pkg, "UNKNOWN"); };
+   bool VisitNode(PkgIterator Pkg, char const* from);
    bool VisitDeps(DepFunc F,PkgIterator Pkg);
    bool VisitDeps(DepFunc F,PkgIterator Pkg);
    bool VisitRDeps(DepFunc F,PkgIterator Pkg);
    bool VisitRDeps(DepFunc F,PkgIterator Pkg);
    bool VisitRProvides(DepFunc F,VerIterator Ver);
    bool VisitRProvides(DepFunc F,VerIterator Ver);