From 00f915d92ea6cce33110484814dc17ae47509969 Mon Sep 17 00:00:00 2001 From: William Wilgus Date: Thu, 17 Nov 2022 04:15:38 -0500 Subject: strnatcmp.c use a fn pointer to call strcmp/strcasecmp Change-Id: I2bfaeec4cf2af4bed8f0781bcfa24b0b104fb22a --- firmware/common/strnatcmp.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'firmware') diff --git a/firmware/common/strnatcmp.c b/firmware/common/strnatcmp.c index 0084ff3582..d77f7e995e 100644 --- a/firmware/common/strnatcmp.c +++ b/firmware/common/strnatcmp.c @@ -122,7 +122,8 @@ compare_left(char const *a, char const *b) return 0; } -static int strnatcmp0(char const *a, char const *b, int fold_case) +static int strnatcmp0(char const *a, char const *b, + int (*cmp_fn)(const char*, const char*)) { int ai, bi; int ca, cb; @@ -150,13 +151,10 @@ static int strnatcmp0(char const *a, char const *b, int fold_case) if (!ca && !cb) { /* The strings compare the same. Call str[case]cmp() to ensure consistent results. */ - if(fold_case) - return strcasecmp(a,b); - else - return strcmp(a,b); + return cmp_fn(a,b); } - if (fold_case) { + if (cmp_fn == &strcasecmp) { ca = nat_unify_case(ca); cb = nat_unify_case(cb); } @@ -170,14 +168,12 @@ static int strnatcmp0(char const *a, char const *b, int fold_case) } } - - int strnatcmp(const char *a, const char *b) { - return strnatcmp0(a, b, 0); + return strnatcmp0(a, b, strcmp); } /* Compare, recognizing numeric string and ignoring case. */ int strnatcasecmp(const char *a, const char *b) { - return strnatcmp0(a, b, 1); + return strnatcmp0(a, b, &strcasecmp); } -- cgit v1.2.3