spek

Acoustic spectrum analyser https://github.com/alexkay/spek spek.cc
git clone http://git.hanabi.in/repos/spek.git
Log | Files | Refs | README

spek-utils.cc (724B)


      1 #include <assert.h>
      2 #include <limits.h>
      3 #include <stdlib.h>
      4 
      5 #include "spek-utils.h"
      6 
      7 int spek_vercmp(const char *a, const char *b)
      8 {
      9     assert(a && b);
     10 
     11     if (!*a && !*b) {
     12         return 0;
     13     }
     14     if (!*a) {
     15         return -1;
     16     }
     17     if (!*b) {
     18         return 1;
     19     }
     20 
     21     char *i, *j;
     22     while(1) {
     23         i = j = NULL;
     24         long x = strtol(a, &i, 10);
     25         long y = strtol(b, &j, 10);
     26 
     27         if (x < y) {
     28             return -1;
     29         }
     30         if (x > y) {
     31             return 1;
     32         }
     33 
     34         if (!*i && !*j) {
     35             return 0;
     36         }
     37         if (!*i) {
     38             return -1;
     39         }
     40         if (!*j) {
     41             return 1;
     42         }
     43 
     44         a = i + 1;
     45         b = j + 1;
     46     }
     47 }