// XXX taken from Windows PWSTreeCtrl.cpp // XXX move to core static StringX GetPathElem(StringX &sxPath) { // Get first path element and chop it off, i.e., if // path = "a.b.c.d" // will return "a" and path will be "b.c.d" // path = "a..b.c.d" // will return "a." and path will be "b.c.d" // (assuming GROUP_SEP is '.') StringX sxElement; size_t dotPos = sxPath.find_first_of(GROUP_SEP); size_t len=sxPath.length(); if (dotPos == StringX::npos){ sxElement = sxPath; sxPath = wxT(""); } else { while ((dotPos < len) && (sxPath[dotPos] == GROUP_SEP)) {// look for consecutive dots dotPos++; } if (dotPos < len) { sxElement = sxPath.substr(0, dotPos-1); sxPath = sxPath.substr(dotPos); } else { // trailing dots sxElement = sxPath; sxPath = wxT(""); } } return sxElement; }