From 22a4c4bdf6c7ee3ba3e83803fe48dde8865826e5 Mon Sep 17 00:00:00 2001 From: Hasinjato Date: Wed, 12 Aug 2026 10:45:36 +0300 Subject: [PATCH] Isolate split detect on '<{' '}' block --- .../kotlin/mg/dot/feufaro/solfa/Solfa.kt | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/composeApp/src/commonMain/kotlin/mg/dot/feufaro/solfa/Solfa.kt b/composeApp/src/commonMain/kotlin/mg/dot/feufaro/solfa/Solfa.kt index 14c0bfa..edee52a 100644 --- a/composeApp/src/commonMain/kotlin/mg/dot/feufaro/solfa/Solfa.kt +++ b/composeApp/src/commonMain/kotlin/mg/dot/feufaro/solfa/Solfa.kt @@ -6,18 +6,13 @@ import kotlinx.coroutines.* import mg.dot.feufaro.FileRepository import mg.dot.feufaro.SaveSettings import mg.dot.feufaro.getGlobalTemplate -import mg.dot.feufaro.getPlatform import mg.dot.feufaro.launchFilePicker import mg.dot.feufaro.midi.MidiPitch import mg.dot.feufaro.midi.MidiWriterKotlin import mg.dot.feufaro.midi.MidiWriterforEXport import mg.dot.feufaro.provideSettings import mg.dot.feufaro.viewmodel.PartitionMetadata -import mg.dot.feufaro.transformLyricsInput -import org.koin.core.component.inject import java.io.File -import java.util.prefs.Preferences -import kotlin.getValue import kotlin.math.min //@todo: ffpm-164.txt O10:s3:mflswss // alternative notes for stanza 3 only @@ -2105,6 +2100,7 @@ class Solfa(val sharedScreenModel: SharedScreenModel, private val fileRepository } var commentNumber = -1 var inSplit = false + var expectSplitBrace = false val lineChar = lineRepeated.toCharArray() lineChar.forEach { when (it) { @@ -2119,9 +2115,14 @@ class Solfa(val sharedScreenModel: SharedScreenModel, private val fileRepository } // blocs de split <[...] - '<' -> { } + '<' -> { + expectSplitBrace = true + } '{' -> { - inSplit = true + if (expectSplitBrace) { + inSplit = true + expectSplitBrace = false + } } '}' -> { inSplit = false @@ -2238,6 +2239,9 @@ class Solfa(val sharedScreenModel: SharedScreenModel, private val fileRepository trioletCount = 2 nextDuration = nextDuration - nextTrioletDuration } } + else -> { + expectSplitBrace = false + } } lastIt = it }