Commit c47f97e1 authored by Max Kellermann's avatar Max Kellermann

song: use songvec_for_each() in songvec_print() / songvec_save()

songvec_for_each() has locking, use it instead of manually iterating over the songvec items.
parent f0366cc8
......@@ -42,14 +42,14 @@ int song_print_info(struct client *client, Song * song)
return 0;
}
int songvec_print(struct client *client, const struct songvec *sv)
static int
song_print_info_x(Song *song, void *data)
{
int i;
Song **sp = sv->base;
for (i = sv->nr; --i >= 0;)
if (song_print_info(client, *sp++) < 0)
return -1;
struct client *client = data;
return song_print_info(client, song);
}
return 0;
int songvec_print(struct client *client, const struct songvec *sv)
{
return songvec_for_each(sv, song_print_info_x, client);
}
......@@ -37,28 +37,27 @@ static void song_save_url(FILE *fp, Song * song)
song->url);
}
static void song_save(FILE *fp, Song * song)
static int
song_save(Song *song, void *data)
{
FILE *fp = data;
fprintf(fp, SONG_KEY "%s\n", song->url);
song_save_url(fp, song);
if (song->tag != NULL)
tag_save(fp, song->tag);
fprintf(fp, SONG_MTIME "%li\n", (long)song->mtime);
return 0;
}
void songvec_save(FILE *fp, struct songvec *sv)
{
int i;
Song **sp = sv->base;
fprintf(fp, "%s\n", SONG_BEGIN);
for (i = sv->nr; --i >= 0; ) {
Song *song = *sp++;
fprintf(fp, "%s%s\n", SONG_KEY, song->url);
song_save(fp, song);
fprintf(fp, "%s%li\n", SONG_MTIME, (long)song->mtime);
}
songvec_for_each(sv, song_save, fp);
fprintf(fp, "%s\n", SONG_END);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment