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

Last change on this file since 2725 was 2725, checked in by Bruno Cornec, 13 years ago
  • Update mindi-busybox to 1.18.3 to avoid problems with the tar command which is now failing on recent versions with busybox 1.7.3
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.