[FFmpeg-devel] [PATCH v3 4/5] fftools/cmdutils.c: Replace MAX_PATH-sized buffers with dynamically sized ones
Martin Storsjö
martin at martin.st
Wed Feb 16 18:08:12 EET 2022
On Wed, 16 Feb 2022, nihil-admirari wrote:
> ---
> fftools/cmdutils.c | 31 +++++++++++++++++++++++++------
> 1 file changed, 25 insertions(+), 6 deletions(-)
>
> diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c
> index 4b50e15..ea78897 100644
> --- a/fftools/cmdutils.c
> +++ b/fftools/cmdutils.c
> @@ -62,6 +62,7 @@
> #endif
> #ifdef _WIN32
> #include <windows.h>
> +#include "compat/w32dlfcn.h"
> #endif
>
> static int init_report(const char *env);
> @@ -2065,6 +2066,9 @@ FILE *get_preset_file(char *filename, size_t filename_size,
> {
> FILE *f = NULL;
> int i;
> +#if HAVE_GETMODULEHANDLE && defined(_WIN32)
> + char *datadir = NULL;
> +#endif
> const char *base[3] = { getenv("FFMPEG_DATADIR"),
> getenv("HOME"),
> FFMPEG_DATADIR, };
> @@ -2074,19 +2078,31 @@ FILE *get_preset_file(char *filename, size_t filename_size,
> f = fopen(filename, "r");
> } else {
> #if HAVE_GETMODULEHANDLE && defined(_WIN32)
> - char datadir[MAX_PATH], *ls;
> + wchar_t *datadir_w = get_module_filename(NULL);
> base[2] = NULL;
>
> - if (GetModuleFileNameA(GetModuleHandleA(NULL), datadir, sizeof(datadir) - 1))
> + if (wchartoansi(datadir_w, &datadir))
> + datadir = NULL;
Why would you use ansi here? Aren't all internal char based paths supposed
to be UTF-8, unless passing them to an external API that expects e.g. ACP
paths?
// Martin
More information about the ffmpeg-devel
mailing list