bool ContainsNoCase(const std::string &strTarget, const std::string &strContent){ std::string target = MakeLowercase(strTarget); std::string content = MakeLowercase(strContent); size_t ret = target.find(content); if (ret == std::string::npos) return false; else return true; }
int* wiimenu_buildgamelist(char* root, gamelistentry* gamelist, int max, \ gamelistentry *gamesunk, gamelistentry *gamesfdd, gamelistentry *gameshdd) { int i = 0; int *sizes = malloc(sizeof(int) * BASETYPE_COUNT); gamelistentry *games; memset(sizes, 0, BASETYPE_COUNT * sizeof(int)); DIR_ITER * dirIter = NULL; dirIter = diropen(root); if(dirIter == NULL) { #ifdef DEBUG_NP2 printf("Couldn't open %s\n", root); sleep(5); #endif //DEBUG_NP2 return NULL; } char filename[MAXPATHLEN]; struct stat filestat; int res; int type, basetype; for(i = 0; i < max; i++) { if(time_to_leave) break; res = dirnext(dirIter, filename, &filestat); if(res != 0) break; char *origname = strdup(filename); MakeLowercase(filename); type = GetFiletype(filename); basetype = GetBasetype(type); switch(basetype) { case BASETYPE_UNKNOWN: games = gamesunk; break; case BASETYPE_FDD: games = gamesfdd; break; case BASETYPE_HDD: games = gameshdd; break; } games[sizes[basetype]].path = calloc(strlen(filename) + 1, 1); strncpy(games[sizes[basetype]].path, filename, strlen(filename)); games[sizes[basetype]].isdir = (filestat.st_mode & _IFDIR) == 0 ? 0 : 1; games[sizes[basetype]].type = type; games[sizes[basetype]].basetype = basetype; if(games[sizes[basetype]].isdir) { if(strcmp(filename, "..") == 0) sizes[basetype]--; else if(strcmp(filename, ".") == 0) sizes[basetype]--; else { games[sizes[basetype]].name = calloc(strlen(origname) + 1, 1); strncpy(games[sizes[basetype]].name, origname, strlen(origname) + 1); } }else{ games[sizes[basetype]].name = calloc(strlen(origname) + 1, 1); strncpy(games[sizes[basetype]].name, origname, strlen(origname) + 1); } sizes[basetype]++; } // Sort the file lists if(sizes[BASETYPE_UNKNOWN] >= 0) qsort(gamesunk, sizes[BASETYPE_UNKNOWN], sizeof(gamelistentry), sortgames_cb); if(sizes[BASETYPE_HDD] >= 0) qsort(gameshdd, sizes[BASETYPE_HDD], sizeof(gamelistentry), sortgames_cb); if(sizes[BASETYPE_FDD] >= 0) qsort(gamesfdd, sizes[BASETYPE_FDD], sizeof(gamelistentry), sortgames_cb); dirclose(dirIter); // close directory return sizes; }
int CompareNoCase(const std::string &strLeft, const std::string &strRight){ std::string left = MakeLowercase(strLeft); std::string right = MakeLowercase(strRight); int ret = left.compare(right); return ret; }