From f3206c1554f1dc0f41f0225fb4124c66a73b8456 Mon Sep 17 00:00:00 2001 From: dotmg Date: Sat, 10 Jan 2026 15:20:12 +0100 Subject: [PATCH] bug ffpm-745.txt U dans I n'est pas correctement exclu --- .../kotlin/mg/dot/feufaro/solfa/Solfa.kt | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 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 c18760e..d173334 100644 --- a/composeApp/src/commonMain/kotlin/mg/dot/feufaro/solfa/Solfa.kt +++ b/composeApp/src/commonMain/kotlin/mg/dot/feufaro/solfa/Solfa.kt @@ -21,7 +21,6 @@ import mg.dot.feufaro.midi.MidiWriterKotlin //@todo: ews-80.txt ${m:12/4} //@todo: ews-81.txt ${R=}${D:....} //@todo: bug ffpm-629.txt sssszd au lieu de ssss-d(-rrrrtdr) -//@todo: bug ffpm-745.txt U dans I n'est pas correctement exclu class Solfa(val sharedScreenModel: SharedScreenModel, private val fileRepository: FileRepository) { private val T: MutableList = mutableListOf() @@ -340,7 +339,7 @@ class Solfa(val sharedScreenModel: SharedScreenModel, private val fileRepository loadN(voiceNumber, result, templateComments) } - private suspend fun parseOneLine(line: String) { + private suspend fun parseOneLine(line: String, regexIgnoreString: String = "") { val index: Int val value: String val lineLength = line.trim().length @@ -385,12 +384,12 @@ class Solfa(val sharedScreenModel: SharedScreenModel, private val fileRepository loadO(index, value) "I" -> - loadI(value) + loadI(value, regexIgnoreString) } } - suspend fun loadI(line: String) { + suspend fun loadI(line: String, regexIgnoreString: String = "") { val lineSplit = line.split(":") val lastSlashInFilename = currentFile.lastIndexOf('/') val fileNamePrefix = if (lastSlashInFilename != -1) { @@ -398,6 +397,15 @@ class Solfa(val sharedScreenModel: SharedScreenModel, private val fileRepository } else { "" } + val regexIgnoreString = try { + if (regexIgnoreString != "") { + regexIgnoreString + "|" + lineSplit[1] + } else { + lineSplit[1] + } + } catch (e: Exception) { + "^:" + } val filePath = fileNamePrefix + lineSplit[0] val lines = try { fileRepository.readFileLines(filePath) @@ -406,11 +414,11 @@ class Solfa(val sharedScreenModel: SharedScreenModel, private val fileRepository emptyList() } try { - val ignoredLines = Regex(lineSplit[1]) + val ignoredLines = Regex(regexIgnoreString) lines.forEach { val match = ignoredLines.find(it) if (match == null) { - parseOneLine(it) + parseOneLine(it, regexIgnoreString) } } } catch (e: Exception) {