[Oberon] Re (2): New complaint from Fox.
Jörg Straube
joerg.straube at iaeth.ch
Sat Mar 3 09:57:40 CET 2018
You could declare
VAR D: Documents.Document; (iso Objects.Object)
Then all references to D(Documents.Document) simply could be replaced by D.
But you have to convert the result of Gadgets.CreateObject() to a Document
br
Jörg
> Am 02.03.2018 um 23:27 schrieb <peter at easthope.ca> <peter at easthope.ca>:
>
> From: Guenter Feldmann <fld at 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 at 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
>
> --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon
More information about the Oberon
mailing list