소스 검색

react to trig-pend only if we have nothing else to do

If a package is triggered dpkg frequently issues two messages about it
causing us to make a note about it both times which messes up our
planned dpkg actions view. Adding these actions if we have nothing else
planned fixes this and should still be correct as those planned actions
will deal with the triggering just fine and we avoid strange problems
like a package triggered before its removed…
David Kalnischkies 9 년 전
부모
커밋
066d4a5bab
1개의 변경된 파일12개의 추가작업 그리고 12개의 파일을 삭제
  1. 12 12
      apt-pkg/deb/dpkgpm.cc

+ 12 - 12
apt-pkg/deb/dpkgpm.cc

@@ -715,18 +715,7 @@ void pkgDPkgPM::ProcessDpkgStatusLine(char *line)
    if (prefix == "status")
    {
       std::vector<struct DpkgState> &states = PackageOps[pkgname];
-      if (action == "triggers-pending")
-      {
-	 if (Debug == true)
-	    std::clog << "(parsed from dpkg) pkg: " << pkgname
-	       << " action: " << action << " (prefix 2 to "
-	       << PackageOpsDone[pkgname] << " of " << states.size() << ")" << endl;
-
-	 states.insert(states.begin(), {"installed", N_("Installed %s")});
-	 states.insert(states.begin(), {"half-configured", N_("Configuring %s")});
-	 PackagesTotal += 2;
-      }
-      else if(PackageOpsDone[pkgname] < states.size())
+      if(PackageOpsDone[pkgname] < states.size())
       {
 	 char const * next_action = states[PackageOpsDone[pkgname]].state;
 	 if (next_action)
@@ -793,6 +782,17 @@ void pkgDPkgPM::ProcessDpkgStatusLine(char *line)
 	    }
 	 }
       }
+      else if (action == "triggers-pending")
+      {
+	 if (Debug == true)
+	    std::clog << "(parsed from dpkg) pkg: " << pkgname
+	       << " action: " << action << " (prefix 2 to "
+	       << PackageOpsDone[pkgname] << " of " << states.size() << ")" << endl;
+
+	 states.insert(states.begin(), {"installed", N_("Installed %s")});
+	 states.insert(states.begin(), {"half-configured", N_("Configuring %s")});
+	 PackagesTotal += 2;
+      }
    }
 }
 									/*}}}*/