1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-11 09:07:52 +08:00

Merge pull request #12058 from peppy/fix-whitespace-in-ini

Fix skin parser not stripping whitespace before parsing
This commit is contained in:
Dan Balasescu 2021-03-18 18:46:28 +09:00 committed by GitHub
commit 53ae24db9b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 19 additions and 14 deletions

View File

@ -0,0 +1,2 @@
[General]
Version: 2

View File

@ -91,6 +91,15 @@ namespace osu.Game.Tests.Skins
Assert.AreEqual(2.0m, decoder.Decode(stream).LegacyVersion); Assert.AreEqual(2.0m, decoder.Decode(stream).LegacyVersion);
} }
[Test]
public void TestStripWhitespace()
{
var decoder = new LegacySkinDecoder();
using (var resStream = TestResources.OpenResource("skin-with-space.ini"))
using (var stream = new LineBufferedReader(resStream))
Assert.AreEqual(2.0m, decoder.Decode(stream).LegacyVersion);
}
[Test] [Test]
public void TestDecodeLatestVersion() public void TestDecodeLatestVersion()
{ {

View File

@ -67,16 +67,14 @@ namespace osu.Game.Beatmaps.Formats
protected override void ParseLine(Beatmap beatmap, Section section, string line) protected override void ParseLine(Beatmap beatmap, Section section, string line)
{ {
var strippedLine = StripComments(line);
switch (section) switch (section)
{ {
case Section.General: case Section.General:
handleGeneral(strippedLine); handleGeneral(line);
return; return;
case Section.Editor: case Section.Editor:
handleEditor(strippedLine); handleEditor(line);
return; return;
case Section.Metadata: case Section.Metadata:
@ -84,19 +82,19 @@ namespace osu.Game.Beatmaps.Formats
return; return;
case Section.Difficulty: case Section.Difficulty:
handleDifficulty(strippedLine); handleDifficulty(line);
return; return;
case Section.Events: case Section.Events:
handleEvent(strippedLine); handleEvent(line);
return; return;
case Section.TimingPoints: case Section.TimingPoints:
handleTimingPoint(strippedLine); handleTimingPoint(line);
return; return;
case Section.HitObjects: case Section.HitObjects:
handleHitObject(strippedLine); handleHitObject(line);
return; return;
} }

View File

@ -36,6 +36,8 @@ namespace osu.Game.Beatmaps.Formats
if (ShouldSkipLine(line)) if (ShouldSkipLine(line))
continue; continue;
line = StripComments(line).TrimEnd();
if (line.StartsWith('[') && line.EndsWith(']')) if (line.StartsWith('[') && line.EndsWith(']'))
{ {
if (!Enum.TryParse(line[1..^1], out section)) if (!Enum.TryParse(line[1..^1], out section))
@ -71,8 +73,6 @@ namespace osu.Game.Beatmaps.Formats
protected virtual void ParseLine(T output, Section section, string line) protected virtual void ParseLine(T output, Section section, string line)
{ {
line = StripComments(line);
switch (section) switch (section)
{ {
case Section.Colours: case Section.Colours:

View File

@ -45,8 +45,6 @@ namespace osu.Game.Beatmaps.Formats
protected override void ParseLine(Storyboard storyboard, Section section, string line) protected override void ParseLine(Storyboard storyboard, Section section, string line)
{ {
line = StripComments(line);
switch (section) switch (section)
{ {
case Section.General: case Section.General:

View File

@ -31,8 +31,6 @@ namespace osu.Game.Skinning
protected override void ParseLine(List<LegacyManiaSkinConfiguration> output, Section section, string line) protected override void ParseLine(List<LegacyManiaSkinConfiguration> output, Section section, string line)
{ {
line = StripComments(line);
switch (section) switch (section)
{ {
case Section.Mania: case Section.Mania: