source: MondoRescue/branches/2.2.9/mindi-busybox/libbb/get_last_path_component.c@ 3320

Last change on this file since 3320 was 3320, checked in by Bruno Cornec, 9 years ago
  • Re-add (thanks git BTW) the 2.2.9 branch which had been destroyed in the move to 3.0
  • Property svn:eol-style set to native
File size: 869 bytes
Line 
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 source tree.
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}
Note: See TracBrowser for help on using the repository browser.