diff -r 67e7f670e9cf -r 8877723323f8 FileApplicationNoteBook.st --- a/FileApplicationNoteBook.st Wed Mar 27 13:45:27 2019 +0100 +++ b/FileApplicationNoteBook.st Wed Mar 27 16:02:07 2019 +0100 @@ -1,3 +1,5 @@ +"{ Encoding: utf8 }" + " COPYRIGHT (c) 2002 by eXept Software AG All Rights Reserved @@ -7280,29 +7282,41 @@ ! updateXMLTree - |inStream dom| - + |lineInStream dom| +[ self withWaitCursorDo:[ - XML::XMLSignal handle:[:ex | + [ + |rawStream inStream encoding| + + rawStream := self fileName readStream. + rawStream binary. + encoding := CharacterEncoder detectAndSkipBOMInStream:rawStream. + rawStream text. + encoding notNil ifTrue:[ + inStream := EncodedStream stream:rawStream encoding:encoding. + ] ifFalse:[ + inStream := rawStream + ]. + lineInStream := LineNumberReadStream on:inStream. + [ + dom := XML::XMLParser + processDocumentStream:lineInStream + beforeScanDo:[:parser | parser validate:false. ]. + xmlTreeApp model:dom. + ] ensure:[ + rawStream close + ] + ] on: XML::XMLSignal do:[:ex | Dialog information: (resources stringWithCRs:'Error reported by XML-Parser in line %1:\\%2\\Showing as regular text.' - with:inStream lineNumber + with:lineInStream lineNumber with:ex description). Error raise. - ] do:[ - inStream := LineNumberReadStream on:(self fileName readStream). - [ - dom := XML::XMLParser - processDocumentStream:inStream - beforeScanDo:[:parser | parser validate:false. ]. - xmlTreeApp model:dom. - ] ensure:[ - inStream close - ] ]. ]. +] on: Error do:[:ex | self halt]. "Created: / 17-02-2011 / 13:39:07 / cg" "Modified: / 17-02-2011 / 17:39:15 / cg"