Skip to content

Commit 85f6da9

Browse files
authored
Merge pull request #113 from Starwer/fix_multi_genres
Fixed: Multiple genre's is not being handled correctly
2 parents 8b35e1d + 0ff281c commit 85f6da9

File tree

3 files changed

+23
-3
lines changed

3 files changed

+23
-3
lines changed

src/TagLib/Id3v2/Frames/TextIdentificationFrame.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -916,7 +916,7 @@ protected void ParseRawData ()
916916
}
917917

918918
if (value.Length > 0)
919-
field_list.AddRange (value.Split (new char [] {'/'}));
919+
field_list.AddRange (value.Split (new char [] {'/', ';'}));
920920
} else {
921921
field_list.Add (value);
922922
}
@@ -988,7 +988,7 @@ protected override ByteVector RenderFields (byte version) {
988988
StringBuilder data = new StringBuilder ();
989989
foreach (string s in text) {
990990
if (!prev_value_indexed) {
991-
data.Append ("/").Append (s);
991+
data.Append (";").Append (s);
992992
continue;
993993
}
994994

tests/fixtures/TagLib.Tests.FileFormats/Id3V2FormatTest.cs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,27 @@ public void ReadTags()
3838
Assert.AreEqual(7, file.Tag.TrackCount);
3939
Assert.AreEqual(1234, file.Tag.Year);
4040
}
41-
41+
42+
[Test]
43+
public void MultiGenresTest()
44+
{
45+
string inFile = TestPath.Samples + "sample.mp3";
46+
string tempFile = TestPath.Samples + "tmpwrite.mp3";
47+
48+
File rgFile = File.Create(inFile);
49+
var tag = rgFile.Tag;
50+
var genres = tag.Genres;
51+
52+
Assert.AreEqual(3, genres.Length);
53+
Assert.AreEqual("Genre 1", genres[0]);
54+
Assert.AreEqual("Genre 2", genres[1]);
55+
Assert.AreEqual("Genre 3", genres[2]);
56+
57+
rgFile.Dispose();
58+
System.IO.File.Delete(tempFile);
59+
}
60+
61+
4262
[Test]
4363
public void WriteStandardTags ()
4464
{

tests/samples/sample.mp3

11.5 KB
Binary file not shown.

0 commit comments

Comments
 (0)