From 3b22b89bce6c5185e1db0a28390a0e6df138a27b Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 13 Jan 2016 19:45:05 +0100 Subject: [PATCH] basic: add ascii_strcasecmp_nn() call In contrast to ascii_strcasecmp_nn() it takes two character buffers with their individual length. It will then compare the buffers up the smaller size of the two buffers, and finally the length themselves. --- src/basic/string-util.c | 15 +++++++++++++++ src/basic/string-util.h | 1 + 2 files changed, 16 insertions(+) diff --git a/src/basic/string-util.c b/src/basic/string-util.c index dfcb29235..6f4593e6b 100644 --- a/src/basic/string-util.c +++ b/src/basic/string-util.c @@ -356,6 +356,21 @@ int ascii_strcasecmp_n(const char *a, const char *b, size_t n) { return 0; } +int ascii_strcasecmp_nn(const char *a, size_t n, const char *b, size_t m) { + int r; + + r = ascii_strcasecmp_n(a, b, MIN(n, m)); + if (r != 0) + return r; + + if (n < m) + return -1; + else if (n > m) + return 1; + else + return 0; +} + bool chars_intersect(const char *a, const char *b) { const char *p; diff --git a/src/basic/string-util.h b/src/basic/string-util.h index 48cdc736f..7ed649ae6 100644 --- a/src/basic/string-util.h +++ b/src/basic/string-util.h @@ -133,6 +133,7 @@ char *ascii_strlower(char *s); char *ascii_strlower_n(char *s, size_t n); int ascii_strcasecmp_n(const char *a, const char *b, size_t n); +int ascii_strcasecmp_nn(const char *a, size_t n, const char *b, size_t m); bool chars_intersect(const char *a, const char *b) _pure_; -- 2.30.2