X-Git-Url: https://sigrok.org/gitweb/?p=sigrok-cli.git;a=blobdiff_plain;f=parsers.c;h=707bcdd5a7e67e5b93c20aec127704bd8a76eef1;hp=a01f041802c20eceed66754c27542deff5be925b;hb=432de709d1560fdc861901bc64f19b68a4b2011b;hpb=2d6ff326914f965ea5ee187213e8f2116c120d48 diff --git a/parsers.c b/parsers.c index a01f041..707bcdd 100644 --- a/parsers.c +++ b/parsers.c @@ -181,3 +181,36 @@ struct sr_dev *parse_devstring(const char *devstring) return dev; } + +char *strcanon(char *str) +{ + int p0, p1; + char *s; + + /* Returns newly allocated string. */ + s = g_ascii_strdown(str, -1); + for (p0 = p1 = 0; str[p0]; p0++) { + if ((s[p0] >= 'a' && s[p0] <= 'z') + || (s[p0] >= '0' && s[p0] <= '9')) + s[p1++] = s[p0]; + } + s[p1] = '\0'; + + return s; +} + + +int canon_cmp(char *str1, char *str2) +{ + int ret; + char *s1, *s2; + + s1 = strcanon(str1); + s2 = strcanon(str2); + ret = g_ascii_strcasecmp(s1, s2); + g_free(s2); + g_free(s1); + + return ret; +} +