[PATCH RESEND] libbb: shrink is_suffixed_with() function
Tito
farmatito at tiscali.it
Sun Sep 13 06:07:43 UTC 2015
Hi,
attached you will find a patch that shrinks the is_suffixed_with
function and adds one more test case as suggested by Bartosz
Golaszewski.
Bloat-o-meter says:
function old new delta
is_suffixed_with 83 47 -36
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-36) Total: -36 bytes
Ciao,
Tito
Shrink is_suffixed_with function.
Signed-off-by: Tito Ragusa <farmatito at tiscali.it>
--- libbb/compare_string_array.c.orig 2015-08-27 00:39:27.694416966 +0200
+++ libbb/compare_string_array.c 2015-08-27 13:55:44.997158181 +0200
@@ -35,16 +35,9 @@ char* FAST_FUNC is_prefixed_with(const c
*/
char* FAST_FUNC is_suffixed_with(const char *string, const char *key)
{
- size_t key_len = strlen(key);
- ssize_t len_diff = strlen(string) - key_len;
-
- if (len_diff >= 0) {
- string += len_diff;
- if (strcmp(string, key) == 0) {
- return (char*)string;
- }
- }
-
+ char *s = strrstr(string, key);
+ if (s && strcmp(s, key) == 0)
+ return s;
return NULL;
}
@@ -159,6 +152,7 @@ BBUNIT_DEFINE_TEST(is_suffixed_with)
BBUNIT_ASSERT_STREQ("foo", is_suffixed_with("foo", "foo"));
BBUNIT_ASSERT_STREQ("", is_suffixed_with("foo", ""));
BBUNIT_ASSERT_STREQ("", is_suffixed_with("", ""));
+ BBUNIT_ASSERT_STREQ("foo", is_suffixed_with("barfoofoo", "foo"));
BBUNIT_ASSERT_NULL(is_suffixed_with("foo", "bar foo"));
BBUNIT_ASSERT_NULL(is_suffixed_with("foo foo", "bar"));
-------------- next part --------------
A non-text attachment was scrubbed...
Name: is_suffixed_with.patch
Type: text/x-diff
Size: 1081 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/busybox/attachments/20150913/86487709/attachment.bin>
More information about the busybox
mailing list