From 13b467186c0e175112b4492dbccbc81808998742 Mon Sep 17 00:00:00 2001 From: Brent Simmons Date: Mon, 26 Aug 2024 23:02:22 -0700 Subject: [PATCH] Fix bug in SAXEqualTags. --- Modules/Parser/Sources/OPMLParser/OPMLParser.swift | 1 + Modules/Parser/Sources/SAX/SAXParser.swift | 2 +- Modules/Parser/Sources/SAX/SAXUtilities.swift | 6 +++--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Modules/Parser/Sources/OPMLParser/OPMLParser.swift b/Modules/Parser/Sources/OPMLParser/OPMLParser.swift index 578610468..d7f6b1520 100644 --- a/Modules/Parser/Sources/OPMLParser/OPMLParser.swift +++ b/Modules/Parser/Sources/OPMLParser/OPMLParser.swift @@ -103,6 +103,7 @@ extension OPMLParser: SAXParserDelegate { if let item = currentItem as? OPMLDocument { item.title = saxParser.currentStringWithTrimmedWhitespace } + saxParser.endStoringCharacters() return } diff --git a/Modules/Parser/Sources/SAX/SAXParser.swift b/Modules/Parser/Sources/SAX/SAXParser.swift index 5d8c6244e..cc0ec9943 100644 --- a/Modules/Parser/Sources/SAX/SAXParser.swift +++ b/Modules/Parser/Sources/SAX/SAXParser.swift @@ -85,7 +85,7 @@ public final class SAXParser { characters.count = 0 } - func endStoringCharacters() { + public func endStoringCharacters() { storingCharacters = false characters.count = 0 diff --git a/Modules/Parser/Sources/SAX/SAXUtilities.swift b/Modules/Parser/Sources/SAX/SAXUtilities.swift index cdc2fdc27..dccda4e9c 100644 --- a/Modules/Parser/Sources/SAX/SAXUtilities.swift +++ b/Modules/Parser/Sources/SAX/SAXUtilities.swift @@ -12,9 +12,9 @@ public func SAXEqualTags(_ localName: XMLPointer, _ tag: ContiguousArray) return tag.withUnsafeBufferPointer { bufferPointer in - let tagCount = tag.count + let tagCount = tag.count // includes 0 terminator - for i in 0..) } // localName might actually be longer — make sure it’s the same length as tag. - return localName[tagCount] == 0 + return localName[tagCount - 1] == 0 } }