actube/src/cw/cw_ktv_mavlcmp.c
7u83@mail.ru 257f1189b0 ac descriptor works
FossilOrigin-Name: 8e68ed51a2c8ee448474ab13ef8d0edbd8cfda5b5384684e2ed9ffa1fca4e799
2018-03-24 06:56:05 +00:00

32 lines
590 B
C

#include "ktv.h"
int cw_ktv_mavlcmp(const void *v1, const void *v2)
{
char *d1,*d2;
int l1,l2,rc,i1,i2;
d1 = strchr(((cw_KTV_t *) v1)->key,'.');
d2 = strchr(((cw_KTV_t *) v2)->key,'.');
if (d1==NULL || d2==NULL)
return strcmp(((cw_KTV_t *) v1)->key, ((cw_KTV_t *) v2)->key);
l1=d1-((cw_KTV_t *) v1)->key;
l2=d2-((cw_KTV_t *) v2)->key;
if (l1!=l2){
return strcmp(((cw_KTV_t *) v1)->key, ((cw_KTV_t *) v2)->key);
}
rc = strncmp(((cw_KTV_t *) v1)->key,((cw_KTV_t *) v2)->key,l1);
if (rc!=0){
return rc;
}
i1 = atoi(d1+1);
i2 = atoi(d2+1);
return i1-i2;
}