Merge with Michael Vogt's archive
[ntk/apt.git] / apt-pkg / deb / debversion.h
CommitLineData
b2e465d6
AL
1// -*- mode: cpp; mode: fold -*-
2// Description /*{{{*/
c0a00c82 3// $Id: debversion.h,v 1.3 2001/05/03 05:25:04 jgg Exp $
b2e465d6
AL
4/* ######################################################################
5
6 Debian Version - Versioning system for Debian
7
8 This implements the standard Debian versioning system.
9
10 ##################################################################### */
11 /*}}}*/
12#ifndef PKGLIB_DEBVERSION_H
13#define PKGLIB_DEBVERSION_H
14
15#ifdef __GNUG__
16#pragma interface "apt-pkg/debversion.h"
17#endif
18
19#include <apt-pkg/version.h>
20
21class debVersioningSystem : public pkgVersioningSystem
c0a00c82
AL
22{
23 public:
24
b2e465d6
AL
25 static int CmpFragment(const char *A, const char *AEnd, const char *B,
26 const char *BEnd);
27
b2e465d6
AL
28 // Compare versions..
29 virtual int DoCmpVersion(const char *A,const char *Aend,
30 const char *B,const char *Bend);
31 virtual bool CheckDep(const char *PkgVer,int Op,const char *DepVer);
32 virtual int DoCmpReleaseVer(const char *A,const char *Aend,
33 const char *B,const char *Bend)
34 {
35 return DoCmpVersion(A,Aend,B,Bend);
36 }
37 virtual string UpstreamVersion(const char *A);
38
39 debVersioningSystem();
40};
41
42extern debVersioningSystem debVS;
43
44#ifdef APT_COMPATIBILITY
45#if APT_COMPATIBILITY != 986
46#warning "Using APT_COMPATIBILITY"
47#endif
48
49inline int pkgVersionCompare(const char *A, const char *B)
50{
51 return debVS.CmpVersion(A,B);
52}
53inline int pkgVersionCompare(const char *A, const char *AEnd,
54 const char *B, const char *BEnd)
55{
56 return debVS.DoCmpVersion(A,AEnd,B,BEnd);
57}
58inline int pkgVersionCompare(string A,string B)
59{
60 return debVS.CmpVersion(A,B);
61}
62inline bool pkgCheckDep(const char *DepVer,const char *PkgVer,int Op)
63{
64 return debVS.CheckDep(PkgVer,Op,DepVer);
65}
66inline string pkgBaseVersion(const char *Ver)
67{
68 return debVS.UpstreamVersion(Ver);
69}
70#endif
71
72#endif