The syntax for this new command is:
-uo launchname
When specified, it creates a new entry in the existing hierarchy of user names:
APP user (name specified by app via MX_SETUSRNAM)
LAUNCH user (name specified on command line with -uo)
REAL user (the name used to login in to the OS*)
Note that under UNIX, the REAL user could also be the "effective" effective" user (i.e. the owner of the A-Shell executable if the +s flag is set). See OPTIONS=EFFUSR for information on how the various routines that return user name decide between those two.)
The REAL user name is always defined (since you need it to log in to the host OS. The other two levels are optional, but default to the level below it. For example, if you don't specify the -uo switch, then the LAUNCH user will be the same as the REAL user.
To bypass the normal hierarchy and retrieve the LAUNCH or REAL user name directly, you can pass either "!" or "!!" to GETUSN.SBR, e.g.:
USER$ = "!"
XCALL GETUSN,USER$ ! returns LAUNCH user in USER$
USER$ = "!!"
XCALL GETUSN,USER$ ! returns REAL user in USER$
(The "!!" option is new as of this release; the "!" was introduced long ago.)
Note that XCALL MIAMEX,MX_SETUSRNAM,"" (reset application user name) will effectively reset it to the LAUNCH user.
The only way for an application to force the APP user name to the REAL user (overriding the LAUNCH user) would be to retrieve the REAL name with the GETUSN "!!" method, and then use MX_SETUSRNAM to set the APP user to match the REAL user.