]> git.sesse.net Git - ffmpeg/blobdiff - libavutil/avstring.c
Merge commit '6dd93ee6f1b050ad7c4b247899e83efa293ee405'
[ffmpeg] / libavutil / avstring.c
index f03df674412441ffb757d9c5ee04b0d84ecf51b2..7072a55cf3b6817f41cb4e4b6435a3aa47313452 100644 (file)
@@ -25,6 +25,8 @@
 #include <string.h>
 #include <ctype.h>
 #include "avstring.h"
+#include "config.h"
+#include "common.h"
 #include "mem.h"
 
 int av_strstart(const char *str, const char *pfx, const char **ptr)
@@ -211,6 +213,45 @@ int av_strncasecmp(const char *a, const char *b, size_t n)
     return c1 - c2;
 }
 
+const char *av_basename(const char *path)
+{
+    char *p = strrchr(path, '/');
+
+#if HAVE_DOS_PATHS
+    char *q = strrchr(path, '\\');
+    char *d = strchr(path, ':');
+
+    p = FFMAX3(p, q, d);
+#endif
+
+    if (!p)
+        return path;
+
+    return p + 1;
+}
+
+const char *av_dirname(char *path)
+{
+    char *p = strrchr(path, '/');
+
+#if HAVE_DOS_PATHS
+    char *q = strrchr(path, '\\');
+    char *d = strchr(path, ':');
+
+    d = d ? d + 1 : d;
+
+    p = FFMAX3(p, q, d);
+#endif
+
+    if (!p)
+        return ".";
+
+    *p = '\0';
+
+    return path;
+}
+
+
 #ifdef TEST
 
 #include "common.h"