aboutsummaryrefslogtreecommitdiffstats
path: root/src/path.c
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2008-09-29 13:16:48 +0200
committerMax Kellermann <max@duempel.org>2008-09-29 13:16:48 +0200
commit8bb96d46e8171595d61421765949536d6993323d (patch)
treedac409df0713a174948cdac45a6dad05707f5169 /src/path.c
parent5c516b8421f8073418bccefe1f8cd6b45bc9c3d6 (diff)
downloadmpd-8bb96d46e8171595d61421765949536d6993323d.tar.gz
mpd-8bb96d46e8171595d61421765949536d6993323d.tar.xz
mpd-8bb96d46e8171595d61421765949536d6993323d.zip
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).
Diffstat (limited to 'src/path.c')
-rw-r--r--src/path.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/path.c b/src/path.c
index ceb00c5de..8d1b0018d 100644
--- a/src/path.c
+++ b/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;
+}