<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><pre style="font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);" class="">>Dear Squeakers,
>I tried to parse an HTML file like this in a trunk image and ran into a MNU:
>FileStream fileNamed: ’some.html’ do: [:stream | HtmlParser parse: stream]
>In HtmlText>>#initialize the message #replaceHtmlCharRefs is sent. I suppose this method was once the image. Otherwise HtmlPar>ser would never have worked. How can I find out, when it got lost? How would you do it?
>Cheers,
>Bernhard</pre><div class="">Go to the files archive and start opening old images to find what was removed. Your method is in a 3.2 image. </div><div class="">I have old images lying around on my desktops and I cannot get off the couch right now, so I thought I’d look for it. </div><div class="">Googling your selector “replaceHtmlCharRefs” would show that Steph had the same problem in 2009. </div><div class=""><br class=""></div><div class="">Chris </div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><div class="">String>>#replaceHtmlCharRefs</div><div class=""><br class=""></div><div class=""> | pos ampIndex scIndex special specialValue outString outPos newOutPos |</div><div class=""><br class=""></div><div class=""> outString _ String new: self size.</div><div class=""> outPos _ 0.</div><div class=""><br class=""></div><div class=""> pos _ 1.</div><div class=""> </div><div class=""> [ pos <= self size ] whileTrue: [ </div><div class=""> "read up to the next ampersand"</div><div class=""> ampIndex _ self indexOf: $& startingAt: pos ifAbsent: [0].</div><div class=""> </div><div class=""> ampIndex = 0 ifTrue: [</div><div class=""> pos = 1 ifTrue: [ ^self ] ifFalse: [ ampIndex _ self size+1 ] ].</div><div class=""><br class=""></div><div class=""> newOutPos _ outPos + ampIndex - pos.</div><div class=""> outString</div><div class=""> replaceFrom: outPos + 1</div><div class=""> to: newOutPos</div><div class=""> with: self</div><div class=""> startingAt: pos.</div><div class=""> outPos _ newOutPos.</div><div class=""> pos _ ampIndex.</div><div class=""><br class=""></div><div class=""> ampIndex <= self size ifTrue: [</div><div class=""> "find the $;"</div><div class=""> scIndex _ self indexOf: $; startingAt: ampIndex ifAbsent: [ self size + 1 ].</div><div class=""><br class=""></div><div class=""> special _ self copyFrom: ampIndex+1 to: scIndex-1. </div><div class=""> specialValue _ HtmlEntity valueOfHtmlEntity: special. </div><div class=""><br class=""></div><div class=""> specialValue</div><div class=""> ifNil: [</div><div class=""> "not a recognized entity. wite it back"</div><div class=""><span class="Apple-tab-span" style="white-space:pre"> </span> scIndex > self size ifTrue: [ scIndex _ self size ].</div><div class=""><br class=""></div><div class=""> newOutPos _ outPos + scIndex - ampIndex + 1.</div><div class=""> outString</div><div class=""> replaceFrom: outPos+1</div><div class=""> to: newOutPos</div><div class=""> with: self</div><div class=""> startingAt: ampIndex.</div><div class=""> outPos _ newOutPos.]</div><div class=""> ifNotNil: [</div><div class=""> outPos _ outPos + 1.</div><div class=""> outString at: outPos put: specialValue.].</div><div class=""> </div><div class=""> pos _ scIndex + 1. ]. ].</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""> ^outString copyFrom: 1 to: outPos</div></div></body></html>