summaryrefslogtreecommitdiff
path: root/goo
diff options
context:
space:
mode:
Diffstat (limited to 'goo')
-rw-r--r--goo/gbasename.cc10
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
}