debversion.h 1.8 KB

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