summaryrefslogtreecommitdiff
path: root/apt-pkg/deb
diff options
context:
space:
mode:
authorJulian Andres Klode <jak@debian.org>2017-06-26 18:44:56 +0200
committerJulian Andres Klode <jak@debian.org>2017-06-28 19:50:26 +0200
commit6edfda8b45dee7e1202f723b98fa962c38554c51 (patch)
tree328327b85410cc8b5e384e5c35b1162ac3f67d51 /apt-pkg/deb
parentdfe0e754a808aabd55f9cd68201a7f1432070836 (diff)
Strip 0: epochs from the version hash
This should fix some issues with dpkg normalizing such values. Suprisingly enough apt treats the Version: field the same, even with epoch vs without, but not when searching, and does not strip the 0: from the output.
Diffstat (limited to 'apt-pkg/deb')
-rw-r--r--apt-pkg/deb/deblistparser.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/apt-pkg/deb/deblistparser.cc b/apt-pkg/deb/deblistparser.cc
index 4e61f0fc2..3a26b40c4 100644
--- a/apt-pkg/deb/deblistparser.cc
+++ b/apt-pkg/deb/deblistparser.cc
@@ -372,6 +372,11 @@ unsigned short debListParser::VersionHash()
string to make that not matter. */
for (; Start != End; ++Start)
{
+ // Strip away 0: epochs from input
+ if (*Start == '0' && Start[1] == ':') {
+ Start++; // Skip the :
+ continue; // Skip the 0
+ }
if (isspace_ascii(*Start) != 0 || *Start == '=')
continue;
Result = AddCRC16Byte(Result, tolower_ascii_unsafe(*Start));