summaryrefslogtreecommitdiff
path: root/data/_apt7/tornado.diff
diff options
context:
space:
mode:
Diffstat (limited to 'data/_apt7/tornado.diff')
-rw-r--r--data/_apt7/tornado.diff719
1 files changed, 0 insertions, 719 deletions
diff --git a/data/_apt7/tornado.diff b/data/_apt7/tornado.diff
deleted file mode 100644
index e276f3356..000000000
--- a/data/_apt7/tornado.diff
+++ /dev/null
@@ -1,719 +0,0 @@
-diff -Nru apt-0.7.25.3/apt-pkg/contrib/md5.cc apt-0.7.25.3+iPhone/apt-pkg/contrib/md5.cc
---- apt-0.7.25.3/apt-pkg/contrib/md5.cc 2010-02-01 19:44:40.000000000 +0000
-+++ apt-0.7.25.3+iPhone/apt-pkg/contrib/md5.cc 2010-02-24 08:11:38.000000000 +0000
-@@ -173,6 +173,12 @@
- memset(Sum,0,sizeof(Sum));
- Set(Str);
- }
-+
-+MD5SumValue::MD5SumValue(const srkString &Str)
-+{
-+ memset(Sum, 0, sizeof(Sum));
-+ Set(Str);
-+}
- /*}}}*/
- // MD5SumValue::MD5SumValue - Default constructor /*{{{*/
- // ---------------------------------------------------------------------
-@@ -189,6 +195,11 @@
- {
- return Hex2Num(Str,Sum,sizeof(Sum));
- }
-+
-+bool MD5SumValue::Set(const srkString &Str)
-+{
-+ return Hex2Num(Str,Sum,sizeof(Sum));
-+}
- /*}}}*/
- // MD5SumValue::Value - Convert the number into a string /*{{{*/
- // ---------------------------------------------------------------------
-diff -Nru apt-0.7.25.3/apt-pkg/contrib/md5.h apt-0.7.25.3+iPhone/apt-pkg/contrib/md5.h
---- apt-0.7.25.3/apt-pkg/contrib/md5.h 2010-02-01 19:44:40.000000000 +0000
-+++ apt-0.7.25.3+iPhone/apt-pkg/contrib/md5.h 2010-02-24 08:09:10.000000000 +0000
-@@ -29,6 +29,8 @@
- #include <algorithm>
- #include <stdint.h>
-
-+#include <apt-pkg/srkstring.h>
-+
- using std::string;
- using std::min;
-
-@@ -48,10 +50,12 @@
- {for (int I = 0; I != sizeof(Sum); I++) S[I] = Sum[I];};
- inline operator string() const {return Value();};
- bool Set(string Str);
-+ bool Set(const srkString &Str);
- inline void Set(unsigned char S[16])
- {for (int I = 0; I != sizeof(Sum); I++) Sum[I] = S[I];};
-
- MD5SumValue(string Str);
-+ MD5SumValue(const srkString &Str);
- MD5SumValue();
- };
-
-diff -Nru apt-0.7.25.3/apt-pkg/contrib/strutl.cc apt-0.7.25.3+iPhone/apt-pkg/contrib/strutl.cc
---- apt-0.7.25.3/apt-pkg/contrib/strutl.cc 2010-02-01 19:44:40.000000000 +0000
-+++ apt-0.7.25.3+iPhone/apt-pkg/contrib/strutl.cc 2010-02-24 08:13:39.000000000 +0000
-@@ -943,12 +943,17 @@
- /* The length of the buffer must be exactly 1/2 the length of the string. */
- bool Hex2Num(const string &Str,unsigned char *Num,unsigned int Length)
- {
-+ return Hex2Num(srkString(Str), Num, Length);
-+}
-+
-+bool Hex2Num(const srkString &Str,unsigned char *Num,unsigned int Length)
-+{
- if (Str.length() != Length*2)
- return false;
-
- // Convert each digit. We store it in the same order as the string
- int J = 0;
-- for (string::const_iterator I = Str.begin(); I != Str.end();J++, I += 2)
-+ for (srkString::const_iterator I = Str.begin(); I != Str.end();J++, I += 2)
- {
- if (isxdigit(*I) == 0 || isxdigit(I[1]) == 0)
- return false;
-diff -Nru apt-0.7.25.3/apt-pkg/contrib/strutl.h apt-0.7.25.3+iPhone/apt-pkg/contrib/strutl.h
---- apt-0.7.25.3/apt-pkg/contrib/strutl.h 2010-02-01 19:44:40.000000000 +0000
-+++ apt-0.7.25.3+iPhone/apt-pkg/contrib/strutl.h 2010-02-24 08:10:45.000000000 +0000
-@@ -25,6 +25,8 @@
- #include <iostream>
- #include <time.h>
-
-+#include <apt-pkg/srkstring.h>
-+
- using std::string;
- using std::vector;
- using std::ostream;
-@@ -57,6 +59,7 @@
- bool ReadMessages(int Fd, vector<string> &List);
- bool StrToNum(const char *Str,unsigned long &Res,unsigned Len,unsigned Base = 0);
- bool Hex2Num(const string &Str,unsigned char *Num,unsigned int Length);
-+bool Hex2Num(const srkString &Str,unsigned char *Num,unsigned int Length);
- bool TokSplitString(char Tok,char *Input,char **List,
- unsigned long ListMax);
- void ioprintf(ostream &out,const char *format,...) APT_FORMAT2;
-@@ -66,6 +69,7 @@
- int tolower_ascii(int c);
-
- #define APT_MKSTRCMP(name,func) \
-+inline int name(const srkString &A,const char *B) {return func(A.Start,A.Start+A.Size,B,B+strlen(B));}; \
- inline int name(const char *A,const char *B) {return func(A,A+strlen(A),B,B+strlen(B));}; \
- inline int name(const char *A,const char *AEnd,const char *B) {return func(A,AEnd,B,B+strlen(B));}; \
- inline int name(const string& A,const char *B) {return func(A.c_str(),A.c_str()+A.length(),B,B+strlen(B));}; \
-@@ -77,6 +77,7 @@
- inline int name(const string& A,const char *B,const char *BEnd) {return func(A.c_str(),A.c_str()+A.length(),B,BEnd);};
-
- #define APT_MKSTRCMP2(name,func) \
-+inline int name(const srkString &A,const char *B) {return func(A.Start,A.Start+A.Size,B,B+strlen(B));}; \
- inline int name(const char *A,const char *AEnd,const char *B) {return func(A,AEnd,B,B+strlen(B));}; \
- inline int name(const string& A,const char *B) {return func(A.begin(),A.end(),B,B+strlen(B));}; \
- inline int name(const string& A,const string& B) {return func(A.begin(),A.end(),B.begin(),B.end());}; \
-diff -Nru apt-0.7.25.3/apt-pkg/deb/deblistparser.cc apt-0.7.25.3+iPhone/apt-pkg/deb/deblistparser.cc
---- apt-0.7.25.3/apt-pkg/deb/deblistparser.cc 2010-02-24 08:53:52.000000000 +0000
-+++ apt-0.7.25.3+iPhone/apt-pkg/deb/deblistparser.cc 2010-02-24 08:51:50.000000000 +0000
-@@ -106,7 +106,7 @@
- const char *Stop;
- if (Section.Find("Priority",Start,Stop) == true)
- {
-- if (GrabWord(string(Start,Stop-Start),PrioList,Ver->Priority) == false)
-+ if (GrabWord(srkString(Start,Stop-Start),PrioList,Ver->Priority) == false)
- Ver->Priority = pkgCache::State::Extra;
- }
-
-@@ -144,10 +144,19 @@
- only describe package properties */
- string debListParser::Description()
- {
-- if (DescriptionLanguage().empty())
-- return Section.FindS("Description");
-- else
-- return Section.FindS(("Description-" + pkgIndexFile::LanguageCode()).c_str());
-+ srkString description;
-+ Description(description);
-+ return description;
-+}
-+
-+void debListParser::Description(srkString &Str) {
-+ const char *Start, *Stop;
-+ if (!Section.Find("Description", Start, Stop))
-+ if (!Section.Find(("Description-" + pkgIndexFile::LanguageCode()).c_str(), Start, Stop)) {
-+ Start = NULL;
-+ Stop = NULL;
-+ }
-+ Str.assign(Start, Stop);
- }
- /*}}}*/
- // ListParser::DescriptionLanguage - Return the description lang string /*{{{*/
-@@ -157,7 +166,8 @@
- assumed to describe original description. */
- string debListParser::DescriptionLanguage()
- {
-- return Section.FindS("Description").empty() ? pkgIndexFile::LanguageCode() : "";
-+ const char *Start, *Stop;
-+ return Section.Find("Description", Start, Stop) ? std::string() : pkgIndexFile::LanguageCode();
- }
- /*}}}*/
- // ListParser::Description - Return the description_md5 MD5SumValue /*{{{*/
-@@ -168,15 +178,18 @@
- */
- MD5SumValue debListParser::Description_md5()
- {
-- string value = Section.FindS("Description-md5");
--
-- if (value.empty())
-+ const char *Start;
-+ const char *Stop;
-+ if (!Section.Find("Description-md5", Start, Stop))
- {
- MD5Summation md5;
-- md5.Add((Description() + "\n").c_str());
-+ srkString description;
-+ Description(description);
-+ md5.Add((const unsigned char *) description.Start, description.Size);
-+ md5.Add("\n");
- return md5.Result();
- } else
-- return MD5SumValue(value);
-+ return MD5SumValue(srkString(Start, Stop));
- }
- /*}}}*/
- // ListParser::UsePackage - Update a package structure /*{{{*/
-@@ -286,7 +299,7 @@
- {"deinstall",pkgCache::State::DeInstall},
- {"purge",pkgCache::State::Purge},
- {}};
-- if (GrabWord(string(Start,I-Start),WantList,Pkg->SelectedState) == false)
-+ if (GrabWord(srkString(Start,I-Start),WantList,Pkg->SelectedState) == false)
- return _error->Error("Malformed 1st word in the Status line");
-
- // Isloate the next word
-@@ -302,7 +315,7 @@
- {"hold",pkgCache::State::HoldInst},
- {"hold-reinstreq",pkgCache::State::HoldReInstReq},
- {}};
-- if (GrabWord(string(Start,I-Start),FlagList,Pkg->InstState) == false)
-+ if (GrabWord(srkString(Start,I-Start),FlagList,Pkg->InstState) == false)
- return _error->Error("Malformed 2nd word in the Status line");
-
- // Isloate the last word
-@@ -324,7 +337,7 @@
- {"post-inst-failed",pkgCache::State::HalfConfigured},
- {"removal-failed",pkgCache::State::HalfInstalled},
- {}};
-- if (GrabWord(string(Start,I-Start),StatusList,Pkg->CurrentState) == false)
-+ if (GrabWord(srkString(Start,I-Start),StatusList,Pkg->CurrentState) == false)
- return _error->Error("Malformed 3rd word in the Status line");
-
- /* A Status line marks the package as indicating the current
-@@ -410,6 +423,17 @@
- string &Package,string &Ver,
- unsigned int &Op, bool ParseArchFlags)
- {
-+ srkString cPackage, cVer;
-+ const char *Value = ParseDepends(Start, Stop, cPackage, cVer, Op, ParseArchFlags);
-+ Package = cPackage;
-+ Ver = cVer;
-+ return Value;
-+}
-+
-+const char *debListParser::ParseDepends(const char *Start,const char *Stop,
-+ srkString &Package,srkString &Ver,
-+ unsigned int &Op, bool ParseArchFlags)
-+{
- // Strip off leading space
- for (;Start != Stop && isspace(*Start) != 0; Start++);
-
-@@ -509,7 +533,7 @@
- Found = !Found;
-
- if (Found == false)
-- Package = ""; /* not for this arch */
-+ Package.clear(); /* not for this arch */
- }
-
- // Skip whitespace
-@@ -541,8 +565,8 @@
- if (Section.Find(Tag,Start,Stop) == false)
- return true;
-
-- string Package;
-- string Version;
-+ srkString Package;
-+ srkString Version;
- unsigned int Op;
-
- while (1)
-@@ -569,8 +593,8 @@
- if (Section.Find("Provides",Start,Stop) == false)
- return true;
-
-- string Package;
-- string Version;
-+ srkString Package;
-+ srkString Version;
- unsigned int Op;
-
- while (1)
-@@ -579,7 +603,7 @@
- if (Start == 0)
- return _error->Error("Problem parsing Provides line");
- if (Op != pkgCache::Dep::NoOp) {
-- _error->Warning("Ignoring Provides line with DepCompareOp for package %s", Package.c_str());
-+ _error->Warning("Ignoring Provides line with DepCompareOp for package %s", std::string(Package).c_str());
- } else {
- if (NewProvides(Ver,Package,Version) == false)
- return false;
-@@ -637,9 +661,14 @@
- /* Looks for a word in a list of words - for ParseStatus */
- bool debListParser::GrabWord(string Word,WordList *List,unsigned char &Out)
- {
-+ return GrabWord(srkString(Word), List, Out);
-+}
-+
-+bool debListParser::GrabWord(const srkString &Word,WordList *List,unsigned char &Out)
-+{
- for (unsigned int C = 0; List[C].Str != 0; C++)
- {
-- if (strcasecmp(Word.c_str(),List[C].Str) == 0)
-+ if (strncasecmp(Word.Start,List[C].Str,Word.Size) == 0)
- {
- Out = List[C].Val;
- return true;
-diff -Nru apt-0.7.25.3/apt-pkg/deb/deblistparser.h apt-0.7.25.3+iPhone/apt-pkg/deb/deblistparser.h
---- apt-0.7.25.3/apt-pkg/deb/deblistparser.h 2010-02-24 08:53:52.000000000 +0000
-+++ apt-0.7.25.3+iPhone/apt-pkg/deb/deblistparser.h 2010-02-24 08:43:20.000000000 +0000
-@@ -41,9 +41,22 @@
- bool ParseProvides(pkgCache::VerIterator Ver);
- bool ParseTag(pkgCache::PkgIterator Pkg);
- static bool GrabWord(string Word,WordList *List,unsigned char &Out);
-+ static bool GrabWord(const srkString &Word,WordList *List,unsigned char &Out);
-
- public:
-
-+ srkString Find(const char *Tag) {
-+ srkString S;
-+ const char *Stop;
-+ if (Section.Find(Tag, S.Start, Stop))
-+ S.Size = Stop - S.Start;
-+ else {
-+ S.Start = NULL;
-+ S.Size = 0;
-+ }
-+ return S;
-+ }
-+
- static unsigned char GetPrio(string Str);
-
- // These all operate against the current section
-@@ -51,6 +64,7 @@
- virtual string Version();
- virtual bool NewVersion(pkgCache::VerIterator Ver);
- virtual string Description();
-+ void Description(srkString &Str);
- virtual string DescriptionLanguage();
- virtual MD5SumValue Description_md5();
- virtual unsigned short VersionHash();
-@@ -67,6 +81,9 @@
- static const char *ParseDepends(const char *Start,const char *Stop,
- string &Package,string &Ver,unsigned int &Op,
- bool ParseArchFlags = false);
-+ static const char *ParseDepends(const char *Start,const char *Stop,
-+ srkString &Package,srkString &Ver,unsigned int &Op,
-+ bool ParseArchFlags = false);
- static const char *ConvertRelation(const char *I,unsigned int &Op);
-
- debListParser(FileFd *File);
-diff -Nru apt-0.7.25.3/apt-pkg/makefile apt-0.7.25.3+iPhone/apt-pkg/makefile
---- apt-0.7.25.3/apt-pkg/makefile 2010-02-24 08:53:52.000000000 +0000
-+++ apt-0.7.25.3+iPhone/apt-pkg/makefile 2010-02-24 07:57:37.000000000 +0000
-@@ -42,7 +42,7 @@
- acquire.h acquire-worker.h acquire-item.h acquire-method.h \
- clean.h srcrecords.h cachefile.h versionmatch.h policy.h \
- pkgsystem.h indexfile.h metaindex.h indexrecords.h vendor.h \
-- vendorlist.h cdrom.h indexcopy.h aptconfiguration.h
-+ vendorlist.h cdrom.h indexcopy.h aptconfiguration.h srkstring.h
-
- # Source code for the debian specific components
- # In theory the deb headers do not need to be exported..
-diff -Nru apt-0.7.25.3/apt-pkg/pkgcache.cc apt-0.7.25.3+iPhone/apt-pkg/pkgcache.cc
---- apt-0.7.25.3/apt-pkg/pkgcache.cc 2010-02-24 08:53:52.000000000 +0000
-+++ apt-0.7.25.3+iPhone/apt-pkg/pkgcache.cc 2010-02-24 08:51:28.000000000 +0000
-@@ -176,12 +176,25 @@
- return Hash % _count(HeaderP->HashTable);
- }
-
-+unsigned long pkgCache::sHash(const srkString &Str) const
-+{
-+ unsigned long Hash = 0;
-+ for (const char *I = Str.Start, *E = I + Str.Size; I != E; I++)
-+ Hash = 5*Hash + tolower_ascii(*I);
-+ return Hash % _count(HeaderP->HashTable);
-+}
-+
- /*}}}*/
- // Cache::FindPkg - Locate a package by name /*{{{*/
- // ---------------------------------------------------------------------
- /* Returns 0 on error, pointer to the package otherwise */
- pkgCache::PkgIterator pkgCache::FindPkg(const string &Name)
- {
-+ return FindPkg(srkString(Name));
-+}
-+
-+pkgCache::PkgIterator pkgCache::FindPkg(const srkString &Name)
-+{
- // Look at the hash bucket
- Package *Pkg = PkgP + HeaderP->HashTable[Hash(Name)];
- for (; Pkg != PkgP; Pkg = PkgP + Pkg->NextPackage)
-diff -Nru apt-0.7.25.3/apt-pkg/pkgcachegen.cc apt-0.7.25.3+iPhone/apt-pkg/pkgcachegen.cc
---- apt-0.7.25.3/apt-pkg/pkgcachegen.cc 2010-02-24 08:53:52.000000000 +0000
-+++ apt-0.7.25.3+iPhone/apt-pkg/pkgcachegen.cc 2010-02-24 08:50:06.000000000 +0000
-@@ -33,6 +33,8 @@
- #include <unistd.h>
- #include <errno.h>
- #include <stdio.h>
-+
-+#include <apt-pkg/deblistparser.h>
- /*}}}*/
- typedef vector<pkgIndexFile *>::iterator FileIterator;
-
-@@ -103,26 +105,37 @@
- pkgCache::VerIterator *OutVer)
- {
- List.Owner = this;
-+ debListParser *debian(dynamic_cast<debListParser *>(&List));
-
- unsigned int Counter = 0;
- while (List.Step() == true)
- {
- // Get a pointer to the package structure
-- string PackageName = List.Package();
-+ srkString PackageName;
-+ if (debian != NULL)
-+ PackageName = debian->Find("Package");
-+ else
-+ PackageName = List.Package();
- if (PackageName.empty() == true)
- return false;
-
- pkgCache::PkgIterator Pkg;
- if (NewPackage(Pkg,PackageName) == false)
-- return _error->Error(_("Error occurred while processing %s (NewPackage)"),PackageName.c_str());
-+ return _error->Error(_("Error occurred while processing %s (NewPackage)"),std::string(PackageName).c_str());
- Counter++;
- if (Counter % 100 == 0 && Progress != 0)
- Progress->Progress(List.Offset());
-
-+ string language(List.DescriptionLanguage());
-+
- /* Get a pointer to the version structure. We know the list is sorted
- so we use that fact in the search. Insertion of new versions is
- done with correct sorting */
-- string Version = List.Version();
-+ srkString Version;
-+ if (debian != NULL)
-+ Version = debian->Find("Version");
-+ else
-+ Version = List.Version();
- if (Version.empty() == true)
- {
- // we first process the package, then the descriptions
-@@ -130,7 +143,7 @@
- // of MMap space)
- if (List.UsePackage(Pkg,pkgCache::VerIterator(Cache)) == false)
- return _error->Error(_("Error occurred while processing %s (UsePackage1)"),
-- PackageName.c_str());
-+ std::string(PackageName).c_str());
-
- // Find the right version to write the description
- MD5SumValue CurMd5 = List.Description_md5();
-@@ -147,7 +160,7 @@
- // md5 && language
- for ( ; Desc.end() == false; Desc++)
- if (MD5SumValue(Desc.md5()) == CurMd5 &&
-- Desc.LanguageCode() == List.DescriptionLanguage())
-+ Desc.LanguageCode() == language)
- duplicate=true;
- if(duplicate)
- continue;
-@@ -159,11 +172,11 @@
- if (MD5SumValue(Desc.md5()) == CurMd5)
- {
- // Add new description
-- *LastDesc = NewDescription(Desc, List.DescriptionLanguage(), CurMd5, *LastDesc);
-+ *LastDesc = NewDescription(Desc, language, CurMd5, *LastDesc);
- Desc->ParentPkg = Pkg.Index();
-
- if ((*LastDesc == 0 && _error->PendingError()) || NewFileDesc(Desc,List) == false)
-- return _error->Error(_("Error occurred while processing %s (NewFileDesc1)"),PackageName.c_str());
-+ return _error->Error(_("Error occurred while processing %s (NewFileDesc1)"),std::string(PackageName).c_str());
- break;
- }
- }
-@@ -189,11 +202,11 @@
- {
- if (List.UsePackage(Pkg,Ver) == false)
- return _error->Error(_("Error occurred while processing %s (UsePackage2)"),
-- PackageName.c_str());
-+ std::string(PackageName).c_str());
-
- if (NewFileVer(Ver,List) == false)
- return _error->Error(_("Error occurred while processing %s (NewFileVer1)"),
-- PackageName.c_str());
-+ std::string(PackageName).c_str());
-
- // Read only a single record and return
- if (OutVer != 0)
-@@ -224,15 +237,15 @@
-
- if ((*LastVer == 0 && _error->PendingError()) || List.NewVersion(Ver) == false)
- return _error->Error(_("Error occurred while processing %s (NewVersion1)"),
-- PackageName.c_str());
-+ std::string(PackageName).c_str());
-
- if (List.UsePackage(Pkg,Ver) == false)
- return _error->Error(_("Error occurred while processing %s (UsePackage3)"),
-- PackageName.c_str());
-+ std::string(PackageName).c_str());
-
- if (NewFileVer(Ver,List) == false)
- return _error->Error(_("Error occurred while processing %s (NewVersion2)"),
-- PackageName.c_str());
-+ std::string(PackageName).c_str());
-
- // Read only a single record and return
- if (OutVer != 0)
-@@ -251,11 +264,11 @@
- for (; Desc.end() == false; LastDesc = &Desc->NextDesc, Desc++);
-
- // Add new description
-- *LastDesc = NewDescription(Desc, List.DescriptionLanguage(), List.Description_md5(), *LastDesc);
-+ *LastDesc = NewDescription(Desc, language, List.Description_md5(), *LastDesc);
- Desc->ParentPkg = Pkg.Index();
-
- if ((*LastDesc == 0 && _error->PendingError()) || NewFileDesc(Desc,List) == false)
-- return _error->Error(_("Error occurred while processing %s (NewFileDesc2)"),PackageName.c_str());
-+ return _error->Error(_("Error occurred while processing %s (NewFileDesc2)"),std::string(PackageName).c_str());
- }
-
- FoundFileDeps |= List.HasFileDeps();
-@@ -328,6 +341,11 @@
- /* This creates a new package structure and adds it to the hash table */
- bool pkgCacheGenerator::NewPackage(pkgCache::PkgIterator &Pkg,const string &Name)
- {
-+ return NewPackage(Pkg, srkString(Name));
-+}
-+
-+bool pkgCacheGenerator::NewPackage(pkgCache::PkgIterator &Pkg,const srkString &Name)
-+{
- Pkg = Cache.FindPkg(Name);
- if (Pkg.end() == false)
- return true;
-@@ -345,7 +363,7 @@
- Cache.HeaderP->HashTable[Hash] = Package;
-
- // Set the name and the ID
-- Pkg->Name = Map.WriteString(Name);
-+ Pkg->Name = Map.WriteString(Name.Start,Name.Size);
- if (Pkg->Name == 0)
- return false;
- Pkg->ID = Cache.HeaderP->PackageCount++;
-@@ -393,6 +411,13 @@
- const string &VerStr,
- unsigned long Next)
- {
-+ return NewVersion(Ver, srkString(VerStr), Next);
-+}
-+
-+unsigned long pkgCacheGenerator::NewVersion(pkgCache::VerIterator &Ver,
-+ const srkString &VerStr,
-+ unsigned long Next)
-+{
- // Get a structure
- unsigned long Version = Map.Allocate(sizeof(pkgCache::Version));
- if (Version == 0)
-@@ -402,7 +427,7 @@
- Ver = pkgCache::VerIterator(Cache,Cache.VerP + Version);
- Ver->NextVer = Next;
- Ver->ID = Cache.HeaderP->VersionCount++;
-- Ver->VerStr = Map.WriteString(VerStr);
-+ Ver->VerStr = Map.WriteString(VerStr.Start, VerStr.Size);
- if (Ver->VerStr == 0)
- return 0;
-
-@@ -478,6 +503,15 @@
- unsigned int Op,
- unsigned int Type)
- {
-+ return NewDepends(Ver, srkString(PackageName), srkString(Version), Op, Type);
-+}
-+
-+bool pkgCacheGenerator::ListParser::NewDepends(pkgCache::VerIterator Ver,
-+ const srkString &PackageName,
-+ const srkString &Version,
-+ unsigned int Op,
-+ unsigned int Type)
-+{
- pkgCache &Cache = Owner->Cache;
-
- // Get a structure
-@@ -541,6 +575,13 @@
- const string &PackageName,
- const string &Version)
- {
-+ return NewProvides(Ver, srkString(PackageName), srkString(Version));
-+}
-+
-+bool pkgCacheGenerator::ListParser::NewProvides(pkgCache::VerIterator Ver,
-+ const srkString &PackageName,
-+ const srkString &Version)
-+{
- pkgCache &Cache = Owner->Cache;
-
- // We do not add self referencing provides
-diff -Nru apt-0.7.25.3/apt-pkg/pkgcachegen.h apt-0.7.25.3+iPhone/apt-pkg/pkgcachegen.h
---- apt-0.7.25.3/apt-pkg/pkgcachegen.h 2010-02-24 08:53:52.000000000 +0000
-+++ apt-0.7.25.3+iPhone/apt-pkg/pkgcachegen.h 2010-02-24 08:49:18.000000000 +0000
-@@ -52,9 +52,11 @@
- bool FoundFileDeps;
-
- bool NewPackage(pkgCache::PkgIterator &Pkg,const string &PkgName);
-+ bool NewPackage(pkgCache::PkgIterator &Pkg,const srkString &PkgName);
- bool NewFileVer(pkgCache::VerIterator &Ver,ListParser &List);
- bool NewFileDesc(pkgCache::DescIterator &Desc,ListParser &List);
- unsigned long NewVersion(pkgCache::VerIterator &Ver,const string &VerStr,unsigned long Next);
-+ unsigned long NewVersion(pkgCache::VerIterator &Ver,const srkString &VerStr,unsigned long Next);
- map_ptrloc NewDescription(pkgCache::DescIterator &Desc,const string &Lang,const MD5SumValue &md5sum,map_ptrloc Next);
-
- public:
-@@ -96,11 +98,17 @@
- inline unsigned long WriteUniqString(const char *S,unsigned int Size) {return Owner->WriteUniqString(S,Size);};
- inline unsigned long WriteString(const string &S) {return Owner->Map.WriteString(S);};
- inline unsigned long WriteString(const char *S,unsigned int Size) {return Owner->Map.WriteString(S,Size);};
-+ inline unsigned long WriteString(const srkString &S) {return Owner->Map.WriteString(S.Start,S.Size);};
- bool NewDepends(pkgCache::VerIterator Ver,const string &Package,
- const string &Version,unsigned int Op,
- unsigned int Type);
-+ bool NewDepends(pkgCache::VerIterator Ver,const srkString &Package,
-+ const srkString &Version,unsigned int Op,
-+ unsigned int Type);
- bool NewProvides(pkgCache::VerIterator Ver,const string &Package,
- const string &Version);
-+ bool NewProvides(pkgCache::VerIterator Ver,const srkString &Package,
-+ const srkString &Version);
- bool NewTag(pkgCache::PkgIterator Pkg,const char *NameStart,unsigned int NameSize);
-
- public:
-diff -Nru apt-0.7.25.3/apt-pkg/pkgcache.h apt-0.7.25.3+iPhone/apt-pkg/pkgcache.h
---- apt-0.7.25.3/apt-pkg/pkgcache.h 2010-02-24 08:53:52.000000000 +0000
-+++ apt-0.7.25.3+iPhone/apt-pkg/pkgcache.h 2010-02-24 07:57:37.000000000 +0000
-@@ -23,9 +23,10 @@
- #include <string>
- #include <time.h>
- #include <apt-pkg/mmap.h>
-+#include <apt-pkg/srkstring.h>
-
- using std::string;
--
-+
- class pkgVersioningSystem;
- class pkgCache /*{{{*/
- {
-@@ -102,6 +103,7 @@
-
- unsigned long sHash(const string &S) const;
- unsigned long sHash(const char *S) const;
-+ unsigned long sHash(const srkString &S) const;
-
- public:
-
-@@ -127,12 +129,14 @@
- // String hashing function (512 range)
- inline unsigned long Hash(const string &S) const {return sHash(S);};
- inline unsigned long Hash(const char *S) const {return sHash(S);};
-+ inline unsigned long Hash(const srkString &S) const {return sHash(S);};
-
- // Usefull transformation things
- const char *Priority(unsigned char Priority);
-
- // Accessors
- PkgIterator FindPkg(const string &Name);
-+ PkgIterator FindPkg(const srkString &Name);
- Header &Head() {return *HeaderP;};
- inline PkgIterator PkgBegin();
- inline PkgIterator PkgEnd();
-diff -Nru apt-0.7.25.3/apt-pkg/srkstring.h apt-0.7.25.3+iPhone/apt-pkg/srkstring.h
---- apt-0.7.25.3/apt-pkg/srkstring.h 1970-01-01 00:00:00.000000000 +0000
-+++ apt-0.7.25.3+iPhone/apt-pkg/srkstring.h 2010-02-24 08:37:27.000000000 +0000
-@@ -0,0 +1,59 @@
-+// -*- mode: cpp; mode: fold -*-
-+// Description /*{{{*/
-+// $Id: pkgcache.h,v 1.25 2001/07/01 22:28:24 jgg Exp $
-+/* ######################################################################
-+
-+ Cache - Structure definitions for the cache file
-+
-+ Please see doc/apt-pkg/cache.sgml for a more detailed description of
-+ this format. Also be sure to keep that file up-to-date!!
-+
-+ Clients should always use the CacheIterators classes for access to the
-+ cache. They provide a simple STL-like method for traversing the links
-+ of the datastructure.
-+
-+ See pkgcachegen.h for information about generating cache structures.
-+
-+ ##################################################################### */
-+ /*}}}*/
-+#ifndef PKGLIB_PKGSTRING_H
-+#define PKGLIB_PKGSTRING_H
-+
-+#include <string>
-+
-+class srkString
-+{
-+ public:
-+ const char *Start;
-+ size_t Size;
-+
-+ srkString() : Start(NULL), Size(0) {}
-+
-+ srkString(const char *Start, size_t Size) : Start(Start), Size(Size) {}
-+ srkString(const char *Start, const char *Stop) : Start(Start), Size(Stop - Start) {}
-+ srkString(const std::string &string) : Start(string.c_str()), Size(string.size()) {}
-+
-+ bool empty() const { return Size == 0; }
-+ void clear() { Start = NULL; Size = 0; }
-+
-+ void assign(const char *nStart, const char *nStop) { Start = nStart; Size = nStop - nStart; }
-+ void assign(const char *nStart, size_t nSize) { Start = nStart; Size = nSize; }
-+
-+ size_t length() const { return Size; }
-+ size_t size() const { return Size; }
-+
-+ typedef const char *const_iterator;
-+ const char *begin() const { return Start; }
-+ const char *end() const { return Start + Size; }
-+
-+ char operator [](size_t index) const { return Start[index]; }
-+
-+ operator std::string() { std::string Str; Str.assign(Start, Size); return Str; }
-+};
-+
-+int stringcmp(const std::string &lhs, const char *rhsb, const char *rhse);
-+inline bool operator ==(const std::string &lhs, const srkString &rhs) {
-+ return stringcmp(lhs, rhs.begin(), rhs.end()) == 0;
-+}
-+
-+#endif
-diff -Nru apt-0.7.25.3/apt-pkg/version.h apt-0.7.25.3+iPhone/apt-pkg/version.h
---- apt-0.7.25.3/apt-pkg/version.h 2010-02-01 19:44:40.000000000 +0000
-+++ apt-0.7.25.3+iPhone/apt-pkg/version.h 2010-02-24 07:57:37.000000000 +0000
-@@ -20,7 +20,7 @@
- #ifndef PKGLIB_VERSION_H
- #define PKGLIB_VERSION_H
-
--
-+#include <apt-pkg/srkstring.h>
- #include <apt-pkg/strutl.h>
- #include <string>
-