1/* vi: set sw=4 ts=4: */ 2/* 3 * bb_get_last_path_component implementation for busybox 4 * 5 * Copyright (C) 2001 Manuel Novoa III <mjn3@codepoet.org> 6 * 7 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. 8 */ 9 10#include "libbb.h" 11/* 12 * "/" -> "/" 13 * "abc" -> "abc" 14 * "abc/def" -> "def" 15 * "abc/def/" -> "" 16 */ 17char* FAST_FUNC bb_get_last_path_component_nostrip(const char *path) 18{ 19 char *slash = strrchr(path, '/'); 20 21 if (!slash || (slash == path && !slash[1])) 22 return (char*)path; 23 24 return slash + 1; 25} 26 27/* 28 * "/" -> "/" 29 * "abc" -> "abc" 30 * "abc/def" -> "def" 31 * "abc/def/" -> "def" !! 32 */ 33char* FAST_FUNC bb_get_last_path_component_strip(char *path) 34{ 35 char *slash = last_char_is(path, '/'); 36 37 if (slash) 38 while (*slash == '/' && slash != path) 39 *slash-- = '\0'; 40 41 return bb_get_last_path_component_nostrip(path); 42} 43