From: Guenter Feldmann <fld@uni-bremen.de>
I could compile your Oberon.Sort.Mod without any problems in LinuxA2 (7600), DarwinA2 (7600) and SolarisA2 (7600).
From: Felix Friedrich <felix.friedrich@inf.ethz.ch>
I cannot reproduce your problem. Neither in Windows A2, nor in a freshly built Linux A2, nor from within LinuxA2 Generic rev. 7600
Maybe there is some hidden character in your file?
Apologies for the trouble. It was an even worse blunder by me. Some time after posting Sort to the book I changed in my copy, AddSuffix(Documents.MarkedDoc().name, suffixArray, name) to AddSuffix(D.name, suffixArray, name) which, in foggy thinking, must have seemed OK after D := Documents.MarkedDoc() . My explanation of why that can't work: a Document has a name and is an extension of a Gadgets.Frame, which is an extension of a Display.Frame, which is an extension of an Objects.Object. D is an Object; therefore D := Documents.MarkedDoc() is OK. But an Object doesn't have a name. Documents.MarkedDoc().name can exist but D.name never exists. Corrections welcome. Incidentally, Oberon.Sort.Mod was one of the earliest sources posted to the wikibook and indentation was handled badly by MediaWiki.Markup. The current MediaWiki should yield a module file as original, including original indentation. Described in https://en.m.wikibooks.org/wiki/Oberon#Dataflow_of_a_Text and https://en.wikibooks.org/wiki/Oberon#Dataflow_of_a_Text . Will install new markup for Oberon.Sort.Mod soon. Also incidentally, Oberon.Documents.MarkedDoc() has IF TRUE (* Oberon.Pointer.on *) THEN M.X := Oberon.Pointer.X; M.Y := Oberon.Pointer.Y; ... ELSE RETURN NIL END What was the IF meant to achieve? Is there any reason to keep it? Thanks, ... Lyall E. -- 123456789 123456789 123456789 123456789 123456789 123456789 123456789 Tel: +1 360 639 0202 Pender Is.: +1 250 629 3757 http://easthope.ca/Peter.html Bcc: peter at easthope. ca