OpenVMS Source-Code Demos

SENSE_NONSENSE.COM

$!================================================================================================
$! title : csmis$com:sense_nonsense.com
$! author: NSR - 2010-07-20
$! use   : add the following line to your personal "login.com" found in directory SYS$LOGIN
$!         sens*e :== @CSMIS$COM:SENSE_NONSENSE.COM ! toggle DCL between case sensitive and normal
$! note  : modify "CSMIS$COM" as required. Use "SYS$LOGIN" if script is in your directory
$!       : DCL symbols must be declared in uppercase so they work properly from lower-case mode
$!================================================================================================
$    NAM = "-i-script: "+ F$ENVIRONMENT("PROCEDURE")		!
$    LIN = "==========="					!
$    J = F$LENGTH(NAM)						!
$    I = F$LENGTH(LIN)						!
$LOOP:
$    IF (I .LT. J)
$    THEN
$	LIN = LIN +"="
$	I = I + 1
$	GOTO LOOP
$    ENDIF
$    SAY := WRITE SYS$OUTPUT					!
$    VMS == F$GETSYI("VERSION")					!
$    IF (VMS .LES. "V7.2")					!
$    THEN							!
$	SAY "-w-oops, this program requires VMS version 7.2 or higher"
$       EXIT							!
$    ENDIF							!
$    IF P1 .EQS. ""						! IF USER WANTS TO TOGGLE
$    THEN							!
$	YADA = F$TRNLNM("SENSE_NONSENSE_STATE","LNM$JOB")	!
$	IF (YADA .EQS. "S")					! IF SENSITIVE
$	THEN							!
$	    P1 = "N"						! THEN MAKE NON-SENSITVE
$	ELSE							!
$	    P1 = "S"						! ELSE MAKE SENSITIVE
$	ENDIF							!
$    ENDIF							!
$    IF (P1 .EQS. "S")						!
$    THEN
$	SAY LIN
$	SAY NAM
$	SAY "-i-mode: setting your DCL to case sensitive"
$	SET PROC/CASE=SENS/PARSE=EXTENDED
$	DEF/JOB/NOLOG SENSE_NONSENSE_STATE "S"
$	SAY LIN
$	EXIT
$    ENDIF
$    IF (P1 .EQS. "N")						!
$    THEN
$	SAY LIN
$	SAY NAM
$	SAY "-i-mode: setting your DCL to case non-sensitive"
$	SET PROC/CASE=BLIND/PARSE=TRADITION
$	DEF/JOB/NOLOG SENSE_NONSENSE_STATE "N"
$	SAY LIN
$	EXIT
$    ENDIF
$	SAY LIN
$	SAY NAM
$	SAY "-w-oops: P1 '",P1,"' is not supported"
$	SAY "-i-mode: no change"
$	SAY LIN
$	EXIT