Author: infinoid Date: Wed Jan 7 22:53:19 2009 New Revision: 35190 Modified: trunk/src/charset/binary.c Log: Make a first stab at implementing compare() for the binary charset plugin. Modified: trunk/src/charset/binary.c ============================================================================== --- trunk/src/charset/binary.c (original) +++ trunk/src/charset/binary.c Wed Jan 7 22:53:19 2009 @@ -345,17 +345,22 @@ =item C<static INTVAL compare> -Returns 0. We can't directly compare two binary buffers (yet). +Compare the two buffers, first by size, then with memcmp. =cut */ static INTVAL -compare(SHIM_INTERP, SHIM(const STRING *lhs), SHIM(const STRING *rhs)) +compare(SHIM_INTERP, ARGIN(const STRING *lhs), ARGIN(const STRING *rhs)) { ASSERT_ARGS(compare) - return 0; + const UINTVAL l_len = lhs->strlen; + const UINTVAL r_len = rhs->strlen; + if (l_len != r_len) + return l_len - r_len; + + return memcmp(lhs->strstart, rhs->strstart, l_len); } /*