From:	MERC::"uunet!CRVAX.SRI.COM!RELAY-INFO-VAX" 15-MAR-1993 13:23:04.69
To:	Info-VAX@KL.SRI.COM
CC:	
Subj:	Re: How to detect if user logged in with /NOCOMMAND?

In article <01GVR56KKG9U8WW1HG@kopc.hhs.dk>, ARNE@kopc.hhs.dk (Arne Vajhj) 
writes...
#> Does anybody know how one can detect if someone logged in with the
#> qualifier /NOCOMMAND.

No.  (well, you could ask them...)

#> I checked all the items of F$GETJPI (VMS 5.5) for both ways of logging
#> in, but could find none which might point to this qualifier.
#> Somehow it must at least be known to LOGINOUT, because it has to decide
#> whether to execute LOGIN.COM or not.
# 
#Sure LOGINOUT/the CLI knows it - but does it also save the information ?
# 
#A little reading in IDS 5.2 revealed:
# 
#p. 795  :  LOGINOUT begins initialization for a CLI. It creates user mode
#           logical names PROC0 through PROC9, each equated to the file
#           specification of a command procdure (or indirect command file)
#           to be excuted before the CLI enters its input loop. Currently
#           only PROC0 and PROC1 are used.
# 
#p. 801  :  The CLI translates PROC0 through PROC9 and saves their
#           equivalence names to identify the command procdures it must
#           execute.    
# 
#And that is all I can find.
# 
#So the two questions are:
# 
#1)  Where does the CLI save the information (symbolic addreses) ?

It does not.  It uses it internally as global symbol COM_NEGATED
which you'll find in [.login.lis]inituser.lis and interact.lis.  
The latter sets the flag based on the existence of /NOCOMMAND and
the former uses it to decide what to do.  

If job logical name PROC1 hung around one could compare its value
to that of UAF LGICMD.  However, DCL kindly removes it (and PROC0)
before turning control over to the user so the answer there is nix as
well.

#2)  Does the information stay there after execution of the command
#    procedures ?

The information actually is gone before the command procedures execute
since it's translated internally to the CLI.  This can be verified via
	sys$sylogin:
	$ show  log/full/job *

Fails to show any job logical names not present later.  If DCL didn't
translate and remove the logical names first, PROC1 would be listed 
druing PROC0 (sys$sylogin).

#Arne Vajhxj                             local DECNET:  KO::ARNE
#Computer Department                     PSI:           PSI%238310013040::ARNE
#Business School of Southern Denmark     Internet:      ARNE@KO.HHS.DK

You could always patch DCL to save the PROCn logicals.  I've found
however that DCL is resilient to trivial patches so undoubtedly it
won't be.*

Ehud

--
Ehud Gavron        (EG76)     
gavron@aces.com
* yes that's a challenge ;)