I do not normally use Regina, but I thought it would be interesting to see
if Rexxtool.cmd would work under Regina. I have done some minimal testing
using Regina 3.9.6 on OS/2 and Linux.

If you use RexxTool.cmd with Regina, let me know. If there are no Regina
users, I probably will not try to improve the Regina support.

Regina on OS/2:
    It works, but
        The -idle switch does not work under Regina. (I cannot get the
        SysSetPriority() from Regutil.dll to work) Not really a problem,
        because Regina does not seem to hog the CPU like OS/2 Rexx does.

        When doing a large file, Regina sometimes aborts with an error message
        "System Resources Exhausted". I don't know what that means and probably
        couldn't do anything about it.

        Regina seems to eat any quotes on the command line, so
            RexxTool.cmd format "filename with spaces.cmd" -debug="loop arg"
        yields a command line of
            RexxTool.cmd format filename with spaces.cmd -debug=loop arg
        and a "too many file names" error from RexxTool.cmd
        All I can suggest is to not use spaces, as in
            RexxTool.cmd format filename_without_spaces.cmd -debug=loop,arg


Regina on Linux:
    It seems to work, but

        As on OS/2, the -idle switch does not work.

        The progress display is not as good as on OS/2, because the SysCurPos()
        function from RegUtil cannot detect the current cursor position, and it
        seems to send ANSI control codes to stdout instead of the screen.
        If you redirect stdout, the progress display will be garbled and you will
        get ANSI strings in the redirected output. If you want to redirect stdout,
        the only workaround is to turn off the progress display with the
        -!progress switch.

        As on OS/2, Regina/Linux eats quotes on the command line

Regina on Windows:
    Has not been tested at all.


I have re-written several routines to work around differences between OS/2 Rexx
and Regina. If you want to add something and keep it portable, here is what I have
found so far--

    You can check the variables G.0OpSystem and G.0Interpreter to know the
    current operating system and interpreter. G.0Dialect is the kind of Rexx
    (RexxSAA or Regina) of the file being examined. It is normally the same as
    G.0Interpreter, but you can override that with the -dialect= switch.

    Never use SIGL in a function call, because Regina changes the value
    of SIGL =before= calling the function. Instead, do something like this
            OldSIGL = SIGL
            x = Foo(OldSIGL)

    Regina always uses the RegUtil library.  If you tell it to load RexxUtil,
    it will silently translate that to RegUtil instead.
        --rewrote Init to check interpreter and load one or the other,
          to make it clear what really happens
        --on Linux load regutil (note lower case)

    RXU does not work with Regina
        --in DumpVars, I must use SysDumpVars instead
          DumpVars is the only place that needs RXU and is not normally used
          anyway

    Regina SysSetPriority() uses delta from 20 to -20, but I have not gotten
    it to work.

    In OS/2 Regina, SysSearchPath() does not seem to work.
        --Wrote an internal SearchPath() function to substitute.

    Regina variables and labels can have names with $#@
        --Should not be a problem now. Tasks that create variables from
          variable names or labels use c2x(<name>) to avoid illegal variable
          names.

    Regina/Linux segfaults on SysCurPos() because it cannot get current row and column
        --wrote a ShowProgress for Linux, but it uncovered the next problem--

    On Linux, SysCurPos() sends ANSI strings to stdout instead of the screen,
    so they get redirected, garbling screen display and redirected output
        --only workaround is use -!progress if redirecting stdout

    The OS/2 Rexx linein() function treats an End-Of-File character (Ctrl-Z, '1A'x)
    as an End-Of-Line, Regina treats it as a printable character.
        --Tokeniser now changes EOF to an EOL token.

    in OS/2, the ADDRESS CMD default environment is the shell.
    The Regina equivalent is ADDRESS SYSTEM, and ADDRESS CMD is the operating
    system without a shell. I have not discovered how to use ADDRESS <environment>
    in a way that works on both. If ADDRESS is really needed, the best I can
    think of is to use INTERPRET--
        env = address()
        str = 'ADDRESS' env 'dir *.*'
        INTERPRET str
    but it is simpler to just avoid ADDRESS and write
        'dir *.*'

   in Regina, stream('c', 'query exists')
       returns 0 for STDOUT    OS/2 Rexx returns ''
       returns '' for NUL      OS/2 Rexx returns \DEV\NUL

   in Regina SysFileTree() does not find the NUL device,
       OS/2 Rexx returns <current drive>:\NUL

   The third argument (the "pool") of VALUE must be in upper case

   To get a variable from the environment, OS/2 Rexx uses
        value('etc', , 'os2environment')
   Regina uses
        value('etc', , 'SYSTEM')
     --wrote an EnvVar() routine that will do both, so you should use
        EnvVar('etc')







