Add a strnncmp() function which behaves like strncmp() except it takes the length of both strings instead of just one. It behaves the same as strncmp() up to the minimum common length between the strings. When the strings are identical up to this minimum common length, the length difference is returned. Signed-off-by: Jeremiah Mahler <jmmahler@xxxxxxxxx> --- strbuf.c | 9 +++++++++ strbuf.h | 2 ++ 2 files changed, 11 insertions(+) diff --git a/strbuf.c b/strbuf.c index ac62982..4eb7954 100644 --- a/strbuf.c +++ b/strbuf.c @@ -600,3 +600,12 @@ char *xstrdup_tolower(const char *string) result[i] = '\0'; return result; } + +int strnncmp(const char *a, int len_a, const char *b, int len_b) +{ + int min_len = (len_a < len_b) ? len_a : len_b; + int cmp = strncmp(a, b, min_len); + if (cmp) + return cmp; + return (len_a - len_b); +} diff --git a/strbuf.h b/strbuf.h index e9ad03e..88af9bf 100644 --- a/strbuf.h +++ b/strbuf.h @@ -187,4 +187,6 @@ extern int fprintf_ln(FILE *fp, const char *fmt, ...); char *xstrdup_tolower(const char *); +extern int strnncmp(const char *a, int len_a, const char *b, int len_b); + #endif /* STRBUF_H */ -- 2.0.0.695.g38ee9a9 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html