summaryrefslogtreecommitdiff
path: root/apt-pkg/deb/debindexfile.cc
diff options
context:
space:
mode:
Diffstat (limited to 'apt-pkg/deb/debindexfile.cc')
-rw-r--r--apt-pkg/deb/debindexfile.cc17
1 files changed, 13 insertions, 4 deletions
diff --git a/apt-pkg/deb/debindexfile.cc b/apt-pkg/deb/debindexfile.cc
index 793882e67..708b40a96 100644
--- a/apt-pkg/deb/debindexfile.cc
+++ b/apt-pkg/deb/debindexfile.cc
@@ -181,6 +181,9 @@ bool debDebPkgFileIndex::GetContent(std::ostream &content, std::string const &de
if(Popen((const char**)&Args[0], PipeFd, Child, FileFd::ReadOnly) == false)
return _error->Error("Popen failed");
+ content << "Filename: " << debfile << "\n";
+ content << "Size: " << Buf.st_size << "\n";
+ bool first_line_seen = false;
char buffer[1024];
do {
unsigned long long actual = 0;
@@ -189,13 +192,19 @@ bool debDebPkgFileIndex::GetContent(std::ostream &content, std::string const &de
if (actual == 0)
break;
buffer[actual] = '\0';
- content << buffer;
+ char const * b = buffer;
+ if (first_line_seen == false)
+ {
+ for (; *b != '\0' && (*b == '\n' || *b == '\r'); ++b)
+ /* skip over leading newlines */;
+ if (*b == '\0')
+ continue;
+ first_line_seen = true;
+ }
+ content << b;
} while(true);
ExecWait(Child, "Popen");
- content << "Filename: " << debfile << "\n";
- content << "Size: " << Buf.st_size << "\n";
-
return true;
}
bool debDebPkgFileIndex::OpenListFile(FileFd &Pkg, std::string const &FileName)