[FFmpeg-devel] [PATCH v1 2/2] avutil/avstring: replace with system interface if dirname and basename functions are detected
lance.lmwang at gmail.com
lance.lmwang at gmail.com
Wed Oct 9 11:28:26 EEST 2019
From: Limin Wang <lance.lmwang at gmail.com>
Signed-off-by: Limin Wang <lance.lmwang at gmail.com>
---
configure | 4 ++++
libavutil/avstring.c | 13 ++++++++++++-
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/configure b/configure
index 8413826f9e..5296a4cc93 100755
--- a/configure
+++ b/configure
@@ -2188,6 +2188,8 @@ SYSTEM_FUNCS="
clock_gettime
closesocket
CommandLineToArgvW
+ dirname
+ basename
fcntl
getaddrinfo
gethrtime
@@ -5980,6 +5982,8 @@ check_func access
check_func_headers stdlib.h arc4random
check_lib clock_gettime time.h clock_gettime || check_lib clock_gettime time.h clock_gettime -lrt
check_func fcntl
+check_func_headers libgen.h dirname
+check_func_headers libgen.h basename
check_func fork
check_func gethrtime
check_func getopt
diff --git a/libavutil/avstring.c b/libavutil/avstring.c
index 76a13ba3b5..2c57a40a8d 100644
--- a/libavutil/avstring.c
+++ b/libavutil/avstring.c
@@ -19,12 +19,15 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include "config.h"
#include <stdarg.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>
+#if defined(HAVE_DIRNAME) || defined(HAVE_BASENAME)
+#include <libgen.h>
+#endif
-#include "config.h"
#include "common.h"
#include "mem.h"
#include "avassert.h"
@@ -257,6 +260,9 @@ char *av_strireplace(const char *str, const char *from, const char *to)
const char *av_basename(const char *path)
{
+#if HAVE_BASENAME
+ return basename((char*)path);
+#else
char *p;
if (!path || *path == '\0')
@@ -274,10 +280,14 @@ const char *av_basename(const char *path)
return path;
return p + 1;
+#endif
}
const char *av_dirname(char *path)
{
+#if HAVE_DIRNAME
+ return dirname((char*)path);
+#else
char *p = path ? strrchr(path, '/') : NULL;
#if HAVE_DOS_PATHS
@@ -295,6 +305,7 @@ const char *av_dirname(char *path)
*p = '\0';
return path;
+#endif
}
char *av_append_path_component(const char *path, const char *component)
--
2.21.0
More information about the ffmpeg-devel
mailing list