document parent_path()
git-svn-id: https://svn.musicpd.org/mpd/trunk@7128 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
parent
b70912031d
commit
b1cdf8dadf
10
src/path.c
10
src/path.c
@ -225,13 +225,23 @@ void pathcpy_trunc(char *dest, const char *src)
|
||||
char *parent_path(char *path_max_tmp, const char *path)
|
||||
{
|
||||
char *c;
|
||||
static const int handle_trailing_slashes = 0;
|
||||
|
||||
pathcpy_trunc(path_max_tmp, path);
|
||||
|
||||
if (handle_trailing_slashes) {
|
||||
size_t last_char = strlen(path_max_tmp) - 1;
|
||||
|
||||
while (last_char > 0 && path_max_tmp[last_char] == '/')
|
||||
path_max_tmp[last_char--] = '\0';
|
||||
}
|
||||
|
||||
c = strrchr(path_max_tmp,'/');
|
||||
|
||||
if (c == NULL)
|
||||
path_max_tmp[0] = '\0';
|
||||
else {
|
||||
/* strip redundant slashes: */
|
||||
while ((path_max_tmp <= c) && *(--c) == '/') /* nothing */
|
||||
;
|
||||
c[1] = '\0';
|
||||
|
13
src/path.h
13
src/path.h
@ -60,13 +60,20 @@ char *pfx_dir(char *dst,
|
||||
const char *path, const size_t path_len,
|
||||
const char *pfx, const size_t pfx_len);
|
||||
|
||||
/* relative music path to absolute music path
|
||||
* char * passed is a static variable, so don't free it
|
||||
*/
|
||||
/* relative music path to absolute music path */
|
||||
char *rmp2amp_r(char *dst, const char *rel_path);
|
||||
|
||||
/* relative playlist path to absolute playlist path */
|
||||
char *rpp2app_r(char *dst, const char *rel_path);
|
||||
|
||||
/*
|
||||
* parent_path - saner version of dirname(3) with slightly different semantics
|
||||
* - we will return "" instead of "." or "/" if we have no parent
|
||||
* this is because we only deal with internal paths
|
||||
* - we always skip over redundant slashes in the middle, if there are any
|
||||
* - we will never get meaningful paths with trailing slashes in our callers
|
||||
* (set handle_trailing_slashes to true if we do)
|
||||
*/
|
||||
char *parent_path(char *path_max_tmp, const char *path);
|
||||
|
||||
/* strips extra "///" and leading "/" and trailing "/" */
|
||||
|
Loading…
Reference in New Issue
Block a user