diff options
Diffstat (limited to 'goo')
-rw-r--r-- | goo/gbasename.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/goo/gbasename.cc b/goo/gbasename.cc index dd4607b4..819de885 100644 --- a/goo/gbasename.cc +++ b/goo/gbasename.cc @@ -39,13 +39,21 @@ //======================================================================== #include "gbasename.h" -#include <libgen.h> +#ifndef _MSC_VER +# include <libgen.h> +#endif #include <string.h> std::string gbasename(const char* filename) { +#ifdef _MSC_VER + char fname[_MAX_FNAME] = {}, fext[_MAX_EXT] = {}; + errno_t z = _splitpath_s(filename, NULL, 0, NULL, 0, fname, _countof(fname), fext, _countof(fext)); + return std::string(fname) + std::string(fext); +#else char* mutabl = strdup(filename); std::string retu = basename(mutabl); free(mutabl); return retu; +#endif } |