diff: fix -q exit code

last_char_is: sacrifice 9 bytes but avoid double-scan
This commit is contained in:
Denis Vlasenko
2006-12-16 22:18:44 +00:00
parent 79e77cdbed
commit 6a1d661036
2 changed files with 78 additions and 76 deletions

View File

@ -9,15 +9,15 @@
#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)
{
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;