[FFmpeg-devel] [PATCH v3 3/3] avutil/avstring: replace with system interface if dirname and basename functions are detected
Limin Wang
lance.lmwang at gmail.com
Fri Oct 25 17:42:32 EEST 2019
On Fri, Oct 25, 2019 at 09:51:33AM +0200, Paul B Mahol wrote:
> On 10/25/19, Limin Wang <lance.lmwang at gmail.com> wrote:
> > On Wed, Oct 23, 2019 at 06:07:24PM +0200, Paul B Mahol wrote:
> >> Why?
> >>
> > Sorry, I haven't get your question, you mean why to use system
> > standard c lib API?
>
> What are gains?
Our implementation haven't handle some corner case, one example is
the check for trailing slash characters.The system library interface
is widely used by most applications, and bugs should be less.
>
> >
> >> On 10/23/19, lance.lmwang at gmail.com <lance.lmwang at gmail.com> wrote:
> >> > 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 8413826..5296a4c 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 76a13ba..66654fb 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(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.6.4
> >> >
> >> > _______________________________________________
> >> > ffmpeg-devel mailing list
> >> > ffmpeg-devel at ffmpeg.org
> >> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >> >
> >> > To unsubscribe, visit link above, or email
> >> > ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel at ffmpeg.org
> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >
> > To unsubscribe, visit link above, or email
> > ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
More information about the ffmpeg-devel
mailing list