int id3tag_set_genre(lame_global_flags *gfp, const char *genre) { lame_internal_flags *gfc = gfp->internal_flags; if (genre && *genre) { char *str; int num = strtol(genre, &str, 10); /* is the input a string or a valid number? */ if (*str) { int i; for (i = 0; i < GENRE_NAME_COUNT; ++i) { if (!local_strcasecmp(genre, genre_names[i])) { num = i; break; } } if (i == GENRE_NAME_COUNT) { return -1; } } else if ((num < 0) || (num >= GENRE_NAME_COUNT)) { return -1; } gfc->tag_spec.genre = num; gfc->tag_spec.flags |= CHANGED_FLAG; } return 0; }
static int searchGenre(const char* genre) { int i; for (i = 0; i < GENRE_NAME_COUNT; ++i) { if (!local_strcasecmp(genre, genre_names[i])) { return i; } } return GENRE_NAME_COUNT; }