diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2020-06-30 08:33:02 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2020-06-30 08:33:02 +0200 |
commit | d21a63f9fca8eb16f79de9b72d4a3484dfaec1fc (patch) | |
tree | 142eb26554f16650f23b90ac9c72380dd7326d9e | |
parent | c9fc15359ef8fe5aa98ab0308c1563d9bcf99bb8 (diff) | |
download | busybox-w32-d21a63f9fca8eb16f79de9b72d4a3484dfaec1fc.tar.gz busybox-w32-d21a63f9fca8eb16f79de9b72d4a3484dfaec1fc.tar.bz2 busybox-w32-d21a63f9fca8eb16f79de9b72d4a3484dfaec1fc.zip |
libbb: code shrink in last_char_is()
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | libbb/last_char_is.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/libbb/last_char_is.c b/libbb/last_char_is.c index 66f2e3635..918526e6c 100644 --- a/libbb/last_char_is.c +++ b/libbb/last_char_is.c | |||
@@ -8,16 +8,17 @@ | |||
8 | */ | 8 | */ |
9 | #include "libbb.h" | 9 | #include "libbb.h" |
10 | 10 | ||
11 | /* Find out if the last character of a string matches the one given. | 11 | /* Find out if the last character of a string matches the one given */ |
12 | * Don't underrun the buffer if the string length is 0. | ||
13 | */ | ||
14 | char* FAST_FUNC last_char_is(const char *s, int c) | 12 | char* FAST_FUNC last_char_is(const char *s, int c) |
15 | { | 13 | { |
16 | if (s && *s) { | 14 | if (s) { |
17 | size_t sz = strlen(s) - 1; | 15 | size_t sz = strlen(s); |
18 | s += sz; | 16 | /* Don't underrun the buffer if the string length is 0 */ |
19 | if ( (unsigned char)*s == c) | 17 | if (sz != 0) { |
20 | return (char*)s; | 18 | s += sz - 1; |
19 | if ((unsigned char)*s == c) | ||
20 | return (char*)s; | ||
21 | } | ||
21 | } | 22 | } |
22 | return NULL; | 23 | return NULL; |
23 | } | 24 | } |