Message ID | 1526578856-30967-6-git-send-email-thuth@redhat.com |
---|---|
State | Superseded |
Headers | show |
Series | Support network booting with pxelinux.cfg files | expand |
On Thu, 17 May 2018 19:40:52 +0200 Thomas Huth <thuth@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@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@kaod.org> > + } > + > + return NULL; > +}
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; + } + + return NULL; +}
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@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