From ed596d3a10ed0eab9aa0c48d5201b1b8046188cc Mon Sep 17 00:00:00 2001 From: Gurucharan Shetty Date: Mon, 6 Jan 2014 08:47:57 -0800 Subject: [PATCH] util: Set program_name for windows correctly. Windows path uses backward slashes. Also, the executable name has a .exe extension in it. While creating log files, we use the program name to create log file names. It feels a little odd to have log file names like ovsdb-server.exe.log etc. Using _splitpath_s() is a way to have same log file names on both windows and linux platforms. Signed-off-by: Gurucharan Shetty Acked-by: Ben Pfaff --- lib/util.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/util.c b/lib/util.c index 984ab4570..0ebf0852f 100644 --- a/lib/util.c +++ b/lib/util.c @@ -373,11 +373,18 @@ void set_program_name__(const char *argv0, const char *version, const char *date, const char *time) { +#ifdef _WIN32 + char *basename; + size_t max_len = strlen(argv0) + 1; + basename = xmalloc(max_len); + _splitpath_s(argv0, NULL, 0, NULL, 0, basename, max_len, NULL, 0); + assert_single_threaded(); + program_name = basename; +#else const char *slash = strrchr(argv0, '/'); - assert_single_threaded(); - program_name = slash ? slash + 1 : argv0; +#endif free(program_version); -- 2.47.0