path: add mpd_basename() function
This is like basename(3) but with predictable semantics independent of C library or build options used. This is also much more strict and does not account for trailing slashes (mpd should never deal with trailing slashes on internal functions).
This commit is contained in:
parent
5c516b8421
commit
8bb96d46e8
12
src/path.c
12
src/path.c
@ -290,3 +290,15 @@ void utf8_to_fs_playlist_path(char *path_max_tmp, const char *utf8path)
|
||||
rpp2app_r(path_max_tmp, path_max_tmp);
|
||||
strncat(path_max_tmp, "." PLAYLIST_FILE_SUFFIX, MPD_PATH_MAX - 1);
|
||||
}
|
||||
|
||||
/* Only takes sanitized paths w/o trailing slashes */
|
||||
const char *mpd_basename(const char *path)
|
||||
{
|
||||
const char *ret = strrchr(path, '/');
|
||||
|
||||
if (!ret)
|
||||
return path;
|
||||
++ret;
|
||||
assert(*ret != '\0');
|
||||
return ret;
|
||||
}
|
||||
|
@ -88,4 +88,12 @@ void pathcpy_trunc(char *dest, const char *src);
|
||||
*/
|
||||
void utf8_to_fs_playlist_path(char *path_max_tmp, const char *utf8path);
|
||||
|
||||
/*
|
||||
* Like basename(3) but with predictable semantics independent
|
||||
* of C library or build options used. This is also much more strict
|
||||
* and does not account for trailing slashes (mpd should never deal with
|
||||
* trailing slashes on internal functions).
|
||||
*/
|
||||
const char *mpd_basename(const char *path);
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user