diff options
author | Michael Vogt <michael.vogt@ubuntu.com> | 2010-04-01 17:18:31 +0200 |
---|---|---|
committer | Michael Vogt <michael.vogt@ubuntu.com> | 2010-04-01 17:18:31 +0200 |
commit | 46361a17f0cb6f4f7c46705c5af71b6680cf5b1d (patch) | |
tree | e7466e094406d5d195823840cb2d43a371f67bea /apt-pkg/deb/debversion.cc | |
parent | 3b1fffc35f3eb277d92f38c687c270edd1d8550d (diff) | |
parent | 436d7eab92bb8f9cc6498acfbf2055e717be6fd0 (diff) |
merged from lp:~donkult/apt/sid
Diffstat (limited to 'apt-pkg/deb/debversion.cc')
-rw-r--r-- | apt-pkg/deb/debversion.cc | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/apt-pkg/deb/debversion.cc b/apt-pkg/deb/debversion.cc index ad45e9a44..755ffbe96 100644 --- a/apt-pkg/deb/debversion.cc +++ b/apt-pkg/deb/debversion.cc @@ -190,8 +190,22 @@ int debVersioningSystem::DoCmpVersion(const char *A,const char *AEnd, dlhs++; if (drhs != rhs) drhs++; - - return CmpFragment(dlhs,AEnd,drhs,BEnd); + + // no debian revision need to be treated like -0 + if (*(dlhs-1) == '-' && *(drhs-1) == '-') + return CmpFragment(dlhs,AEnd,drhs,BEnd); + else if (*(dlhs-1) == '-') + { + const char* null = "0"; + return CmpFragment(dlhs,AEnd,null, null+1); + } + else if (*(drhs-1) == '-') + { + const char* null = "0"; + return CmpFragment(null, null+1, drhs, BEnd); + } + else + return 0; } /*}}}*/ // debVS::CheckDep - Check a single dependency /*{{{*/ |