X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=libbb%2Flast_char_is.c;h=65e6cdf044eaaaf5068a2516fe2cc5dfbd1fcd95;hb=a8cf9c5a3ffd1601872d1ab14c5be00fde29209c;hp=3616d5916df60f60a91634e35d1ad5e16b614cdc;hpb=809a6e310443d0b5010c8b293cab0160608c1b02;p=oweals%2Fbusybox.git diff --git a/libbb/last_char_is.c b/libbb/last_char_is.c index 3616d5916..65e6cdf04 100644 --- a/libbb/last_char_is.c +++ b/libbb/last_char_is.c @@ -4,20 +4,20 @@ * * Copyright (C) 2001 Larry Doolittle, * - * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. + * Licensed under GPLv2 or later, see file LICENSE in this source tree. */ #include "libbb.h" -/* Find out if the last character of a string matches the one given Don't - * underrun the buffer if the string length is 0. Also avoids a possible - * space-hogging inline of strlen() per usage. +/* Find out if the last character of a string matches the one given. + * Don't underrun the buffer if the string length is 0. */ -char* last_char_is(const char *s, int c) +char* FAST_FUNC last_char_is(const char *s, int c) { - if (s) { - s = strrchr(s, c); - if (s && !s[1]) + if (s && *s) { + size_t sz = strlen(s) - 1; + s += sz; + if ( (unsigned char)*s == c) return (char*)s; } return NULL;