diff --git a/src/strfsong.c b/src/strfsong.c
index 35086e85de41afe083d2f43e71f58ebd7453f7a9..00bcd87f3c6255bf2efab0fdfa8ba3bb2dff83f4 100644 (file)
--- a/src/strfsong.c
+++ b/src/strfsong.c
n--;
else if (strncmp("%file%", p, n) == 0)
temp = utf8_to_locale(mpd_song_get_uri(song));
- else if (strncmp("%artist%", p, n) == 0)
+ else if (strncmp("%artist%", p, n) == 0) {
temp = song_tag_locale(song, MPD_TAG_ARTIST);
- else if (strncmp("%title%", p, n) == 0)
+ if (temp == NULL) {
+ temp = song_tag_locale(song, MPD_TAG_PERFORMER);
+ if (temp == NULL)
+ temp = song_tag_locale(song, MPD_TAG_COMPOSER);
+ }
+ } else if (strncmp("%albumartist", p, n) == 0)
+ temp = song_tag_locale(song, MPD_TAG_ALBUM_ARTIST);
+ else if (strncmp("%composer%", p, n) == 0)
+ temp = song_tag_locale(song, MPD_TAG_COMPOSER);
+ else if (strncmp("%performer%", p, n) == 0)
+ temp = song_tag_locale(song, MPD_TAG_PERFORMER);
+ else if (strncmp("%title%", p, n) == 0) {
temp = song_tag_locale(song, MPD_TAG_TITLE);
- else if (strncmp("%album%", p, n) == 0)
+ if (temp == NULL)
+ temp = song_tag_locale(song, MPD_TAG_NAME);
+ } else if (strncmp("%album%", p, n) == 0)
temp = song_tag_locale(song, MPD_TAG_ALBUM);
else if (strncmp("%shortalbum%", p, n) == 0) {
temp = song_tag_locale(song, MPD_TAG_ALBUM);