libbb: new function bb_getgroups() - allocating wrapper around getgroups()
[oweals/busybox.git] / libbb / last_char_is.c
index 3616d5916df60f60a91634e35d1ad5e16b614cdc..65e6cdf044eaaaf5068a2516fe2cc5dfbd1fcd95 100644 (file)
@@ -4,20 +4,20 @@
  *
  * Copyright (C) 2001 Larry Doolittle, <ldoolitt@recycle.lbl.gov>
  *
- * 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;