bool expand_symbolic_paths_helper(char *dest, const char *src, int maxlen, const char *symbol, DirectorySpecifier& dir) { int symlen = strlen(symbol); if (!strncmp(src, symbol, symlen)) { strncpy(dest, dir.GetPath(), maxlen); dest[maxlen] = '\0'; strncat(dest, &src[symlen], maxlen-strlen(dest)); return true; } return false; }
bool contract_symbolic_paths_helper(char *dest, const char *src, int maxlen, const char *symbol, DirectorySpecifier &dir) { const char *dpath = dir.GetPath(); int dirlen = strlen(dpath); if (!strncmp(src, dpath, dirlen)) { strncpy(dest, symbol, maxlen); dest[maxlen] = '\0'; strncat(dest, &src[dirlen], maxlen-strlen(dest)); return true; } return false; }