From dfe8ddb9ff8b3f90036a0e47220b6c180cc95ea7 Mon Sep 17 00:00:00 2001 From: Lizzy Fleckenstein Date: Wed, 19 Jun 2024 21:11:50 +0200 Subject: str.c: fix str_cmp and add str_eq Signed-off-by: Lizzy Fleckenstein --- src/str.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'src/str.c') diff --git a/src/str.c b/src/str.c index 4f6d5c7..e14591d 100644 --- a/src/str.c +++ b/src/str.c @@ -6,12 +6,24 @@ #include #include "str.h" -int str_cmp(str s1, str s2) +bool str_eq(str s1, str s2) { if (s1.len != s2.len) - return (int) s1.len - (int) s2.len; + return false; + + return memcmp(s1.data, s2.data, s1.len) == 0; +} + - return memcmp(s1.data, s2.data, s1.len); +int str_cmp(str s1, str s2) +{ + size_t min_len = s1.len < s2.len ? s1.len : s2.len; + int cmp = memcmp(s1.data, s2.data, min_len); + + if (cmp == 0) + return (int) s1.len - (int) s2.len; + else + return cmp; } static bool match_char(char c, str tokens) -- cgit v1.2.3