diff options
author | Bent Bisballe Nyeng <deva@aasimon.org> | 2016-03-23 21:57:41 +0100 |
---|---|---|
committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2016-03-23 21:57:41 +0100 |
commit | 91b3683ad0b6228bf85eefdb32e2ac3f717bd41c (patch) | |
tree | 8bdfae1492f2a658992d79faf85fab95a645c8bc /src/path.cc | |
parent | 5c04b951ffe53e1a31182bb0814908af8d7f0a6f (diff) |
More cleanup.
Diffstat (limited to 'src/path.cc')
-rw-r--r-- | src/path.cc | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/path.cc b/src/path.cc index 080bd12..21a8f89 100644 --- a/src/path.cc +++ b/src/path.cc @@ -33,19 +33,21 @@ #include <string.h> #include <stdlib.h> -std::string getPath(std::string file) +std::string getPath(const std::string& file) { - std::string p; -#ifndef __MINGW32__ - char *b = strdup(file.c_str()); - p = dirname(b); - free(b); + std::string path; + +#ifdef __MINGW32__ + char drive[_MAX_DRIVE]; + char dir[_MAX_DIR]; + _splitpath(file.c_str(), drive, dir, NULL, NULL); + path = std::string(drive) + dir; #else - char drive[_MAX_DRIVE]; - char dir[_MAX_DIR]; - _splitpath(file.c_str(), drive, dir, NULL, NULL); - p = std::string(drive) + dir; + // POSIX + char* buffer = strdup(file.c_str()); + path = dirname(buffer); + free(buffer); #endif - return p; + return path; } |