uint32 getFileVersion(const NLMISC::CSString& fileName) { // start at the back of the file name and scan forwards until we find a '/' or '\\' or ':' or a digit uint32 i= fileName.size(); while (i--) { char c= fileName[i]; // if we've hit a directory name separator then we haven't found a version number so drop out if (c=='/' || c=='\\' || c==':') return ~0u; // if we've found a digit then construct the rest of the version number and return if (isdigit(c)) { uint32 firstDigit= i; while (firstDigit!=0 && isdigit(fileName[firstDigit-1])) { --firstDigit; } return fileName.leftCrop(firstDigit).left(i-firstDigit+1).atoui(); } } // default to our 'invalid' value return ~0u; }
static void addToFdc(const NLMISC::CSString& filespec, CFileDescriptionContainer& result) { if (filespec.left(1)=="@") { readFileList(filespec.leftCrop(1),result); } else { result.addFileSpec(filespec); } }