X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/tripe/blobdiff_plain/3331936b5cfb724db8b70b3b8f14112be0e8b9e8..e6a3a5537973f060bbfbe9b5aecfd9c0312a1a7f:/server/tripe.h diff --git a/server/tripe.h b/server/tripe.h index a9a785dc..e917ddb0 100644 --- a/server/tripe.h +++ b/server/tripe.h @@ -1146,6 +1146,39 @@ extern void seq_reset(seqwin */*s*/); extern int seq_check(seqwin */*s*/, uint32 /*q*/, const char */*service*/); +/* --- @versioncmp@ --- * + * + * Arguments: @const char *va, *vb@ = two version strings + * + * Returns: Less than, equal to, or greater than zero, according to + * whether @va@ is less than, equal to, or greater than @vb@. + * + * Use: Compares version number strings. + * + * The algorithm is an extension of the Debian version + * comparison algorithm. A version number consists of three + * components: + * + * [EPOCH :] MAIN [- SUB] + * + * The MAIN part may contain colons or hyphens if there is an + * EPOCH or SUB, respectively. Version strings are compared + * componentwise: first epochs, then main parts, and finally + * subparts. + * + * The component comparison is done as follows. First, the + * initial subsequence of nondigit characters is extracted from + * each string, and these are compared lexicographically, using + * ASCII ordering, except that letters precede non-letters. If + * both are the same, an initial sequence of digits is extracted + * from the remaining parts of the version strings, and these + * are compared numerically (an empty sequence being considered + * to have the value zero). This process is repeated until we + * have a winner or until both strings are exhausted. + */ + +extern int versioncmp(const char */*va*/, const char */*vb*/); + /*----- That's all, folks -------------------------------------------------*/ #ifdef __cplusplus