[SLOF] [PATCH 5/9] libc: Implement strrchr()
Greg Kurz
groug at kaod.org
Fri May 18 20:49:09 AEST 2018
On Thu, 17 May 2018 19:40:52 +0200
Thomas Huth <thuth at redhat.com> wrote:
> This function will be used in one of the next patches to find the last
> slash in a file name string.
>
> Signed-off-by: Thomas Huth <thuth at redhat.com>
> ---
> lib/libc/string/Makefile.inc | 2 +-
> lib/libc/string/strrchr.c | 28 ++++++++++++++++++++++++++++
> 2 files changed, 29 insertions(+), 1 deletion(-)
> create mode 100644 lib/libc/string/strrchr.c
>
> diff --git a/lib/libc/string/Makefile.inc b/lib/libc/string/Makefile.inc
> index 7ccf3c4..0a77738 100644
> --- a/lib/libc/string/Makefile.inc
> +++ b/lib/libc/string/Makefile.inc
> @@ -13,7 +13,7 @@
>
> STRING_SRC_C = strcat.c strchr.c strcmp.c strcpy.c strlen.c strncmp.c \
> strncpy.c strstr.c memset.c memcpy.c memmove.c memchr.c \
> - memcmp.c strcasecmp.c strncasecmp.c strtok.c
> + memcmp.c strcasecmp.c strncasecmp.c strtok.c strrchr.c
> STRING_SRC_ASM =
> STRING_SRCS = $(STRING_SRC_C:%=$(STRINGCMNDIR)/%) $(STRING_SRC_ASM:%=$(STRINGCMNDIR)/%)
> STRING_OBJS = $(STRING_SRC_C:%.c=%.o) $(STRING_SRC_ASM:%.S=%.o)
> diff --git a/lib/libc/string/strrchr.c b/lib/libc/string/strrchr.c
> new file mode 100644
> index 0000000..7824020
> --- /dev/null
> +++ b/lib/libc/string/strrchr.c
> @@ -0,0 +1,28 @@
> +/******************************************************************************
> + * libc strrchr() implementation
> + *
> + * This program and the accompanying materials are made available under
> + * the terms of the BSD License which accompanies this distribution, and
> + * is available at http://www.opensource.org/licenses/bsd-license.php
> + *
> + * Contributors:
> + * Thomas Huth - initial implementation
> + *****************************************************************************/
> +
> +#include <string.h>
> +
> +char *
> +strrchr(const char *s, int c)
> +{
> + char cb = c;
> + char *ptr = (char *)s + strlen(s) - 1;
> +
> + while (ptr >= s) {
> + if (*ptr == cb) {
> + return ptr;
> + }
> + ptr -= 1;
ptr-- ?
Anway,
Reviewed-by: Greg Kurz <groug at kaod.org>
> + }
> +
> + return NULL;
> +}
More information about the SLOF
mailing list