From 32574a41b4fe490db8a0f2142ae0108d7186e1c3 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Fri, 15 Jun 2001 20:10:39 +0000 Subject: With a bit of care I was able to save about 100 bytes. -Erik --- libbb/get_last_path_component.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'libbb/get_last_path_component.c') diff --git a/libbb/get_last_path_component.c b/libbb/get_last_path_component.c index a322288a6..f1ddfbde0 100644 --- a/libbb/get_last_path_component.c +++ b/libbb/get_last_path_component.c @@ -32,7 +32,13 @@ char *get_last_path_component(char *path) { - char *s=path+strlen(path)-1; + char *s; + register char *ptr = path; + register char *prev = 0; + + while (*ptr) + ptr++; + s = ptr - 1; /* strip trailing slashes */ while (s != path && *s == '/') { @@ -40,7 +46,14 @@ char *get_last_path_component(char *path) } /* find last component */ - s = strrchr(path, '/'); + ptr = path; + while (*ptr != '\0') { + if (*ptr == '/') + prev = ptr; + ptr++; + } + s = prev; + if (s == NULL || s[1] == '\0') return path; else -- cgit v1.2.3