X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=ld37_one_room;a=blobdiff_plain;f=src%2Fdatamap.cc;fp=src%2Fdatamap.cc;h=e44892320d4304aa7de181c2c9d544704096165d;hp=e466082ec0949500bbe5b47c1b8732cf21be396a;hb=f8ad31b8b1856784aefdd3457b6b8f5cb5576892;hpb=cc8a355e7b709f3eb1132cd6b63cf4e482d58332 diff --git a/src/datamap.cc b/src/datamap.cc index e466082..e448923 100644 --- a/src/datamap.cc +++ b/src/datamap.cc @@ -11,6 +11,11 @@ static char *clean_line(char *s); +DataMap::DataMap() +{ + strip_paths = false; +} + void DataMap::clear() { dmap.clear(); @@ -22,6 +27,11 @@ void DataMap::set_path(const char *path) 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; @@ -91,6 +101,13 @@ int DataMap::lookup(const char *in, char *buf, int bsz) const { 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);