aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2020-06-30 08:33:02 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2020-06-30 08:33:02 +0200
commitd21a63f9fca8eb16f79de9b72d4a3484dfaec1fc (patch)
tree142eb26554f16650f23b90ac9c72380dd7326d9e
parentc9fc15359ef8fe5aa98ab0308c1563d9bcf99bb8 (diff)
downloadbusybox-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.c17
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 */
14char* FAST_FUNC last_char_is(const char *s, int c) 12char* 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}