void TABLE::find(char* wildcard_ID, char* lastID) { vector<IDinfor> print_data; int len = strlen(wildcard_ID); if (hasStart(wildcard_ID, len)){ for (int i = 1; i < NAMEMAX; i++){ int size = ID_table[i].size(); for (int j = 0; j < size; j++){ if (strcmp(ID_table[i][j].str, lastID) == 0) continue; if (WildTextCompare(ID_table[i][j].str, wildcard_ID)) print_data.push_back(ID_table[i][j]); } } } else { int size = ID_table[len].size(); for (int i = 0; i < size; i++){ if (strcmp(ID_table[len][i].str, lastID) == 0) continue; if (WildTextCompare(ID_table[len][i].str, wildcard_ID)) print_data.push_back(ID_table[len][i]); } } sort(print_data.begin(), print_data.end(), cmp); print(print_data); }
bool appMatchWildcard(const char *name, const char *mask, bool ignoreCase) { guard(appMatchWildcard); if (!name[0] && !mask[0]) return true; // empty strings matched if (ignoreCase) { char NameCopy[1024], MaskCopy[1024]; appStrncpylwr(NameCopy, name, ARRAY_COUNT(NameCopy)); appStrncpylwr(MaskCopy, mask, ARRAY_COUNT(MaskCopy)); return WildTextCompare(NameCopy, MaskCopy); } else { return WildTextCompare(name, mask); } unguard; }