#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <algorithm>
#include "datamap.h"
-#ifdef WIN32
+#if defined(WIN32) || defined(__WIN32__)
#include <malloc.h>
#else
#include <alloca.h>
static char *clean_line(char *s);
+DataMap::DataMap()
+{
+ strip_paths = false;
+}
+
void DataMap::clear()
{
dmap.clear();
root = std::string(path);
}
+void DataMap::set_strip(bool s)
+{
+ strip_paths = s;
+}
+
bool DataMap::load_map(const char *fname)
{
std::string path = root.empty() ? fname : root + std::string("/") + fname;
{
std::string res;
+ if(strip_paths) {
+ const char *ptr = strrchr(in, '/');
+ if(ptr) {
+ in = ptr + 1;
+ }
+ }
+
char *inbuf = (char*)alloca(strlen(in) + 1);
strcpy(inbuf, in);
in = clean_line(inbuf);