gregg@a.cs.okstate.edu (Gregg Wonderly) (10/21/87)
$!============================================================================= $! VAX/VMS archive file created by VMS_SHAR V-4.03 05-Aug-1987 $! which was written by Michael Bednarek (U3369429@ucsvc.dn.mu.oz.au) $! To unpack, simply save and execute (@) this file. $! $! This archive was created by GREGG $! on Tuesday 20-OCT-1987 22:26:38.16 $! $! It contains the following 5 files: $! DO.COM MAILEDIT.COM VI.CLD VI.COM VISETUP.COM $!============================================================================= $ Set Symbol/Scope=(NoLocal,NoGlobal) $ Version=F$GetSYI("VERSION") ! See what VMS version we have here: $ If Version.ges."V4.4" then goto Version_OK $ Write SYS$Output "Sorry, you are running VMS ",Version, - ", but this procedure requires V4.4 or higher." $ Exit 44 $Version_OK: CR[0,8]=13 $ Pass_or_Failed="failed!,passed." $ Goto Start $Convert_File: $ Read/Time_Out=0/Error=No_Error1/Prompt="creating ''File_is'" SYS$Command ddd $No_Error1: Define/User_Mode SYS$Output NL: $ Edit/TPU/NoSection/NoDisplay/Command=SYS$Input/Output='File_is' - VMS_SHAR_DUMMY.DUMMY f:=Get_Info(Command_Line,"File_Name");b:=Create_Buffer("",f); o:=Get_Info(Command_Line,"Output_File");Set (Output_File,b,o); Position (Beginning_of(b));Loop x:=Erase_Character(1); Loop ExitIf x<>"V"; Move_Vertical(1);x:=Erase_Character(1);Append_Line;Move_Horizontal (-Current_Offset);EndLoop;Move_Vertical(1);ExitIf Mark(None)=End_of(b) EndLoop;Exit; $ Delete VMS_SHAR_DUMMY.DUMMY;* $ Checksum 'File_is $ Success=F$Element(Check_Sum_is.eq.CHECKSUM$CHECKSUM,",",Pass_or_Failed)+CR $ Read/Time_Out=0/Error=No_Error2/Prompt=" CHECKSUM ''Success'" SYS$Command ddd $No_Error2: Return $Start: $ File_is="[.EXE]DO.COM" $ Check_Sum_is=388123797 $ if f$search("EXE.DIR;1") .eqs. "" then - CREATE/LOG/DIRECTORY [.EXE] $ Copy SYS$Input VMS_SHAR_DUMMY.DUMMY X$ v=f$verify(0) X$! X$! DO.COM X$! X$! Written by Gregg Wonderly 30-Oct-1986 X$! X$! write sys$output "$ ''P1' ''P2' ''P3' ''P4' ''P5' ''P6' ''P7' ''P8'" X$ write sys$output "$ ",P1," ",P2," ",P3," ",P4," ",P5," ",P6," ",P7," ",P8 X$ 'P1' 'P2' 'P3' 'P4' 'P5' 'P6' 'P7' 'P8' X$ EXIT $status+('f$verify(v)'*0) $ GoSub Convert_File $ File_is="[.EXE]MAILEDIT.COM" $ Check_Sum_is=740363787 $ if f$search("EXE.DIR;1") .eqs. "" then - CREATE/LOG/DIRECTORY [.EXE] $ Copy SYS$Input VMS_SHAR_DUMMY.DUMMY X$ ! X$ ! Command procedure to invoke an editor for MAIL. X$ ! X$ ! Inputs: X$ ! X$ ! P1 = Input file name. X$ ! P2 = Output file name. X$ ! X$ ! If MAIL$EDIT is undefined, MAIL will invoke callable EDT. X$ ! If MAIL$EDITis defined to be a command procedure, X$ ! MAIL will create a subprocess to edit the mail. X$ ! X$ ! Note that this procedure is run in the context of a subprocess. X$ ! LOGIN.COM is not executed. However, all process logical names X$ ! and DCL global symbols are copied. X$ ! X$ ! The default directory is the same as the parent process X$ ! X$ IF P1 .EQS. "" THEN GOTO NOINPUT X$ @VI$ROOT:[EXE]VI 'P1' /OUTPUT='P2' "" "" "" "" "" "NOSPAWN" X$ EXIT X$ NOINPUT: X$ @VI$ROOT:[EXE]VI 'P2' "" "" "" "" "" "" "NOSPAWN" X$ EXIT $ GoSub Convert_File $ File_is="[.EXE]VI.CLD" $ Check_Sum_is=694572112 $ if f$search("EXE.DIR;1") .eqs. "" then - CREATE/LOG/DIRECTORY [.EXE] $ Copy SYS$Input VMS_SHAR_DUMMY.DUMMY X! X! CLD for VI. Derived from the CLD for the EDIT command X! This CLD redefines the default values for the parameters to EDIT/TPU so X! that VI is the default section file instead of EVE. X! Xdefine verb vi X image VI$ROOT:[EXE]VI.EXE X parameter P1 , label=FILE_NAME , prompt="File" X value (list,type=$infile) X qualifier SECTION X default X value (default="VISECINI",type=$infile) X qualifier LISTING X value (type=$outfile) X qualifier OUTPUT X value (type=$outfile) X qualifier READ_ONLY X qualifier UPDATE X value (list) X placement=local X qualifier COMMAND X default X value (DEFAULT="VIINI",TYPE=$INFILE) X qualifier RECOVER X qualifier JOURNAL X default X value (type=$infile) X qualifier DISPLAY X default X value (list,type=$infile) X qualifier CREATE X default X qualifier TPU X default $ GoSub Convert_File $ File_is="[.EXE]VI.COM" $ Check_Sum_is=156378540 $ if f$search("EXE.DIR;1") .eqs. "" then - CREATE/LOG/DIRECTORY [.EXE] $ Copy SYS$Input VMS_SHAR_DUMMY.DUMMY X$! X$! VI.COM X$! X$! Written by Gregg Wonderly 30-OCT-1986 X$! X$! A command file to run VI as a subprocess to the current DCL process. X$! X$! Check to see if the process already exists X$! X$ VI = "EDIT/TPU" X$! OR VI = "VI" if you are using VI.EXE X$! X$ TT = F$GETDVI("SYS$COMMAND","DEVNAM") - "_" - "-" - ":" X$ EDIT_NAME = "Edit_" + TT X$ PRIV_LIST = F$SETPRV("NOGROUP,NOWORLD") X$ PID = 0 X$! X$ LOOP: X$ MPID = F$PID(PID) X$ PROC = F$GETJPI(MPID,"PRCNAM") X$! X$! If process is there, then go attach to it X$! X$ IF PROC .EQS. EDIT_NAME THEN GOTO ATTACH X$ IF PID .NE. 0 THEN GOTO LOOP X$! X$! If we fall through, then no such process, so spawn the editor X$! X$ SPAWN: X$ PRIV_LIST = F$SETPRV(PRIV_LIST) X$ DEFINE/NOLOG SYS$INPUT SYS$COMMAND: X$ T1 = F$EDIT(P2 + " " + P3 + " " + P4 + " " + P5 + " " - X + P6 + " " + P7, "UPCASE,COLLAPSE") X$ T1 = "''T1' ''P1'" X$ DEFINE/JOB/NOLOG TPU$ATTACH_NAME "''f$getjpi("","prcnam")'" X$ DEFINE/JOB/NOLOG TPU$SEARCH " " X$ DEFINE/JOB/NOLOG TPU$LINE " " X$ DEFINE/JOB/NOLOG TPU$OUTPUT " " X$ DEFINE/JOB/NOLOG TPU$ARGS " " X$ DEFINE/JOB/NOLOG TPU$NEWCMD " " X$ IF ("''P8'" .EQS. "NOSPAWN") THEN GOTO NOSPAWN X$ WRITE SYS$ERROR "[Spawning a new kept editor]" X$ SPAWN/PROCESS="''EDIT_NAME'"/NOLOG VI 'T1' X$ SUSPEND/NAME="''EDIT_NAME'" X$ WRITE SYS$ERROR "[Back from edit]" X$ GOTO DONE X$! X$! Startup the editor without spawning X$! X$ NOSPAWN: X$ WRITE SYS$OUTPUT T1 X$ DEFINE/NOLOG/JOB TPU$NOSUBPROC 1 X$ VI 'T1' X$ DEASSIGN/JOB TPU$NOSUBPROC X$ GOTO DONE X$! X$! Come here if subprocess already exists. X$! X$ ATTACH: X$! X$! For the attach, we allow some parameters to be passed to the editor, X$! other than the filename. Specifically, a string to search for, or X$! a line number to go to. X$! X$ PRIV_LIST = F$SETPRV(PRIV_LIST) X$ LINENO = " " X$ SEARCH = " " X$ OUTPUT = " " X$ NEWCMD = " " X$ LIST== F$EDIT ("''P1' ''P2' ''P3' ''P4' ''P5' ''P6' ''P7'", - V X "UPCASE,TRIM,COMPRESS") X$ START = F$LOCATE ("/OUT", LIST) X$ IF (START .EQ. F$LENGTH(LIST)) THEN GOTO NOOUT X$ REMAIN = F$EXTRACT (START,255,LIST) X$ END = F$LOCATE ("=", REMAIN) X$ IF (END .NE. F$LENGTH (REMAIN)) THEN GOTO OUT_1 X$ WRITE SYS$ERROR F$MESSAGE(%X38150) X$ WRITE SYS$ERROR " \OUTPUT\" X$ EXIT X$! X$ OUT_1: V$ OUTPUT=F$EXTRACT(END+1,F$LOCATE(" ",REMAIN)-END-1,REMAI XN) X$ LIST = F$EXTRACT (0,START,LIST) + - V F$EXTRACT(END+2+F$LENGTH(OUTPUT),255,RE XMAIN) X$! X$ NOOUT: X$ IF (F$EXTRACT(0,1,P1) .NES. "+") THEN GOTO NO_LINE X$ IF (F$EXTRACT(1,1,P1) .NES. "/") .AND. - V (F$EXTRACT(1,1,P1) .NES. "?") THEN GOTO X NO_SEARCH X$ SEARCH = F$EXTRACT (1,255,P1) X$ P1=" " X$ GOTO NO_ALTS X$! X$ NO_SEARCH: X$ IF (F$EXTRACT(1,1,P1) .NES. "$") THEN GOTO NO_CMD X$ NEWCMD = F$EXTRACT (2,255,P1) X$ P1=" " X$ GOTO NO_ALTS X$ NO_CMD: X$ LINENO = F$EXTRACT (1,255,P1) X$ p1="" X$! X$ NO_ALTS: X$ LIST== F$EDIT ("''P2' ''P3' ''P4' ''P5' ''P6' ''P7'", - V "UPCASE X,COMPRESS,TRIM") X$ NO_LINE: X$! X$! Parameters are passed through the JOB logical table. X$! X$ DEFINE/JOB/NOLOG TPU$SEARCH "''SEARCH'" X$ DEFINE/JOB/NOLOG TPU$LINE "''LINENO'" X$ DEFINE/JOB/NOLOG TPU$OUTPUT "''OUTPUT'" X$ DEFINE/JOB/NOLOG TPU$ARGS " ''LIST'" X$ DEFINE/JOB/NOLOG TPU$NEWCMD "''NEWCMD'" X$ DEFINE/JOB/NOLOG TPU$ATTACH_NAME "''f$getjpi("","prcnam")'" X$! X$! Restore all prior privileges. X$! X$ WRITE SYS$ERROR "[Attaching to editor]" X$ DEFINE/NOLOG SYS$INPUT SYS$COMMAND: X$ RESUME/NAME="''EDIT_NAME'" X$ ATTACH "''EDIT_NAME'" X$ WRITE SYS$ERROR "[Back from edit]" X$ SUSPEND/NAME="''EDIT_NAME'" X$! X$! Exit the editor, deleting the journal files. X$! X$ DONE: X$ DEASSIGN/JOB TPU$ATTACH_NAME X$ DEASSIGN/JOB TPU$SEARCH X$ DEASSIGN/JOB TPU$LINE X$ DEASSIGN/JOB TPU$OUTPUT X$ DEASSIGN/JOB TPU$ARGS X$ DEASSIGN/JOB TPU$NEWCMD X$ EXIT $ GoSub Convert_File $ File_is="[.EXE]VISETUP.COM" $ Check_Sum_is=729501141 $ if f$search("EXE.DIR;1") .eqs. "" then - CREATE/LOG/DIRECTORY [.EXE] $ Copy SYS$Input VMS_SHAR_DUMMY.DUMMY X$ ! X$ ! VISETUP.COM - Set up to use the VI TPU interface. X$ ! X$ ! Written by Gregg Wonderly JUN-30-1987 X$ ! X$ DEFINE/NOLOG/TRANS=CONCEAL VI$ROOT MATH0:[PUBLIC.VI.] X$ DEFINE TPUSECINI VI$ROOT:[EXE]VI.GBL X$ DEFINE TPU$CALLUSER VI$ROOT:[EXE]TPUSUBS.EXE X$ DEFINE/NOLOG VISECINI VI$ROOT:[EXE]VI.GBL X$ DEFINE/NOLOG VI$CALLUSER VI$ROOT:[EXE]TPUSUBS.EXE X$ DEFINE/NOLOG MAIL$EDIT VI$ROOT:[EXE]MAILEDIT.COM X$! X$! This symbol gets you a NON-SPAWNED VI X$! Delete this if you are using VI.EXE and VI.CLD X$! X$ VI == "EDIT/TPU" X$! This symbol gets you a SPAWNED VI X$ VIS == "@VI$ROOT:[EXE]VI.COM" X$! X$! This gets you a readonly version of the file. X$! X$ IF F$TYPE (VI) .EQS. "" THEN VI="VI" X$ VIEW == "''VI'/READONLY" X$ EXIT $ GoSub Convert_File $ Exit