On 07.08.2020 00:02, Rick McGuire wrote: > Been without power here since Tuesday and probably won’t have power until the > weekend, so I won’t > be able to review anything.
Wow, sorry to hear that! All the best! --- In the process of updating the patch (missed createProgram(), simplifying code a little bit more). ---rony > > On Thu, Aug 6, 2020 at 1:51 PM Rony G. Flatscher <rony.flatsc...@wu.ac.at > <mailto:rony.flatsc...@wu.ac.at>> wrote: > > Please review the fixes. > > If there are no objections I will apply the patch of #1716 (it also > includes the patch for bug > #1715) together with test units to test for them. > > ---rony > > > On 06.08.2020 19:47, Rony G. Flatscher wrote: >> >> The bug report in <https://sourceforge.net/p/oorexx/bugs/1716/> >> <https://sourceforge.net/p/oorexx/bugs/1716/> includes a patch that >> fixes this. >> >> ---rony >> >> >> On 05.08.2020 15:16, Rony G. Flatscher wrote: >>> >>> Having received error reports from users of BSF4ooRexx like >>> >>> 2 *-* /**/@ >>> Error 13 running >>> rexx_invoked_via_[fxml_01.fxml]_at_2020_08_05T12_33_24_17Z.rex line 2: >>> Invalid character in program. >>> Error 13.1: Incorrect character in program "@" ('40'X). >>> >>> and looking up the execution paths in those cases, it turns out that >>> the ooRexx .routine >>> class gets used to create the executable in those cases with a string >>> array representing the >>> compiled and encoded Rexx program. >>> >>> So the "new" method of the .routine class gets the compiled and encoded >>> source supplied as >>> an array of strings, e.g.: >>> >>> #!/usr/bin/env rexx >>> /**/@REXX@ >>> >>> LyoqL0BSRVhYAAAAAAAAAGcrKgAgAAAAVOwAAAAAAABwEgAAVPq7VhgAAAACAAAAAAAAAAAA >>> >>> AAAAAAAAgB68ViAAAAACAAAAKAAAAAAAAABwAAAAOAAAAAAAAADkSrxWOAAAAAIAAAAFAACA >>> ... cut ... >>> >>> Supplying the compiled and encoded data as a single string to the >>> .routine class does not >>> work as this issues the error "13.1, Invalid character in program" >>> caused by the presence of >>> a LF ('0A'x) character, here a rexxtry example: >>> >>> infile=.stream~new("nutshell_01.rex-compiled")~~open("read") >>> ........................................... rexxtry.rex on >>> WindowsNT >>> pgm=infile~charin(infile~chars) >>> ........................................... rexxtry.rex on >>> WindowsNT >>> infile~close >>> ........................................... rexxtry.rex on >>> WindowsNT >>> r1=.routine~new("aha",pgm) >>> Oooops ! ... try again. Invalid character in program. >>> Incorrect character in program " >>> " ('0A'X). >>> rc = 13.1 ................................. rexxtry.rex on >>> WindowsNT >>> >>> As a compiled and encoded form of a Rexx program always has the string >>> "/**/@REXX@" as the >>> value for its second line it would be possible to determine that the >>> String array comes from >>> a compiled and encoded Rexx program. Rather than creating an error in >>> this case, the routine >>> object could get created successfully from the String array >>> representing a compiled and >>> encoded Rexx program. >>> >>> Are there any objections to try to enhance the "new" method of the >>> .routine (and the >>> .method) class such that the string array can represent a compiled and >>> encoded Rexx program? >>> >>> ---rony >>>
_______________________________________________ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel