$DEBUG PAGELENGTH(55) M$EX$DELETE: DO; /***********************/ /* */ /* E X $ D E L E T E */ /* */ /***********************/ /********************************************************/ /* */ /* 1. Repeat for up to 4 file names, while name is not */ /* null : */ /* a. Get file name. */ /* b. Ask for Q switch. */ /* 2. Ask for 'P' switch. */ /* */ /********************************************************/ $NOLIST $INCLUDE(COMMON.DCL) $INCLUDE(ISIS.DCL) $INCLUDE(:F1:ISISIO.DCL) $INCLUDE(STRING.DCL) $LIST GET$FNAME: PROCEDURE(NAME$P,TYPE,WILDCARD,NULLNAME,EXTPNT) EXTERNAL; DECLARE NAME$P ADDRESS, TYPE BYTE, WILDCARD BOOLEAN, NULLNAME BOOLEAN, EXTPNT BOOLEAN; END GET$FNAME; DECLARE MSG$FILL$IN(1) BYTE EXTERNAL; DECLARE MSG$OPTIONS(1) BYTE EXTERNAL; DECLARE MSG$FILE$OR$RETURN(1) BYTE EXTERNAL; DECLARE MSG$CLR$AFTER$FNAME(1) BYTE EXTERNAL; DECLARE ( ECOMP1, ECOMP5, ECOMP6, ECOMP7 ) STRING EXTERNAL; EX$DELETE: PROCEDURE (COM$LINE$P,COM$TYPE$P) PUBLIC; DECLARE COM$LINE$P ADDRESS, COM$TYPE$P ADDRESS; DECLARE (COM$LINE BASED COM$LINE$P) STRING, (COM$TYPE BASED COM$TYPE$P) BYTE; DECLARE NAME STRUCTURE( ML ADDRESS, L ADDRESS, D(15) BYTE ); DECLARE COMP1 STRUCTURE( ML ADDRESS, L ADDRESS, D(8) BYTE ) DATA (7,7,'DELETE ',0); DECLARE COMP2 STRUCTURE( ML ADDRESS, L ADDRESS, D(3) BYTE ) DATA (2,2,' Q',0); DECLARE COMP3 STRUCTURE( ML ADDRESS, L ADDRESS, D(3) BYTE ) DATA (2,2,' P',0); DECLARE I BYTE; DECLARE MSG1(*) BYTE DATA( LF, '--- DELETE FILES ---',CR,LF, LF, ' FILE NAMES ',CR,LF, 0); DECLARE MSG2(*) BYTE DATA( ' Query ( ask for o.k. ) before deleting ( y/n ) ? ', 0); DECLARE MSG3(*) BYTE DATA( CR,LF, LF, 'Pause to change disks before deleting ( y/n ) ? ', 0); CALL MSG$OUT(.MSG$FILL$IN); CALL MSG$OUT(.MSG1); COM$LINE.L=0; CALL APPEND$S(.COM$LINE,.COMP1); I=0; NAME.L=1; DO WHILE (NAME.L>0) AND (I<4); CALL MSGOUT(.MSG$FILE$OR$RETURN); CALL GET$FNAME(.NAME,1,TRUE,TRUE,FALSE); IF NAME.L>0 THEN DO; I=I+1; CALL APPEND$S(.COM$LINE,.NAME); CALL MSG$OUT(.MSG$CLR$AFTER$FNAME); CALL MSG$OUT(.MSG2); IF UPPER(CI)='Y' THEN DO; CALL APPEND$S(.COM$LINE,.COMP2); CALL MSG$OUT(.('Y',CR,LF,0)); END; ELSE CALL MSG$OUT(.('N',CR,LF,0)); CALL APPEND$S(.COM$LINE,.ECOMP6); END; END; COM$LINE.L=COM$LINE.L-1; CALL MSG$OUT(.MSG3); IF UPPER(CI)='Y' THEN CALL APPEND$S(.COM$LINE,.COMP3); CALL APPEND$S(.COM$LINE,.ECOMP5); CALL MSG$OUT(.(CLR$SCRN,0)); COM$TYPE=1; END EX$DELETE; END M$EX$DELETE;