]> git.saurik.com Git - apt.git/blobdiff - cmdline/apt-get.cc
* merged the NMU from Franz Pop, fixed armeb problem (#333599)
[apt.git] / cmdline / apt-get.cc
index 82f2021034b082df9603416385c044ef6388a393..48b21a31f8eb8fd801ba70e118bca56891d04fd0 100644 (file)
@@ -66,7 +66,7 @@ ostream c0out(0);
 ostream c1out(0);
 ostream c2out(0);
 ofstream devnull("/dev/null");
-unsigned int ScreenWidth = 80;
+unsigned int ScreenWidth = 80 - 1; /* - 1 for the cursor */
 
 // class CacheFile - Cover class for some dependency cache functions   /*{{{*/
 // ---------------------------------------------------------------------
@@ -1191,22 +1191,16 @@ pkgSrcRecords::Parser *FindSrc(const char *Name,pkgRecords &Recs,
    string TmpSrc = Name;
    string::size_type Slash = TmpSrc.rfind('=');
 
-   // honor pining and default release
+   // honor default release
    string DefRel = _config->Find("APT::Default-Release");
-
    pkgCache::PkgIterator Pkg = Cache.FindPkg(TmpSrc);
-   pkgCache::VerIterator CandVer = Cache.GetCandidateVer(Pkg);  
-   if(Pkg.end() == false) 
-   {
-      VerTag = CandVer.VerStr();
-   }
 
    if (Slash != string::npos)
    {
       VerTag = string(TmpSrc.begin() + Slash + 1,TmpSrc.end());
       TmpSrc = string(TmpSrc.begin(),TmpSrc.begin() + Slash);
    } 
-   else  if(DefRel.empty() == false) 
+   else  if(!Pkg.end() && DefRel.empty() == false)
    {
       // we have a default release, try to locate the pkg. we do it like
       // this because GetCandidateVer() will not "downgrade", that means
@@ -1227,7 +1221,7 @@ pkgSrcRecords::Parser *FindSrc(const char *Name,pkgRecords &Recs,
            continue;
            
            //std::cout << VF.File().Archive() << std::endl;
-           if(VF.File().Archive() == DefRel
+           if(VF.File().Archive() && (VF.File().Archive() == DefRel)
            {
               VerTag = Ver.VerStr();
               break;
@@ -1243,9 +1237,10 @@ pkgSrcRecords::Parser *FindSrc(const char *Name,pkgRecords &Recs,
    {
       if (Pkg.end() == false)
       {
-        if (CandVer.end() == false)
+        pkgCache::VerIterator Ver = Cache.GetCandidateVer(Pkg);
+        if (Ver.end() == false)
         {
-           pkgRecords::Parser &Parse = Recs.Lookup(CandVer.FileList());
+           pkgRecords::Parser &Parse = Recs.Lookup(Ver.FileList());
            Src = Parse.SourcePkg();
         }
       }   
@@ -1300,10 +1295,7 @@ pkgSrcRecords::Parser *FindSrc(const char *Name,pkgRecords &Recs,
       }      
    }
    
-   if (Last == 0)
-      return 0;
-   
-   if (Last->Jump(Offset) == false)
+   if (Last == 0 || Last->Jump(Offset) == false)
       return 0;
    
    return Last;