Просмотр исходного кода

* merged with apt--mvo--0 and apt--ddtp--0

Patches applied:

 * michael.vogt@ubuntu.com--2005/apt--ddtp--0--patch-19
   * ABI/API change: add "VerIterator::TranslatedDescription()" method to make the life of the api user easier

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-78
   * fix a incorrect example

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-79
   * revert patch from patch-59, causes all sorts of trouble

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-80
   * fix changelog

 * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-81
   * be extra carefull in cmdline/apt-get.cc:FindSrc() and check VF.File() for NULL
Michael Vogt лет назад: 21
Родитель
Сommit
05d82b584c
9 измененных файлов с 42 добавлено и 16 удалено
  1. 1 0
      apt-pkg/cacheiterators.h
  2. 19 0
      apt-pkg/pkgcache.cc
  3. 1 4
      apt-pkg/pkgrecords.cc
  4. 0 1
      apt-pkg/pkgrecords.h
  5. 1 7
      cmdline/apt-cache.cc
  6. 5 1
      cmdline/apt-get.cc
  7. 1 1
      configure.in
  8. 13 1
      debian/changelog
  9. 1 1
      doc/apt_preferences.5.xml

+ 1 - 0
apt-pkg/cacheiterators.h

@@ -129,6 +129,7 @@ class pkgCache::VerIterator
    inline const char *Arch() const {return Ver->Arch == 0?0:Owner->StrP + Ver->Arch;};
    inline const char *Arch() const {return Ver->Arch == 0?0:Owner->StrP + Ver->Arch;};
    inline PkgIterator ParentPkg() const {return PkgIterator(*Owner,Owner->PkgP + Ver->ParentPkg);};
    inline PkgIterator ParentPkg() const {return PkgIterator(*Owner,Owner->PkgP + Ver->ParentPkg);};
    inline DescIterator DescriptionList() const;
    inline DescIterator DescriptionList() const;
+   DescIterator TranslatedDescription() const;
    inline DepIterator DependsList() const;
    inline DepIterator DependsList() const;
    inline PrvIterator ProvidesList() const;
    inline PrvIterator ProvidesList() const;
    inline VerFileIterator FileList() const;
    inline VerFileIterator FileList() const;

+ 19 - 0
apt-pkg/pkgcache.cc

@@ -26,6 +26,7 @@
 #endif 
 #endif 
 
 
 #include <apt-pkg/pkgcache.h>
 #include <apt-pkg/pkgcache.h>
+#include <apt-pkg/indexfile.h>
 #include <apt-pkg/version.h>
 #include <apt-pkg/version.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/strutl.h>
@@ -43,6 +44,7 @@
 
 
 using std::string;
 using std::string;
 
 
+
 // Cache::Header::Header - Constructor					/*{{{*/
 // Cache::Header::Header - Constructor					/*{{{*/
 // ---------------------------------------------------------------------
 // ---------------------------------------------------------------------
 /* Simply initialize the header */
 /* Simply initialize the header */
@@ -608,3 +610,20 @@ string pkgCache::PkgFileIterator::RelStr()
    return Res;
    return Res;
 }
 }
 									/*}}}*/
 									/*}}}*/
+// VerIterator::TranslatedDescription - Return the a DescIter for locale/*{{{*/
+// ---------------------------------------------------------------------
+/* return a DescIter for the current locale or the default if none is 
+ * found
+ */
+pkgCache::DescIterator pkgCache::VerIterator::TranslatedDescription() const
+{
+   pkgCache::DescIterator DescDefault = DescriptionList();
+   pkgCache::DescIterator Desc = DescDefault;
+   for (; Desc.end() == false; Desc++)
+      if (pkgIndexFile::LanguageCode() == Desc.LanguageCode())
+	 break;
+   if (Desc.end() == true) Desc = DescDefault;
+   return Desc;
+};
+
+									/*}}}*/

+ 1 - 4
apt-pkg/pkgrecords.cc

@@ -42,9 +42,6 @@ pkgRecords::pkgRecords(pkgCache &Cache) : Cache(Cache), Files(0)
       if (Files[I->ID] == 0)
       if (Files[I->ID] == 0)
 	 return;
 	 return;
    }   
    }   
-   // We store that to make sure that the destructor won't segfault,
-   // even if the Cache object was destructed before this instance.
-   PackageFileCount = Cache.HeaderP->PackageFileCount;
 }
 }
 									/*}}}*/
 									/*}}}*/
 // Records::~pkgRecords - Destructor					/*{{{*/
 // Records::~pkgRecords - Destructor					/*{{{*/
@@ -52,7 +49,7 @@ pkgRecords::pkgRecords(pkgCache &Cache) : Cache(Cache), Files(0)
 /* */
 /* */
 pkgRecords::~pkgRecords()
 pkgRecords::~pkgRecords()
 {
 {
-   for (unsigned I = 0; I != PackageFileCount; I++)
+   for (unsigned I = 0; I != Cache.HeaderP->PackageFileCount; I++)
       delete Files[I];
       delete Files[I];
    delete [] Files;
    delete [] Files;
 }
 }

+ 0 - 1
apt-pkg/pkgrecords.h

@@ -33,7 +33,6 @@ class pkgRecords
    
    
    pkgCache &Cache;
    pkgCache &Cache;
    Parser **Files;
    Parser **Files;
-   int PackageFileCount;
       
       
    public:
    public:
 
 

+ 1 - 7
cmdline/apt-cache.cc

