/* */
pkgTagFile::pkgTagFile(FileFd *pFd,unsigned long Size) :
Fd(*pFd),
- Size(Size),
- Map(NULL),
- Buffer(0)
+ Size(Size)
{
if (Fd.IsOpen() == false)
{
+ Buffer = 0;
Start = End = Buffer = 0;
Done = true;
iOffset = 0;
- Map = NULL;
return;
}
- // check if we can MMap it
- if(Fd.Size() == 0)
- {
- Buffer = new char[Size];
- Start = End = Buffer;
- Done = false;
- Fill();
- } else {
- Map = new MMap (Fd, MMap::Public | MMap::ReadOnly);
- Buffer = (char *) Map->Data ();
- Start = Buffer;
- End = Buffer + Map->Size ();
- }
+ Buffer = new char[Size];
+ Start = End = Buffer;
+ Done = false;
iOffset = 0;
+ Fill();
}
/*}}}*/
// TagFile::~pkgTagFile - Destructor /*{{{*/
/* */
pkgTagFile::~pkgTagFile()
{
- if(!Map) delete [] Buffer;
- delete Map;
+ delete [] Buffer;
}
/*}}}*/
// TagFile::Step - Advance to the next section /*{{{*/
/* If the Section Scanner fails we refill the buffer and try again. */
bool pkgTagFile::Step(pkgTagSection &Tag)
{
- if ((Map != NULL) && (Start == End))
- return false;
-
if (Tag.Scan(Start,End - Start) == false)
{
- if (Map != NULL)
- return _error->Error(_("Unable to parse package file %s (1)"),
- Fd.Name().c_str());
-
if (Fill() == false)
return false;
return Step(Tag);
}
+ // Reposition and reload..
iOffset = Offset;
- if (Map != NULL)
- {
- Start = Buffer + iOffset;
- }
- else
- {
- // Reposition and reload..
- Done = false;
- if (Fd.Seek(Offset) == false)
- return false;
- End = Start = Buffer;
+ Done = false;
+ if (Fd.Seek(Offset) == false)
+ return false;
+ End = Start = Buffer;
- if (Fill() == false)
- return false;
+ if (Fill() == false)
+ return false;
- if (Tag.Scan(Start,End - Start) == true)
- return true;
+ if (Tag.Scan(Start,End - Start) == true)
+ return true;
+
+ // This appends a double new line (for the real eof handling)
+ if (Fill() == false)
+ return false;
- // This appends a double new line (for the real eof handling)
- if (Fill() == false)
- return false;
- }
-
if (Tag.Scan(Start,End - Start) == false)
return _error->Error(_("Unable to parse package file %s (2)"),Fd.Name().c_str());
// ---------------------------------------------------------------------
/* This looks for the first double new line in the data stream. It also
indexes the tags in the section. This very simple hash function for the
- first 3 letters gives very good performance on the debian package files */
+ last 8 letters gives very good performance on the debian package files */
inline static unsigned long AlphaHash(const char *Text, const char *End = 0)
{
unsigned long Res = 0;
for (; Text != End && *Text != ':' && *Text != 0; Text++)
- Res = (unsigned long)(*Text) ^ (Res << 2);
+ Res = ((unsigned long)(*Text) & 0xDF) ^ (Res << 1);
return Res & 0xFF;
}
Stop = Section = Start;
memset(AlphaIndexes,0,sizeof(AlphaIndexes));
- if (Stop == 0 || MaxLength == 0)
+ if (Stop == 0)
return false;
TagCount = 0;
Stop++;
}
- if ((Stop+1 >= End) && (End[-1] == '\n' || End[-1] == '\r'))
- {
- Indexes[TagCount] = (End - 1) - Section;
- return true;
- }
-
return false;
}
/*}}}*/
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-08-09 16:17+0200\n"
+"POT-Creation-Date: 2006-09-12 11:18+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70
#: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550
-#: cmdline/apt-get.cc:2380 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144
#, c-format
msgid "%s %s for %s %s compiled on %s %s\n"
msgstr ""
msgid "Internal error, Ordering didn't finish"
msgstr ""
-#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1811 cmdline/apt-get.cc:1844
+#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851
msgid "Unable to lock the download directory"
msgstr ""
-#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1892 cmdline/apt-get.cc:2128
+#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135
#: apt-pkg/cachefile.cc:67
msgid "The list of sources could not be read."
msgstr ""
msgid "After unpacking %sB disk space will be freed.\n"
msgstr ""
-#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1982
+#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989
#, c-format
msgid "Couldn't determine free space in %s"
msgstr ""
msgid "Do you want to continue [Y/n]? "
msgstr ""
-#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2025
+#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032
#, c-format
msgid "Failed to fetch %s %s\n"
msgstr ""
msgid "Some files failed to download"
msgstr ""
-#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2034
+#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041
msgid "Download complete and in download only mode"
msgstr ""
msgid "The following extra packages will be installed:"
msgstr ""
-#: cmdline/apt-get.cc:1685
+#: cmdline/apt-get.cc:1692
msgid "Suggested packages:"
msgstr ""
-#: cmdline/apt-get.cc:1686
+#: cmdline/apt-get.cc:1693
msgid "Recommended packages:"
msgstr ""
-#: cmdline/apt-get.cc:1706
+#: cmdline/apt-get.cc:1713
msgid "Calculating upgrade... "
msgstr ""
-#: cmdline/apt-get.cc:1709 methods/ftp.cc:702 methods/connect.cc:101
+#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101
msgid "Failed"
msgstr ""
-#: cmdline/apt-get.cc:1714
+#: cmdline/apt-get.cc:1721
msgid "Done"
msgstr ""
-#: cmdline/apt-get.cc:1779 cmdline/apt-get.cc:1787
+#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794
msgid "Internal error, problem resolver broke stuff"
msgstr ""
-#: cmdline/apt-get.cc:1887
+#: cmdline/apt-get.cc:1894
msgid "Must specify at least one package to fetch source for"
msgstr ""
-#: cmdline/apt-get.cc:1917 cmdline/apt-get.cc:2146
+#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153
#, c-format
msgid "Unable to find a source package for %s"
msgstr ""
-#: cmdline/apt-get.cc:1961
+#: cmdline/apt-get.cc:1968
#, c-format
msgid "Skipping already downloaded file '%s'\n"
msgstr ""
-#: cmdline/apt-get.cc:1985
+#: cmdline/apt-get.cc:1992
#, c-format
msgid "You don't have enough free space in %s"
msgstr ""
-#: cmdline/apt-get.cc:1990
+#: cmdline/apt-get.cc:1997
#, c-format
msgid "Need to get %sB/%sB of source archives.\n"
msgstr ""
-#: cmdline/apt-get.cc:1993
+#: cmdline/apt-get.cc:2000
#, c-format
msgid "Need to get %sB of source archives.\n"
msgstr ""
-#: cmdline/apt-get.cc:1999
+#: cmdline/apt-get.cc:2006
#, c-format
msgid "Fetch source %s\n"
msgstr ""
-#: cmdline/apt-get.cc:2030
+#: cmdline/apt-get.cc:2037
msgid "Failed to fetch some archives."
msgstr ""
-#: cmdline/apt-get.cc:2058
+#: cmdline/apt-get.cc:2065
#, c-format
msgid "Skipping unpack of already unpacked source in %s\n"
msgstr ""
-#: cmdline/apt-get.cc:2070
+#: cmdline/apt-get.cc:2077
#, c-format
msgid "Unpack command '%s' failed.\n"
msgstr ""
-#: cmdline/apt-get.cc:2071
+#: cmdline/apt-get.cc:2078
#, c-format
msgid "Check if the 'dpkg-dev' package is installed.\n"
msgstr ""
-#: cmdline/apt-get.cc:2088
+#: cmdline/apt-get.cc:2095
#, c-format
msgid "Build command '%s' failed.\n"
msgstr ""
-#: cmdline/apt-get.cc:2107
+#: cmdline/apt-get.cc:2114
msgid "Child process failed"
msgstr ""
-#: cmdline/apt-get.cc:2123
+#: cmdline/apt-get.cc:2130
msgid "Must specify at least one package to check builddeps for"
msgstr ""
-#: cmdline/apt-get.cc:2151
+#: cmdline/apt-get.cc:2158
#, c-format
msgid "Unable to get build-dependency information for %s"
msgstr ""
-#: cmdline/apt-get.cc:2171
+#: cmdline/apt-get.cc:2178
#, c-format
msgid "%s has no build depends.\n"
msgstr ""
-#: cmdline/apt-get.cc:2223
+#: cmdline/apt-get.cc:2230
#, c-format
msgid ""
"%s dependency for %s cannot be satisfied because the package %s cannot be "
"found"
msgstr ""
-#: cmdline/apt-get.cc:2275
+#: cmdline/apt-get.cc:2282
#, c-format
msgid ""
"%s dependency for %s cannot be satisfied because no available versions of "
"package %s can satisfy version requirements"
msgstr ""
-#: cmdline/apt-get.cc:2310
+#: cmdline/apt-get.cc:2317
#, c-format
msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
msgstr ""
-#: cmdline/apt-get.cc:2335
+#: cmdline/apt-get.cc:2342
#, c-format
msgid "Failed to satisfy %s dependency for %s: %s"
msgstr ""
-#: cmdline/apt-get.cc:2349
+#: cmdline/apt-get.cc:2356
#, c-format
msgid "Build-dependencies for %s could not be satisfied."
msgstr ""
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2360
msgid "Failed to process build dependencies"
msgstr ""
-#: cmdline/apt-get.cc:2385
+#: cmdline/apt-get.cc:2392
msgid "Supported modules:"
msgstr ""
-#: cmdline/apt-get.cc:2426
+#: cmdline/apt-get.cc:2433
msgid ""
"Usage: apt-get [options] command\n"
" apt-get [options] install|remove pkg1 [pkg2 ...]\n"
msgid "File not found"
msgstr ""
-#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:133
-#: methods/gzip.cc:142
+#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:134
+#: methods/gzip.cc:143
msgid "Failed to stat"
msgstr ""
-#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:139
+#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:140
msgid "Failed to set modification time"
msgstr ""