00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef PKGLIB_DEBVERSION_H
00013 #define PKGLIB_DEBVERSION_H
00014
00015
00016
00017 #include <apt-pkg/version.h>
00018
00019 class debVersioningSystem : public pkgVersioningSystem
00020 {
00021 public:
00022
00023 static int CmpFragment(const char *A, const char *AEnd, const char *B,
00024 const char *BEnd);
00025
00026
00027 virtual int DoCmpVersion(const char *A,const char *Aend,
00028 const char *B,const char *Bend);
00029 virtual bool CheckDep(const char *PkgVer,int Op,const char *DepVer);
00030 virtual int DoCmpReleaseVer(const char *A,const char *Aend,
00031 const char *B,const char *Bend)
00032 {
00033 return DoCmpVersion(A,Aend,B,Bend);
00034 }
00035 virtual string UpstreamVersion(const char *A);
00036
00037 debVersioningSystem();
00038 };
00039
00040 extern debVersioningSystem debVS;
00041
00042 #ifdef APT_COMPATIBILITY
00043 #if APT_COMPATIBILITY != 986
00044 #warning "Using APT_COMPATIBILITY"
00045 #endif
00046
00047 inline int pkgVersionCompare(const char *A, const char *B)
00048 {
00049 return debVS.CmpVersion(A,B);
00050 }
00051 inline int pkgVersionCompare(const char *A, const char *AEnd,
00052 const char *B, const char *BEnd)
00053 {
00054 return debVS.DoCmpVersion(A,AEnd,B,BEnd);
00055 }
00056 inline int pkgVersionCompare(string A,string B)
00057 {
00058 return debVS.CmpVersion(A,B);
00059 }
00060 inline bool pkgCheckDep(const char *DepVer,const char *PkgVer,int Op)
00061 {
00062 return debVS.CheckDep(PkgVer,Op,DepVer);
00063 }
00064 inline string pkgBaseVersion(const char *Ver)
00065 {
00066 return debVS.UpstreamVersion(Ver);
00067 }
00068 #endif
00069
00070 #endif