@@ -1237,13 +1237,7 @@ bool DisplayRecord(pkgCache::VerIterator V)
 
 
    // Show the right description
    // Show the right description
    pkgRecords Recs(*GCache);
    pkgRecords Recs(*GCache);
-   pkgCache::DescIterator DescDefault = V.DescriptionList();
-   pkgCache::DescIterator Desc = DescDefault;
-   for (; Desc.end() == false; Desc++)
-      if (pkgIndexFile::LanguageCode() == Desc.LanguageCode())
-	 break;
-   if (Desc.end() == true) Desc = DescDefault;
-
+   pkgCache::DescIterator Desc = V.TranslatedDescription();
    pkgRecords::Parser &P = Recs.Lookup(Desc.FileList());
    pkgRecords::Parser &P = Recs.Lookup(Desc.FileList());
    cout << "Description" << ( (strcmp(Desc.LanguageCode(),"") != 0) ? "-" : "" ) << Desc.LanguageCode() << ": " << P.LongDesc();
    cout << "Description" << ( (strcmp(Desc.LanguageCode(),"") != 0) ? "-" : "" ) << Desc.LanguageCode() << ": " << P.LongDesc();
 
 

+ 5 - 1
cmdline/apt-get.cc

@@ -1200,7 +1200,7 @@ pkgSrcRecords::Parser *FindSrc(const char *Name,pkgRecords &Recs,
       VerTag = string(TmpSrc.begin() + Slash + 1,TmpSrc.end());
       VerTag = string(TmpSrc.begin() + Slash + 1,TmpSrc.end());
       TmpSrc = string(TmpSrc.begin(),TmpSrc.begin() + Slash);
       TmpSrc = string(TmpSrc.begin(),TmpSrc.begin() + Slash);
    } 
    } 
-   else  if(DefRel.empty() == false) 
+   else  if(DefRel.empty() == false)
    {
    {
       // we have a default release, try to locate the pkg. we do it like
       // we have a default release, try to locate the pkg. we do it like
       // this because GetCandidateVer() will not "downgrade", that means
       // this because GetCandidateVer() will not "downgrade", that means
@@ -1211,6 +1211,10 @@ pkgSrcRecords::Parser *FindSrc(const char *Name,pkgRecords &Recs,
 	 for (pkgCache::VerFileIterator VF = Ver.FileList(); VF.end() == false;
 	 for (pkgCache::VerFileIterator VF = Ver.FileList(); VF.end() == false;
 	      VF++)
 	      VF++)
 	 {
 	 {
+	    // extra paranioa
+	    if(VF.File() == NULL)
+	       continue;
+
 	    /* If this is the status file, and the current version is not the
 	    /* If this is the status file, and the current version is not the
 	       version in the status file (ie it is not installed, or somesuch)
 	       version in the status file (ie it is not installed, or somesuch)
 	       then it is not a candidate for installation, ever. This weeds
 	       then it is not a candidate for installation, ever. This weeds

+ 1 - 1
configure.in

@@ -18,7 +18,7 @@ AC_CONFIG_AUX_DIR(buildlib)
 AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in)
 AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in)
 
 
 dnl -- SET THIS TO THE RELEASE VERSION --
 dnl -- SET THIS TO THE RELEASE VERSION --
-AC_DEFINE_UNQUOTED(VERSION,"0.6.42.0exp1")
+AC_DEFINE_UNQUOTED(VERSION,"0.6.42.1")
 PACKAGE="apt"
 PACKAGE="apt"
 AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE")
 AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE")
 AC_SUBST(PACKAGE)
 AC_SUBST(PACKAGE)

+ 13 - 1
debian/changelog

@@ -1,4 +1,4 @@
-apt (0.6.42.0exp1) experimental; urgency=low
+apt (0.6.42.1exp1) experimental; urgency=low
 
 
   * added support for package index diffs 
   * added support for package index diffs 
   * added support for i18n of the package descriptions
   * added support for i18n of the package descriptions
@@ -8,6 +8,18 @@ apt (0.6.42.0exp1) experimental; urgency=low
 
 
  -- Michael Vogt <mvo@debian.org>  Wed, 19 Oct 2005 22:12:13 +0200
  -- Michael Vogt <mvo@debian.org>  Wed, 19 Oct 2005 22:12:13 +0200
 
 
+apt (0.6.42.1) unstable; urgency=low
+
+  * fix a incorrect example in the apt_prefrences man page
+    (thanks to Filipus Klutiero, closes: #282918)
+  * apt-pkg/pkgrecords.cc:
+    - revert patch from last version, it causes trouble on alpha 
+      and ia64 (closes: #335102, #335103)
+  * cmdline/apt-get.cc:
+    - be extra carefull in FindSrc (closes: #335213)
+
+ -- Michael Vogt <mvo@debian.org>  Sat, 22 Oct 2005 23:44:35 +0200
+
 apt (0.6.42) unstable; urgency=low
 apt (0.6.42) unstable; urgency=low
 
 
   * apt-pkg/cdrom.cc:
   * apt-pkg/cdrom.cc:

+ 1 - 1
doc/apt_preferences.5.xml

@@ -183,7 +183,7 @@ belonging to any distribution whose Archive name is "<literal>unstable</literal>
 <programlisting>
 <programlisting>
 Package: *
 Package: *
 Pin: release a=unstable
 Pin: release a=unstable
-Pin-Priority: 500
+Pin-Priority: 50
 </programlisting>
 </programlisting>
 
 
 <simpara>The following record assigns a high priority to all package versions
 <simpara>The following record assigns a high priority to all package versions